运动会分数统计系统.docx_第1页
运动会分数统计系统.docx_第2页
运动会分数统计系统.docx_第3页
运动会分数统计系统.docx_第4页
运动会分数统计系统.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告 运动会分数统计系统C+程序设计基础课程设计学 院: 信息科学与技术学院 专 业: 计算机科学与技术专业 班 级: 2014级3班 _姓 名: 周义 学 号: 2014508091 指导教师: 高攀老师 2015年6月23日目录一.设计题目与要求21.1.本程序题目与要求22.2.我认为的设计难点2二.总体设计32.1.总体大概思路42.2.我认为的不足之处4三.具体设计43.1.结构框架详细设计43.2.函数的定义及功能5四.流程图54.1.程序整体流程图54.2.程序运行结果截图74.3.源程序12五课程设计总结及心得21六程序运行环境22七参考资源22一 设计题目与要求1.1. 本程序题目与要求题目运动会分数统计软件任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)功能要求:1、可以输入各个项目的前三名或前五名的成绩;2、能统计各学校总分;3、可以按学校编号或名称、学校总分、男女团体总分排序输出;4、可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。5、数据存入文件并能随时查询 6、规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,输出界面友好。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。1.2.我认为的设计难点题目中说不同的项目取不一样的名次,即你输入一个项目后,要再选择是取该项目的前三名还是前五名。因此这里要设置两个数组,分别存取前五名积和前三名的积分。同时在屏幕上显示供用户选择的提示语,若选1则选择前五名的数组,选2则选择前三名的数组。这里要稍微花点时间。再者就是排序问题,因为上学期c语言学的不是很扎实,所以一看到排序有点头疼,但经过回忆,渐渐想起来一些。这里就用冒泡排序法,按照学校编号,学校总分,男子团体总分,女子团体总分排序输出。就是文件问题,因为这是属于自学内容,所以要参照书本研究,在经过询问大神及查阅书本后,也勉勉强强的解决了这个问题。输出界面问题也花费了很多时间,因为不想落入俗套,同时又不花哨,有人性化,所以我在界面中加了一些符号及口语化的提示语,希望能有一些自己的特点。二.总体设计2.1.总体大概思路首先,这是一个系统,因为前一阵子程序设计基础刚上交过大作业,是关于通讯录管理系统的,而系统之间的大概框架有相同之处,所以这次在构思上轻松许多。其次,在此程序中,用户需要填写的信息很多,所以如何存储这些信息也是当务之急。方法有很多,经过网上查询,我知道可以用链表等做,但没有接触过所以学习起来有些困难,最后还是选择用数组来存储信息。其次该程序有较多的功能,那每个功能都可以定义一个对应的函数来实现。接着用户需要填入信息,所以再定义一个函数用来输入全部的信息。最后在主函数中分别按照菜单上的顺序调用各个函数即可。2.2.我认为的不足之处这个程序我认为也有许多不足之处,比如c+并没有完全熟练掌握,导致格式有些错乱,没有完全按照c+的格式来写,我也会努力巩固自己的专业知识,让他更完美。三具体设计3.1.结构框架详细设计首先,定义两个总体的结构体学校school和运动项目sport。因为题目规定学校和项目的数目不超过20,所以用sc21和sp21来分别表示多个结构,即其中的每一个元素都为一个结构体。接着写两个函数Shouye()和Caidan(),分别用来显示欢迎界面和主菜单。由于要选择项目的积分名次,故再定义两个数组用来存放积分,以便用户自己选择。定义一个输出函数,来输出各项信息,如学校编号,学校名字等。接下来就是存入各项信息了,这里也可以用一个函数来表示全过程即Shuchu(),其中的代码就是用户录入信息的过程。接下来定义一个类compete,其中的公有函数便是主菜单中对应的各项功能。此时程序大致已经完成,接下来就是主函数。主函数按照顺序调用各个函数。Compete类定义一个对象p,p调用功能函数。最后完成程序!3.2.函数的定义及功能void Shouye() 输出欢迎界面void Caidan() 输出主菜单界面void print(int i) 输出各项信息void Shuhcu() 存入信息void OutToFile() 存入文件void ReadFromFile() 读取文件void Bianhao() 冒泡排序输出学校编号void Zongfen() 冒泡排序输出学校总分void Boy_zongfen() 冒泡排序输出男团总分void Gilr_zongfen() 冒泡排序输出女团总分void School_xinxi() 查询学校信息void Program_xinxi() 查询项目信息void Shuaxin() 刷新界面(清屏)main() 主函数四.流程图4.1.程序整体流程图 总体框架 流程图4.2.程序运行结果截图 欢迎界面 学校个数及名字 男女运动项目数及名称 输入前列学校编号并显示主菜单 按学校编号排序输出 按学校总分排序输出 按女团总分排序输出 按编号查询学校情况 界面刷新4.3.源程序#include#include#include#include /I/O流控制头文件using namespace std;static int n; /静态变量n为学校个数void Shouye() /欢迎界面cout - endl;cout丨 丨endl;cout丨 丨endl;cout丨 丨endl;cout丨 丨endl;cout丨 丨endl;cout丨 欢迎进入校运动会分数统计系统 丨endl;cout丨 丨endl;cout丨 周义 丨endl;cout丨 丨endl;cout丨 丨endl;cout丨 丨endl;cout - endl;void Caidan() /菜单界面 cout - 主菜单 - endl;cout丨 a.存储数据 丨endl;cout丨 b.读取数据 丨endl;cout丨 1.选我可以按学校编号排序输出哦 丨endl;cout丨 2.选我可以按学校总分排序输出哦 丨endl;cout丨 3.选我可以按男团体总分排序输出哦 丨endl;cout丨 4.选我可以按女团体总分排序输出哦 丨endl;cout丨 5.选我可以按项目查询学校的获奖情况哦 丨endl;cout丨 6.选我可以按学校编号查询学校某个项目情况哦 丨endl;cout丨 7.刷新 丨endl;cout丨 8.退出 丨endl;cout丨 丨endl;cout - endl;struct school /sc21中每一个元素都是一个结构体string school_name; int school_num; /正常学校编号 int score_school; int score_boy; int score_gilr; sc21;struct sport /sp21中每一个元素都是一个结构体string sport_name; int sport_num6; /取得名次的学校编号 sp21;int jf15=7,5,3,2,1; /如果选择前五名,用此积分int jf23=5,3,2; /如果选择前三名,用此积分void Print(int i) /输出函数,输出各项信息coutsci.school_numsetw(13)sci.school_namesetw(8)sci.score_schoolsetw(9)sci.score_boysetw(10)sci.score_gilrendl;void Shuchu() /用户填入信息的过程int i,j,y,x,m,w;coutn;for(i=1;i=n;i+)cout请输入第isci.school_name;sci.score_school=0;sci.score_boy=0;sci.score_gilr=0;sci.school_num=i;coutm;coutw;for(i=1;i=m+w;i+) int k;cout请输入第ispi.sport_name; cout运动的名次 (按1可以取前5名 按2可以取前3名):k;if(k=1) /选择排前五名 cout请输入第i个项目的前5名的学校编号吧:n; for(j=1;jx; spi.sport_numj=x; /将编号存入数组 scx.score_school+=jf1j-1;/累加积分 if(i=m)scx.score_boy+=jf1j-1; else scx.score_gilr+=jf1j-1;if(k=2) /选择排前三名cout请输入第i个项目的前3名的学校编号吧;n;for(j=1;jx;spi.sport_numj=x; /将编号存入数组scx.score_school+=jf2j-1;/累加积分if(i=m)scx.score_boy+=jf2j-1;elsescx.score_gilr+=jf2j-1;class competepublic: void OutToFile() /存入文件 int i,j; fstream f(data.txt,ios:out|ios:trunc); school t; for(i=1;i=n;i+)fsci.school_num sci.school_name sci.score_school sci.score_boy sci.score_gilr;fc) scc.school_num=c; fscc.school_namescc.score_schoolscc.score_boyscc.score_gilr; n=c; f.close(); void Bianhao() /冒泡排序输出学校编号 int i,j; school t; for(i=1;in;i+) for(j=i;jscj.school_num) t=sci; sci=scj; scj=t; coutn按照编号排列啦:n; cout编号 学校名称 总分 男子总分 女子总分n; for(i=1;i=n;i+) Print(i); void Zongfen() /冒泡排序输出学校总分 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(sci.score_schoolscj.score_school) t=sci; sci=scj; scj=t; coutn按照学校总分排列啦:n; cout编号 学校名称 总分 男子总分 女子总分n; for(i=1;i=n;i+) Print(i); void Boy_zongfen() /冒泡排序输出男团总分 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(sci.score_boyscj.score_boy) t=sci; sci=scj; scj=t; coutn按照男子团体总分排列啦:n; cout编号 名称 总分 男子总分 女子总分n; for(i=1;i=n;i+) Print(i); void Gilr_zongfen() /冒泡排序输出女团总分 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(sci.score_gilrscj.score_gilr) t=sci; sci=scj; scj=t; coutn按照女子团体总分排列啦:n; cout编号 名称 总分 男子总分 女子总分n; for(i=1;i=n;i+) Print(i); coutendl; void School_xinxi() /查询学校信息 int i,y,s; couts; if(s=1&s=n)y=1; if(y)break; else cout数据有错误诶,请重输吧:; cout该学校哒相关信息:n; cout编号 学校名称 总分 男子总分 女子总分n; for(i=1;i=n;i+) if(sci.school_num=s) Print(i); break; coutendl; void Program_xinxi() /查询项目信息 int i,y,s; couts; if(s=1&s=n)y=1; if(y)break; else cout数据有错误哦,请重输吧:; coutsps.sport_name厉害的学校编号及名称是:endl; cout名次 编号 学校名称n; for(i=1;i=5;i+) cout i sps.sport_numisetw(12)sc sps.sport_numi .school_nameendl; coutx;coutx;compete p;if(x=1)p.Bianhao();else if(x=a)p.OutToFile();else if(x=b)p.ReadFromFile();else if(x=2)p.Zongfen();else if(x=3)p.Boy_zongfen();else if(x=4)p.Gilr_zongfen();else if(x=5)p.School_xinxi();else if(x=6)p.Program_xinxi();else if(x=7)p.Shuaxin();else if(x=8)break;return 0;五课程设计总结及心得经过了断断续续一个星期的忙碌,课程设计终于接近了尾声。在完成它之前我从不敢想象自己能够对一件事情能够如此

温馨提示

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

评论

0/150

提交评论