运动会分数统计系统.doc
《运动会分数统计系统.doc》由会员分享,可在线阅读,更多相关《运动会分数统计系统.doc(19页珍藏版)》请在沃文网上搜索。
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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 分数 统计 系统