数据结构实验运动会分数统计实验报告_第1页
数据结构实验运动会分数统计实验报告_第2页
数据结构实验运动会分数统计实验报告_第3页
数据结构实验运动会分数统计实验报告_第4页
数据结构实验运动会分数统计实验报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告题目:运动会分数统计班级:14电子商务平台建设班 完成日期:2015.10.10学号: : 少辉 学号: : 德龙学号: : 柴益新一:需求分析参加运动会的个学校编号为1。比赛分成个男子项目和个女子项目,项目编号分别为1和1。有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。基本要求 产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分 ;产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。 结于=4,=3,=2,编号为奇数的项目取前五名,编号为公里数的项目取前三名,设计一组实例数据。项目约束可以假设20

2、,30,20,长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员、校名(和成绩)。二:概要设计采用结构体二维数组存储方式产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分 ;产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。三:详细设计1:数据结构的定义元素类型、变量、指针类型(1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、要取的名次以与各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称

3、与要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后项目情况的查询。3.1结构体结构体名数据类型数据名备注Schoolcharname20学校名称intschoolnum学校编号charprojectmane5020项目编号与名称intprojectscouer50项目得分charprojectstudentmane5020获奖学生intsum团体总分intmenscouer男子总分intwomenscouer女子总分3.2子函数函数名入口参数出口参数功能介绍main()实现学校输入项目输入welcome()调用主页面选择各类操作以转至其他页面input()输入项目编号与名称c

4、hoose()int j,char s20int g;1.判断所输项目是取前三或前五2.返回经判断后的项目的编号与名称three()int j,char s20j1.按名次判断得分,按项目编号判断男女得分2.返回经判断后的项目的编号five()int j,char s20j1.按名次判断得分,按项目编号判断男女得分2.返回经判断后的项目的编号output()按规定顺序查询n个学校中某一学校的得分信息sumput()按规定顺序产生团体总分报表goodbye()弹出退出界面并退出程序3:函数调用关系Main()input()output()sumput()welcome()Goodbye()四:调

5、试分析在调试的过程中,我们发现了在查询成绩功能是只能按照各个学校的编号进行查询选手,学校的成绩信息,查询功能有待健壮完善。五:用户使用说明(1) 首先运行文件运动会统计分数系统(2) 输入信息:1.输入学校数量2.输入各个学校名称3.男子运动项目数量4.女子运动项目数量。敲下回车后进入welcome界面中进入1数据输入输入运动会项目名称输入该项目的打分规则依次录入学校的排名情况(2) 输出信息: 输入3进行总体输出查询。(3) 查询信息:按任意键返回主页面,输入2进行信息查询查询结束后按任意键返回主界面输入4退出系统如下图所示源代码/*项目名称:运动会统计系统*设计者:德龙,柴益新,少辉*时

6、间:2015.10.16*实现目标:1.产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分 ; 2.产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。*/#include#include#include#include/*个学校编号为1*个男子项目,编号为1*个女子项目,编号为1*/int n,m,w;/*学校信息结构体* 目的:1.按此结构体存贮数据* 2.产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分 ;*/struct schoolchar name20; /学校名称int schoolnum; /学校编号char

7、 projectmane5020; /项目编号与名称int projectscouer50; /项目得分char projectstudentmane5020; /获奖学生int sum; /团体总分int menscouer; /男子总分int womenscouer; /女子总分num20;/*主函数*目的:1.实现学校输入* 2.项目输入*/int main()int i,j;void welcome();/调用主界面printf(请输入学校数量n);scanf(%d,&n);/输入学校名称,并初始化数据for(i=1;i=n;i+)printf(请输入第%d学校的名称:,i);scan

8、f(%s,);numi.schoolnum=i; /学校编号初始numi.menscouer=0; /男子团体分初始numi.womenscouer=0; /女子团体分初始numi.sum=0; /团体总分初始for(j=1;j=50;j+) /各项目得分初始 jectscouerj=0;printf(请输入男子项目个数:);scanf(%d,&m);printf(请输入女子项目个数:);scanf(%d,&w);welcome();return 0;/*主界面函数:*目的:选择各类操作以转至其他页面*/void welcome()system(cls);in

9、t n;void input();void output();void sumput();void goodbye();/读取这个welcome界面并显示FILE *welcome;welcome=fopen(c:/新建文件夹/welcome.txt,r);char s60;while(fgets(s,60,welcome)printf(%s,s); printf(n);/选择进入子页面while(scanf(%d,&n)!=EOF)if(n=1)input(); /调用输入函数else if(n=2)output(); /调用输出函数else if(n=3)sumput();/调用求和函数e

10、lse if(n=4)goodbye();/调用退出函数elseprintf(输入有误,请重新输入:n);/输入错误提示/*数据输入函数:*目的:选择各类操作以转至其他页面*/void input()void welcome();int j,k;int choose(int j,char s20);char s20;for(j=1;j=w+m;j+)printf(请输入第%d个项目名称:,j);scanf(%s,s);for(k=1;k=n;k+)strcpy(jectmanej,s);/输入项目名称(将所输入的数组拷贝至项目组中)j=choose(j,s);/调用项目类型选择

11、函数welcome();/*项目类型选择函数(3或5名)*目的:1.判断所输项目是取前三或前五 2.返回经判断后的项目的编号与名称*/int choose(int j,char s20)int l;int g;int three(int j,char s20);int five(int j,char s20);/输入3,5分别调用不同的函数来判断printf(请选择此项目取前五还是前三(3或5):);while(scanf(%d,&l)!=EOF)if(l=3)g=three(j,s);return g;else if(l=5)g=five(j,s);return g;elseprintf(输

12、入错误,请重新输入:);/*取前3的项目函数*目的:1.按名次判断得分,按项目编号判断男女得分 2.返回经判断后的项目的编号*/int three(int j,char s20)/输入前三名获奖者信息,输入次序为学校编号加获奖者int p,b;for(p=1;pm)numb.womenscouer=numb.womenscouer+5;/从第m个开始为女子项目得分elsenumb.menscouer=numb.menscouer+5;/前m个为男子项目得分/第二名得分为3else if(p=2)jectscouerj=jectscouerj+3;numb.sum

13、=numb.sum+3;if(jm)numb.womenscouer=numb.womenscouer+3;elsenumb.menscouer=numb.menscouer+3;/第三名得分为2else if(p=3)jectscouerj=jectscouerj+2;numb.sum=numb.sum+2;if(jm)numb.womenscouer=numb.womenscouer+2;elsenumb.menscouer=numb.menscouer+2;return j;/*取前5的项目函数*目的:1.按名次判断得分,按项目编号判断男女得分 2.返回经

14、判断后的项目的编号*/int five(int j,char s20)int p,b;/输入前五名获奖者信息,输入次序为学校编号加获奖者for(p=1;pm)numb.womenscouer=numb.womenscouer+7;elsenumb.menscouer=numb.menscouer+7;/第二名得分为5else if(p=2)jectscouerj=jectscouerj+5;numb.sum=numb.sum+5;if(jm)numb.womenscouer=numb.womenscouer+5;elsenumb.menscouer=numb.m

15、enscouer+5;/第三名得分为3else if(p=3)jectscouerj=jectscouerj+3;numb.sum=numb.sum+3;if(jm)numb.womenscouer=numb.womenscouer+3;elsenumb.menscouer=numb.menscouer+3;/第四名得分为2else if(p=4)jectscouerj=jectscouerj+2;numb.sum=numb.sum+2;if(jm)numb.womenscouer=numb.womenscouer+2;elsen

16、umb.menscouer=numb.menscouer+2;/第四名得分为1else if(p=5)jectscouerj=jectscouerj+1;numb.sum=numb.sum+1;if(jm)numb.womenscouer=numb.womenscouer+1;elsenumb.menscouer=numb.menscouer+1;return j;/*选择输出函数:*目的:按规定顺序查询n个学校中某一学校的得分信息*/void output()system(cls);int t,i;void welcome();printf(请输入要查询的学校

17、编号:);while(scanf(%d,&t)!=EOF)/保证所输序号为0 nif(t0 & t=n)for(i=1;i=w+m;i+)printf(学校编号:%d 学校名称:%s 项目编号:%d 项目名称:%s 项目得分:%d 获奖者:%sn,numt.schoolnum,,i,jectmanei,jectscoueri,jectstudentmanei);system(pause);welcome();elseprintf(输入错误,请重新输入:);/*总体输出函数*目的:按规定顺序产生团体总分报表*/void sumput()syst

温馨提示

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

评论

0/150

提交评论