运动会分数统计系统Word文档下载推荐.docx
- 文档编号:16658968
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:21
- 大小:169.77KB
运动会分数统计系统Word文档下载推荐.docx
《运动会分数统计系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《运动会分数统计系统Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
名次;
};
学校
{学校编号;
项目;
团体总分;
男团体总分;
女团体总分;
2主程序(main)
包括登陆欢迎程序,分数录入程序,查询程序,退出程序
3程序模块机之间的调用关系
需要数据
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)输入其他数据会提示错误输入,重新输入。
流程图
详细设计
1、宏定义:
#defineN2
#definebm4
#definegm3
2、数据类型定义
(1)运动项目的定义:
structmatch{
intmatchnum;
intrank[3];
}mat[bm+gm];
(2)学校的定义:
structschool
{
intschoolnum;
structmatchmat[bm+gm];
inttotal;
intboytotal;
intgirltotal;
}sch[N];
3、函数之间的调用关系
system
算法设计
主要算法的设计思想:
本程序主要是使用顺序表来实现操作。
一个运动会包括运动项目和参加运动会的学校。
因此构造顺序表match,school。
为了操作的方便,设计了一个总目录,选择相应序号进入各个操作,并有错误提示,每完成一个操作程序会提示选择返回目录或退出程序,对于总分的排序使用了冒泡排序。
为了使整个程序界面看起来更加惬意,又添加了背景和字体颜色设置的程序语句。
每个操作前都有操作指南,易于使用。
调试分析
1、由于刚开始程序比较简单,虽能运行,但处理错误的能力很低,后来经过反复的添加修改,使程序能处理了错误,提高了健壮性。
2、开始编时由于不太规范,编译出错后由于程序长,很难找到错误,后来规范了格式,错误容易找到了,以后编程要规范。
3、算法的时空分析
线性表使用的是顺序结构,各种算法的时间复杂度相对比较合理
4、本程序相对来说比较容易看明白,其中涉及到的一些函数相对来说比较容易。
通过调试,运行,基本上达到了要求,但还存在一些缺点。
如:
不够人性化等。
测试结果
<
1>
数据输入(输入成绩如图)
输入:
请输入学校编号:
1
项目编号1234567
第<
名:
1001100
2>
1110010
3>
0000111
2
项目编号1234567
0110011
0001101
1111000
输入成绩后出现总目录(下图);
(1)输入:
输出:
(2)输入:
1返回总目录,再输入:
2
输出:
(3)输入:
3
(4)输入:
4
(5)输入:
5
(6)输入:
6,学校编号输入:
1,项目编号输入:
(7)输入:
2,返回上一级,再输入学校编号:
2,项目编号:
(8)输入:
1,返回总目录;
再输入:
7,输入项目编号:
7
(9)如果输入提示外的数字,例如输入:
则输出错误提示:
(10)输入:
用户使用说明
1、运行环境
Windows,VC++6.0
2、用户界面
3、操作过程
(1)用户进入运动会分数统计系统程序欢迎界面
(2)录入成绩,先输入要输入的学校编号,1或2;
再输入对应学校的1-7项目的成绩(成绩用0或1:
‘0’表示没获得该项目的该名次,‘1’表示获得了该项目的该名次)当成绩录入错误时会有错误提示。
(3)进入总目录,按提示,输入0--7中的一个数;
输入:
0则推出系统;
然后选择‘0’或‘1’(‘0’表示退出系统,‘1’表示返回总目录);
5按女团体总分排序输出;
6按学校编号查询学校某个项目编号;
选择学校编号1或2;
然后选择项目编号1--7;
输出项目成绩;
然后选择0或1或2(‘0’表示退出系统,‘1’表示返回总目录,‘2’表示返回上一级);
选择项目编号1--7;
输出成绩;
参考文献
(1)《C程序设计》(第三版)谭浩强著清华大学出版社
(2)《数据结构》(C语言版)作者:
严蔚敏,吴伟民出版社:
清华大学出版社
(3)《数据结构题集》(C语言版)作者:
设计小结
本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。
学习的路很长。
再有要多问,几个人共同讨论会有意想不到的效果
附录
1、源程序
#include<
stdio.h>
process.h>
#defineN2//学校个数
#definebm4//男团体个数
#definegm3//女团体个数
voidxuanze();
voidxunhuan();
structmatch//项目
structschool//学校
voidhuanyingni()/*开始界面,欢迎使用*/
printf("
\n\n电信2010142229谢璇\n\n\n"
);
printf("
\t***^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^***\n\n"
欢迎使用运动会分数统计系统\n\n"
\t***^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^^_^***\n\n"
}
voidinput()//输入成绩
inti,j,k;
for(i=0;
i<
N;
i++)//初始化分数
{
sch[i].total=0;
sch[i].boytotal=0;
sch[i].girltotal=0;
for(k=0;
k<
bm+gm;
k++)
{
sch[i].mat[k].rank[0]=0;
sch[i].mat[k].rank[1]=0;
sch[i].mat[k].rank[2]=0;
sch[i].mat[k].matchnum=k+1;
}
}
*********输入成绩**********\n"
###输入说明:
\n"
1.学校编号为1--%d;
项目编号为1--%d(1-%d为男子项目,%d-%d为女子项目).\n"
N,bm+gm,bm,bm+1,bm+gm);
2.成绩只能是‘0’或‘1’\n(‘0’表示没获得该项目的该名次,‘1’表示获得了该项目的该名次.以'
Tab'
键前进。
)\n"
N);
for(i=0;
i++)
******请输入学校编号:
"
loop3:
scanf("
%d"
&
sch[i].schoolnum);
if(sch[i].schoolnum<
0||sch[i].schoolnum>
N)
printf("
输入错误(只能是1-%d)请重新输入:
"
gotoloop3;
项目编号"
for(k=0;
%d"
sch[i].mat[k].matchnum);
for(j=0;
j<
3;
j++)
{
loop:
第(%d)名:
j+1);
scanf("
%d"
sch[i].mat[k].rank[j]);
if(sch[i].mat[k].rank[j]!
=0&
&
sch[i].mat[k].rank[j]!
=1)
输入错误,请重新输入,成绩只能是‘0’或‘1’\n"
gotoloop;
voidtotaljisuan()
inti,k,b;
for(k=0,b=0;
{
b=sch[i].mat[k].rank[0]*5+sch[i].mat[k].rank[1]*3+sch[i].mat[k].rank[2]*2;
sch[i].total=sch[i].total+b;
if(k<
bm)
sch[i].boytotal=sch[i].boytotal+b;
if(k>
=bm)
sch[i].girltotal=sch[i].girltotal+b;
voidmulu(){
\n\n**系统目录**\n"
//目录
\t\t************************************\n"
\t\t*1.统计各学校总分*\t\n"
\t\t*2.按学校编号排序输出*\t\n"
\t\t*3.按学校总分排序输出*\t\n"
\t\t*4.按男团体总分排序输出*\t\n"
\t\t*5.按女团体总分排序输出*\t\n"
\t\t*6.按学校编号查询学校某个项目情况*\t\n"
\t\t*7.按项目编号查询取得名次的学校*\t\n"
\t\t*0.退出*\t\n"
voidfunct0()//退出系统
\n\t\t*******谢谢使用!
*******\n"
exit(0);
voidfunct1()//统计各学校总分
{inti,q;
**********统计各学校总分**********\n"
**学校编号**\t\t\t\t**总分**\n"
\t%d\t\t\t\t%d\n"
sch[i].schoolnum,sch[i].total);
##########0:
退出;
1:
返回目录。
****请选择:
loop2:
q);
if(q==0)funct0();
if(q==1)xunhuan();
else{
printf("
输入错误(只能是0或1),请重新输入:
gotoloop2;
voidfunct2()//按学校编号排序
structschoolsch1;
inti,j,q;
N-1;
j++)
N-j-1;
if(sch[i].schoolnum>
sch[i+1].schoolnum)
sch1=sch[i];
sch[i]=sch[i+1];
sch[i+1]=sch1;
**********按学校编号排序**********\n"
voidfunct3()//按学校总分排序
if(sch[i].total<
sch[i+1].total)
**********按学校总分排序**********\n"
voidfunct4()//按男团体总分排序
if(sch[i].boytotal<
sch[i+1].boytotal)
**********按男团体总分排序**********\n"
**学校编号**\t\t**总分**\n"
sch[i].schoolnum,sch[i].boytotal);
else{
voidfunct5()//按女团体总分排序
if(sch[i].girltotal<
sch[i+1].girltotal)
**********按女团体总分排序**********\n"
sch[i].schoolnum,sch[i].girltotal);
voidfunct6()//按学校编号查询学校某个项目情况
inti,n,m,q;
**********按学校编号查询学校某个项目情况**********\n"
loop1:
*******请输入所要查询的学校编号:
n);
if(n!
=1&
n!
=2)
!
输入错误,学校编号只能是“0”或“1”,请重新输入!
!
gotoloop1;
*******请输入所要查询的项目编号:
m);
if(n==sch[i].schoolnum)
{
学校编号:
%d项目编号:
%d\n"
n,m);
if(sch[i].mat[m].rank[0]==1)
printf("
第一名(获得)"
if(sch[i].mat[m].rank[1]==1)
第二名(获得)"
if(sch[i].mat[m].rank[2]==1)
第三名(获得)"
else
本校该项目未进入前三名"
返回目录;
2:
返回上一级。
if(q==2)gotoloop1;
输入错误(只能是0或1或2),请重新输入:
voidfunct7()//按项目编号查询取得名次的学校
{
inti,t,q;
**********按项目编号查询取得名次的学校**********\n"
*****请输入所要查询的项目编号:
);
t);
项目编号:
%d\n"
t);
if(sch[i].mat[t-1].rank[0]==1)
获得第一名的学校编号是:
%d\n"
sch[i].schoolnum);
if(sch[i].mat[t-1].rank[1]==1)
获得第二名的学校编号是:
if(sch[i].mat[t-1].rank[2]==1)
获得第三名的学校编号是:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 分数 统计 系统