运动会管理系统课程设计报告_第1页
运动会管理系统课程设计报告_第2页
运动会管理系统课程设计报告_第3页
运动会管理系统课程设计报告_第4页
运动会管理系统课程设计报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一 课程设计目的 1二 课程设计任务和内容 1三 系统设计方案 23.1 系统详细描述 23.1.1 系统设计背景 23.1.2 系统设计详细信息 23.2 功能模块划分 23.2.1 功能模块描述 23.2.2 输入项 43.2.3 输出项 4四 系统实现与测试 44.1 主菜单实现 54.1.1 流程图 54.1.2 代码 64.1.3 主菜单测试 74.2 查询模块实现 74.2.1 流程图 74.2.2 代码 84.2.3 模块测试 114.3 显示数据模块实现 124.3.1 流程图 124.3.2 代码 134.3.3 模块测试 154.4 文件输出模块 164.4.1 代码

2、164.4.2 模块测试 174.5 显示排名模块 174.5.1 流程图 174.5.2 代码 184.5.3 模块测试 19五 程序调试及错误 19六 参考文献 20七 附录 20、课程设计的目的1)学习综合运用 C 高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的 能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加 深对高级语言基本语言要素和控制结构的理解。2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一 定工作量的程序设计任务,同时强调好的程序设计风格。3)掌握程序设计中的常用算法和 C语言的编程技巧和上机调试程序的方法

3、。4)在参与一系列子项目的实践过程中, 提高如何综合运用所学知识解决实际问题的能力, 以及获得相关项目管理和团队合作等众多方面的具体经验。二、课程设计任务和内容按照如下要求,运用 C+语言,编写一套可用的较为完善的校际运动会管理系统软件(两 人分模块合作) 要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方 便测试暂定为男女分别为 4 项,以项目一,项目二,项目三,项目四代表) 各项目名次取法有以下几种:取前五名:第一名 7 分,第二名 5 分,第三名 3 分,第四名 2 分,第五名 1 分;取前三 名:第一名 5 分,第二名 3 分,第三名 2 分;用户自定义。功

4、能要求:( 1)由程序提醒用户填写比赛接结果,输入各项目参赛运动员运动员信息;( 2)信息录入完毕后由系统为运动员、各个学校进行排名;(3)所有信息记录完毕后,用户可以查询各个学校的比赛成成绩和排名,运动员的比 赛成绩和排名;( 4 )最后还能对比赛信息输出。注:我与网络工程 102001 班黄科荣同学合作,共同完成本次有关于校际运动会管理系统 的程序设计。 我负责完成查询模块、 数据显示模块、 文件输出模块的实现和显示排名模块。三、系统设计方案3.1 系统详细描述3.1.1 系统设计背景随着中国教育改革的不断深入以及大学生的普及,大学里每年都会举办运动会,一方 面是为了鼓励大学生积极参加体育

5、运动,另一方面也是培养国家体育人才。在各个学校之 间的比赛时,需要对运动会的信息进行整理,它涉及到的数据量之大,用单纯的手写记录 已经不能满足用户的需求,利用运动会管理系统及时了解各个环节中信息的变更,有利于 提高管理的效率。 本项目作为C+课程设计课程的训练项目提出,目的是为了提高同 学们系统的开发,则提高大家的实践能力。所以开发一个符合自身运动会实际情况的工作 平台是十分必要的。3.1.2 系统设计详细信息系统使用对象定为由太原科技大学,太原理工大学,山西大学,中北大学联合举办的 校际运动会。系统需要建立两个结构体学校和运动员。学校应该包含学校名,学校代码, 学校总分和学校排名等信息;运动

6、员则要包含姓名,性别,学校,比赛成绩,比赛名次和 比赛成绩等信息。系统就是要实现学校和运动员基本信息的输入和输出,还有查询,最后 再生成报表。3.2 功能模块划分3.2.1 功能模块描述根据题目的要求及系统功能可以将系统分为学校信息录入, 学生信息录入, 成绩录入, 查询,显示数据,输出文件,显示排名七个模块。各个模块基本介绍如下: 学校信息录入模块:输入学校总数,对学校名字,代码,成绩,排名等信息进行初始化。 学生信息录入模块:输入学生总数,对运动员姓名,性别,学校,成绩,排名,得分等信 息进行计算。成绩录入模块:录入运动员比赛成绩由系统对运动员进行排名和积分。查询模块:用户可以选择运动员,

7、学校,项目三种查询方式。显示数据模块:显示学校信息,运动员信息和得分规则。输出文件模块:将文件存储。显示排名模块:显示学校排名和运动员排名。注:我主要负责查询,显示数据,输出文件,显示排名四个模块的相关内容,黄科荣同学负责编写学校 信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。图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学生数量

8、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主菜单模块实现

9、4.1.2 主菜单代码void menu() / 菜单int w1,n;system(cls);coutttendltt*welcome to load*endlttendl“ .ll x X/ / / / / / / / / / / / / / / / / / / / / /endl探e ndl、lltt 欢迎使用校运动会计分系统tttttttt1.学校信息录入 endl endl endl endltt2.学生信息录入 endltt3.成绩录入 endltt4.查询 endltt5.显示数据 endltt6.输出文件 endltt7.显示排名 endltt8.退出 endltttttttt

10、制作人 endl endl endl endltttttt endl endl endl;docout 请输入你想操作的代号( 1-8 ):n;if(n8)w1=1;cout 您的输入有误,请重新输入! f Mi JC E KWiB IcOlie fco _廿*4*3*3*会 动 运 校 用孤烫滋接淤: 8)1- 茨号 淤淤代814.2查询模块实现4.2.1查询流程图12345678入入I自亠自s入Kit名 遭猱娶排 墾绩询一番企 斗忑于蜜豆输显退图4.2主菜单界面开始图4.3查询模块流程图422查询模块代码void chax un() /查询void xscx();void xmcx();v

11、oid xxcx();int a;docout选择查询方式:endl 1 按姓名查询:endl 2 按项目查询:endl 3 按学校查询:endl 4 退出endl a;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(

12、int k=0;k+)if(xsi.xue=xxk.daihao) coutsetw(15)xxk.mingzi; break; cout 性别 ; if(xsi.xingbie) coutsetw(4) 男;else coutsetw(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.

13、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

14、)sb+;coutvv姓名vvxsi.xingming学校l 性别;if(xsi.xingbie)coutsetw(6) 男;elsecoutsetw(6)女;cout号码xsi.haoma;if(sb=O)coutvv没找到该学校的学生endl;4.2.3查询模块测试回i PADubum ,栓际运动会菩坯耒绽gm查询模块测试分为姓名查询如图4.4,项目查询如图4.5,学校查询如图4.6:男:询询询香蚕万名屈乐原 刘7H 号8 - 学- 的续 询继 育_乐键 墨题召红要垂忌 : : ijj UJJJ1图4.4姓名查询界面L 1 | 回当选择数字1时界面如图4.4,输出学生姓名,学校,性别,号码

15、 D:DebuqX*jEr运动会苣建至琉,已xe询询词名12-34nzTRnTTVimFq l-q l-q号号号号男男shhr千 犬大大大 技工北西 科SH-3 R-fe 18 名 gsB mHHHh的12 3 4选名名名 请事姓姓姓图4.5项目查询界面当选择数字2时界面如图4.5,输出参加要查询项目的运动员姓名,学校,性别,号码回-询询询式查杳香一 方名畐 蟲憩击:3息 委玄宀-一rILLL-12 3 411:u1w u u校111W学震 学科理卫鞋AV 4霽名 主$生 D:Debu耳芮际呂言環慕統-鈕亡图4.6学校查询界面当选择数字3时界面如图4.6,输出代表要查询学校参赛的运动员姓名,学

16、校,性别,号码.4.3显示模块查询4.3.1显示模块流程图开始调用显示得分规则函数结束图 4.7 显示模块流程图4.3.2 显示模块代码void xianshi() / 显示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;do输入 1endl输入 2endlcout 显示所有学校信息 显示所有学生信息 显示得分规则 退出输入 3endl 输入 4endll;switch(l)case 1:xsxxxx();break; case 2:xsxsxx();break; case 3:xsdfgz();break;while(l4&l1);s

17、ystem(pause);menu();void xsxxxx()cout 学校信息为: endlsetw(15) 学校名称 学校代号 setw(8) 学校得分 setw(8) 学校排名 endl;for(int i=0;iXN;i+)coutsetw(15)xxi.mingzixxi.daihaosetw(8)xxi.chengjisetw(8)xxi.mingciendl;void xsxsxx()coutsetw(6)v姓名setw(15)vv学校setw(6)性别 vvsetw(12)vv项目 1 成绩setw(12)项目 2 成绩 setw(12)项目 3 成绩setw(12)项目

18、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) 男;else coutsetw(6) 女;for(int x=0;x4;x+)coutsetw(6)xsj.xiangmuxsetw(6)xsj.chengjix;coutendl; coutvsetw(18)vv项目1得分 排名setw(18)vv项目2得分 排名 vvsetw(18)v项目3得分

19、排名setw(18)项目4得分 排名vvsetw(7)vv总分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第vvz+1vv名得dfzvv 分endl; continue;elsecout 其后所有人得分为 0星则IH于规名Jjj- u S12 3 4AAA A成绩0123项目3得分0排名0000AzE351036218图4.9学生信息显示界面图

20、4.9为选择2时所有参赛学生学校,性别,参赛项目,成绩,得分和排名的信息显示1 z 3 4AAAA.a iS:息息 肇则 r于规 Jx頁刃寻 显显希图4.10得分规则显示界面图4.10为选择号码3时比赛采用的积分规则的显示.4.4输出文件模块4.4.1输出模块代码void wenjia n() / 输出到文件fstream s1( 输出文件.txt,ios:out);if(!s1)cout打开失败!;s1学校名字学校代码学校名次学校总分vn:for (int i=0;iXN;i+)s1xxi.m in gzixxi.daihaoxxi.mi ngcii nt(xxi.che ngji)n;s1

21、vnvvnvv 姓名 学校代码 性别 号码 项目1成绩 名次 项目2成绩 名 次项目3成绩 名次 项目4成绩 名次 总分n;for(i=0;iSN;i+)s1xsi.xi ngmi ngxsi.xuexsi.xi ngbiexsi.haomaxsi.xia ngmu0 xsi.che ngji0 xsi.mi ngci0xsi.xiangmu1 xsi.chengji1 xsi.mingci1xsi.xia ngmu2 xsi.che ngji2 xsi.mi ngci2xsi.xia ngmu3 xsi.che ngji3 xsi.mi ngci3 xsi.z ongfenv vn;s1.c

22、lose();cout输出成功! endl;system(pause);menu();442输出模块测试文口(朴斗筛耳昵;:.: fiBv;扯冃,u.212:学段总分I:性号码咸绩敲J.2F湃境目3t吹顼目Q够总分111020O0300031k_?73001QD515191a011SQ:1014111目i)01、|:030S000i21D01菲60&000i200il00207QQ0i35D011Q0g000i蛇j013图4.11输出文件4.5显示排名图 4.12 排名模块流程图4.5.2 显示排名模块代码void paimingxianshi() / 显示排名void xxpm();void

23、 ydypm(); cout 请选择: endl 1学校排名 endl2运动员总分排名 endl3退出 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+)coutvv第i+1名为 vvsetw(6)vddivendl;void ydypm()string dd200,te;int ss200,mp,

24、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学校排名界面|EDebuM校極就会巻理茎综先#绝绐 2 3 1 2 3 4-7 査霑君君耳青3一萝名 排员 校动岀1 蟄于运退

25、 D:De bu屮皎方:至动兰苣遁系诜.exe名 rm 校劫岀 暫于运退一青IFT1 -?7为为为为为为为为琵 ai名名名名尊 v1234 5 6 7 8 请第第第弟第第第第请图4.14运动员排名界面五、调试错误及解决方法在调试过程中遇到了各种各样的错误,但总结起来也就是马虎造成的,现列举一二。 如在调用函数时出现函数未声明的错误, 只要在函数的开头进行声明就行了; 还有如“ 测试.cpp(579) : error C2018: unknown character 0xa3”,此类型错误主要是在输入字符时使用的是中文输入,只要改成英文输入就行了;注意“ ”使用要完整等等。不过 在我编写程序时遇

26、到的最大的困难还是在输入文件模块,因为对这个知识点掌握不好,后 来经过查阅资料终于弄清楚了。六、参考文献1 谭浩强.C+程序设计.清华大学出版社 20112 郑莉.C+程序设计(第三版)清华大学出版社 20053 钱能.C+程序设计教程.清华大学出版社.20044 武俊亮.visual c+课程设计与系统开发案例.清华出版社 黄维通.Visual C+程序设计教程.清华大学出版社.2005七、附录源代码 #include #include #include #include using namespace std; int df100=0;struct xuexiao/ 学校名字 / 学校代号

27、 / 学校名次 / 学校成绩string 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 xueshengl

28、uru();void chengjiluru();void chaxun();void xianshi();void wenjian();void paimingxianshi();void paiming(int a,bool b);void menu() / 菜单int w1,n;coutttendltt*welcome to load*endlttendlsystem(cls);ttendltt欢迎使用校运动会计分系统探endltt endltt endltt endltt 1.学校信息录入 endltt 2.学生信息录入 endltt 3.成绩录入 endltt 4.查询 endltt

29、 5.显示数据 endltt 6.输出文件 endltt 7.显示排名 endltt 8.退出 endltt endltt endlttendltt tt 制作人tt tt tt 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();cas

30、e 7:paimingxianshi();void xuexiaoluru() / 学校信息录入coutXN;for(int i=0;iXN;i+)cout 请输入第 i+1xxi.mingzi;cout 请输入第 i+1xxi.daihao;xxi.chengji=xxi.mingci=0;孤endl endl endl endlendl;学校代号 endl;cout 学校信息为: endlsetw(15) 学校名称 for(i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaoendl; system(pause);menu();void xuesheng

31、luru() / 学生信息录入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

32、() / 显示所有信息 void xsxxxx();void xsxsxx();void xsdfgz(); int l;do输入 1endl输入 2endl输入 3endl输入 4endlcout 显示所有学校信息 显示所有学生信息 显示得分规则 退出l;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) 学校得分 s

33、etw(8) 学校排名 endl;for(int i=0;iXN;i+)coutsetw(15)xxi.mingzixxi.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.

34、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)xs

35、j.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;void jisuangeren() /计算个人总分for(int i=0;iSN;i+) xsi.zongfen=xsi.defen0+xsi.defen1+xsi.defen2+xsi.defen3;void jisuanxuexiao() /计算学校总分 并排名for(int i=0;i

36、SN;i+)for(int k=0;k+)if(xsi.xue=xxk.daihao)xxk.chengji+=xsi.zongfen;break;xuexiao *dd50,*temp;int k=0,p,q; for(i=0;iXN;i+) ddk+=&xxi;for(p=0;pk;p+)for(q=p+1;qchengjichengji)temp=ddp; ddp=ddq; ddq=temp; for(i=0;imingci=i+1;void chengjiluru() / 成绩录入bool a;int b,i,k100,t=0,s=0;cout 男女各有四个项目 :endl 男子 项目

37、 1 项目 2 项目 3 项目 4endl 女子 项目 1 项目 2 项目 3 项目 4endl; couta;if(a) coutb;cout 该项目未录入的有: ;for(i=0;iSN;i+) if(xsi.xingbie) if(xsi.xiangmub-1)Jelse coutxsi.haoma 号 ;0 结束coutendl 请输入要录入的号码: 格式 23 33 0 最后一个以kt;t+; while(kt-1!=0);for(s=0;st-1;s+)xsks-1.xiangmub-1=1;cout 请输入 ksxsks-1.chengjib-1;elsecoutb;cout 该

38、项目未录入的有: ;for(i=0;iSN;i+)if(!xsi.xingbie)if(xsi.xiangmub-1)Jelsecoutxsi.haoma 号 ;0 结束coutendl 请输入要录入的号码: 格式 23 33 0 最后一个以 kt;t+; while(kt-1!=0);for(s=0;st-1;s+)xsks-1.xiangmub-1=1;cout 请输入 ksxsks-1.chengjib-1;paiming(b,a);jisuangeren();jisuanxuexiao();menu();void defenguize() /得分规则cout 请输入前十名的得分规则 endl;for(int i=0;i10;i+)cout 请输入第 i+1dfi;cout 建立的得分规则为 endl;分e ndl;for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论