1、C+语言课程设计报告书运动会管理系统 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 运动会管理系统 姓 名学 号: 专业班级: 系 (院): 设计时间: 设计地点:计算机工程学院机房、教室、学生宿舍、图书馆 指导教师评语: 签名: 年 月 日1课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完C+程序设计课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C+课程的基本知识的理解和掌握;(2)掌握C+编程和程序调试的基本技能;(3)利用C+进行简单软件设计的基本思路和方法;(4)提高运用C+解决实际问题的能力;(5)掌握书写程
2、序设计说明文档的能力。本次课程设计利用C+程序设计课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,使学生能够独立完成所布置的任务。2课程设计任务与要求:要求:1) 设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括模块说明、模块结构图和系统流程图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 源程序代码及设计成果:完整源程序清单和设计成果;5)总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程
3、中的学习体会与收获、对C+和本次课程设计的认识等内容.;任务:设计一个运动会管理系统,用于管理比赛时体操、跳水、滑冰等赛事裁判员对赛事的评分。假设只有这3场比赛event,每场有5个裁判评分。要求如下:1)能够提供一个程序界面对运动员的基本资料进行输入、删除、修改和查询等,基本资料应保存在文件中。2)能够输入、修改、查询某项比赛event的比赛时间,3项比赛的资料保存在文件中。3)比赛项目分男子组和女子组,每个运动员的总分计算规则是:去掉最高分、去掉最低分求平均值。4) 提供界面让工作人员输入每场比赛的所有运动员的每个裁判的分数,能查询某场比赛所有运动员的最后得分5)评分的资料保存在score
4、.txt中,包含的数据项有:所属的学校、运动员编号、得分1、得分2、得分3、得分4、得分5、总分、平均分。3课程设计说明书概要设计一、模块说明为了能够在运动会中更好地管理运动会中参加比赛的学生们的各项情况,同时,便于数据的统计和查找,我设计了一个运动会信息管理系统。在本次程序设计中我设计了十二个模块,分为五个大模块,分别是运动员基本资料管理模块、比赛event数据管理模块、运动员分数输入模块、运动员分数查询模块、数据保存模块,其中运动员基本资料管理模块又分为运动员基本资料输入、运动员基本资料修改、运动员基本资料删除、运动员基本资料查询四个小模块,比赛event数据管理模块又分为比赛event数
5、据输入、比赛event数据修改、比赛event数据查询三个小模块。二、模块结构图三、系统流程图详细设计 各功能模块设计思路及流程图:1、运动员基本资料管理模块用于管理运动员资料的添加、修改、删除、查询等功能,分别通过4个函数来实现这个功能。2、比赛event数据管理模块用于比赛event资料的输入、修改、查询等功能,分别通过3个函数来实现这个功能。运动员成绩输入通过for循环进行输入。4课程设计成果程序源代码#include #include #include #include using namespace std;void kaishi()/开始界面 cout*学校运动会管理系统*endl
6、; cout运动员基本资料数据管理 请按:1endl; cout比赛event数据管理 请按:2endl; cout运动员得分数据输入 请按:3endl; cout运动员最终成绩查询 请按:4endl; cout运动员成绩资料保存 请按:5endl; cout退出程序 请按:6endl; cout*endl; coutendl; cout请选择:endl;class infoplayer/定义运动员数据的一个类public: int number; char eve20; char xuex20;infoplayer a5;int i=0;void input1()/运动员数据输入函数 ifs
7、tream outfile1(player.txt); fstream iofile(player.txt,ios:in|ios:out|ios:binary); if(!iofile) cerr打开文件player.txt错误endl; exit(1); for(i=0;i5;i+) cout请分别输入运动员的编号 参加的赛事及学校ai.numberai.eveai.xuex; iofile.write(char *)&ai,sizeof(ai); cout-输入成功-endl;void xiugai1()/运动员数据修改函数 cout现在对运动员基本资料数据进行修改endl; ifstre
8、am outfile1(player.txt); fstream iofile(player.txt,ios:in|ios:out|ios:binary); if(!iofile) cerr打开文件player.txt错误endl; exit(1); int d; char panduan; do coutd; iofile.seekp(d-1)*sizeof(a0)+1,ios:beg); coutad-1.eve; coutad-1.xuex; iofile.write(char *)&ad-1,sizeof(ad-1); cout修改成功endl; coutpanduan; while(
9、panduan=y|panduan=Y);void chaxun1()/运动员数据查询函数 cout运动员基本资料数据情况查询,结果为:endl; cout运动员编号 参加的比赛 所在学校endl; for(i=0;i5;i+) cout(i+1) setw(14)setiosflags(ios:left) ai.evesetw(8)setiosflags(ios:left)ai.xuex; coutendl; coutendl;void shanchu1()/运动员数据删除函数 ifstream outfile1(player.txt); fstream iofile(player.txt,
10、ios:in|ios:out|ios:binary); int c; coutc; ac-1.number=NULL;strcpy(ac-1.eve, );strcpy(ac-1.xuex, ); iofile.seekp(c-1)*sizeof(a0),ios:beg); iofile.write(char *)&ac-1,sizeof(ac-1); cout-删除成功-endl; coutpanduan; while(panduan=y|panduan=Y);void player()/运动员数据管理函数 ofstream file1(player.txt,ios:app); cout*运
11、动员基本资料数据管理*endl; cout运动员基本资料数据输入 请按:1endl; cout运动员基本资料数据修改 请按:2endl; cout运动员基本资料数据删除 请按:3endl; cout运动员基本资料数据查询 请按:4endl; cout退出管理 请按:5endl; cout*endl; coutendl; cout请选择:j; switch(j) case 1:input1();break; case 2:xiugai1();break; case 3:shanchu1();break; case 4:chaxun1();break; default:coutendl;break
12、; ;class even/定义赛事时间的类public: int month; int day;even b3;void input2()/输入赛事时间的函数 ifstream outfile1(event.txt); fstream iofile(event.txt,ios:in|ios:out|ios:binary); if(!iofile) cerr打开文件event.txt错误endl; exit(1); for(i=0;i3;i+) cout请分别输入赛事的比赛时间,顺序为体操、跳水、滑冰。例如2月3日输入2 3bi.monthbi.day; iofile.write(char *
13、)&bi,sizeof(bi); cout-输入成功-endl;void xiugai2()/修改赛事时间的函数 cout现在对比赛event数据进行修改endl; ifstream outfile1(event.txt); fstream iofile(event.txt,ios:in|ios:out|ios:binary); if(!iofile) cerr打开文件event.txt错误endl; exit(1); int d; char panduan; do coutd; iofile.seekp(d-1)*sizeof(b0),ios:beg); cout请输入新的比赛时间:bd-1
14、.monthbd-1.day; iofile.write(char *)&bd-1,sizeof(bd-1); cout修改成功endl; coutpanduan; while(panduan=y|panduan=Y);void chaxun2()/查询赛事时间的函数 cout比赛event的比赛时间为:endl; cout体操比赛的时间为b0.month月b0.day日endl; cout跳水比赛的时间为b1.month月b1.day日endl; cout滑冰比赛的时间为b2.month月b2.day日endl; coutendl;void event()/赛事管理函数 ofstream f
15、ile1(event.txt,ios:app); cout*比赛event数据管理*endl; cout比赛event数据输入 请按:1endl; cout比赛event数据修改 请按:2endl; cout比赛event数据查询 请按:3endl; cout退出管理 请按:4endl; cout*endl; coutk; switch(k) case 1:input2();break; case 2:xiugai2();break; case 3:chaxun2();break; default:coutendl;break; ;class score/定义运动员分数的类public: fl
16、oat sco5; float sum; float aver;score c5;void inputscore()/成绩输入函数 for(i=0;i5;i+) cout请输入5名评委给(i+1)号运动员的打的分数ci.sco0ci.sco1ci.sco2ci.sco3ci.sco4; cout-输入成功-endl;void inquiry()/成绩查询函数 int x,j; float temp; for(x=0;x5;x+) for(j=0;j5;j+) for(i=0;icx.scoi+1) temp=cx.scoi;cx.scoi=cx.scoi+1;cx.scoi+1=temp; c
17、x.aver=(cx.sco1+cx.sco2+cx.sco3)/3; cx.sum=cx.sco1+cx.sco2+cx.sco3+cx.sco4+cx.sco5; cout运动员的最终得分为:endl; cout运动员编号 得分1 得分2 得分3 得分4 得分5 最终得分endl; for(i=0;i5;i+) coutsetw(12)setiosflags(ios:left)(1+i) setw(6)setiosflags(ios:left)ci.sco0 setw(6)setiosflags(ios:left)ci.sco1 setw(6)setiosflags(ios:left)ci
18、.sco2 setw(6)setiosflags(ios:left)ci.sco3 setw(6)setiosflags(ios:left)ci.sco4 setw(6)setiosflags(ios:left)ci.averendl; void baocun()/数据保存 ifstream outfile1(score.txt); ofstream file1(score.txt,ios:app); fstream iofile(score.txt,ios:in|ios:out|ios:binary); if(!iofile) cerr打开文件score.txt错误endl; exit(1)
19、; for(i=0;i5;i+) iofile.write(char *)&ai,sizeof(ai); iofile.write(char *)&bi,sizeof(bi); iofile.write(char *)&ci,sizeof(ci); cout-保存成功-i; switch(i) case 1:player();break; case 2:event();break; case 3:inputscore();break; case 4:inquiry();break; case 5:baocun();break; case 6:cout谢谢使用,请关闭endl;exit(0);b
20、reak; default:break; while(6);return 0;运行截图程序主界面运动员数据管理界面运动员数据输入运动员数据修改运动员数据删除运动员数据的查询比赛数据管理系统及数据的输入比赛数据的修改比赛数据的查询运动员分数数据的输入运动员成绩的查询文件的保存程序的退出5.课程设计心得学了一年的C+,但在课程设计的时候然我们写出了一个较长的程序时,一开始看到题目,一种无从下手的感觉,一种什么都不会的感觉,一种在这一年里自己什么都没学会样子。但同学们跟我不一样,他们学的挺多。但和同学们交流了以后,我也觉得自己还有可能会做出这个程序,于是开始做课程设计了!虽然遇到来很多困难,但是最终还是完成了课程设计,通过这次设计我掌握了C+的编译,调试运行,以后,我会更加的努力的学习编程!6.附录参考资料谭浩强.C+程序设计 清华大学出版社 2010年10月
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2