




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一 课程设计目的.1二 课程设计任务和内容 .1三 系统设计方案 .2 3.1系统详细描述.2 3.1.1系统设计背景.2 3.1.2系统设计详细信息.2 3.2功能模块划分.2 3.2.1功能模块描述.2 3.2.2输入项.4 3.2.3输出项.4四 系统实现与测试.44.1主菜单实现.5 4.1.1流程图.5 4.1.2代码.6 4.1.3主菜单测试.74.2查询模块实现.7 4.2.1流程图.7 4.2.2代码.8 4.2.3模块测试.114.3显示数据模块实现.12 4.3.1流程图.12 4.3.2代码.13 4.3.3模块测试.154.4文件输出模块.16 4.4.1代码.16 4.4.2模块测试.174.5显示排名模块.17 4.5.1流程图.17 4.5.2代码.18 4.5.3模块测试.19五 程序调试及错误.19六 参考文献.20七 附录.20一、课程设计的目的1) 学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3) 掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。4) 在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。二、课程设计任务和内容按照如下要求,运用C+语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为4项,以项目一,项目二,项目三,项目四代表)各项目名次取法有以下几种:取前五名:第一名 7分,第二名 5分,第三名 3分,第四名2分,第五名 1分;取前三名:第一名 5分,第二名 3分,第三名 2分;用户自定义。功能要求: (1)由程序提醒用户填写比赛接结果,输入各项目参赛运动员运动员信息; (2)信息录入完毕后由系统为运动员、各个学校进行排名; (3)所有信息记录完毕后,用户可以查询各个学校的比赛成成绩和排名,运动员的比 赛成绩和排名; (4)最后还能对比赛信息输出。注:我与网络工程102001班黄科荣同学合作,共同完成本次有关于校际运动会管理系统的程序设计。我负责完成查询模块、数据显示模块、文件输出模块的实现和显示排名模块。3、 系统设计方案3.1系统详细描述3.1.1系统设计背景 随着中国教育改革的不断深入以及大学生的普及,大学里每年都会举办运动会,一方面是为了鼓励大学生积极参加体育运动,另一方面也是培养国家体育人才。在各个学校之间的比赛时,需要对运动会的信息进行整理,它涉及到的数据量之大,用单纯的手写记录已经不能满足用户的需求,利用运动会管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。 本项目作为c+课程设计课程的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。所以开发一个符合自身运动会实际情况的工作平台是十分必要的。3.1.2系统设计详细信息系统使用对象定为由太原科技大学,太原理工大学,山西大学,中北大学联合举办的校际运动会。系统需要建立两个结构体学校和运动员。学校应该包含学校名,学校代码,学校总分和学校排名等信息;运动员则要包含姓名,性别,学校,比赛成绩,比赛名次和比赛成绩等信息。系统就是要实现学校和运动员基本信息的输入和输出,还有查询,最后再生成报表。3.2功能模块划分3.2.1功能模块描述 根据题目的要求及系统功能可以将系统分为学校信息录入,学生信息录入,成绩录入,查询,显示数据,输出文件,显示排名七个模块。各个模块基本介绍如下:学校信息录入模块:输入学校总数,对学校名字,代码,成绩,排名等信息进行初始化。学生信息录入模块:输入学生总数,对运动员姓名,性别,学校,成绩,排名,得分等信息进行计算。成绩录入模块:录入运动员比赛成绩由系统对运动员进行排名和积分。查询模块:用户可以选择运动员,学校,项目三种查询方式。显示数据模块:显示学校信息,运动员信息和得分规则。输出文件模块:将文件存储。显示排名模块:显示学校排名和运动员排名。注:我主要负责查询,显示数据,输出文件,显示排名四个模块的相关内容,黄科荣同学负责编写学校信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。 校际运动会管理系统 输出文件 显示数据 信息查询 显示排名 运动员成绩录入 学生信息录入 学校信息录入 运动员排名学校信息运动员信息得分规则学校排名学校查询项目查询学生查询 图3.1校际运动会管理系统功能模块图3.2.2输入输以下输入项均为键盘输入:得分规则选择 int a(1、2、3)选择主菜单选项 int n(1、2、3、4、5、6、7、8)学校个数 int XN学校校名 string mingzi 学校代号 string daihao 学生数量 int SN学生姓名 string xingming 学生性别 bool xingbie参赛项目 bool xiangmu4成绩 float chengji选择查询方式 int a(1、2、3、4)选择显示的信息 int l(1、2、3、4)选择现实的排名 int a(1、2、3)3.2.3输出项学校名次 int mingci4;学校校名 string mingzi学生姓名 string xingming 学生性别 bool xingbie参赛项目 bool xiangmu4成绩 float chengji单项得分 int defen4总分 int zongfen四、系统实现与测试4.1主菜单模块实现4.1.1主菜单流程开 始显示主菜单输入选择是否合理图提示错误信息 YN是否为1是否为3NNN是否为2是否为4YYY Y N调用输入函数调用显示函数调用查找函数调用排序函数 是否为5是否为7是否为6NN Y调用显示函数 Y Y调用显示函数调用显示函数 N 结束4.1主菜单流程图4.1.2主菜单代码 void menu()/菜单 int w1,n;system(cls);couttt-endltt*welcome to load*endltt-endlttendltt 欢迎使用校运动会计分系统 endltt endltt endltt endltt 1.学校信息录入 endltt 2.学生信息录入 endltt 3.成绩录入 endltt 4.查询 endltt 5.显示数据 endltt 6.输出文件 endltt 7.显示排名 endltt 8.退出 endltt endltt endltt endltt 制作人 endltt endltt endlttendl;docout请输入你想操作的代号(1-8):n;if(n8)w1=1;cout您的输入有误,请重新输入!endl;else w1=0;while(w1=1);switch(n)case 1:xuexiaoluru();case 2:xueshengluru();case 3:chengjiluru();case 4:chaxun();case 5:xianshi();case 6:wenjian();case 7:paimingxianshi();4.1.3主菜单测试主菜单运行结果如图4.2 图4.2主菜单界面4.2查询模块实现4.2.1查询流程图 开始 输出提示信息 N是否为4 Y输入数字a 是否为 2是否为 3 NN是否为1 N YY Y调用学校查询函数调用项目查询函数调用学生查询函数 结束 图4.3查询模块流程图4.2.2查询模块代码void chaxun() /查询void xscx();void xmcx();void xxcx();int a;docout选择查询方式:endl 1 按姓名查询:endl 2 按项目查询:endl 3 按学校查询:endl 4 退出endla;switch(a)case 1:xscx();break;case 2:xmcx();break;case 3:xxcx();break;case 4:break;while(a4);system(pause);menu();void xscx()int i,sb=0;string x;coutx;for(i=0;iSN;i+)if(xsi.xingming=x)sb+;cout姓名xsi.xingming 学校;for(int k=0;k+)if(xsi.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;cout 性别;if(xsi.xingbie)coutsetw(4)男;elsecoutsetw(4)女;cout 号码xsi.haomaendl;if(sb=0)cout没找到该名字的学生endl;void xmcx()int i,sb=0;int j;coutj;for(i=0;iSN;i+)if(xsi.xiangmuj-1)sb+;cout姓名xsi.xingming 学校;for(int k=0;k+)if(xsi.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;cout 性别;if(xsi.xingbie)coutsetw(4)男;elsecoutsetw(4)女;cout 号码xsi.haomaendl;if(sb=0)cout未找该项目的学生endl;void xxcx()int i,sb=0;cout学校信息为:endlsetw(15)学校名称 学校代号endl;for(i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaoendl;string l;coutl;for(i=0;iSN;i+)if(xsi.xue=l)sb+;cout姓名xsi.xingming 学校l 性别;if(xsi.xingbie)coutsetw(6)男;elsecoutsetw(6)女;cout 号码xsi.haoma;if(sb=0)cout没找到该学校的学生endl;4.2.3查询模块测试查询模块测试分为姓名查询如图4.4,项目查询如图4.5,学校查询如图4.6: 图4.4姓名查询界面当选择数字1时界面如图4.4,输出学生姓名,学校,性别,号码. 图4.5项目查询界面当选择数字2时界面如图4.5,输出参加要查询项目的运动员姓名,学校,性别,号码. 图4.6学校查询界面当选择数字3时界面如图4.6,输出代表要查询学校参赛的运动员姓名,学校,性别,号码.4.3显示模块查询 开始4.3.1显示模块流程图N是否为4 输出提示信息 Y 输入lN是否为3是否为2 N N 是否为1 YY调用显示得分规则函数调用显示运动员信息函数 Y调用显示学校信息 函数 结束 图4.7显示模块流程图4.3.2显示模块代码void xianshi()/显示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;do cout显示所有学校信息输入1endl显示所有学生信息输入2endl显示得分规则输入3endl退出输入4endll;switch(l)case 1:xsxxxx();break;case 2:xsxsxx();break;case 3:xsdfgz();break;while(l4&l1); system(pause);menu();void xsxxxx()cout学校信息为:endlsetw(15)学校名称 学校代号setw(8)学校得分setw(8)学校排名endl;for(int i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaosetw(8)xxi.chengjisetw(8)xxi.mingciendl;void xsxsxx()coutsetw(6)姓名setw(15)学校setw(6)性别setw(12)项目1 成绩setw(12)项目2 成绩setw(12)项目3 成绩setw(12)项目4 成绩endl;for(int j=0;jSN;j+)coutsetw(6)xsj.xingming;for(int k=0;k+)if(xsj.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;if(xsj.xingbie)coutsetw(6)男;elsecoutsetw(6)女;for(int x=0;x4;x+)coutsetw(6)xsj.xiangmuxsetw(6)xsj.chengjix;coutendl;coutsetw(18)项目1得分 排名setw(18)项目2得分 排名setw(18)项目3得分 排名setw(18)项目4得分 排名setw(7)总分endl;for(j=0;jSN;j+)for(int x=0;x4;x+)coutsetw(9)xsj.defenxsetw(9)xsj.mingcixsetw(7);coutxsj.zongfenendl;void xsdfgz()for(int z=0;z+)if(dfz!=0)cout第z+1名得dfz分endl;continue;elsecout其后所有人得分为0endl;break;4.3.3显示模块测试显示模块测试分为学校显示如图4.8,所有学生显示如图4.9和得分显示如图4.10 图4.8学校信息显示界面图4.8选择1时参赛学校的名称,代号,得分和排名的显示. 图4.9学生信息显示界面图4.9为选择2时所有参赛学生学校,性别,参赛项目,成绩,得分和排名的信息显示. 图4.10得分规则显示界面图4.10为选择号码3时比赛采用的积分规则的显示.4.4输出文件模块4.4.1输出模块代码void wenjian() /输出到文件fstream s1(输出文件.txt,ios:out);if(!s1)cout打开失败!;s1 学校名字 学校代码 学校名次 学校总分n;for (int i=0;iXN;i+)s1xxi.mingzi xxi.daihao xxi.mingci int(xxi.chengji)n;s1nn 姓名 学校代码 性别 号码 项目1 成绩 名次 项目2 成绩 名次 项目3 成绩 名次 项目4 成绩 名次 总分n;for(i=0;iSN;i+)s1xsi.xingming xsi.xue xsi.xingbie xsi.haoma xsi.xiangmu0 xsi.chengji0 xsi.mingci0 xsi.xiangmu1 xsi.chengji1 xsi.mingci1 xsi.xiangmu2 xsi.chengji2 xsi.mingci2 xsi.xiangmu3 xsi.chengji3 xsi.mingci3 xsi.zongfenn;s1.close();cout输出成功!endl;system(pause); menu();4.4.2输出模块测试 图4.11输出文件4.5显示排名 开始4.5.1排名模块流程图输出提示信息N输入aN是否为3是否为2是否为1NYYY调用运动员排名函数调用学校排名函数 结束图4.12排名模块流程图4.5.2显示排名模块代码void paimingxianshi() /显示排名void xxpm();void ydypm();cout请选择:endl 1 学校排名endl 2 运动员总分排名endl 3 退出endla;switch(a)case 1:xxpm();break;case 2:ydypm();break;case 3:break;system(pause);menu();void xxpm()string dd50;for(int i=0;iXN;i+)ddxxi.mingci-1=xxi.mingzi;for(i=0;iXN;i+)cout第i+1名为setw(6)ddiendl;void ydypm()string dd200,te;int ss200,mp,p,q;for(int i=0;iSN;i+)ddi=xsi.xingming;ssi=xsi.zongfen;for(p=0;pSN;p+)for(q=p+1;qSN-1;q+)if(sspssq)te=ddq;ddq=ddp;ddp=te;mp=ssq;ssq=ssp;ssp=mp;for(i=0;iSN;i+)cout第i+1名为setw(6)ddiendl;4.5.3显示排名模块测试显示排名测试分为学校排名如图4.13,运动员排名如图4.13 图4.13学校排名界面 图4.14运动员排名界面 五、调试错误及解决方法 在调试过程中遇到了各种各样的错误,但总结起来也就是马虎造成的,现列举一二。如在调用函数时出现函数未声明的错误,只要在函数的开头进行声明就行了;还有如“D:测试.cpp(579) : error C2018: unknown character 0xa3”,此类型错误主要是在输入字符时使用的是中文输入,只要改成英文输入就行了;注意“”使用要完整等等。不过在我编写程序时遇到的最大的困难还是在输入文件模块,因为对这个知识点掌握不好,后来经过查阅资料终于弄清楚了。六、参考文献1谭浩强.C+程序设计.清华大学出版社. 20112郑莉.C+程序设计(第三版).清华大学出版社. 20053钱能.C+程序设计教程.清华大学出版社. 20044武俊亮.visual c+课程设计与系统开发案例.清华出版社5黄维通.Visual C+程序设计教程.清华大学出版社. 2005 七、附录源代码#include#include#include#includeusing namespace std;int df100=0;struct xuexiaostring mingzi;/学校名字string daihao;/学校代号int mingci;/学校名次float chengji;/学校成绩xx20;struct xueshengstring xue;/学校string xingming;/姓名int haoma;/运动员号码bool xiangmu4;/项目bool xingbie;/性别float chengji4;/成绩int mingci4;/名次int defen4;/单项得分int zongfen;/总分xs100;int XN;/学校个数int SN;/学生总数void xuexiaoluru();void xueshengluru();void chengjiluru();void chaxun();void xianshi();void wenjian();void paimingxianshi();void paiming(int a,bool b);void menu()/菜单 int w1,n;system(cls);couttt-endltt*welcome to load*endltt-endlttendltt 欢迎使用校运动会计分系统 endltt endltt endltt endltt 1.学校信息录入 endltt 2.学生信息录入 endltt 3.成绩录入 endltt 4.查询 endltt 5.显示数据 endltt 6.输出文件 endltt 7.显示排名 endltt 8.退出 endltt endltt endltt endltt 制作人 endltt endltt endlttendl;docout请输入你想操作的代号(1-8):n;if(n8)w1=1;cout您的输入有误,请重新输入!endl;else w1=0;while(w1=1);switch(n)case 1:xuexiaoluru();case 2:xueshengluru();case 3:chengjiluru();case 4:chaxun();case 5:xianshi();case 6:wenjian();case 7:paimingxianshi();void xuexiaoluru()/学校信息录入coutXN;for(int i=0;iXN;i+)cout请输入第i+1xxi.mingzi;cout请输入第i+1xxi.daihao;xxi.chengji=xxi.mingci=0;cout学校信息为:endlsetw(15)学校名称 学校代号endl;for(i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaoendl;system(pause);menu();void xueshengluru()/学生信息录入coutSN;int k;for(int i=0;iSN;i+)cout请输入第i+1个学生的信息:endlsetw(15)学校名称 学校代号endl;for(int j=0;jXN;j+)coutsetw(15)xxj.mingzi xxj.daihaoendl;coutxsi.xue;coutxsi.xingming;coutxsi.xingbie;for(k=0;k4;k+)xsi.chengjik=xsi.defenk=xsi.mingcik=0;xsi.xiangmuk=0;xsi.haoma=i+1;menu();void xianshi()/显示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;do cout显示所有学校信息输入1endl显示所有学生信息输入2endl显示得分规则输入3endl退出输入4endll;switch(l)case 1:xsxxxx();break;case 2:xsxsxx();break;case 3:xsdfgz();break;while(l4&l1); system(pause);menu();void xsxxxx()cout学校信息为:endlsetw(15)学校名称 学校代号setw(8)学校得分setw(8)学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设置网络安全管理制度
- 设计公司项目管理制度
- 证券事务专员管理制度
- 诊所感染预防管理制度
- 诊所药品录入管理制度
- 试验检测过程管理制度
- 财务结账相关管理制度
- 财政内部控制管理制度
- 货物仓储安全管理制度
- 货运火车进站管理制度
- 关注老年人心理健康守护幸福 从心开始课件
- 安徽省合肥市名校2025届八年级英语第二学期期末统考试题含答案
- 2024年广东省广州市初中生物会考真题(含答案)
- 2025年电气工程基本知识考试试卷及答案
- 2025年河北省中考麒麟卷生物(一)
- 基层医院护理课件
- 劳动护理鞋子的课件
- 2025年新安全知识竞赛培训试题及答案
- 纪法知识测试题及答案
- 科技论文写作 第2版 课件 第1-5章 科技论文写作概述-英文科技论文的写作
- 军事研学训练营行业跨境出海项目商业计划书
评论
0/150
提交评论