运动会分数统计Word文件下载.docx

上传人:b****7 文档编号:22623242 上传时间:2023-02-04 格式:DOCX 页数:28 大小:390.73KB
下载 相关 举报
运动会分数统计Word文件下载.docx_第1页
第1页 / 共28页
运动会分数统计Word文件下载.docx_第2页
第2页 / 共28页
运动会分数统计Word文件下载.docx_第3页
第3页 / 共28页
运动会分数统计Word文件下载.docx_第4页
第4页 / 共28页
运动会分数统计Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

运动会分数统计Word文件下载.docx

《运动会分数统计Word文件下载.docx》由会员分享,可在线阅读,更多相关《运动会分数统计Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

运动会分数统计Word文件下载.docx

【测试数据】

自行设定,注意边界等特殊情况。

*/

 

一、需求分析

(一)问题分析

该系统所应包含的信息为:

学校编号、学校名称、运动项目编号、运动项目名称、学校总分、男团总分和女团总分等。

(二)系统功能分析

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"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1