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

下载本文档

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

文档简介

1、洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 _数据结构课程设计_设计题目 _运动会分数统计_专 业 _计算机科学与技术_课 程 设 计 任 务 书设计题目:运动会分数统计_设计内容与要求:(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分(3)可以按学校编号、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完

2、成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日洛 阳 理 工 学 院 课 程 设 计 报 告1.问题描述参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项

3、目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)2.基本要求(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分(3)可以按学校编号、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求

4、。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;3.数据结构struct pro /表示项目的结构体 int num;/项目编号char name20; /项目名称 int snum6; /前5名学校的编号 int weight;p21; struct school /表示学校的结构体 int num

5、; char name20; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; 4.总体设计主函数菜单函数输入函数查找函数按学校编号查找函数按项目编号查找函数排序函数按学校编号排序函数按学校总分排序函数按男子团体排序函数按女子团体排序函数显示函数算分函数5.详细设计(1)主函数:主函数调用菜单函数。若菜单函数返回值为1,调用信息输入函数;若菜单函数返回值为2,调用显示全部学校信息函数;若菜单函数返回值为3,调用按条件查找函数;若菜单函数返回值为4,调用成绩信息排序函数;若菜单函数返回值为0,结束程序。(2)输入函数:

6、输入函数分为两个阶段,一是输入学校信息,输入项目信息。输入学校信息分别要输入学校总数、学校编号和学校名称。输入项目信息分别要输入男生项目数、女生项目数,按次序输入男生女生的项目名称、项目编号、取前几名还有前几名的学校编号。(3)算分函数:先利用循环把所有学校的男生团体分和女生团体分都赋值为0,接着再利用双重循环把男生女生团体分累加起来,最后再利用循环把根据总分等于男子团体分加女子团体分把各学校的总分算出来。(4)菜单函数:利用printf函数输出菜单界面。再返回输入的值。(5)显示全部学校信息函数:利用循环按照学校编号,学校名称,学校总分,男子团体分,女子团体分来依次输出。(6)条件查找函数:

7、若输入值为1,调用按学校编号查找函数;若输入值为2,调用按项目编号查找函数。(7)按学校编号查找函数:输入要查找的学校编号,利用循环找出与输入的学校编号相同的学校,再依次输出此学校的学校编号、学校名称、学校总分、男子团体分、女子团体分。(8)按项目编号查找函数:输入要查找的项目编号,利用循环找出与输入的项目编号相同的项目。若此项目取前三,依次输出此项目的项目编号、项目名称、和前三名的学校编号;若此项目取前五名,依次输出此项目的项目编号、项目名称、和前五名的学校编号。输入要查找的学校编号判断学校编号是否相等从开始到最后循环是否输出信息开始结束 判断i>j从开始选一个数i是否输出信息选择下一

8、个数j数将j赋给ij+j+依次放置i+开始结束(9)排序函数:若输入值为1,调用按学校编号排序函数;若输入值为2,调用按学校总分排序函数;若输入值为3,调用按男生团体分排序函数;若输入值为4,按女生团体分排序函数。(10)按学校编号排序函数:利用选择排序,两次循环比较学校编号大小来对各个学校来排序。最后调用显示全部学校信息函数。(11)按学校总分排序函数:利用选择排序,两次循环比较学校总分大小来对各个学校来排序。最后调用显示全部学校信息函数。(12)按男生团体分排序函数:利用选择排序,两次循环比较男生团体分大小来对各个学校来排序。最后调用显示全部学校信息函数。(13)按女生团体分排序函数:利用

9、选择排序,两次循环比较女生团体分大小来对各个学校来排序。最后调用显示全部学校信息函数。6.测试与调试(1)菜单(2)信息显示(3)按学校编号查找l 按项目编号查找l 按学校编号排序l 按学校总分排序l 按男团体总分排序l 按女团体总分排序7. 心得体会通过这次课程设计使我更加加深了对数据结构这门课程的理解,提高了自己组织数据及编写程序的能力,使我们能够根据问题要求和数据对象的特性,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来并用软件解决问题,培养良好的程序设计技能,掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务,锻炼自己的动脑能力,学会用自己的思路解决现实

10、中的实际问题,虽然完成了课程设计,但是只是对这一类型的问题理解比较好,对其他的还是非常陌生。在调试过程中我也遇到了很多问题,每一种问题的解决都是自己的进步,当然还要感谢同学们的帮助,没有他们的帮助,我不会这么快得完成课程设计题目,也让我感受到了团队的重要性。 附录:源程序#include <stdio.h>#include<string.h>#include <stdlib.h>struct pro /表示项目的结构体 int num;/项目编号char name20; /项目名称 int snum6; /前5名学校的编号 int weight;p21; s

11、truct school /表示学校的结构体 int num; /学校编号char name20; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; int m,w,n;/n是学校总数,m是男子项目总数,w女子项目总数。void input() /输入信息int i,j,y=1; char c='y'printf("*输入信息*n");printf("请输入学校的数目:n"); while(y=1)scanf("%d",&n);get

12、char();if(n<0|n>20)printf("请重新输入。n");else y=0;for(i=0;i<n;i+)printf("请输入第%d个学校名称:n",i+1); scanf("%s",);getchar();printf("请输入第%d个学校的编号:n",i+1); scanf("%d",&schi.num);system("cls"); /清屏printf("*输入信息*n");printf(

13、"n请输入男子项目总数:");scanf("%d",&m);printf("n请输入女子项目总数:"); scanf("%d",&w);system("cls");printf("*输入信息*n");for(j=0;j<m;j+)printf("请输入男子项目名称:"); scanf("%s",);getchar();printf("请输入项目编号:");scanf("%

14、d",&pj.num);printf("此项目取前三名还是前五名?若取前三名请输入3,取前五名请输入5。n"); scanf("%d",&pj.weight);if(pj.weight=3)printf("请输入前三名的学校编号。n");printf("请输入第一名学校编号:n");scanf("%d",&pj.snum1);printf("请输入第二名学校编号:n");scanf("%d",&pj.snum2);

15、printf("请输入第三名学校编号:n");scanf("%d",&pj.snum3);else printf("请输入前三名的学校编号。n");printf("请输入第一名学校编号:n");scanf("%d",&pj.snum1);printf("请输入第二名学校编号:n");scanf("%d",&pj.snum2);printf("请输入第三名学校编号:n");scanf("%d",

16、&pj.snum3);printf("请输入第四名学校编号:n");scanf("%d",&pj.snum4);printf("请输入第五名学校编号:n");scanf("%d",&pj.snum5);system("cls");printf("*输入信息*n");for(j=m;j<(m+w);j+)printf("请输入女子项目名称:"); scanf("%s",);printf(&quo

17、t;请输入项目编号:");scanf("%d",&pj.num);printf("此项目取前三名还是前五名?若取前三名请输入3,取前五名请输入5。n"); scanf("%d",&pj.weight);getchar();if(pj.weight=3)printf("请输入前三名的学校编号。n");printf("请输入第一名学校编号:n");scanf("%d",&pj.snum1);printf("请输入第二名学校编号:n&qu

18、ot;);scanf("%d",&pj.snum2);printf("请输入第三名学校编号:n");scanf("%d",&pj.snum3);else printf("请输入前三名的学校编号。n");printf("请输入第一名学校编号:n");scanf("%d",&pj.snum1);printf("请输入第二名学校编号:n");scanf("%d",&pj.snum2);printf("

19、请输入第三名学校编号:n");scanf("%d",&pj.snum3);printf("请输入第四名学校编号:n");scanf("%d",&pj.snum4);printf("请输入第五名学校编号:n");scanf("%d",&pj.snum5);system("cls");printf("*输入信息*n");void suanfen() /统计分数int i,k; for(i=0;i<n;i+)schi.fe

20、male=0;schi.male=0;for(k=0;k<m;k+)/k是项目if(pk.weight=3)for(i=0;i<n;i+)if(pk.snum1=schi.num)schi.male=schi.male+5;if(pk.snum2=schi.num)schi.male=schi.male+3;if(pk.snum3=schi.num)schi.male=schi.male+2;if(pk.weight=5)for(i=0;i<n;i+)if(pk.snum1=schi.num)schi.male=schi.male+7;if(pk.snum2=schi.num

21、)schi.male=schi.male+5;if(pk.snum3=schi.num)schi.male=schi.male+3;if(pk.snum4=schi.num)schi.male=schi.male+2;if(pk.snum5=schi.num)schi.male=schi.male+1;/加男子总分。for(k=m;k<(m+w);k+)/k是项目if(pk.weight=3)for(i=0;i<n;i+)if(pk.snum1=schi.num)schi.female=schi.female+5;if(pk.snum2=schi.num)schi.female=s

22、chi.female+3;if(pk.snum3=schi.num)schi.female=schi.female+2;if(pk.weight=5)for(i=0;i<n;i+)if(pk.snum1=schi.num)schi.female=schi.female+7;if(pk.snum2=schi.num)schi.female=schi.female+5;if(pk.snum3=schi.num)schi.female=schi.female+3;if(pk.snum4=schi.num)schi.female=schi.female+2;if(pk.snum5=schi.nu

23、m)schi.female=schi.female+1;/加女子总分。for(i=0;i<n;i+)schi.score=schi.female+schi.male;void xianshi() /显示结果int i;printf("_n");printf("|学校名称|学校编号|男子总分|女子总分|团体总分|n");printf("_n");for(i=0;i<n;i+)printf("|%-6s |%6d |%6d |%6d |%6d |n",,schi.num,schi.male

24、,schi.female,schi.score);printf("_n");void schchazhao() /按学校编号查找int i,j;printf("请输入要查找的学校编号:n");scanf("%d",&j);printf("n_n");printf("|学校名称|学校编号|男子总分|女子总分|团体总分|n");printf("_n");for(i=0;i<n;i+)if(j=schi.num)printf("|%-6s |%6d |%6d

25、 |%6d |%6d |n",,schi.num,schi.male,schi.female,schi.score);printf("_n");void prochazhao() /按项目编号查找int i,j;printf("请输入要查找的项目编号n");scanf("%d",&j);for(i=0;i<(m+w);i+)if(pi.num=j)if(pi.weight=3)printf("n_n");printf("|项目名称|项目编号| 第一名 | 第二名

26、| 第三名 |n");printf("_n");printf("|%-6s |%6d |%6d |%6d |%6d |n",,pi.num,pi.snum1,pi.snum2,pi.snum3);printf("_n");if(pi.weight=5)printf("n_n");printf("|项目名称|项目编号| 第一名 | 第二名 | 第三名 | 第四名 | 第五名 |n");printf("_n");printf("|%-6s |%6

27、d |%6d |%6d |%6d |%6d |%6d |n",,pi.num,pi.snum1,pi.snum2,pi.snum3,pi.snum4,pi.snum5);printf("_n");void num() /按学校编号排序int i,j,k,x;char y20;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(schi.num>schj.num)x=schi.female;schi.female=schj.female;schj.female=x;x=schi.male;schi.mal

28、e=schj.male;schj.male=x;x=schi.score;schi.score=schj.score;schj.score=x;x=schi.num;schi.num=schj.num;schj.num=x;strcpy(y,);strcpy(,);strcpy(,y);xianshi();void score() /按学校编号排序int i,j,k,x;char y20;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(schi.score>schj.sc

29、ore)x=schi.female;schi.female=schj.female;schj.female=x;x=schi.male;schi.male=schj.male;schj.male=x;x=schi.score;schi.score=schj.score;schj.score=x;x=schi.num;schi.num=schj.num;schj.num=x;strcpy(y,);strcpy(,);strcpy(,y);xianshi();void male() /按男团总分排序int i,j,k,x;ch

30、ar y20;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(schi.male>schj.male)x=schi.female;schi.female=schj.female;schj.female=x;x=schi.male;schi.male=schj.male;schj.male=x;x=schi.score;schi.score=schj.score;schj.score=x;x=schi.num;schi.num=schj.num;schj.num=x;strcpy(y,);strcpy(,sc

31、);strcpy(,y);xianshi();void female() /按女团总分排序int i,j,k,x;char y20;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(schi.female>schj.female)x=schi.female;schi.female=schj.female;schj.female=x;x=schi.male;schi.male=schj.male;schj.male=x;x=schi.score;schi.score=schj.score;schj.score=x;x=schi.num;schi.num=schj.num;schj.num=x;strcpy(y,);strcpy(,);strcpy(,y);xianshi();int main_menu() /菜单 char c; do system("cls"); /*运行前清屏*/ printf("tt*n"); /*菜单选择*/ printf("tt | 1. 显示全部学校信息 |n&q

温馨提示

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

最新文档

评论

0/150

提交评论