运动会管理系统课程设计报告_第1页
运动会管理系统课程设计报告_第2页
运动会管理系统课程设计报告_第3页
运动会管理系统课程设计报告_第4页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

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 显示数据模块实现 .12流程图12代码13模块测试154.4 文件输出模块16代码16模块测试174.5 显示排名模块17流程图17代

2、码18模块测试19五 程序调试及错误19六 参考文献20七 附录202一、课程设计的目的1) 学习综合运用 C 高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3) 掌握程序设计中的常用算法和 C语言的编程技巧和上机调试程序的方法。4) 在参与一系列子项目的实践过程中, 提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队

3、合作等众多方面的具体经验。二、课程设计任务和内容按照如下要求,运用 C+语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为 4 项,以项目一,项目二,项目三,项目四代表)各项目名次取法有以下几种:取前五名:第一名 7 分,第二名 5 分,第三名 3 分,第四名 2 分,第五名 1 分;取前三名:第一名 5 分,第二名 3 分,第三名 2 分;用户自定义。功能要求:(1)由程序提醒用户填写比赛接结果,输入各项目参赛运动员运动员信息;(2)信息录入完毕后由系统为运动员、各个学校进

4、行排名;(3)所有信息记录完毕后,用户可以查询各个学校的比赛成成绩和排名,运动员的比赛成绩和排名;(4)最后还能对比赛信息输出。注:我与网络工程 102001 班黄科荣同学合作,共同完成本次有关于校际运动会管理系统的程序设计。 我负责完成查询模块、 数据显示模块、 文件输出模块的实现和显示排名模块。3三、系统设计方案3.1 系统详细描述系统设计背景随着中国教育改革的不断深入以及大学生的普及,大学里每年都会举办运动会,一方面是为了鼓励大学生积极参加体育运动,另一方面也是培养国家体育人才。在各个学校之间的比赛时,需要对运动会的信息进行整理,它涉及到的数据量之大,用单纯的手写记录已经不能满足用户的需

5、求,利用运动会管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。 本项目作为 c+课程设计课程的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。所以开发一个符合自身运动会实际情况的工作平台是十分必要的。系统设计详细信息系统使用对象定为由太原科技大学,太原理工大学,山西大学,中北大学联合举办的校际运动会。系统需要建立两个结构体学校和运动员。学校应该包含学校名,学校代码,学校总分和学校排名等信息;运动员则要包含姓名,性别,学校,比赛成绩,比赛名次和比赛成绩等信息。系统就是要实现学校和运动员基本信息的输入和输出,还有查询,最后再生成报表。3.2 功能模块划分功能模块描述

6、根据题目的要求及系统功能可以将系统分为学校信息录入,学生信息录入, 成绩录入,查询,显示数据,输出文件,显示排名七个模块。各个模块基本介绍如下:学校信息录入模块:输入学校总数,对学校名字,代码,成绩,排名等信息进行初始化。学生信息录入模块:输入学生总数,对运动员姓名,性别,学校,成绩,排名,得分等信息进行计算。4成绩录入模块:录入运动员比赛成绩由系统对运动员进行排名和积分。查询模块:用户可以选择运动员,学校,项目三种查询方式。显示数据模块:显示学校信息,运动员信息和得分规则。输出文件模块:将文件存储。显示排名模块:显示学校排名和运动员排名。注:我主要负责查询,显示数据,输出文件,显示排名四个模

7、块的相关内容,黄科荣同学负责编写学校信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。校际运动会管理系统学学运校生动信显输显信信员息示出示息息成查数文排录录绩询据件名入入录入学项学学运得学运生目校校动分校动查查查信员规排员询询询息信则名排息名图 3.1 校际运动会管理系统功能模块图5输入输以下输入项均为键盘输入:得分规则选择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学生性别bo

8、ol xingbie参赛项目bool xiangmu4成绩float chengji选择查询方式int a(1、2、3、4)选择显示的信息int l(1、2、3、4)选择现实的排名int a(1、2、3)输出项学校名次int mingci4;学校校名string mingzi学生姓名string xingming学生性别bool xingbie参赛项目bool xiangmu4成绩float chengji单项得分int defen4总分int zongfen四、系统实现与测试64.1 主菜单模块实现主菜单流程图Y是否为 "1"Y调用输入函数开 始显示主菜单输入选择提示错误

9、信息NNNN是否为 "3"是否为 "2"是否为 "4"YYYN调用显示函数调用查找函数调用排序函数NN是否为 "7"是否为 "5"YN结束是否为 "6"YY调用显示函数调用显示函数调用显示函数4.1 主菜单流程图7主菜单代码void menu()/ 菜单int w1,n;system("cls");cout<<"tt-"<<endl<<"tt*welcome to load*"&l

10、t;<endl<<"tt-"<<endl<<"tt"<<endl<<"tt欢迎使用校运动会计分系统"<<endl<<"tt"<<endl<<"tt"<<endl<<"tt"<<endl<<"tt1.学校信息录入"<<endl<<"tt2.学生信息录入"&

11、lt;<endl<<"tt3.成绩录入"<<endl<<"tt4.查询"<<endl<<"tt5.显示数据"<<endl<<"tt6.输出文件"<<endl<<"tt7.显示排名"<<endl<<"tt8.退出"<<endl<<"tt"<<endl<<"tt&qu

12、ot;<<endl<<"tt"<<endl<<"tt制作人"<<endl<<"tt"<<endl<<"tt"<<endl<<"tt"<<endl;docout<<" 请输入你想操作的代号(1-8 ):"<<endl;cin>>n;if(n<1|n>8)w1=1;cout<<"

13、您的输入有误,请重新输入!"<<endl;else w1=0;while(w1=1);switch(n)case 1:xuexiaoluru();8case 2:xueshengluru();case 3:chengjiluru();case 4:chaxun();case 5:xianshi();case 6:wenjian();case 7:paimingxianshi();主菜单测试主菜单运行结果如图4.2图 4.2 主菜单界面4.2 查询模块实现查询流程图9开始输出提示信息NY是否为 4输入数字aNNN是否为是否为 "1""2&quo

14、t;是否为"3"YYY调用学生查询函数调用项目查询函数调用学校查询函数结束图 4.3 查询模块流程图查询模块代码void chaxun()/查询void xscx();void xmcx();void xxcx();int a;docout<<" 选择查询方式 :"<<endl<<" 1按姓名查询 :"<<endl<<" 2按项目查询 :"<<endl<<" 3按学校查询 :"<<endl<&l

15、t;" 4退出 "<<endl<<"请选择 :"cin>>a;10switch(a)case 1:xscx();break;case 2:xmcx();break;case 3:xxcx();break;case 4:break;while(a<1&&a>4);system("pause");menu();void xscx()int i,sb=0;string x;cout<<" 请输入要查询的名字 :"cin>>x;for(

16、i=0;i<SN;i+)if(xsi.xingming=x)sb+;cout<<" 姓名 "<<xsi.xingming<<"学校 "for(int k=0;k+)if(xsi.xue=xxk.daihao)cout<<setw(15)<<xxk.mingzi;break;cout<<"性别 "if(xsi.xingbie)cout<<setw(4)<<" 男"elsecout<<setw(4)<

17、<" 女"cout<<"号码 "<<xsi.haoma<<endl;if(sb=0)cout<<" 没找到该名字的学生 "<<endl;void xmcx()int i,sb=0;int j;11cout<<" 请输入要查询的项目名 :"cin>>j;for(i=0;i<SN;i+)if(xsi.xiangmuj-1)sb+;cout<<" 姓名 "<<xsi.xingming

18、<<"学校 "for(int k=0;k+)if(xsi.xue=xxk.daihao)cout<<setw(15)<<xxk.mingzi;break;cout<<"性别 "if(xsi.xingbie)cout<<setw(4)<<" 男"elsecout<<setw(4)<<" 女"cout<<"号码 "<<xsi.haoma<<endl;if(sb=0)co

19、ut<<" 未找该项目的学生 "<<endl;void xxcx()int i,sb=0;cout<<" 学校信息为: "<<endl<<setw(15)<<" 学校名称 "<<" 学校代号 "<<endl; for(i=0;i<XN;i+)cout<<setw(15)<<xxi.mingzi<<" "<<xxi.daihao<<end

20、l; string l;cout<<" 请输入要查询的学校代号:"cin>>l;for(i=0;i<SN;i+)if(xsi.xue=l)sb+;cout<<" 姓名 "<<xsi.xingming<<" 学校 "<<l<<" 性别 " if(xsi.xingbie)cout<<setw(6)<<" 男"else12cout<<setw(6)<<"

21、女"cout<<"号码 "<<xsi.haoma;if(sb=0)cout<<" 没找到该学校的学生 "<<endl;查询模块测试查询模块测试分为姓名查询如图4.4, 项目查询如图 4.5, 学校查询如图 4.6:图 4.4 姓名查询界面当选择数字 1 时界面如图 4.4 ,输出学生姓名,学校,性别,号码.图 4.5 项目查询界面当选择数字 2 时界面如图 4.5, 输出参加要查询项目的运动员姓名,学校,性别,号码.13图 4.6 学校查询界面当选择数字 3 时界面如图 4.6, 输出代表要查询学

22、校参赛的运动员姓名,学校,性别,号码 .4.3 显示模块查询显示模块流程图开始N输出提示信息输入 l是否为 "4"YNN是否为 "2"N是否为 "3"是否为 "1"YYY调用显示学校信息调用显示运动员信息函数调用显示得分规则函数函数结束14图 4.7 显示模块流程图显示模块代码void xianshi()/ 显示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;docout<<"显示所有学校信息输入 1"<<endl

23、<<"显示所有学生信息输入 2"<<endl<<"显示得分规则输入 3"<<endl<<"退出输入 4"<<endl<<"请选择: "cin>>l;switch(l)case 1:xsxxxx();break;case 2:xsxsxx();break;case 3:xsdfgz();break;while(l>4&&l<1);system("pause");menu();

24、void xsxxxx()cout<<" 学校信息为: "<<endl<<setw(15)<<" 学校名称 "<<" 学校代号 "<<setw(8)<<" 学校得分 "<<setw(8)<<" 学校排名 "<<endl;for(int i=0;i<XN;i+)cout<<setw(15)<<xxi.mingzi<<""

25、;<<xxi.daihao<<setw(8)<<xxi.chengji<<setw(8)<<xxi.mingci<<endl;void xsxsxx()cout<<setw(6)<<" 姓名 "<<setw(15)<<" 学校 "<<setw(6)<<" 性别 "<<setw(12)<<" 项目 1成绩 "<<setw(12)<&l

26、t;" 项目 2成绩 "<<setw(12)<<" 项目 3成绩 "<<setw(12)<<" 项目 4成绩 "<<endl;for(int j=0;j<SN;j+)cout<<setw(6)<<xsj.xingming;for(int k=0;k+)15if(xsj.xue=xxk.daihao)cout<<setw(15)<<xxk.mingzi;break;if(xsj.xingbie)cout<<set

27、w(6)<<" 男"elsecout<<setw(6)<<" 女"for(int x=0;x<4;x+)cout<<setw(6)<<xsj.xiangmux<<setw(6)<<xsj.chengjix;cout<<endl;cout<<setw(18)<<" 项目 1 得分排名 "<<setw(18)<<" 项目 2 得分排名 "<<setw(18)&

28、lt;<" 项目 3 得分排名 "<<setw(18)<<" 项目 4 得分排名"<<setw(7)<<" 总分 "<<endl;for(j=0;j<SN;j+)for(int x=0;x<4;x+)cout<<setw(9)<<xsj.defenx<<setw(9)<<xsj.mingcix<<setw(7);cout<<xsj.zongfen<<endl;void xsd

29、fgz()for(int z=0;z+)if(dfz!=0)cout<<" 第"<<z+1<<" 名得 "<<dfz<<"分"<<endl;continue;elsecout<<" 其后所有人得分为0"<<endl;break;16显示模块测试显示模块测试分为学校显示如图4.8 ,所有学生显示如图4.9 和得分显示如图 4.10图 4.8 学校信息显示界面图 4.8 选择 1 时参赛学校的名称,代号,得分和排名的显示 .

30、图 4.9 学生信息显示界面图 4.9 为选择 2 时所有参赛学生学校,性别,参赛项目,成绩,得分和排名的信息显示.17图 4.10 得分规则显示界面图 4.10 为选择号码 3 时比赛采用的积分规则的显示 .4.4 输出文件模块输出模块代码void wenjian()/输出到文件fstream s1("输出文件 .txt",ios:out);if(!s1)cout<<" 打开失败 !"s1<<" 学校名字学校代码学校名次学校总分 "<<'n'for (int i=0;i<XN

31、;i+)s1<<xxi.mingzi<<""<<xxi.daihao<<""<<xxi.mingci<<""<<int(xxi.chengji)<<'n's1<<'n'<<'n'<<"姓名学校代码性别号码项目1成绩名次项目2成绩名次 项目 3 成绩 名次 项目 4 成绩 名次 总分 "<<'n'for(i=0;

32、i<SN;i+)s1<<xsi.xingming<<""<<xsi.xue<<""<<xsi.xingbie<<""<<xsi.haoma<<" "<<xsi.xiangmu0<<" "<<xsi.chengji0<<" "<<xsi.mingci0<<" " <<xsi.

33、xiangmu1<<" "<<xsi.chengji1<<" "<<xsi.mingci1<<" " <<xsi.xiangmu2<<" "<<xsi.chengji2<<" "<<xsi.mingci2<<" " <<xsi.xiangmu3<<" "<<xsi.chengji3<&

34、lt;" "<<xsi.mingci3<<" " <<xsi.zongfen<<'n's1.close();cout<<" 输出成功! "<<endl;18system("pause");menu();输出模块测试图 4.11 输出文件4.5 显示排名排名模块流程图开始输出提示信息N输入 a是否为 "1"NN是否为 "2"是否为 "3"YYY调用运动员排名函数调用学校排

35、名函数结束19图 4.12 排名模块流程图显示排名模块代码void paimingxianshi()/显示排名void xxpm();void ydypm();cout<<" 请选择: "<<endl<<" 1学校排名 "<<endl<<" 2运动员总分排名 "<<endl<<" 3退出 "<<endl<<"请选择: "int a;cin>>a;switch(a)case 1:

36、xxpm();break;case 2:ydypm();break;case 3:break;system("pause");menu();void xxpm()string dd50;for(int i=0;i<XN;i+)ddxxi.mingci-1=xxi.mingzi;for(i=0;i<XN;i+)cout<<" 第"<<i+1<<" 名为"<<setw(6)<<ddi<<endl;void ydypm()string dd200,te;in

37、t ss200,mp,p,q;for(int i=0;i<SN;i+)ddi=xsi.xingming;ssi=xsi.zongfen;for(p=0;p<SN;p+)for(q=p+1;q<SN-1;q+)if(ssp<ssq)20te=ddq;ddq=ddp;ddp=te;mp=ssq;ssq=ssp;ssp=mp;for(i=0;i<SN;i+)cout<<" 第"<<i+1<<" 名为"<<setw(6)<<ddi<<endl;显示排名模块测试显

38、示排名测试分为学校排名如图4.13, 运动员排名如图4.13图 4.13 学校排名界面图 4.14 运动员排名界面21五、调试错误及解决方法在调试过程中遇到了各种各样的错误,但总结起来也就是马虎造成的,现列举一二。如在调用函数时出现函数未声明的错误,只要在函数的开头进行声明就行了;还有如“测试 .cpp(579) : error C2018: unknown character '0xa3'”,此类型错误主要是在输入字符时使用的是中文输入,只要改成英文输入就行了;注意“”使用要完整等等。不过在我编写程序时遇到的最大的困难还是在输入文件模块,因为对这个知识点掌握不好,后来经过查阅

39、资料终于弄清楚了。六、参考文献1 谭浩强 .C+程序设计 . 清华大学出版社 . 20112 郑莉 .C+程序设计(第三版) . 清华大学出版社 . 20053 钱能 .C+程序设计教程 . 清华大学出版社 . 20044 武俊亮 .visual c+ 课程设计与系统开发案例 . 清华出版社5 黄维通 .Visual C+ 程序设计教程 . 清华大学出版社 . 2005七、附录源代码#include<iostream>#include<fstream>#include<iomanip>#include<string>using namespace

40、 std;int df100=0;struct xuexiaostring mingzi;/ 学校名字string daihao;/ 学校代号int mingci;/ 学校名次float chengji;/ 学校成绩xx20;struct xuesheng22string xue;/ 学校string xingming;/ 姓名int haoma;/ 运动员号码bool xiangmu4;/ 项目bool xingbie;/ 性别float chengji4;/ 成绩int mingci4;/ 名次int defen4;/ 单项得分int zongfen;/ 总分xs100;int XN;/

41、学校个数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");cout<<"tt-"<<endl<<"tt*welcome to load*"<&l

42、t;endl<<"tt-"<<endl<<"tt"<<endl<<"tt欢迎使用校运动会计分系统 "<<endl<<"tt "<<endl<<"tt "<<endl<<"tt "<<endl<<"tt1.学校信息录入 "<<endl<<"tt2.学生信息录入 "

43、;<<endl<<"tt3.成绩录入 "<<endl<<"tt4.查询 "<<endl<<"tt5.显示数据 "<<endl<<"tt6.输出文件 "<<endl<<"tt7.显示排名 "<<endl<<"tt8.退出 "<<endl<<"tt "<<endl<<&q

44、uot;tt "<<endl23<<"tt "<<endl<<"tt制作人 "<<endl<<"tt "<<endl<<"tt "<<endl<<"tt"<<endl;docout<<" 请输入你想操作的代号(1-8 ) :"<<endl;cin>>n;if(n<1|n>8)w1=1;co

45、ut<<" 您的输入有误,请重新输入!"<<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()/ 学校信息录入cout<<" 请输入学校个数:"cin>>XN;for(int i

46、=0;i<XN;i+)cout<<" 请输入第 "<<i+1<<" 个学校的名字:"cin>>xxi.mingzi;cout<<" 请输入第 "<<i+1<<" 个学校的代码:"cin>>xxi.daihao;xxi.chengji=xxi.mingci=0;cout<<" 学校信息为: "<<endl<<setw(15)<<" 学校名称

47、 "<<" 学校代号 "<<endl; for(i=0;i<XN;i+)24cout<<setw(15)<<xxi.mingzi<<" "<<xxi.daihao<<endl; system("pause");menu();void xueshengluru()/ 学生信息录入cout<<" 请输入学生数量:"cin>>SN;int k;for(int i=0;i<SN;i+)cout&

48、lt;<" 请输入第 "<<i+1<<" 个学生的信息:"<<endl<<setw(15)<<"学校名称 "<<"学校代号"<<endl;for(int j=0;j<XN;j+)cout<<setw(15)<<xxj.mingzi<<""<<xxj.daihao<<endl;cout<<" 请输入学生所在学校的代码:&q

49、uot;cin>>xsi.xue;cout<<" 请输入学生的姓名:"cin>>xsi.xingming;cout<<" 请输入学生的性别( 男输入 1 / 女输入 0 ):"cin>>xsi.xingbie;for(k=0;k<4;k+)xsi.chengjik=xsi.defenk=xsi.mingcik=0;xsi.xiangmuk=0;xsi.haoma=i+1;menu();void xianshi()/ 显示所有信息 void xsxxxx(); void xsxsxx();

50、void xsdfgz(); int l;docout<<"显示所有学校信息输入 1"<<endl<<"显示所有学生信息输入 2"<<endl<<"显示得分规则输入 3"<<endl<<"退出输入 4"<<endl<<" 请选择: "25cin>>l;switch(l)case 1:xsxxxx();break;case 2:xsxsxx();break;case 3:xsdf

51、gz();break;while(l>4&&l<1);system("pause");menu();void xsxxxx()cout<<" 学校信息为: "<<endl<<setw(15)<<" 学校名称 "<<" 学校代号 "<<setw(8)<<" 学校得分 "<<setw(8)<<" 学校排名 "<<endl;for(int i=0;i<XN;i+)cout<<setw(15)<<xxi.mingzi<<""<<xxi.daihao<<setw(8)<<xxi.chengji<<setw(8)<<xxi.mingci<<endl;void xsxsxx(

温馨提示

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

评论

0/150

提交评论