运动会分数统计.docx

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

运动会分数统计.docx

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

运动会分数统计.docx

运动会分数统计

运动会分数统计

【问题描述】

参加运动会有n个学校,学校编号为1n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1m,女子m+1m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、5、3、2、1,前三名的积分分别为:

5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)

【任务要求】功能要求:

1).可以输入各个项目的前三名或前五名的成绩;

2).能统计各学校总分,

3).可以按学校编号、学校总分、男女团体总分排序输出;

4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:

输入数据形式和范围:

20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:

有中文提示,各学校分数为整形

界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:

学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)

请在最后的上交资料中指明你用到的存储结构;

测试数据:

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;【测试数据】自行设定,注意边界等特殊情况。

*/

一、需求分析3

二、概要设计1

三、详细设计3

四、程序调试与实现

7

五、用户使用说明

错.误!

未定义书签

六、附录

错..误!

未定义书签

、需求分析

问题分析

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

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

系统功能分析

1•根据基本数据输入相关的信息

2.根据要求输出所需信息

3.查找所需信息

4.结束运行

、概要设计

根据运动会分数统计系统问题的分析和设计要求,可以将该系统分为四大模块:

输入信息模块、输入信息模块、查询信息模块和退出系统模块

(1)输入信息模块实现信息的输入和存档

(2)输出信息是根据要求实现相关信息的排序输出

(3)查询信息根据要求查询信息

(4)退出系统结束系统

三、详细设计

(二)输出信息模块设计{design");}

 

yes

*

项目名称

名次

No'

结束

 

(三)输出信息模块设计{design2();}

Yes

 

(四)查询模块{design3();}

结束

 

四、程序调试与实现

学校编号

学校名称

项目编号1

名次

项目编号2

名次

项目编号3

名次

项目名称

(3名)跳

(5名)

100m

(3名)跳

1

北理工

1

2/3

0

2

吉大

2

1/5

1

3

北师大

3

4

3

1、全部合法数据

■C:

\LJ%prs\asus\De«iktop^DebLig\Cpp1ere1

戏迎卓

MMMMMNMMMKWMHKW

・|-谥垣早袖出一拧霍古-Rnr^BIBSff-1234

XKM耳it*KMK耳H-x

XXM

X

X

K

K

2无壬也Jl:

l取P取

A

—14

顷冃镰号曲农□电称廿阳理置几T名汰之申萱召秒詔申译甲涉;J

删拼音辎入法罕:

 

轲和*趾"Bi几^<5/3>3几-FiGm

>

9\Use臥节u引DesktopVDebug\Cpp1.exe*

—冃阿属

球•弔

跖遍号称苔个注

B0

-"「节E_

2

-K31吉寧21S5B2-Kwn**»-€Jr^ulpits八A'镐初逻克几名a输青

5

号称务个丛衣U卿七几几若石□nn.刖得u倚弹而"血

*C:

\U號巧治sus\Dfsktop\Debiig\Cpp"iexe*

■Mr

KXSrfXK!

比伙JtK箕fcl箕MEMJtKatfKiW

■*-•**■

jlI)y

EWWWW齐■^glQj注半:

*]

X

1

■B/3我理T1豈詔lEWj刖得春

取趣

詬輕<5名13

号称

爼克几名

□m前4异一二丄gA耳

械Z3决;3叮;1订<5名:

3e称W称名八表第miiil器寻事顼舉输

KM

 

^9口

ZZIQl

蛊谊NMNM-M-MN

网El齊台

b9

■■■I*

"■』、1亠:

叫、芦|1為匡寺寿囂2^41

»白*白-Ldd,bnq^a\dop|sa

4里至“田虫耳省陡趾r哮

----

£rxH¥罢奎曰尊命單ZSJO

^rr

0ITSLH亠

¥

5朴腐雷鉛

±里

&S曾fn^BdlDITbracd

'^MMHKKHMJCKKW

W-»I■•SB*•*■!

■国耳芦屛鼻矗住促悯蠹

T:

m•w*M~a<«■mit4<•mnatatmvm・

•悬-民址・員Ji•■:

憾■•Ju■豐**M!

■Jt豐哇伍斗厲

址工电■豎・童耐翼•置童WMM•良廿・・

■*■■•if■■■*・-■*

MMKMM-KMM-M44MM昇聲显飄K

一axaj_dd^\6nqaa\dcv|5^a\5n^e\sjesn\:

3*

 

—欢哩便用肯管H*H*1尹ri申比阪1a■!

""■""■""冃Z.阳|*・版ZJw■:

wmtri・'■!

_

H-diM!

!

■■■«.Ila■■h»«»■<»斗.

2WO5K一

.;.仁1=;仁八一

exe

tubumHdHUUUHd0门和沟w-tlR®_8a^

v■■aeb-v■■■■44vrr-rvvvW|l

■・—ii|iififKlffg亠

工欣辭卜P帀fJxXM■t3zv1L33ILI2w-=1Ik-JJ1LOd护卫鬣第5-&or:

1£豊ay

请选掙更匹理步興的ifi可

MXMXKM-MX

====嚴诅倍宙

瑶U曲瞬;3•狀打

施埠夢再砚捋瞬荒编哥:

J

卜wnn・uat■ifaaat■tr].

卿WfMCTe+rWPMHTHXlWHWeWWg£J^jET巨

IfWHI

*

K

IH

M・X

K

X

M

S

LLH

135凤51

亠於

LL2

主世r

盒偏W-J5^

£岀询岀

•吟辎'暫_也

-.hiHa-3A^ud咬s.rj^-s.

4S-V-

舌诜偉亘询方式江

 

IPRIMI

C:

\Use苫\孑slis\Desktop\D1exe"

该顶目取前昭•学瞬号为2的成绩女[fpSK=i荻5

请选择“』拔注.跳岀、

■ffr

取卷岔数统计益统=—KKK=

^™L|Jm_rmn_«!

.■-»■uw-r■■_■mtsr-urt-irJ”■*~~r~七”■li_rmj=■_»■■_■■■亠m_i

■-"~~"F55®'理■理■■理■■■■■

F^~lIJ~~FI*«^a«uI_M■_»■^-aMJi~~r~、”■*r~bj一■_»■1—am_i*

4d退出壬统料・iMM悔PfKitK科1<科・>1恒・1<・・

駅迎使fflga

*****2.&B

""—r*«a_»rX■_»■■«•■WJ^-aanj-!

-■_r~_rRJ

KHRMRJa

校学的

54

■■

2,4-

I»-2

取:

1

r甘-吕「〕「口吕一「氐.丄前咬WW詁S齧项曾

hurri.e^t-记鼻乐

jiff's*»!

■«■■»>i^r

«i-i!

>-!

i-S£4:

舅团总用女田总分

.:

!

■不事耳¥*宀*¥耳*¥斬||*申界牢4

tty|<钿宕干r.■-.■]■

■rt■■电■才<:

■■吁卞■号宅■■京力T■■4■电■■■4:

唱■■*■十■■J■唱■中亡■■■:

Fh■垃实■■■■亡枣■庁圭■Ft

3

»*屯-**■・**:

>1<««»>>«■>»>yn

钳&号

址■«*•«*卄■审*»*卄》申*4,

12

13

11

 

2、整体非法数据

*CrMJser&\asus\Desktop\Debug\Cpp1.exe'

3、局部非法数据

9C;\Users\a5us\DwktopXDctHiig\Cpp1.exe

?

=用输巨?

-

«A«

 

五、用户使用说明

1.首先,请根据要求输入所需数据。

2.系统自动设置学校个数:

3个;男子项目:

2个;女子项目:

1个。

如果需要更改其个数,只需将#definen3(学校数目)、#definem2(男子项目数目)、#definew1(女子项目数目)中的个数进行更改,即可解决问题。

3•输入的数据存入名叫num.txt的文档中,如有需要可以查询。

六、附录

源代码

#include

#include

#include

#include

#definen3//学校数目

#definem2//男子项目数目

#definew1//女子项目数目

#definenull0

voiddesign1();

voiddesign2();

voiddesign3();

intchoice,sign;typedefstruct{

intitemnum;//项目编号

charname;//项目名称

inttop;//取名次的数目

intrange[5];//名次

intmark[5];//分数

}itemnode;//定义项目结点的类型

typedefstruct

{

intschoolnum;//学校编号

charschoolname[20];〃学校名字

intscore;//学校总分intmscore;//男团体总分intwscore;//女团体总分itemnodec[m+w];//项目数组

}headnode;//定义头结点类型

headnodeh[n];〃定义一个头结点数组

voidmain()//主函数

{

printf("============欢迎使用运动会分数统计系统===========\n");

printf("*****************

1.

输入信息

*********************\n")

printf("*****************

2.

输出信息

*********************\n")

printf("*****************

3.

查询信息

*********************\n")

printf("*****************

4.

退出系统

*********************\n")

printf("=================================================\n");printf("\n");

printf("请选择要实现步骤的编号:

");scanf("%d",&choice);

printf("\n");

switch(choice)

{

case1:

//输入信息

design1();break;

case2:

//输出信息

design2();break;

case3:

//查询信息

design3();break;

case4:

//退出系统

printf("使用结束\n");break;

default:

//输入有误

\n");

printf("输入有误,请选择一个正确的编号main();

break;

}

}

voiddesign1()//输入信息

{

FILE*fp1;

inti,j,k,s;

for(i=0;i

{

h[i].score=0;

h[i].mscore=0;

h[i].wscore=0;

}//初始化头结点

for(i=0;i

{

printf("请输入学校编号:

");

scanf("%d",&h[i].schoolnum);

printf("学校名称:

");

scanf("%s",&h[i].schoolname);for(j=0;j

{printf("项目编号:

");

scanf("%d",&h[i].c[j].itemnum);printf("项目名称:

");

scanf("%s",&h[i].c[j].name);

printf("取前几名(5/3)");

scanf("%d",&h[i].c[j].top);

printf("取得几个名次:

");

scanf("%d",&k);//输入项目信息

for(s=0;s<5;s++)

h[i].c[j].range[s]=0,h[i].c[j].mark[s]=0;//初始化排名和分数for(s=0;s

{

if(h[i].c[j].top==3)//取前3名记分

{

printf("取得名次:

");

scanf("%d",&h[i].c[j].range[s]);//输入所获名次信息printf("取得名次:

");

scanf("%d",&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;

break;

case2:

h[i].c[j].mark[s]=3;

break;

case3:

h[i].c[j].mark[s]=2;

break;

}

}

elseif(h[i].c[j].top==5)//取前5名记分

{

printf("取得名次:

");

scanf("%d",&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]=7;

break;

case2:

h[i].c[j].mark[s]=5;break;

case3:

h[i].c[j].mark[s]=3;break;

case4:

h[i].c[j].mark[s]=2;break;

case5:

h[i].c[j].mark[s]=1;break;

}

}

else

{

printf("输入有误,请重新输入!

\n");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];

}printf("\n");

}

运动会分数统计系

}fp1=fopen("num.txt","a");

fprintf(fp1,"************************

**********************\n");

\n");

fprintf(fp1,"学校编号学校名字学校总分男团总分女团总分

for(i=0;i

{

fprintf(fp1,"%2d",h[i].schoolnum);//学校编号

fprintf(fp1,"%10s",h[i].schoolname);//学校名称

fprintf(fp1,"%2d",h[i].score);//学校总分

fprintf(fp1,"%2d",h[i].mscore);//男团总分

fprintf(fp1,"%2d\n",h[i].wscore);//女团总分

fclose(fp1);

main();

}

voiddesign2()//输出函数

{

inti,j,k;

intremember[n];intsign;

do

 

printf(

1.

printf(

*2.

printf(

H******************

*3.

printf(

H******************

*4.

按学校编号输出.\n");按学校总分输出.\n");按男团总分输出.\n");按女团总分输出.\n");

 

printf("\n");

printf("请选择编号:

");scanf("%d",&choice);switch(choice)

case1:

//按学校编号输出for(i=0;i

%d\n",h[i].schoolnum);

printf("

printf("

printf("

printf("}break;

学校名称:

%s\n",h[i].schoolname);

学校总分:

%d\n",h[i].score);

男团总分:

%d\n",h[i].mscore);

女团总分:

%d\n\n\n",h[i].wscore);

case2:

//按学校总分输出

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

k=remember[i];

remember[i]=remember[j];remember[j]=k;

for(i=0;i

{

printf("学校编号:

%d\n",h[remember[i]].schoolnum);

printf("学校名称:

%s\n",h[remember[i]].schoolname);

printf("学校总分:

%d\n",h[remember[i]].score);

printf("男团总分:

%d\n",h[remember[i]].mscore);

printf("女团总分:

%d\n",h[remember[i]].wscore);

}

break;

case3:

//按男团总分输出

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

k=remember[i];

remember[i]=remember[j];

remember[j]=k;

}

}

for(i=0;i

{

printf("学校编号:

%d\n",h[remember[i]].schoolnum);

printf("男团总分:

%d\n",h[remember[i]].mscore);

printf("学校名称:

%s\n",h[remember[i]].schoolname);

printf("学校总分:

%d\n",h[remember[i]].score);

printf("女团总分:

%d\n",h[remember[i]].wscore);

}

break;

case4:

//按女团总分输出

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

k=remember[i];

remember[i]=remember[j];remember[j]=k;

for(i=0;i

{

printf("学校编号:

%d\n",h[remember[i]].schoolnum);

printf("学校名称:

%s\n",h[remember[i]].schoolname);

printf("女团总分:

%d\n\n\n",h[remember[i]].wscore);

printf("学校总分:

%d\n",h[remember[i]].score);

printf("男团总分:

%d\n",h[remember[i]].mscore);

}

break;

}

printf("请选择(1.继续;2.跳出)\n");

scanf("%d",&sign);

}while(sign==1);

main();

}

voiddesign3()//查询函数

{

inti,j,k,s;

printf("*******************1.按学校编号查询.\n");

printf("*******************2:

按项目编号查询.\n");

printf("\n");

printf("请选择查询方式:

");

scanf("%d",&choice);

printf("\n");

switch(choice)

{

case1:

{

do

{

printf("请输入查询的学校编号:

");

scanf("%d",&i);

printf("\n");

if(i>n)

printf("错误:

这个学校没有参加此次运动会!

\n");else

{

printf("项目编号:

");

scanf("%d",&j);

printf("\n");

printf("\n");

if(j>m+w||j==0)

则输出警告

else{

printf("该项目取前%d名,学校编号为%d的成绩如下:

\n",h[0].c[j-1].top,i);

for(k=0;k<5;k++)if(h[i-1].c[j-1].r

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

当前位置:首页 > 工作范文 > 行政公文

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

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