27运动会分数统计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1实验报告一题目:运动会分数统计班级:姓名:学号:完成日期:2015.4.7一.需求分析写一个统计程序使得产生参赛各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。二.概要设计1.类型定义及模块数据结构:线性表顺序存储结构structAthlete{}//定义运动员结构体structSeqlist{}//定义顺序表类型数组元素:school,item,rank,score,name[22],sex,last,n,m,w,Sum,j,i,s,ms,ws2.使用的操作:intsum(intm,intw){}//判断项目号奇偶,选取排名人数voidchange(Athlete*e){}//实现名次到分数的转换voidenter(Seqlist*list,intm,intw){}//建立数组用来存放数据voiddisplay(Seqlist*L,intn){}//输出学校的成绩单及团体总分等信息3.具体操作切分intmain(){}//实现总体调用函数三.详细设计1.数据结构的定义:structAthlete//运动员结构体,定义了运动员中的属性{intschool;//学校编号intitem;//项目编号intrank;//名次intscore;//成绩charname[22];//姓名charsex;//性别};structSeqlist//结构体数组{Athleteelem[MAXSIZE];2intlast;};2.使用的基本操作,处理操作:1.voidchange(Athlete*e)操作前提:e的排名及参加类型非空。操作结果:根据运动员排名及项目类型得出选手成绩。2.voidenter(Seqlist*L,intm,intw)操作前提:表L存在。操作结果:将运动员信息录入到表内。3.voiddisplay(Seqlist*L,intn)操作前提:表L存在。操作结果:得到各学校成绩单4.intsum(intm,intw)操作前提:m和w为整数,表L存在。操作结果:编号为奇数的项目取前五名,编号为偶数的项目取前三名3.函数调用关系:mainenterdisplychange四.调试分析1.错误:修改:在structAthlete{}和structSeqlist{}中的“}”后加“;”2.错误:测试中,分数计算错误(如图:)3修改:在voidchange(Athlete*e)中的switch(e-rank)语句里每条结束前加break,避免死循环而无法退出3.错误:修改:将语句cout请输入项目,运动员姓名,性别(w/m),学校,名次endl;中的中文“;”换成英文“;”五、用户使用说明:1本程序的运行环境为Dev-C++。2进入演示程序后及显示文本方式的用户界面:2在运行框内输入参加运动会学校个数s,运动员总数a,然后按回车。3项目号为奇数的项目取前五名,项目号为偶数的项目取前三名,每个学生的信息占一行,其中包括学校,运动员姓名,性别(w/m),项目,名次,分数。4全部输入完成之后,按回车,即可出现运行结果,产生团体总分报表,即各个学校的成绩单和男子团体总分,女子团体总分和团体总分。测试数据与运行结果:输入学校个数,男子项目以及女子项目的个数:(编号为奇数的项目取前五名,得分顺序为7,5,3,2,1;编号为偶数的项目取前三名,得分顺序为5,3,2)请输入项目,运动员姓名,性别(w/m),学校,名次打印成绩单和成绩报表*******************************学校姓名性别项目名次分数4六.源代码(列出源代码)#includeiostream#includestdio.h#includestdlib.h#defineMAXSIZE100usingnamespacestd;structAthlete{intschool;//学校编号intitem;//项目编号5intrank;//名次intscore;//成绩charname[22];//姓名charsex;//性别};structSeqlist{Athleteelem[MAXSIZE];intlast;};intsum(intm,intw){intSum=0;for(inti=1;i=(m+w);i++){if(i%2==1)Sum=Sum+5;if(i%2==0)Sum=Sum+3;}returnSum;}voidchange(Athlete*e){if(e-item%2==0){switch(e-rank){case1:e-score=5;break;case2:e-score=3;break;case3:e-score=2;break;}}if(e-item%2==1){switch(e-rank){case1:e-score=7;break;case2:e-score=5;break;case3:6e-score=3;break;case4:e-score=2;break;case5:e-score=1;break;}}}voidenter(Seqlist*L,intm,intw){inti=1;L-last=sum(m,w);cout(编号为奇数的项目取前五名,得分顺序为7,5,3,2,1;编号为偶数的项目取前三名,得分顺序为5,3,2)endl;cout请输入项目,运动员姓名,性别(w/m),学校,名次endl;for(inti=1;i=L-last;i++){cinL-elem[i].itemL-elem[i].nameL-elem[i].sexL-elem[i].schoolL-elem[i].rank;change(&L-elem[i]);}}voiddisplay(Seqlist*L,intn){intj,i;ints=0,ms=0,ws=0;cout打印成绩单和成绩报表:endl;for(j=1;j=n;j++)//学校数目{ws=0;ms=0;s=0;cout*******************************endl;cout学校姓名性别项目名次分数endl;for(i=1;i=L-last;i++)if(L-elem[i].school==j){coutL-elem[i].schoolL-elem[i].nameL-elem[i].sexL-elem[i].itemL-elem[i].rankL-elem[i].scoreendl;if(L-elem[i].sex=='w')ws+=L-elem[i].score;if(L-elem[i].sex=='m')ms+=L-elem[i].score;s=ws+ms;7}coutj学校的团体总分是:sendl;coutj号学校的女子团体总分是:wsendl;coutj号学校的男子团体总分是:msendl;coutendl;}}intmain(){SeqlistL;intn,m,w;cout请输入学校个数,男子项目以及女子项目的个数:endl;cinnmw;enter(&L,m,w);//赋值操作display(&L,n);system(pause);return0;}

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功