运动会分数统计Word文件下载.docx
- 文档编号:22623242
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:28
- 大小:390.73KB
运动会分数统计Word文件下载.docx
《运动会分数统计Word文件下载.docx》由会员分享,可在线阅读,更多相关《运动会分数统计Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
【测试数据】
自行设定,注意边界等特殊情况。
*/
一、需求分析
(一)问题分析
该系统所应包含的信息为:
学校编号、学校名称、运动项目编号、运动项目名称、学校总分、男团总分和女团总分等。
(二)系统功能分析
1.根据基本数据输入相关的信息
2.根据要求输出所需信息
3.查找所需信息
4.结束运行
二、概要设计
根据运动会分数统计系统问题的分析和设计要求,可以将该系统分为四大模块:
输入信息模块、输入信息模块、查询信息模块和退出系统模块
(1)输入信息模块实现信息的输入和存档
(2)输出信息是根据要求实现相关信息的排序输出
(3)查询信息根据要求查询信息
(4)退出系统结束系统
三、详细设计
(一)主控模块设计{main();
}
case1case2case3case4
default
(二)输出信息模块设计{design1();
Yes
No
yes
(三)输出信息模块设计{design2();
(四)查询模块{design3();
Yes
NoNo
四、程序调试与实现
学校编号
学校名称
项目编号1名次
项目编号2名次
项目编号3名次
项目名称
(3名)跳远
(5名)100m
(3名)跳高
1
北理工
2/3
2
吉大
1/5
3
北师大
4
1、全部合法数据
2、整体非法数据
3、局部非法数据
五、用户使用说明
1.首先,请根据要求输入所需数据。
2.系统自动设置学校个数:
3个;
男子项目:
2个;
女子项目:
1个。
如果需要更改其个数,只需将#definen3(学校数目)、#definem2(男子项目数目)、#definew1(女子项目数目)中的个数进行更改,即可解决问题。
3.输入的数据存入名叫num.txt的文档中,如有需要可以查询。
六、附录
源代码
#include<
stdio.h>
math.h>
#include<
conio.h>
process.h>
#definen3//学校数目
#definem2//男子项目数目
#definew1//女子项目数目
#definenull0
voiddesign1();
voiddesign2();
voiddesign3();
intchoice,sign;
typedefstruct
{
intitemnum;
//项目编号
charname;
//项目名称
inttop;
//取名次的数目
intrange[5];
//名次
intmark[5];
//分数
}itemnode;
//定义项目结点的类型
intschoolnum;
//学校编号
charschoolname[20];
//学校名字
intscore;
//学校总分
intmscore;
//男团体总分
intwscore;
//女团体总分
itemnodec[m+w];
//项目数组
}headnode;
//定义头结点类型
headnodeh[n];
//定义一个头结点数组
voidmain()//主函数
printf("
============欢迎使用运动会分数统计系统===========\n"
);
*****************1.输入信息*********************\n"
*****************2.输出信息*********************\n"
*****************3.查询信息*********************\n"
*****************4.退出系统*********************\n"
=================================================\n"
\n"
请选择要实现步骤的编号:
"
scanf("
%d"
&
choice);
switch(choice)
{
case1:
//输入信息
design1();
break;
case2:
//输出信息
design2();
case3:
//查询信息
design3();
case4:
//退出系统
printf("
使用结束\n"
default:
//输入有误
输入有误,请选择一个正确的编号\n"
main();
}
}
voiddesign1()//输入信息
FILE*fp1;
inti,j,k,s;
for(i=0;
i<
n;
i++)
{
h[i].score=0;
h[i].mscore=0;
h[i].wscore=0;
}//初始化头结点
printf("
请输入学校编号:
scanf("
h[i].schoolnum);
学校名称:
%s"
h[i].schoolname);
for(j=0;
j<
m+w;
j++)
项目编号:
scanf("
h[i].c[j].itemnum);
项目名称:
h[i].c[j].name);
取前几名(5/3)"
h[i].c[j].top);
取得几个名次:
k);
//输入项目信息
for(s=0;
s<
5;
s++)
h[i].c[j].range[s]=0,h[i].c[j].mark[s]=0;
//初始化排名和分数
k;
{
if(h[i].c[j].top==3)//取前3名记分
{
printf("
取得名次:
scanf("
h[i].c[j].range[s]);
//输入所获名次信息
switch(h[i].c[j].range[s])
{
case0:
h[i].c[j].mark[s]=0;
break;
case1:
h[i].c[j].mark[s]=5;
case2:
h[i].c[j].mark[s]=3;
case3:
h[i].c[j].mark[s]=2;
}
}
elseif(h[i].c[j].top==5)//取前5名记分
//输入所获名次信息
h[i].c[j].mark[s]=7;
case4:
case5:
h[i].c[j].mark[s]=1;
else
输入有误,请重新输入!
design1();
h[i].score=h[i].score+h[i].c[j].mark[s];
//记录总分
if(j<
=m-1)//记录男团总分
h[i].mscore=h[i].mscore+h[i].c[j].mark[s];
else//记录女团总分
h[i].wscore=h[i].wscore+h[i].c[j].mark[s];
}
}
}
fp1=fopen("
num.txt"
"
a"
fprintf(fp1,"
************************运动会分数统计系统**********************\n"
学校编号学校名字学校总分男团总分女团总分\n"
****************************************************************\n"
fprintf(fp1,"
%2d"
h[i].schoolnum);
%10s"
h[i].schoolname);
//学校名称
h[i].score);
h[i].mscore);
//男团总分
%2d\n"
h[i].wscore);
//女团总分
}
fclose(fp1);
main();
voiddesign2()//输出函数
inti,j,k;
intremember[n];
intsign;
do
*******************1.按学校编号输出.\n"
*******************2.按学校总分输出.\n"
*******************3.按男团总分输出.\n"
*******************4.按女团总分输出.\n"
请选择编号:
switch(choice)
//按学校编号输出
for(i=0;
printf("
学校编号:
%d\n"
%s\n"
学校总分:
h[i].score);
男团总分:
女团总分:
%d\n\n\n"
//按学校总分输出
remember[i]=i;
for(j=i+1;
if(h[remember[i]].score<
h[j].score)
{
k=remember[i];
remember[i]=remember[j];
remember[j]=k;
}
h[remember[i]].schoolnum);
h[remember[i]].schoolname);
h[remember[i]].score);
h[remember[i]].mscore);
h[remember[i]].wscore);
//按男团总分输出
if(h[remember[i]].mscore<
h[j].mscore)
//按女团总分输出
if(h[remember[i]].wscore<
h[j].wscore)
请选择(1.继续;
2.跳出)\n"
sign);
}while(sign==1);
voiddesign3()//查询函数
*******************1.按学校编号查询.\n"
*******************2:
按项目编号查询.\n"
请选择查询方式:
case1:
{
do
请输入查询的学校编号:
i);
if(i>
n)
错误:
这个学校没有参加此次运动会!
{
scanf("
j);
if(j>
m+w||j==0)
printf("
此次运动会没有这个项目\n\n\n"
//学校编号超出范围,则输出警告
else
该项目取前%d名,学校编号为%d的成绩如下:
h[0].c[j-1].top,i);
for(k=0;
k<
k++)
if(h[i-1].c[j-1].range[k]!
=0)
{
printf("
名次:
h[i-1].c[j-1].range[k]);
//输出要查询学校项目的成绩
}
}
}while(sign==1);
case2:
请输入查询的项目编号:
s);
if(s>
m+w||s==0)//项目编号超出范围则输出警告
此次运动会不包括这个项目.\n\n\n"
else//输出该项目取得名次学校的成绩
该项目取前%d名,取得名次的学校\n"
h[0].c[s-1].top);
for(i=0;
i<
for(j=0;
if(h[i].c[s-1].range[j]!
学校编号:
%d,名次:
h[i].schoolnum,h[i].c[s-1].range[j]);
\n\n\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 分数 统计