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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

运动会分数统计设计报告.docx

1、运动会分数统计设计报告数据结构课程实验 实 验 报 告实验二 运动会分数统计专业: 计算机科学与技术 班级: 姓名: 学号: 完成日期: 目 录一、题目描述 3二、需求分析 3三、概要设计 4四、详细设计 8五、调试分析 12六、总结 16一、题目描述 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2。写一个统计程序产生的各种成绩和得分报表。基本要求:产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名

2、和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。实验提示: 可以假设n=20,m=30,w=20,姓名长度不超过20个字符,每个项目结束时,将其编号、类型符(区分取前3名还是前5名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。二、需求分析1.在该程序中,参赛学校编号为1n(n=20)。比赛分成m(m=30)个男子项目和w(w=20)个女子项目,分别编号为1m和m+1m+w,姓名长度不超过20个字符;2.输入各个项目信息的详细信息,包括项目号,姓名,性别,学校和名次。3.对于项目编号为奇数的取前五名,得分顺序为7,5,3,2,1;为偶数的取前三名,得分顺序为5

3、,3,2。4.程序执行的命令包括:可以输入各个项目的前三名或前五名的成绩;能统计各学校总分;可以按学校编号、学校总分、男女团体总分排序输出;可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。三、概要设计本程序中学校的存储结构为链表:其中school类为:class school:public athlete /*学校*/ public: int count; /*学校获奖数*/ int serial; /*学校编号*/ int menscore; /*男选手总分*/ int womenscore; /*女选手总分*/ int totalscore; /*总分*/

4、athlete athMaxSize; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;/前指针 school *next; /后指针;其中部分主要的函数:添加操作add(school* &head)查询操作checkFunc(school *head,int &n)文件保存save(school *head)总分快速排序tquicksort(vector& v, int first, int last)总分基数排序 tbaseSort(vector& v, int d) 2.关键算法 添加项目号for ( i = 1 ; i serial =要添加的编号) (fi

5、rst-athfirst-count).item =要添加的项目号; (first-athfirst-count).range =i(名次) First指向的学校的项目加一; 更新总分 break; first = first-next;流程图: 3.查询操作: while(first!=head) if (输入的项目编号=学校第i位运动员的项目) 把第i位运动员的项目,学校编号、名次、得分信息压入向量; first = first-next;输出向量中的内容1. 所有学校总分统计表2. 学校成绩查询3. 项目情况查询4. 返回主菜单1. 按学校编号统计2. 按学校名次统计3. 按男团总分统计

6、4. 按女团总分统计5. 返回查询菜单6. 返回主菜单/按学校编号顺序输出所有参赛学校运动会成绩void serialSort(vector& v) for(int i=0;iv.size();i+) cout*vi; 四、详细设计输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。主函数代码:int main() /规定男生项目前三名分别积分、,女生项目前五名分别积分、 /规定没有名次则积分为,不考虑并列的情况 /请正确输入各学校对应项目的积分 int n,m,w,i,j; school a20; int summscore2

7、0,sumwscore20,sumscore20;/定义存储各个学校男团、女团、总分 RedType d20;/定义排序所需的数组为RedType型 SqList L,Lm,Lw;/定义存放各个学校总分、男团、女团积分的顺序线性表 List Lr;/定义积分排序所需的顺序线性表 InitList(L);/初始化各线性表 InitList(Lm); InitList(Lw); cout请输入参加运动会的学校数目(20):n; while(n20) cout输入学校数目有误,请重新输入!endl; cout请输入参加运动会的学校数目(20):n; cout请分别输入男生、女生的项目数目(20):m

8、w; cout规定男生项目前三名分别积分、endl; cout女生项目前五名分别积分、endl; cout没有名次则积分为,且本程序不涉及并列排名的情况!endl; cout请正确输入各学校对应项目的积分!nendl; for(i=1;i=n;i+) ai-1.schnum=i;/赋给学校对应的编号 printf(请输入学校%d 男生各个项目的成绩:n,i); for(j=1;jai-1.mscorej-1; printf(请输入学校%d 女生各个项目的成绩:n,i); for(j=1;jai-1.wscorej-1; for(i=0;in;i+) summscorei=ai.mscore0;

9、 for(j=1;jm;j+) summscorei+=ai.mscorej;/求出学校男团总分并存储到数组中对应位置 ListInsert(Lm,i+1,summscorei);/将学校男团总分插入存放在线性表对应位置 sumwscorei=ai.wscore0; for(j=1;jch; switch(ch) case 1:/查看各学校总分统计,并按学校编号排序输出查看 for(i=0;in;i+) printf(学校编号:%d 学校总分:%dn,i+1,L.elemi); break;case 2:/按学校总分排序输出查看 Lr.length=n; for(i=0;in;i+) di.k

10、ey=L.elemi; di.otherinfo=i+1; Lr.ri+1=di; InsertSort(Lr); cout按学校总分排序后以(名次,学校编号,学校总分)形式输出为:endl; print(Lr); break;case 3:/按男团总分排序输出查看 Lr.length=n; for(i=0;in;i+) di.key=Lm.elemi; di.otherinfo=i+1; Lr.ri+1=di; InsertSort(Lr); cout按男团总分排序后以(名次,学校编号,男团总分)形式输出为:endl; print(Lr); break; case 4:/按女团总分排序输出查

11、看 Lr.length=n; for(i=0;in;i+) di.key=Lw.elemi; di.otherinfo=i+1; Lr.ri+1=di; InsertSort(Lr); cout按女团总分排序后以(名次,学校编号,女团总分)形式输出为:endl; print(Lr); break;case 5:/按学校编号查询学校某个项目的情况 int s,t; cout请输入要查询的学校编号:s; while(sn)/输入学校编号不在初始定义范围之内 cerr输入学校编号有误,请重新正确输入!endl; cout请输入要查询的学校编号:s;/重新输入 i=0; while(ai.schnum

12、!=s) +i;/通过循环找到输入编号的对应学校在数组a中的位置 cout请输入要查询的项目序号:t; while(tm+w)/输入项目序号不在初始定义范围之内 cout输入项目序号有误,请重新正确输入!endl; cout请输入要查询的项目序号:t;/重新输入 if(t=m)/该项目属于男生项目 printf(该学校该项目积分为:%dn,ai.mscoret-1);/从学校男生项目积分数组里输出 else /该项目属于女生项目 printf(该学校该项目积分为:%dn,ai.wscoret-m-1);/从学校女生项目积分数组里输出 break; case 6:/按项目编号查询取得前三或前五名

13、的学校 cout请输入要查询的项目序号:t; while(tm+w)/输入项目序号不在初始定义范围之内 cout输入项目序号有误,请重新正确输入!endl; cout请输入要查询的项目序号:t;/重新输入 if(t=m)/该项目属于男生项目 i=0; while(ai.mscoret-1!=5) +i;/通过循环找到该项目第一名学校在a中的位置 printf(获得该项目第一名的是学校:%d 号n,i+1); i=0; while(ai.mscoret-1!=3) +i;/通过循环找到该项目第二名学校在a中的位置 printf(获得该项目第二名的是学校:%d 号n,i+1); i=0; whil

14、e(ai.mscoret-1!=2) +i;/通过循环找到该项目第三名学校在a中的位置 printf(获得该项目第三名的是学校:%d 号n,i+1); else/该项目属于女生项目 i=0; while(ai.wscoret-m-1!=7) +i;/通过循环找到该项目第一名学校在a中的位置 printf(获得该项目第一名的是学校:%d 号n,i+1); i=0; while(ai.wscoret-m-1!=5) +i;/通过循环找到该项目第二名学校在a中的位置 printf(获得该项目第二名的是学校:%d 号n,i+1); i=0; while(ai.wscoret-m-1!=3) +i;/通

15、过循环找到该项目第三名学校在a中的位置 printf(获得该项目第三名的是学校:%d 号n,i+1); i=0; while(ai.wscoret-m-1!=2) +i;/通过循环找到该项目第四名学校在a中的位置 printf(获得该项目第四名的是学校:%d 号n,i+1); i=0; while(ai.wscoret-m-1!=1) +i;/通过循环找到该项目第五名学校在a中的位置 printf(获得该项目第五名的是学校:%d 号n,i+1); break; default:flag=0;printf(程序结束,按任意键退出!n);/退出程序 getchar();五、调试分析1.输入数据2.

16、查看学校总分排序统计,并按学校编号排号输出3.按学校总分排序输出查看4.按男团总分排序输出查看5.按女团总分排序输出查看6.按学校编号查询学校某个项目的情况7.按项目编号查询取得前三或前五名的学校8.退出程序六、总结(1).函数调用。函数调用是语言中一块十分重要部分,它可以把一个程序分成若干部分,然后进行配置,所以这块内容对我们很重要。(2).对结构体的不熟练。刚开始对结构体不太了解,使调试程序时费了我不少的时间。结构体的嵌套使我很费力气,通过长时间的运用,终于可以得心应手。结构体在我的实习中站了很大的比重,我也很重视它。通过与线性表,循环等的有机搭配,我完成了实习任务。(3) 在这个实验中,

17、我们提高了 C 语言编程的能力。在程序设计过程中,需要经过反复地编写,调试,运行,发现问题并解决问题,在这次实验的设计中,我加深对程序的了解,提高自己的实际动手能力和独立思考的能力同时我也学会了综合以前学到的基本知识来解决较大问题的方法。 课程实验是培养我们的综合能力,从设计总体结构流程、具体算法设计、调试程序等全方面考核。在一开始写完程序后调试,有许多问题出现。再一一检查后发现,许多小问题出现:语句后没有分号、没有大括号、小括号等问题。还有就是在文件存储调用方面因忘记上学期的知识,总是有问题,特别是在从文件中读取时总有随机数出现;通过看书、与同学讨论才发现是调用的结构与存储的结构不对,经过改正后终于正确输出。

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

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