运动会管理系统课程设计报告.docx
- 文档编号:7847990
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:40
- 大小:126.62KB
运动会管理系统课程设计报告.docx
《运动会管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《运动会管理系统课程设计报告.docx(40页珍藏版)》请在冰豆网上搜索。
运动会管理系统课程设计报告
一课程设计目的.....................................1
二课程设计任务和内容..............................1
三系统设计方案....................................2
3.1系统详细描述..................................2
3.2功能模块划分..................................2
四系统实现与测试...................................4
4.1主菜单实现....................................5
4.2查询模块实现..................................7
4.3显示数据模块实现..............................12
4.4文件输出模块..................................16
4.5显示排名模块..................................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班黄科荣同学合作,共同完成本次有关于校际运动会管理系统的程序设计。
我负责完成查询模块、数据显示模块、文件输出模块的实现和显示排名模块。
三、系统设计方案
3.1系统详细描述
随着中国教育改革的不断深入以及大学生的普及,大学里每年都会举办运动会,一方面是为了鼓励大学生积极参加体育运动,另一方面也是培养国家体育人才。
在各个学校之间的比赛时,需要对运动会的信息进行整理,它涉及到的数据量之大,用单纯的手写记录已经不能满足用户的需求,利用运动会管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。
本项目作为《c++课程设计》课程的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。
所以开发一个符合自身运动会实际情况的工作平台是十分必要的。
系统使用对象定为由太原科技大学,太原理工大学,山西大学,中北大学联合举办的校际运动会。
系统需要建立两个结构体学校和运动员。
学校应该包含学校名,学校代码,学校总分和学校排名等信息;运动员则要包含姓名,性别,学校,比赛成绩,比赛名次和比赛成绩等信息。
系统就是要实现学校和运动员基本信息的输入和输出,还有查询,最后再生成报表。
3.2功能模块划分
根据题目的要求及系统功能可以将系统分为学校信息录入,学生信息录入,成绩录入,查询,显示数据,输出文件,显示排名七个模块。
各个模块基本介绍如下:
学校信息录入模块:
输入学校总数,对学校名字,代码,成绩,排名等信息进行初始化。
学生信息录入模块:
输入学生总数,对运动员姓名,性别,学校,成绩,排名,得分等信息进行计算。
成绩录入模块:
录入运动员比赛成绩由系统对运动员进行排名和积分。
查询模块:
用户可以选择运动员,学校,项目三种查询方式。
显示数据模块:
显示学校信息,运动员信息和得分规则。
输出文件模块:
将文件存储。
显示排名模块:
显示学校排名和运动员排名。
注:
我主要负责查询,显示数据,输出文件,显示排名四个模块的相关内容,黄科荣同学负责编写学校信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。
校际运动会管理系统
图3.1校际运动会管理系统功能模块图
以下输入项均为键盘输入:
得分规则选择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
四、系统实现与测试
4.1主菜单模块实现
图
N
NNN
Y
YYYN
N
N
Y
YY
N
4.1主菜单流程图
voidmenu()//菜单
{
intw1,n;
system("cls");
cout<<"\t\t--------------------------------------------"< <<"\t\t*************welcometoload****************"< <<"\t\t--------------------------------------------"< <<"\t\t※※※※※※※※※※※※※※※※※※※※※※"< <<"\t\t※欢迎使用校运动会计分系统※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※※"< <<"\t\t※1.学校信息录入※"< <<"\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(); } } 主菜单运行结果如图4.2 图4.2主菜单界面 4.2查询模块实现 N Y N Y 图4.3查询模块流程图 voidchaxun()//查询 {voidxscx(); voidxmcx(); voidxxcx(); inta; do { cout<<"选择查询方式: "< <<"1按姓名查询: "< <<"2按项目查询: "< <<"3按学校查询: "< <<"4退出"< <<"请选择: "; cin>>a; switch(a) { case1: xscx();break; case2: xmcx();break; case3: xxcx();break; case4: break; } }while(a<1&&a>4); system("pause"); menu(); } voidxscx() {inti,sb=0; stringx; cout<<"请输入要查询的名字: "; cin>>x; for(i=0;i { if(xs[i].xingming==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<<"没找到该学校的学生"< } } 查询模块测试分为姓名查询如图4.4,项目查询如图4.5,学校查询如图4.6: 图4.4姓名查询界面 当选择数字1时界面如图4.4,输出学生姓名,学校,性别,号码. 图4.5项目查询界面 当选择数字2时界面如图4.5,输出参加要查询项目的运动员姓名,学校,性别,号码. 图4.6学校查询界面 当选择数字3时界面如图4.6,输出代表要查询学校参赛的运动员姓名,学校,性别,号码. 4.3显示模块查询 Y 图4.7显示模块流程图 voidxianshi()//显示所有信息 {voidxsxxxx(); voidxsxsxx(); voidxsdfgz(); intl; do { cout<<"显示所有学校信息输入1"< <<"显示所有学生信息输入2"< <<"显示得分规则输入3"< <<"退出输入4"< <<"请选择: "; cin>>l; switch(l){ case1: xsxxxx();break; case2: xsxsxx();break; case3: xsdfgz();break; } }while(l>4&&l<1); system("pause"); menu(); } voidxsxxxx() { cout<<"学校信息为: "< for(inti=0;i cout< } 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; } } } 显示模块测试分为学校显示如图4.8,所有学生显示如图4.9和得分显示如图4.10 图4.8学校信息显示界面 图4.8选择1时参赛学校的名称,代号,得分和排名的显示. 图4.9学生信息显示界面 图4.9为选择2时所有参赛学生学校,性别,参赛项目,成绩,得分和排名的信息显示. 图4.10得分规则显示界面 图4.10为选择号码3时比赛采用的积分规则的显示. 4.4输出文件模块 voidwenjian()//输出到文件 { fstreams1("输出文件.txt",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< < < < < < } s1.close(); cout<<"输出成功! "< system("pause"); menu(); } 图4.11输出文件 4.5显示排名 图4.12排名模块流程图 voidpaimingxianshi()//显示排名 {voidxxpm(); voidydypm(); cout<<"请选择: "< <<"1学校排名"< <<"2运动员总分排名"< <<"3退出"< <<"请选择: "; inta; cin>>a; switch(a) { case1: xxpm();break; case2: ydypm();break; case3: break;} system("pause"); menu();} voidxxpm() { stringdd[50]; for(inti=0;i dd[xx[i].mingci-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<<"第"< } 显示排名测试分为学校排名如图4.13,运动员排名如图4.13 图4.13学校排名界面 图4.14运动员排名界面 五、调试错误及解决方法 在调试过程中遇到了各种各样的错误,但总结起来也就是马虎造成的,现列举一二。 如在调用函数时出现函数未声明的错误,只要在函数的开头进行声明就行了;还有如“D: \测试.cpp(579): errorC2018: unknowncharacter'0xa3'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 管理 系统 课程设计 报告