ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:139.67KB ,
资源ID:10303403      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10303403.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C运动会分数统计系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C运动会分数统计系统.docx

1、C运动会分数统计系统课程设计报告运动会分数统计系统 1. 系统需求分析问题描述:参加运动会有n个学校,学校编号为1,2,n,比赛分为m个男子项目和w个女子项目。项目编号为男子1,2,m个,女子m+1个,m+2个,m+w。不同的项目取得前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别为5,3,2;项目编号为奇数的取前五名,项目编号为偶数的取前三名(m20,n20)。每个项目结束时,将其编号输入,并按名次顺序输入运动员姓名、学校编号和成绩。请用C/C+编写一系统,模拟运动会分数统计过程,软件应包括如下几个方面:(一)功能要求:(1)成绩输入:要求:可以输入各个项目的前三

2、名或前五名的成绩。(2)成绩查询:要求:可以按学校编号查询学校各项目情况;可以按项目编号查询取得前三名或前五名的学校。(3)成绩统计:要求:能统计各学校总分。(4)成绩排序:要求:可以按学校编号、学校总分、男女团体总分排序输出。(二)其它要求:(1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读;(2)至少采用文本菜单界面(如果能采用图形菜单界面更好);(3)学生可自动增加新功能模块(视情况可另外加分);(4)写出课程设计报告,具体要求见相关说明文档。2 概要设计2.1 系统功能设计根据运动会分数统计系统问题的分析和设计要求,可以将该系统可以分为三个模块:信息统计模块、信息输出模块

3、、信息查询模块,其系统功能结构图如图1所示。(1)信息统计模实现信息的输入、统计。(2)信息输出模块,实现信息的输出。(3)信息查询实现信息的查询。 图1 系统功能结构图3.详细设计:毕业设计有困难?加929486211(1)定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。/定义项目结点的类型typedef struct int itemnum; /项目编号 int top; /项目取名次的数目,由用户定义3或5 int range5; /名次 int mark5; /分数itemnode;(2)定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、

4、男团总分、女团总分、项目数组。/定义学校结点类型struct schoolnode/学校结点的类型 int schoolnum;/学校的编号 int score;/学校所得的分数 int mscore;/男团所得的分数 int wscore;/女团所得的分数 struct itemnode cm+w;/项目结点类型的数组; schoolnode hn;/定义一个学校结点类型的数组(3)定义学校数组schoolnode hn。采用数组结构有利于随机的存储和查询。函数的设计和实现在概要设计中已经对该系统涉及的抽象数据类型和函数及其功能做了说明,这里就不在对每个函数进行一一说明,只对其中比较重要的功

5、能模块进行描述。(1)信息输入及分数统计功能void inputinformation( )为输入信息及分数统计函数。在输入信息的同时进行分数的统计。可以输入各个学校各项目前三名或前五名的成绩。在输入学校的参赛项目时,结果取前三名还是前五名自己定,用一个选择语句实现。利用swith语句前三名的分数赋为5、3、2,前五名的成绩赋为7,5、3、2、1,未取得成绩则赋为0。并统计团体总分,男团总分和女团总分。其主要功能代码如下: void inputinformation( ) /输入和统计信息函数 int q=0; int i,j,k,s; for(i=0;in;i+)/初始化为0 hi.scor

6、e=0; hi.mscore=0; hi.wscore=0; for(i=0;in;i+) do system(color 2A); cout输入学校的编号: hi.schoolnum; while(hi.schoolnumn|hi.schoolnum=0); for(j=0;jm+w;j+) do system(color 2B); cout输入项目编号:(注意分清是男团编号还是女团编号)hi.cj.itemnum; while(hi.cj.itemnumn|hi.cj.itemnum=0); do system(color 2C); cout取得前三名还是前五名:hi.cj.top; wh

7、ile(hi.cj.top!=3&hi.cj.top!=5); cout获得几个名次:k; for(s=0;s5;s+)/初始化分数和名次都为零 hi.cj.mingcis=0; hi.cj.marks=0; if(k5) for(s=0;sk;s+) system(color 2B); couthi.cj.mingcis; if(hi.cj.top=3)/计算得分 switch(hi.cj.mingcis) case 0: hi.cj.marks=0;break; case 1: hi.cj.marks=5;break; case 2: hi.cj.marks=3;break; case 3

8、: hi.cj.marks=2;break; else switch(hi.cj.mingcis) case 0: hi.cj.marks=0;break; case 1: hi.cj.marks=7;break; case 2: hi.cj.marks=5;break; case 3: hi.cj.marks=3;break; case 4: hi.cj.marks=2;break; case 5: hi.cj.marks=1;break; hi.score=hi.score+hi.cj.marks;/按取前三名还是取前五名分别记分 if(j=m-1) hi.mscore=hi.mscore

9、+hi.cj.marks;/是男子项目则记到男子分数里面去 else hi.wscore=hi.wscore+hi.cj.marks;/是女子项目则记到女子项目里面去 else cout输入错误endl; (2)信息输出功能void output( )为输出函数。列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。利用辅助数组remember和冒泡排序的方法使之按分数的由高到低输出。利用循环语句do while( )当输入2时返回输出目录,输入0是跳出循环返回主菜单。其流程图如图2所示。图2 输出信息模块流程图void output( )/

10、输出信息函数 int choice,i,j,k; int remembern; int sign; do system(color 1A); cout endl; cout 1.按学校编号输出 endl; cout 2.按学校总分输出 endl; cout 3.按男团总分输出 endl; cout 4.按女团总分输出 endl; cout 请选择编号 endl; cout choice; switch(choice) case 1:/按学校编号输出 system(color 2B); for(i=0;in;i+) cout 学校编号:hi.schoolnumendl; cout 学校总分:hi

11、.scoreendl; cout 男团总分:hi.mscoreendl; cout 女团总分:hi.wscoreendlendlendl; break; case 2:/按学校总分输出 for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(hrememberi.scorehj.score) k=rememberi; rememberi=rememberj; rememberj=k; system(color 3B); for(i=0;in;i+) cout 学校编号:hrememberi.schoolnumendl; co

12、ut 学校总分:hrememberi.scoreendl; cout 男团总分:hrememberi.mscoreendl; cout 女团总分:hrememberi.wscoreendlendlendl; break; case 3:/按男团总分输出 for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(hrememberi.scorehj.score) k=rememberi; rememberi=rememberj; rememberj=k; system(color 4D); for(i=0;in;i+) cout

13、 学校编号:hrememberi.schoolnumendl; cout 学校总分:hrememberi.scoreendl; cout 男团总分:hrememberi.mscoreendl; cout 女团总分:hrememberi.wscoreendlendlendl; break; case 4:/ 按女团总分输出 for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(hrememberi.scorehj.score) k=rememberi; rememberi=rememberj; rememberj=k; sy

14、stem(color 7C); for(i=0;in;i+) cout 学校编号:hrememberi.schoolnumendl; cout 学校总分:hrememberi.scoreendl; cout 男团总分:hrememberi.mscoreendl; cout 女团总分:hrememberi.wscoreendlendlendl; break; cout 继续选择输出, 0 - 选择查询sign; while(sign=1);(3)信息查询功能void inquiry( )为查询函数。列车一个查询目录利用swich 语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况

15、或某个项目的前几名的学校。再利用循环语句do while( )当输入2是返回查询目录,输入0时跳出循环返回主菜单。其程序流程图如图3所示。图3 查询信息模块程序流程图void inquiry() /信息查询 int choice; int i,j,k,s; system(color 6B);cout endl;cout 1:按学校编号查询 endl;cout 2:按项目编号查询 endl;cout 请选择查询的方式 endl;cout choice; switch(choice) case 1: do cout要查询的学校编号i; system(color 3A); if(in)cout输入错

16、误endl; else cout要查询的项目编号:j; system(color 8A); if(jm+w|j=0)cout没有这个项目endl; else cout该学校的成绩为:endl; for(k=0;k5;k+) if(hi-1.cj-1.mingcik!=0)cout名次:hi-1.cj-1.mingcikendl; cout 继续 , 0 - 结束s; coutendlendlendl; while(s=1); break; case 2: do cout要查询的项目编号:s; if(sm+w|s=0)cout没有这个项目endl; else cout取得名次的学校是:endl;

17、 for(i=0; in;i+) for(j=0;j5;j+) if(hi.cs-1.mingcij!=0)cout学校编号:hi.schoolnum名次:hi.cs-1.mingcijendl; /输出该项目取得名次学校的成绩cout 1,结束 - 0i; coutendlendlendl; while(i=1); break;(4)主函数void main( )是主函数。列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。其实现代码如下: void main()system(color 5B); cout *毕业设计有困难?加929486211*endl; cout * 1.输

18、入信息 *endl; cout * 2.输出信息 *endl; cout 3.查询信息 *endl; cout * 4.退出 *endl; cout * 请选择 (*_*) *endl; cout *choice; switch(choice) case 1: cout请输入信息:endl; do inputinformation(); cout 继续 , 0 - 跳出s; coutendlendlendl; while(s=1); case 2: output(); case 3: inquiry( ); case 4: break; 4 测试运行程序,进入系统主菜单。用户可以选择输入、输出

19、、查询信息或退出系统,界面如图4所示。(1)输入信息输入1得到进入输入信息模块。根据系统提示将以下信息输入系统中:学校编号1,项目编号1,取前5名,获得1个名次,是第5名;项目编号2,取前3名,获得3个名次,分别是1、2、3名。学校编号2,项目编号1,取前5名,获得4个名次,分别是1、2、3、4名;项目编号2,取前5名,获得0个名次。输入信息后,会自动存档,并提示存档成功,然后自动返还主菜单,如图5所示。(2)输出信息输入2进入输出信息模块,该模块分四项,分别代表一种输出方式,如图6所示。用户可以按照自己的喜好,选择一种方式输入信息,输入2返回输出信息模块,输入0返回主菜单。如图79分别是按照

20、学校编号、学校总分、女团总分输出的情况。 按学校总分输出 按女团总分输出(3)查询信息输入3进入信息查询模块,该模块分为两项,如图10所示。 信息查询模块用户可以选择不同菜单进行查询,如图11和图12分别是按照学校编号和项目编号查询的情况。 按学校编号查询(4)退出系统在主菜单下输入4可以退出系统,并有中文提示,如图所示。 退出系统心得体会在这次上机过程中遇到过一些问题,但经过不懈努力,解决了部分,还有的现在不能解决,留待日后思考和解决。比如说在运用数据结构排序的时候,方法的选择上,总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择法排序。 在编写之前,做整体规划和详细设计

21、很重要。只有思路清晰,设计合理可行,编码才有可能有的放矢,才能更加有效的完成任务。本次集中上机实验,对我来说可以算是一次挑战,因为在理论学习中没有好好的掌握,现在要独立完成一个较复杂的程序编写,确实有一点困难。但我对于难度一向是以积极迎战的态度来面对,认真积极努力完成这次集中上机的任务。对我来说这是一次很好的机会,同时我也很好的把握了这次机会,认真的完成了此次上机学习的任务,对自己今后在程序编写方面以及文档撰写方面相信会有很大的帮助,在此也对学校安排这样一次学习表示感谢,最后希望自己在数据结构以及计算机的其他学习方面能够得到很好的提高。6.用户使用手册1.输入信息(依照提示,确保输入的信息在规定的范围之内)2.输出信息(按照不同的要求输出)3.用户查询(提供两种方式)4.退出系统。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1