运动会管理系统课程设计报告.docx
- 文档编号:25748807
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:35
- 大小:123.55KB
运动会管理系统课程设计报告.docx
《运动会管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《运动会管理系统课程设计报告.docx(35页珍藏版)》请在冰豆网上搜索。
运动会管理系统课程设计报告
一课程设计目的.....................................1
二课程设计任务和内容..............................1
三系统设计方案....................................2
系统详细描述..................................2
功能模块划分..................................2
四系统实现与测试...................................4
主菜单实现....................................5
查询模块实现..................................7
显示数据模块实现..............................12
文件输出模块..................................16
显示排名模块..................................17
五程序调试及错误....................................19
六参考文献..........................................20
七附录..............................................20
一、课程设计的目的
1)学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3)掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。
4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。
二、课程设计任务和内容
按照如下要求,运用C++语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)
要求:
初始化输入:
学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为4项,以项目一,项目二,项目三,项目四代表)
各项目名次取法有以下几种:
取前五名:
第一名7分,第二名5分,第三名3分,第四名2分,第五名1分;取前三名:
第一名5分,第二名3分,第三名2分;用户自定义。
功能要求:
(1)由程序提醒用户填写比赛接结果,输入各项目参赛运动员运动员信息;
(2)信息录入完毕后由系统为运动员、各个学校进行排名;
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成成绩和排名,运动员的比赛成绩和排名;
(4)最后还能对比赛信息输出。
注:
我与网络工程102001班黄科荣同学合作,共同完成本次有关于校际运动会管理系统的程序设计。
我负责完成查询模块、数据显示模块、文件输出模块的实现和显示排名模块。
三、系统设计方案
系统详细描述
随着中国教育改革的不断深入以及大学生的普及,大学里每年都会举办运动会,一方面是为了鼓励大学生积极参加体育运动,另一方面也是培养国家体育人才。
在各个学校之间的比赛时,需要对运动会的信息进行整理,它涉及到的数据量之大,用单纯的手写记录已经不能满足用户的需求,利用运动会管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。
本项目作为《c++课程设计》课程的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。
所以开发一个符合自身运动会实际情况的工作平台是十分必要的。
系统使用对象定为由太原科技大学,太原理工大学,山西大学,中北大学联合举办的校际运动会。
系统需要建立两个结构体学校和运动员。
学校应该包含学校名,学校代码,学校总分和学校排名等信息;运动员则要包含姓名,性别,学校,比赛成绩,比赛名次和比赛成绩等信息。
系统就是要实现学校和运动员基本信息的输入和输出,还有查询,最后再生成报表。
功能模块划分
根据题目的要求及系统功能可以将系统分为学校信息录入,学生信息录入,成绩录入,查询,显示数据,输出文件,显示排名七个模块。
各个模块基本介绍如下:
学校信息录入模块:
输入学校总数,对学校名字,代码,成绩,排名等信息进行初始化。
学生信息录入模块:
输入学生总数,对运动员姓名,性别,学校,成绩,排名,得分等信息进行计算。
成绩录入模块:
录入运动员比赛成绩由系统对运动员进行排名和积分。
查询模块:
用户可以选择运动员,学校,项目三种查询方式。
显示数据模块:
显示学校信息,运动员信息和得分规则。
输出文件模块:
将文件存储。
显示排名模块:
显示学校排名和运动员排名。
注:
我主要负责查询,显示数据,输出文件,显示排名四个模块的相关内容,黄科荣同学负责编写学校信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。
图校际运动会管理系统功能模块图
以下输入项均为键盘输入:
得分规则选择inta(1、2、3)
选择主菜单选项intn(1、2、3、4、5、6、7、8)
学校个数intXN
学校校名stringmingzi
学校代号stringdaihao
学生数量intSN
学生姓名stringxingming
学生性别boolxingbie
参赛项目boolxiangmu[4]
成绩floatchengji
选择查询方式inta(1、2、3、4)
选择显示的信息intl(1、2、3、4)
选择现实的排名inta(1、2、3)
学校名次intmingci[4];
学校校名stringmingzi
学生姓名stringxingming
学生性别boolxingbie
参赛项目boolxiangmu[4]
成绩floatchengji
单项得分intdefen[4]
总分intzongfen
四、系统实现与测试
主菜单模块实现
图
N
NNN
Y
YYYN
N
N
Y
YY
N
主菜单流程图
voidmenu()校信息录入※"< <<"\t\t※2.学生信息录入※"< <<"\t\t※3.成绩录入※"< <<"\t\t※4.查询※"< <<"\t\t※5.显示数据※"< <<"\t\t※6.输出文件※"< <<"\t\t※7.显示排名※"< <<"\t\t※8.退出※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※制作人※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"< do { cout<<"请输入你想操作的代号(1-8): "< cin>>n; if(n<1||n>8) { w1=1; cout<<"您的输入有误,请重新输入! "< } elsew1=0; }while(w1==1); switch(n) { case1: xuexiaoluru(); case2: xueshengluru(); case3: chengjiluru(); case4: chaxun(); case5: xianshi(); case6: wenjian(); case7: paimingxianshi(); } } 主菜单运行结果如图 图主菜单界面 查询模块实现 N Y N Y 图查询模块流程图 voidchaxun()ingming==x) { sb++; cout<<"姓名"< for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout< break; } cout<<"性别"; if(xs[i].xingbie) cout< else cout< cout<<"号码"< } } if(sb==0) { cout<<"没找到该名字的学生"< } } voidxmcx() {inti,sb=0; intj; cout<<"请输入要查询的项目名: "; cin>>j; for(i=0;i { if(xs[i].xiangmu[j-1]) { sb++; cout<<"姓名"< for(intk=0;;k++) if(xs[i].xue==xx[k].daihao) { cout< break; } cout<<"性别"; if(xs[i].xingbie) cout< else cout< cout<<"号码"< } } if(sb==0) { cout<<"未找该项目的学生"< } } voidxxcx() {inti,sb=0; cout<<"学校信息为: "< for(i=0;i cout< stringl; cout<<"请输入要查询的学校代号: "; cin>>l; for(i=0;i { if(xs[i].xue==l) { sb++; cout<<"姓名"< if(xs[i].xingbie) cout< else cout< cout<<"号码"< } } if(sb==0) { cout<<"没找到该学校的学生"< } } 查询模块测试分为姓名查询如图,项目查询如图,学校查询如图: 图姓名查询界面 当选择数字1时界面如图,输出学生姓名,学校,性别,号码. 图项目查询界面 当选择数字2时界面如图,输出参加要查询项目的运动员姓名,学校,性别,号码. 图学校查询界面 当选择数字3时界面如图,输出代表要查询学校参赛的运动员姓名,学校,性别,号码. 显示模块查询 Y 图显示模块流程图 voidxianshi()ingzi<<""< } voidxsxsxx() { cout< < < for(intj=0;j { cout< for(intk=0;;k++) if(xs[j].xue==xx[k].daihao) { cout< break; } if(xs[j].xingbie) cout< else cout< for(intx=0;x<4;x++) cout< cout< } cout< < for(j=0;j { for(intx=0;x<4;x++) cout< cout< } } voidxsdfgz() { for(intz=0;;z++) { if(df[z]! =0) { cout<<"第"< continue; } else { cout<<"其后所有人得分为0"< break; } } } 显示模块测试分为学校显示如图,所有学生显示如图和得分显示如图 图学校信息显示界面 图选择1时参赛学校的名称,代号,得分和排名的显示. 图学生信息显示界面 图为选择2时所有参赛学生学校,性别,参赛项目,成绩,得分和排名的信息显示. 图得分规则显示界面 图为选择号码3时比赛采用的积分规则的显示. 输出文件模块 voidwenjian()xt",ios: : out); if(! s1) cout<<"打开失败! "; s1<<"学校名字学校代码学校名次学校总分"<<'\n'; for(inti=0;i { s1< } s1<<'\n'<<'\n'<<"姓名学校代码性别号码项目1成绩名次项目2成绩名次项目3成绩名次项目4成绩名次总分"<<'\n'; for(i=0;i { s1< < < < < < } (); cout<<"输出成功! "< system("pause"); menu(); } 图输出文件 显示排名 图排名模块流程图 voidpaimingxianshi()ingci-1]=xx[i].mingzi; for(i=0;i cout<<"第"< } voidydypm() { stringdd[200],te; intss[200],mp,p,q; for(inti=0;i { dd[i]=xs[i].xingming; ss[i]=xs[i].zongfen; } for(p=0;p { for(q=p+1;q { if(ss[p] { te=dd[q]; dd[q]=dd[p]; dd[p]=te; mp=ss[q]; ss[q]=ss[p]; ss[p]=mp; } } } for(i=0;i cout<<"第"< } 显示排名测试分为学校排名如图,运动员排名如图 图学校排名界面 图运动员排名界面 五、调试错误及解决方法 在调试过程中遇到了各种各样的错误,但总结起来也就是马虎造成的,现列举一二。 如在调用函数时出现函数未声明的错误,只要在函数的开头进行声明就行了;还有如“D: \测试.cpp(579): errorC2018: unknowncharacter'0xa3'”,此类型错误主要是在输入字符时使用的是中文输入,只要改成英文输入就行了;注意“{}”使用要完整等等。 不过在我编写程序时遇到的最大的困难还是在输入文件模块,因为对这个知识点掌握不好,后来经过查阅资料终于弄清楚了。 六、参考文献 [1]谭浩强.C++程序设计.清华大学出版社.2011 [2]郑莉.C++程序设计(第三版).清华大学出版社.2005 [3]钱能.C++程序设计教程.清华大学出版社.2004 [4]武俊亮.visualc++课程设计与系统开发案例.清华出版社 [5]黄维通.VisualC++程序设计教程.清华大学出版社.2005 七、附录 源代码 #include #include #include #include usingnamespacestd; intdf[100]={0}; structxuexiao { stringmingzi;校信息录入※"< <<"\t\t※2.学生信息录入※"< <<"\t\t※3.成绩录入※"< <<"\t\t※4.查询※"< <<"\t\t※5.显示数据※"< <<"\t\t※6.输出文件※"< <<"\t\t※7.显示排名※"< <<"\t\t※8.退出※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※制作人※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"< do { cout<<"请输入你想操作的代号(1-8): "< cin>>n; if(n<1||n>8) { w1=1; cout<<"您的输入有误,请重新输入! "< } elsew1=0; }while(w1==1); switch(n) { case1: xuexiaoluru(); case2: xueshengluru(); case3: chengjiluru(); case4: chaxun(); case5: xianshi(); case6: wenjian(); case7: paimingxianshi(); } } voidxuexiaoluru()ingzi; cout<<"请输入第"< "; cin>>xx[i].daihao; xx[i].chengji=xx[i].mingci=0; } cout<<"学校信息为: "< for(i=0;i cout< system("pause"); menu(); } voidxueshengluru()ingzi<<""< cout<<"请输入学生所在学校的代码: "; cin>>xs[i].xue; cout<<"请输入学生的姓名: "; cin>>xs[i].xingming; cout<<"请输入学生的性别(男输入1/女输入0): "; cin>>xs[i].xingbie; for(k=0;k<4;k++) { xs[i].chengji[k]=xs[i].defen[k]=xs[i].mingci[k]=0; xs[i].xiangmu[k]=0; } xs[i].haoma=i+1; } menu(); } voidxianshi()ingzi<<""<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 管理 系统 课程设计 报告