运动会分数统计.docx

上传人:b****1 文档编号:2444444 上传时间:2023-05-03 格式:DOCX 页数:27 大小:361.65KB
下载 相关 举报
运动会分数统计.docx_第1页
第1页 / 共27页
运动会分数统计.docx_第2页
第2页 / 共27页
运动会分数统计.docx_第3页
第3页 / 共27页
运动会分数统计.docx_第4页
第4页 / 共27页
运动会分数统计.docx_第5页
第5页 / 共27页
运动会分数统计.docx_第6页
第6页 / 共27页
运动会分数统计.docx_第7页
第7页 / 共27页
运动会分数统计.docx_第8页
第8页 / 共27页
运动会分数统计.docx_第9页
第9页 / 共27页
运动会分数统计.docx_第10页
第10页 / 共27页
运动会分数统计.docx_第11页
第11页 / 共27页
运动会分数统计.docx_第12页
第12页 / 共27页
运动会分数统计.docx_第13页
第13页 / 共27页
运动会分数统计.docx_第14页
第14页 / 共27页
运动会分数统计.docx_第15页
第15页 / 共27页
运动会分数统计.docx_第16页
第16页 / 共27页
运动会分数统计.docx_第17页
第17页 / 共27页
运动会分数统计.docx_第18页
第18页 / 共27页
运动会分数统计.docx_第19页
第19页 / 共27页
运动会分数统计.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

运动会分数统计.docx

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

运动会分数统计.docx

运动会分数统计

运动会分数统计

【问题描述】

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

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

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

不同得项目取前五名或前三名积分;

取前五名得积分分别为:

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

5、3、2;

哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)

【任务要求】

功能要求:

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

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

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

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

  规定:

输入数据形式与范围:

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

  输出形式:

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

  界面要求:

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

  存储结构:

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

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

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

测试数据:

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

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

测试数据及测试结果请在上交得资料中写明;

【测试数据】

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

*/

一、需求分析

(一)问题分析

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

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

(二)系统功能分析

1、根据基本数据输入相关得信息

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

3、查找所需信息

4、结束运行

二、概要设计

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

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

(1)输入信息模块实现信息得输入与存档

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

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

(4)退出系统结束系统

三、详细设计

(一)主控模块设计{main();}

case1case2case3case4

default

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

 

Yes

No

yes

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

Yes

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

Yes

Yes

NoNo

四、程序调试与实现

学校编号

学校名称

项目编号1名次

项目编号2名次

项目编号3名次

项目名称

(3名)跳远

(5名)100m

(3名)跳高

1

北理工

1

2/3

0

2

吉大

2

1/5

1

3

北师大

3

4

3

1、全部合法数据

2、整体非法数据

3、局部非法数据

五、用户使用说明

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:

//输入有误

printf("输入有误,请选择一个正确得编号\n");

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");

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

fprintf(fp1,"****************************************************************\n");

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、按学校编号输出、\n");

printf("*******************2、按学校总分输出、\n");

printf("*******************3、按男团总分输出、\n");

printf("*******************4、按女团总分输出、\n");

printf("\n");

printf("请选择编号:

");

scanf("%d",&choice);

switch(choice)

{

case1:

//按学校编号输出

for(i=0;i

{

printf("学校编号:

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

printf("学校名称:

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

printf("学校总分:

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

printf("男团总分:

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

printf("女团总分:

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

}

break;

case2:

//按学校总分输出

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]]、score

{

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

if(h[remember[i]]、mscore

{

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

if(h[remember[i]]、wscore

{

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)

printf("此次运动会没有这个项目\n\n\n");//学校编号超出范围,则输出警告

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]、range[k]!

=0)

{

printf("名次:

%d\n",h[i-1]、c[j-1]、range[k]);//输出要查询学校项目得成绩

}

}

}

printf("\n");

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

scanf("%d",&sign);

}while(sign==1);

break;

}

case2:

{

do

{

printf("请输入查询得项目编号:

");

scanf("%d",&s);

printf("\n");

if(s>m+w||s==0)//项目编号超出范围则输出警告

printf("此次运动会不包括这个项目、\n\n\n");

else//输出该项目取得名次学校得成绩

{

printf("该项目取前%d名,取得名次得学校\n",h[0]、c[s-1]、top);

for(i=0;i

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

if(h[i]、c[s-1]、range[j]!

=0)

printf("学校编号:

%d,名次:

%d\n",h[i]、schoolnum,h[i]、c[s-1]、range[j]);

}

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

scanf("%d",&sign);

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

}while(sign==1);

break;

}

}

main();

}

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2