




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文格式为Word版,下载可任意编辑 数据结构课程设计运动会分数统计 数据布局课程设计报告 (一 ) 课题一 运动会分数统计 1. 任务 加入运动会有 n 个学校,学校编号为 1n。比赛分成 m 个男子工程,和 w 个女子工程。工程编号为男子 1m 女子 m+1m+w 不同的工程取前五名或前 三名积分;取前五名的积分分别为: 7、5、3、2、1,前三名的积分分别为: 5、 3、2;哪些工程取前五名或前三名由学生自己设定。 (m=20,n=20) 2. 功能要求 1) 可以输入各个工程的前三名或前五名的劳绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4)
2、 可以按学校编号查询学校某个工程的处境; 5) 可以按工程编号查询取得前三或前五名的学校。 3. 需求分析 在程序中,用户输入各运动会工程的排名处境, 程序会计算出各校的得分情 况存储于依次表中,可供查询。 4. 概要设计 struct int order5; / sub10; struct int score; / int score1; / int score2; / sch5; 程序调用关系如下: 工程排名 学校总分 学校男团总分 学校女团总分 主程序模块 劳绩输入模块 总分输出模块 排名查询模块 学校处境查询模块 工程处境查询模块 5. 细致设计 #i nclude win dows.
3、h #i ncludestdio.h #i ncludestdlib.h char SCHOOL513=东华大学,上海交大,复旦大学,同济大学,华东 师范大学; char SUBJECT1010=男子 100 米,男子 200 米,男子 400 米,男子跳高 , 男子跳远,女子跳高,女子跳远,女子铅球, 女子 100,女子 400 米; int SCORE25=7,5,3,2,1,5,3,2; struct / int order5; sub10; 存储工程信息 / 排名 struct / r 存储学校信息 int score; / 学校总分 int score1; / 学校男团总分 int
4、score2; / 学校女团总分 sch 5; int menu(); void fun c1();/ 输入劳绩 void calculate。; / 计算各校劳绩 void func2(); / 输出各校总分 int menu2(); void func31(); / 按学校编号输出各项劳绩 void func32(); / 排序输出各校总分 void func33(); / 排序输出各校男团总分 void func34(); / 排序输出各校女团总分 void func4(); / 输出学校处境 void func5(); / 输出工程处境 int main() menu(); int m
5、enu() int n; printf( _ n); printf( MENU n); printf( 1. 输入劳绩 n); printf( 2. 各校总分 n); printf( 3. 劳绩排序 n); printf( 4. 学校处境 n); printf( 5. 工程处境 n); printf( 6. 退出系统 nn); printf( 请输入编号 :); scanf(%d,n); system(cls); switch(n) case 1:func1();calculate();break; case 2:func2();break; case 3:menu2();break; cas
6、e 4:func4();break; case 5:func5();break; case 6:return 0; default:menu(); menu(); void func1() int i; printf( _ n); printf( 请输入各体育工程名次所对学校编号 n); printf( 学校编号 (1: 东华大学, 2: 上海交大, 3: 复旦大学, 4: 同济大学, 5 华东师范大学 ,0: for(i=0;i10;i+) printf( %d.%s scanf(%d,subi.order0); if(subi.order0=0) menu(); printf(n scan
7、f(%d,subi.order1); if(subi.order1=0) menu(); printf(n scanf(%d,subi.order2); if(subi.order2=0) menu(); if(i%2=0) printf(n scanf(%d,subi.order3); if(subi.order3=0) menu(); printf(n scanf(%d,subi.order4); if(subi.order4=0) menu(); system(cls); 退出 ) n); 第一名 :,i+1,SUBJECTi); 其次名 :); 第三名 :); 第四名:); 第五名:)
8、; void calculate() int i,j,k; for(i=0;i5;i+) for(j=0;j5;j+) / if(j%2=0) 求出各校男团总分 for(k=0;k5;k+) if(subj.orderk=i+1) schi.score1=schi.score1+SCORE0k; else for(k=0;k3;k+) if(subj.orderk=i+1) schi.score1=schi.score1+SCORE1k; for(;j10;j+) / 求出各校女团总分 if(j%2=0) for(k=0;k5;k+) if(subj.orderk=i+1) schi.scor
9、e2=schi.score2+SCORE0k; else for(k=0;k3;k+) if(subj.orderk=i+1) schi.score2=schi.score2+SCORE1k; schi.score=schi.score1+schi.score2; / void func2() int i; printf( _ printf( 各校总分 求出各校总分 _ n); n); for(i=0;i5;i+) printf( %d.%s %d 分 n,i+1,SCHOOLi,schi.score); printf(nn 输入任意值返回 ); getch(); system(cls); i
10、nt menu2() int n; printf( _ n); printf( 劳绩排序 n); printf( 1. 按学校编号 n); printf( 2. 按学校总分 n); printf( 3. 按男团总分 n); printf( 4. 按女团总分 n); printf( 5. 返回 nn); printf( 请输入编号 :); scanf(%d,n); system(cls); switch(n) case 1:func31();break; case 2:func32();break; case 3:func33();break; case 4:func34();break; ca
11、se 5:menu(); default:menu2(); return 0; void func31() int i; printf( _ n); printf( 按学校编号排序 n); for(i=0;i5;i+) 学校总分 %d 分n,i+1,SCHOOLi,schi.score); 男团总分 d 分n,schi.score1); 女团总分 %d 分n,schi.score2); printf( %d.%s printf( printf( printf(nn 输入任意值返回 ); getch(); system(cls); void func32() int a52,i,j,p,q,k;
12、 printf( _ n); for(p=0;p5;p+) printf( %d.%s %d 分 n,p+1,SCHOOLap0,schp.score); printf(nn 输入任意值返回 ); getch(); system(cls); void func33() int a52,i,j,p,q,k; printf( _ n); printf( 按男团总分排序 n); for(p=0;p5;p+) / 将各校男团总分从大到小排列 ap0=p; ap1=schp.score1; for(i=0;i4;i+) for(j=0;j4;j+) if(ai1ai+11) q=ai1; ai1=ai+
13、11; ai+11=q; printf( for(p=0;p5;p+) ap0=p; ap1=schp.score; for(i=0;i4;i+) / for(j=0;j4;j+) if(ai1ai+11) q=ai1; ai1=ai+11; ai+11=q; k=ai0; ai0=ai+10; ai+10=k; 按学校总分排序 将各校总分从大到小排序 n); k=ai0; ai0=ai+10; ai+10=k; for(p=0;p5;p+) printf( %d.%s %d 分 n,p+1,SCHOOLap0,schp.score1); printf(nn 输入任意值返回 ); getch(
14、); system(cls); void func34() int a52,i,j,p,q,k; printf( _ n); printf( 按女团总分排序 n); for(p=0;p5;p+) / 将各校女团总分从大到小排列 ap0=p; ap1=schp.score2; for(i=0;i4;i+) for(j=0;j4;j+) if(ai1ai+11) q=ai1; ai1=ai+11; ai+11=q; k=ai0; ai0=ai+10; ai+10=k; for(p=0;p5;p+) printf( %d.%s %d 分 n,p+1,SCHOOLap0,schp.score2); p
15、rintf(nn 输入任意值返回 ); getch(); system(cls); void func4() int i,j,a,b=0; printf( _ n); printf( 学校处境 n); printf( 学校编号 (1: 东华大学, 2: 上海交大, 3: 复旦大学, 4: 同济大学, 5: 华东师范大学 ,0: 退出 )n); printf( 请输入学校编号 :); scanf(%d,i); if(i=0) system(cls); menu(); else if(i5|i0) system(cls); func4(); else printf( 工程编号 (1: 男子 100
16、 米,2: 男子 200 米,3: 男子 400 米,4: 男子跳高 ,5: 男子跳远 n); printf( 6: 女子跳高 ,7: 女子跳远 ,8: 女子铅球 ,9: 女 100,10: 女子 400 米,0:退出)nn); printf( 请输入工程编号 :); scanf(%d,j); if(j=0) system(cls); menu(); else if(j10|j0) system(cls); func4(); else if(j%2!=0) for(a=0;a5;a+) if(subj-1.ordera=i) prin tf(tt%s %s 第 d,SCHOOL i-1,SUB
17、JECTj-1,a+1);break; else for(a=0;a3;a+) if(subj-1.ordera=i) printf(tt %s %s 第 %d SCHOOLi-1,SUBJECTj-1,a+1 ); b=1;break; if(b=0) printf(tt %s %s 未获得名次 ,SCHOOL i-1,SUBJECTj-1); printf(nn 输入任意值返回 ); getch(); system(cls); void func5() int i,j; printf( _ n); printf( 工程处境 n); printf( 工程编号(1: 男子 100 米,2: 男
18、子 200 米,3: 男子 400 米,4: 男子跳高 ,5: 男子跳远 n); printf( 6: 女子跳高 ,7: 女子跳远 ,8: 女子铅球 ,9: 女子 100 米 ,10: 女子 400 米,0: 退出 )n); printf( 请输入工程编号 :); scanf(%d,i); if(i=0) system(cls); menu(); else if(i10|i0) system(cls); func5(); else if(i%2=0) for(j=0;j3;j+) prin tf( 第 ( 名 : sn,j+1,SCH00L(subi-1 .orderj)-1); else f
19、or(j=0;j5;j+) prin tf( 第 %d 名: %sn,j+1,SCHOOL(sub i-1.orderj)-1); printf(nn 输入任意值返回); getch(); system(cls); 6. 调试分析 1 )在函数 calculate 中,将 subj.orderk=i+1 中的 i+1 错写为 i,导致 各校劳绩的统计出错,后面的功能运作展现问题。 2 )在 func4 与 func5 函数中,将 SCHOOL(subi-1.orderj)-1 中的 i-1 错写为i 导致不能输出完整的排名处境。 3 )在 func4 函数中,起初未考虑到被查询学校未获得名次的处境,后将其补 充完整。 7. 用户手册 1) 演示程序的运行环境为 Windows8.1 系统,Microsoft Visual Studio 6.0 中的 Microsoft Visual C+ 6.0 中运行。执行文件为:运动会分数统计 .exe 2) 进入演示程序后即显示 DOS 形式的界面: 3)采纳其他命令后即执行相应运算和显示相应结果F : 学习试学澈据皓构课程设计辰动会分数统计已 ENU入橈绩检出 项退 1 2 3 f 5 6 8.测试结果 1 )主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公交五四活动方案
- 公交分局宣讲活动方案
- 公交集团捐赠活动方案
- 公众号活动方案方案
- 公会交友活动方案
- 公会策划活动方案
- 公共课教研活动方案
- 公关营销活动方案
- 长大的愿望我的梦想想象作文(10篇)
- 阳光房合同协议书
- 浙江开放大学2025年《社区治理》终考测试答案
- 云南省大数据有限公司招聘专业技术人员招聘笔试真题2024
- 汽车电工电子基础教学大纲
- 【MOOC】电动力学-同济大学 中国大学慕课MOOC答案
- 毒理学习题集(含答案)
- 建筑劳务挂靠协议2018参考
- 儿童意外伤害预防-ppt课件
- Revit基础入门课件(PPT 126页)
- 外研版必修二短语(教师版)
- 企业部门单位工伤事故报告书
- 河南中考B补全对话练习补全对话
评论
0/150
提交评论