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

加入VIP,免费下载资源
 

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

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

下载须知

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

版权提示 | 免责声明

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

运动会分数统计系统.doc

1、课程设计题选一:运动会分数统计系统一. 需求分析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) 可以按学校编号查询学校某个项目的情况;5) 可以按项目编号查询取得前三或前五名的学校。3

2、.测试数据1)首先进入成绩录入界面,先输入学校编号1,再输入学校1各个项目成绩0或1(0表示没获得该项目的该名次,1表示获得了该项目的该名次);然后再输入第二个学校编号2,再输入成绩;当输入其他的学校编号和成绩会提示错误输入,重新输入。 2)然后进入总目录,输入 :1 统计各学校总分并输出; 3)输入:2 按学校编号排序输出; 4)输入:3 按学校总分排序输出; 5)输入:4 按男团体总分排序输出; 6)输入: 5 按女团体总分排序输出; 7) 输入:6 按学校编号查询学校某个项目情况; 8)输入:7 按项目编号查询取得名次的学校; 9)输入:0 退出系统; 10)输入其他数据会提示错误输入,

3、重新输入。二概要设计 1 结构体运动项目 项目编号 ;名次;学校 学校编号;项目;团体总分;男团体总分;女团体总分;2 主程序(main) 包括登陆欢迎程序,分数录入程序,查询程序,退出程序3 程序模块机之间的调用 流程 启动程序 录入分数 显示主目录统计各学校总分按学校编号排序按学校总分排序按女团体总分排序按学校编号查询学校某个项目情况查询学校某个项目情况按男团体总分排序按项目编号查询取得名次的学校退出系统用户选择某命令,产生相应的操作显示结果,用户选择返回主目录或退出退出程序图三详细设计 1、宏定义:#define N 2#define bm 4#define gm 3 2、数据类型定义

4、(1)运动项目的定义: struct matchint matchnum;int rank3;matbm+gm;(2) 学校的定义: struct schoolint schoolnum;struct match matbm+gm;int total;int boytotal;int girltotal;schN;3、 函数之间的调用关系mainxunhuantotaljisuaninputhuanyingnifunct4funct6funct5funct3funct2funct1funct0mulufunct7system4、 算法设计 主要算法的设计思想:本程序主要是使用顺序表来实现操作。

5、一个运动会包括运动项目和参加运动会的学校。因此构造顺序表match,school。为了操作的方便,设计了一个总目录,选择相应序号进入各个操作,并有错误提示,每完成一个操作程序会提示选择返回目录或退出程序,对于总分的排序使用了冒泡排序。为了使整个程序界面看起来更加惬意,又添加了背景和字体颜色设置的程序语句。每个操作前都有操作指南,易于使用。四测试分析 1、由于刚开始程序比较简单,虽能运行,但处理错误的能力很低,后来经过反复的添加修改,使程序能处理了错误,提高了健壮性。 2、开始编时由于不太规范,编译出错后由于程序长,很难找到错误,后来规范了格式,错误容易找到了,以后编程要规范。 3、算法的时空分

6、析 线性表使用的是顺序结构,各种算法的时间复杂度相对比较合理 4、本程序相对来说比较容易看明白,其中涉及到的一些函数相对来说比较容易。通过调试,运行,基本上达到了要求,但还存在一些缺点。如:不够人性化等。五. 测试结果 数据输入(输入成绩如图)输入:请输入学校编号:1项目编号1234567第名: 1 1 0 1 1 0 0第名: 第名: 0 0 0 0 1 1 1请输入学校编号: 2项目编号 1 2 3 4 5 6 7第名: 0 1 1 0 0 1 1第名: 0 0 0 1 1 0 1第名: 1 1 1 1 0 0 0输入成绩后出现总目录(下图);输出:(1) 输入:1 输出:(2) 输入:1

7、 返回总目录,再输入:2输出:(3) 输入:1 返回总目录,再输入:3输出:(4) 输入:1 返回总目录,再输入:4输出:(5) 输入:1 返回总目录,再输入:5输出:(6) 输入:1 返回总目录,再输入:6,学校编号输入:1,项目编号输入:1输出:(7) 输入:2,返回上一级,再输入学校编号:2,项目编号:3输出:(8) 输入:1,返回总目录;再输入:7,输入项目编号:7输出:(9) 如果输入提示外的数字,例如输入:4则输出错误提示:(10) 输入:0 输出:六参考文献(1) C程序设计(第三版) 谭浩强 著 清华大学出版社(2) 数据结构(C语言版)作者:严蔚敏,吴伟民 出版社:清华大学出

8、版社(3) 数据结构题集(C语言版)作者:严蔚敏,吴伟民 出版社:清华大学出版社七源程序清单#include#include#define N 2 /学校个数#define bm 4 /男团体个数#define gm 3 /女团体个数void xuanze();void xunhuan();struct match /项目int matchnum;int rank3;matbm+gm;struct school /学校int schoolnum;struct match matbm+gm;int total;int boytotal;int girltotal;schN;void huanyi

9、ngni() /*开始界面,欢迎使用*/printf(nn 东华大学信息科学与技术学院电气0910班 周涛涛nnn);printf(t*_ _ _ _ _ _ _ _ _ _ _ _ _ _*nn);printf( 欢迎使用运动会分数统计系统nn);printf(t*_ _ _ _ _ _ _ _ _ _ _ _ _ _*nn );void input() /输入成绩int i,j,k;for(i=0;iN;i+) /初始化分数schi.total=0;schi.boytotal=0;schi.girltotal=0;for(k=0;kbm+gm;k+)schi.matk.rank0=0;sc

10、hi.matk.rank1=0;schi.matk.rank2=0;schi.matk.matchnum=k+1;printf(*输入成绩*n); printf(#输入说明:n); printf( 1.学校编号为1-%d; 项目编号为1-%d (1-%d为男子项目,%d-%d为女子项目).n,N,bm+gm,bm,bm+1,bm+gm); printf( 2. 成绩只能是0或1n(0表示没获得该项目的该名次,1表示获得了该项目的该名次.以Tab键前进。)n,N);for(i=0;iN;i+) printf(*请输入学校编号: );loop3:scanf(%d,&schi.schoolnum);

11、 if(schi.schoolnumN) printf(输入错误(只能是1-%d)请重新输入:,N); goto loop3; printf(项目编号); for(k=0;kbm+gm;k+) printf(%d,schi.matk.matchnum); printf(n); for(j=0;j3;j+) loop: printf(第(%d)名:,j+1); for(k=0;kbm+gm;k+) scanf(%d,&schi.matk.rankj); for(k=0;kbm+gm;k+) if(schi.matk.rankj!=0&schi.matk.rankj!=1) printf(输入错误

12、,请重新输入,成绩只能是0或1n); goto loop; void totaljisuan()int i,k,b; for(i=0;iN;i+)for(k=0,b=0;kbm+gm;k+) b=schi.matk.rank0*5+schi.matk.rank1*3+schi.matk.rank2*2; schi.total=schi.total+b;if(k=bm)schi.girltotal=schi.girltotal+b;void mulu()printf(nn *系统目录*n); /目录printf(tt *n);printf(tt* 1.统计各学校总分 *t n);printf(t

13、t* 2.按学校编号排序输出 *t n);printf(tt* 3.按学校总分排序输出 *t n);printf(tt* 4.按男团体总分排序输出 *t n);printf(tt* 5.按女团体总分排序输出 *t n);printf(tt* 6.按学校编号查询学校某个项目情况 *t n);printf(tt* 7.按项目编号查询取得名次的学校 *t n);printf(tt* 0.退出 *t n);printf(tt *n);void funct0() /退出系统printf(ntt* 谢谢使用! *n);printf(ntt* 谢谢使用! *n);exit(0);void funct1()

14、/统计各学校总分 int i,q;printf(*统计各学校总分*n); printf(*学校编号*tttt*总分*n); for(i=0;iN;i+) printf(t%dtttt%dn,schi.schoolnum,schi.total);printf(n);printf(n);printf(# 0:退出;1:返回目录。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=0) funct0();if(q=1) xunhuan(); else printf(输入错误(只能是0或1),请重新输入:); goto loop2;void funct2() /按学校编

15、号排序struct school sch1;int i,j,q;for(j=0;jN-1;j+)for(i=0;ischi+1.schoolnum)sch1=schi;schi=schi+1;schi+1=sch1; printf(*按学校编号排序*n);printf(*学校编号*tttt*总分*n); for(i=0;iN;i+) printf(t%dtttt%dn,schi.schoolnum,schi.total);printf(n);printf(n);printf(# 0:退出;1:返回目录。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=0) f

16、unct0();if(q=1) xunhuan(); else printf(输入错误(只能是0或1),请重新输入:); goto loop2; void funct3() /按学校总分排序 struct school sch1;int i,j,q;for(j=0;jN-1;j+)for(i=0;iN-j-1;i+)if(schi.totalschi+1.total)sch1=schi;schi=schi+1;schi+1=sch1; printf(*按学校总分排序*n);printf(*学校编号*tttt*总分*n); for(i=0;iN;i+) printf(t%dtttt%dn,sch

17、i.schoolnum,schi.total); printf(n);printf(n);printf(# 0:退出;1:返回目录。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=0) funct0();if(q=1) xunhuan(); else printf(输入错误(只能是0或1),请重新输入:); goto loop2;void funct4() /按男团体总分排序 struct school sch1;int i,j,q;for(j=0;jN-1;j+)for(i=0;iN-j-1;i+)if(schi.boytotalschi+1.boytot

18、al)sch1=schi;schi=schi+1;schi+1=sch1; printf(*按男团体总分排序*n);printf( *学校编号*tt*总分*n); for(i=0;iN;i+) printf(t%dtttt%dn,schi.schoolnum,schi.boytotal); printf(n);printf(n);printf(# 0:退出;1:返回目录。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=0) funct0();if(q=1) xunhuan(); else printf(输入错误(只能是0或1),请重新输入:); goto l

19、oop2;void funct5() /按女团体总分排序 struct school sch1;int i,j,q;for(j=0;jN-1;j+)for(i=0;iN-j-1;i+)if(schi.girltotalschi+1.girltotal)sch1=schi;schi=schi+1;schi+1=sch1; printf(*按女团体总分排序*n);printf( *学校编号*tt*总分*n); for(i=0;iN;i+) printf(t%dtttt%dn,schi.schoolnum,schi.girltotal); printf(n);printf(n);printf(# 0

20、:退出;1:返回目录。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=0) funct0();if(q=1) xunhuan();else printf(输入错误(只能是0或1),请重新输入:); goto loop2;void funct6() /按学校编号查询学校某个项目情况int i,n,m,q;printf(*按学校编号查询学校某个项目情况*n);loop1:printf(*请输入所要查询的学校编号: );scanf(%d,&n);if(n!=1&n!=2) printf(!输入错误,学校编号只能是“0”或“1”,请重新输入!n); goto loo

21、p1;printf(*请输入所要查询的项目编号: );scanf(%d,&m);for(i=0;iN;i+)if(n=schi.schoolnum) printf(学校编号: %d 项目编号: %dn,n,m);if(schi.matm.rank0=1)printf(第一名(获得) ); if(schi.matm.rank1=1)printf(第二名(获得) ); if(schi.matm.rank2=1)printf(第三名(获得) );elseprintf(本校该项目未进入前三名);printf(n);printf(n);printf(# 0:退出;1:返回目录;2:返回上一级。n);pr

22、intf(*请选择: );loop2:scanf(%d,&q);if(q=1) xunhuan();if(q=0) funct0();if(q=2) goto loop1; else printf(输入错误(只能是0或1或2),请重新输入:); goto loop2;void funct7() /按项目编号查询取得名次的学校 int i,t,q;printf(*按项目编号查询取得名次的学校*n);loop1: printf(*请输入所要查询的项目编号: ) ;scanf(%d,&t);printf(项目编号:%dn,t) ;for(i=0;iN;i+)if(schi.matt-1.rank0=

23、1)printf(获得第一名的学校编号是:%d n,schi.schoolnum);if(schi.matt-1.rank1=1)printf(获得第二名的学校编号是:%d n,schi.schoolnum);if(schi.matt-1.rank2=1)printf(获得第三名的学校编号是:%d n,schi.schoolnum);printf(n);printf(n);printf(# 0:退出;1:返回目录;2:返回上一级。n);printf(*请选择: );loop2:scanf(%d,&q);if(q=1) xunhuan();if(q=0) funct0();if(q=2) got

24、o loop1; else printf(输入错误(只能是0或1或2),请重新输入:); goto loop2;void xunhuan() /返回目录int t; mulu(); printf(tt请选择(输入0-7)序号:t); scanf(%d,&t); while(t!=0&t!=1&t!=2&t!=3&t!=4&t!=5&t!=6&t!=7) printf(输入有误,请重新选择:); scanf(%d,&t); switch(t)case 0:funct0();break;case 1:funct1();break;case 2:funct2();break;case 3:funct3();break;case 4:funct4();break;case 5:funct5();break;case 6:funct6();break;case 7:funct7();break;void main() system(Color 1e); /改变背景,前景色 huanyingni(); input(); totaljisuan(); xunhuan();八用户手册(1) 本程序执行文件为“运动会分数统计系统.exe”。(2) 进入本系统之后,随机显示系统主菜单。用户可在该界面下输入各子菜单相应的数字并按回车键,随即执行相应子菜单命令。(3)19

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922