C语言程序设计运动会成绩统计系统.docx

上传人:b****6 文档编号:5552136 上传时间:2022-12-19 格式:DOCX 页数:23 大小:189.42KB
下载 相关 举报
C语言程序设计运动会成绩统计系统.docx_第1页
第1页 / 共23页
C语言程序设计运动会成绩统计系统.docx_第2页
第2页 / 共23页
C语言程序设计运动会成绩统计系统.docx_第3页
第3页 / 共23页
C语言程序设计运动会成绩统计系统.docx_第4页
第4页 / 共23页
C语言程序设计运动会成绩统计系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言程序设计运动会成绩统计系统.docx

《C语言程序设计运动会成绩统计系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计运动会成绩统计系统.docx(23页珍藏版)》请在冰豆网上搜索。

C语言程序设计运动会成绩统计系统.docx

C语言程序设计运动会成绩统计系统

程序设计工程训练

报告

运动会分数统计系统

C语言程序设计工程训练

信息科学与技术学院

课程名称姓名院(系)专业班级学号指导教师

教务处制

1需求分析.1

2系统总框图和功能模块说明2

2.1系统总框图2

2.2功能模块说明2

3系统设计.3

3.1主要结构体3

3.2主要功能函数3

3.3关键函数的流程图4

4系统调试.4

5总结.7

6源程序清单.7

1需求分析

1问题描述

运动会分数统计

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

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

项目编号为男子1〜m女子m+仁m+w不同的项目取前五名或前三名积分;取前五名的积分分别为:

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

5、3、2;哪些项目取前五名或前三名由使用者设定。

(m<=20,n<=20)

2.基本要求:

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

2)能统计各学校总分;

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

4)可以按学校编号查询学校某个项目的情况;

5)可以按项目编号查询取得前三或前五名的学校。

3.测试数据

1)首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数;

2)然后进入总目录;

3)输入:

1输入成绩;

4)输入:

2统计各校总分;

5)输入:

3统计各校项目得分;

6)输入:

4按学校总分排序输出;

7)输入:

5按男团体总分排序输出;

8)输入:

6按女团体总分排序输出;

9)输入:

7按学校编号查询学校某个项目的成绩;

10)输入:

8按项目编号查询取得前三名或前五名的学校;

11)输入:

0退出;

2系统总框图和功能模块说明

2.1系统总框图

2.2功能模块说明

1)

输入:

1输入成绩;

输入某一项目的成绩

2)

输入:

2

统计各校总分;

•…统计各校所有项目总分之和

3)

输入:

3

统计各校项目得分;••…

•…输出各校各项目得分

4)

输入:

4

按学校总分排序输出;…

……按照总分从大到小排序

5)

输入:

5

按男团体总分排序输出;

••…仅按照男子团体总分从大到小排序

6)输入:

6按女团体总分排序输出;••…仅按照女子团体总分从大到小排序

7)输入:

7按学校编号查询学校某个项目的成绩;•…输入学校编号及项目编号可查询该校的该项

目成绩

8)输入:

8按项目编号查询取得前三名或前五名的学校;•…输入项目编号可查询该项目获得名次

的学校

9)输入:

0退出;退出系统

3系统设计

3.1主要结构体

菜单号choo

学校:

num

项目:

ab

男团、de

女团、ke

3.2主要功能函数

voidexit0()

voidinput()

voideach()

voidbiaohao()

voidzongfen()

voidnanzong()

voidnvzong()

voidxuexiao()

voidxiangmu()

voidmain()

3.3关键函数的流程图

voidzongfen()voidnanzong()voidnvzong()

4系统调试

<1>开始界面,分别输入3、7、3.

 

^ol-rlF_4

In牙

9r

分牛得岀'ItK±ls

3

ii少男女示几儿4有耳

屁;编

 

输入1后显示

请场入反冃代尸:

1

请呻昭第一、第二第三和名棍恢旅辅人菽牲半校仪帛1

£

5

输心总

 

応名

I

JC

M

分个匸IT4iT-t?

1*rT^t井Z-.TU旦号引夢匐:

i!

w^人苗螯奎项±31™™:

:

:

二三二二1234S6789

-H

 

-M

的五

绩的

f

的近

输入2后显示

冃前理』分-■5出Frrl

千帛rn.-一l:

h面问

lTn.--I:

b询闻

,匸环卫蓉宜

E'.'-耳巧也吗董爲需

LJ-

-.H

■»

出出蕃常冃逼汙J7逞取KH1m—r「订进宀—f-学总広需嚅ZJTgoss奉黑“一刖Irjrrrt-n-IA丄M上鸟卫,尸-T%—■¥I-rIM.J.r■>;;T■1-

一-*

二-

12345£7"9

WM

学驾号:

团严

顶或廿个二得巒#前讦目“世电-■T学取茅曇只#1£、-比」r—I*"紅~L.-rIEI

入甘学杲玄壬..n出

输入5后显示

 

请选择*5

学校代号啰子团休总成绩

1:

5

2:

3

3:

2

学绩的的古nn^s1.个一一

俗出岀某前的岀

总询的

^KK^S'囹号号成各套团1S入学男窓子I

zz

1S34567B9

输入6后显示

;青选择I6

学绩的finELU恥

富学校

的五

1

女子团体总成绩

0

0

1得岀岀某前的出SSW分畠專学取总询的香一分总思号号

成各套团团校目入男

学校代号

1

2

*

123456789

输入7后显示

!

1

1顶目成绩为5

1

得出出某】的出输分^14*学取总^^^-询分刍特畐号号我各各吱団用瑁吕

输入8后显示

 

0

I:

1+J

*1

1

.・亦

£3顶前的取校

古疋吕*匚「盡A碍

咬咬

冲$子

的五

i分个三得岀岀某前

学取总^询的舍查咬校八卫口蕙号号咸各喬团界目入^^学男蓝于

兰**二解**二一M**二呉共*二二乂**兰HWM*二一兰**M-M--M-*二=

1234SG7009

 

输入9》》》》退出

5总结

本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。

学习的路很长。

再有要多问,几个人共同讨论会有意想不到的效果

6源程序清单

#include

#include

inta,b,c,d,i,j;

structnode

{

intnum;

};

structnode*f[22];

voidexitO()

{

FILE*fp;

intk;

alp:

if((fp=fopen("e:

\\sore.txt","w"))==NULL)

{

printf("createrror\n");

printf("1*****tryagain\n");

printf("2*****tuichu\n");

printf(”3*****returnmenu\n");//回到主菜单//

alj:

scanf("%d",&k);if(k==1)gotoalp;

elseif(k==2)exit(0);

elseif(k==3)return;

else

{

printf("输入错误,请重新输入:

");gotoalj;

}

}printf(fp,"\n\n");

fprintf(fp,"*运动会分数统计表*\n\n\n");

printf(fp,"*项目代号*");

for(i=1;i<=c+d;i++)

printf(fp,"%5d",i);

printf(fp,"");

printf(fp,"\n*学校代号*");for(i=1;i<=a;i++)

{

printf(fp,"%10d",i);for(b=1;b<=c+d;b++)

{

printf(fp,"%5d",f[i][b].num);

}

printf(fp,"\n");

}

printf(fp,"\n\n");

printf(fp,"the%dschoolnumbers\n\n",a);/*注:

本次运动会有%d个学校参赛*/

printf(fp,"1~%d组是男子组,%d~%d组是女子组\n",c,c+1,c+d);/*其中1~%d组是男子组,%d~%d组是女子组*/printf("\n*比赛成绩已保存到当前路径下的sore.txt文件中*\n\n");/*比赛成绩已保存到当前路径下的"sore.txt"文件中*/fclose(fp);

exit

(1);

}

/*主菜单*/intchoose()

{

intchoo;

printf("\n\n1******

printf("2

******

printf("3*

*****

printf("4*

*****

输入成绩\n");统计各学校的总分\n");统计各学校各项目的得分\n");按学校总分排序输出\n");

 

printf("5******按男团体总分排序输出\n");

printf("6******按女团体总分排序输出\n");

printf("7******按学校编号查询学校某个项目的成绩\n");

printf("8******按项目编号查询取得前三或前五名的学校\n");

printf("9******退出\n\n");

printf("请选择:

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

return(choo-1);

}/*输入信息*/voidinput()

{

intab,ac,ae,af,g=1,get[5]={0,0,0,0,0};printf("\n请输入项目代号:

");

ale:

scanf("%d",&ab);if(ab>c+d||ab<1)

{

printf("\n此项目代号不存在,重新输入:

\n");gotoale;

}

ae=0;for(i=0;i<=a;i++)

{

if(f[i][ab].num!

=0)

{

ae=1;

break;

}

}if(ae==1)

{

此项目成绩曾经已被录入过,

//

//

al2:

printf("\n此项目成绩已被录入过,是否要重新录入:

\n");//是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入)printf(”1++++是\n");〃(若重新录入,以前的该项目成绩将被删除)

printf(”2++++否\n”);//不要,待查证后再录入//

scanf("%d",&af);

if(af==2)

{

printf("已取消录入!

\n");

return;

}

elseif(af==1)

{

for(i=1;i<=a;i++)

{

if(f[i][ab].num!

=0)

{f[i][0].num=f[i][0].num-f[i][ab].num;

if(ab<=c)

f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;

else

f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;

}

f[i][ab].num=0;

}

}

else

gotoal2;

}

al:

printf("\n此项目是以前几名为胜出者:

\n");//选择得分标准//

printf("3以前三名\n");

printf("5以前五名\n");

scanf("%d",&ac);

if(ac==3)

{

printf("请按照第一、第二、第三的名次依次输入获胜学校代号:

");af=5;

for(i=0;i<3;i++)

{

alq:

scanf("%d",&ae);

if(ae>a||ae<1)

{

printf(”%d学校代号不存在,重新输入第%d名的学校代号:

",ae,g);

gotoalq;

}

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

{

if(ae==get[b])

{

",g);

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d£的学校代号:

gotoalq;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

elseif(ac==5)

{

printf("请按照第一、第二、第三、第四、第五的名次依次输入获胜学校代号:

");af=7;

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

{

alw:

scanf("%d",&ae);

if(ae>a||ae<1)

{

printf(”%d学校代号不存在,重新输入第%d名的学校代号:

",ae,g);

gotoalw;

}

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

{

if(ae==get[b])

{

",g);

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d£的学校代号:

gotoalw;

}

else

get[b]=ae;

}

f[ae][0].num=f[ae][0].num+af;

f[ae][ab].num=af;

if(ab<=c)

f[ae][c+d+1].num=f[ae][c+d+1].num+af;

else

f[ae][c+d+2].num=f[ae][c+d+2].num+af;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else

gotoal;

printf("输入完成!

\n");

}

/*学校成绩*/voideach(){printf("\n学校代号:

团体总成绩\n");for(i=1;i<=a;i++)

{

printf("%d:

%d\n",i,f[i][0].num);

}

}

/*各项目成绩*/voidbiaohao()

{

printf("\n项目代号:

");for(i=1;i<=c+d;i++)

{if(i>9)printf("%d",i);

elseprintf("%5d",i);

}

printf("\n学校代号:

\n");for(i=1;i<=a;i++)

{printf("%7d",i);

for(b=1;b<=c+d;b++){

if(f[i][b].num>9)printf("%6d",f[i][b].num);

else

printf("%7d",f[i][b].num);

}printf("\n");

}

}

/*按学校总分排序输出*/voidzongfen()

{structnod

{

intke;

intnum;

};

intha;

structnod*de;

de=(structnod*)malloc(sizeof(structnod)*a+1);printf("\n学校代号:

团体总成绩\n");for(i=1;i<=a;i++)

{

de[i].ke=i;

de[i].num=f[i][0].num;

}

for(i=1;i<=a;i++)

{

for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

for(i=1;i<=a;i++)

{

printf("%d:

%d\n",de[i].ke,de[i].num);

}

}

/*按男子团队总分排序*/

voidnanzong()

{

structnod

{

intke;

intnum;

};

intha;

structnod*de;

de=(structnod*)malloc(sizeof(structnod)*a+1);printf("\n学校代号:

男子团体总成绩\n");for(i=1;i<=a;i++)

{

de[i].ke=i;

de[i].num=f[i][c+d+1].num;

}

for(i=1;i<=a;i++)

{

for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

for(i=1;i<=a;i++)

{

printf("%d:

%d\n",de[i].ke,de[i].num);

}

}

/*按女子团队总分排序*/

voidnvzong()

{

structnod

{

intke;

intnum;

};

intha;

structnod*de;

de=(structnod*)malloc(sizeof(structnod)*a+1);printf("\n学校代号:

女子团体总成绩\n");for(i=1;i<=a;i++)

{

de[i].ke=i;

de[i].num=f[i][c+d+2].num;

}

for(i=1;i<=a;i++)

{for(b=i;b<=a;b++)

{

if(de[b].num>de[i].num)

{

ha=de[b].ke;

de[b].ke=de[i].ke;

de[i].ke=ha;

ha=de[b].num;

de[b].num=de[i].num;

de[i].num=ha;

}

}

}

for(i=1;i<=a;i++)

{

printf("%d:

%d\n",de[i].ke,de[i].num);

}

}

/*按学校编号查询学校某个项目的成绩*/

voidxuexiao()

{

intdr,dt;

printf("\n要查询的学校代号:

");

aly:

scanf("%d",&dr);

if(dr>a||dr<1)

{

printf("学校代号不存在,重新输入:

");

gotoaly;

}

printf("要查询的项目代号:

");

alo:

scanf("%d",&dt);if(dt>c+d||dt<1)

{

printf("项目代号不存在,重新输入:

");

gotoalo;

}

printf("第%d所学校的第%d项目成绩为%d\n",dr,dt,f[dr][dt].num);

}

/*按项目编号查询取得前三或前五名的学校*/

voidxiangmu()

{

intge,sedy=0;

printf("\n要查询的项目代号:

");all:

scanf("%d",&ge);

if(ge>c+d||ge<1)

{

printf("没有此项目代号,重新输入:

\n");

gotoall;

}

for(i=1;i<=a;i++)

{

if(f[i][ge].num==2)

sedy=1;

}

if(sedy==0)

{

printf("此项目没有录入成绩\n");

return;

}

for(i=1;i<=a;i++)

{

if(f[i][ge].num==7)

{

printf("此项目取前5名学校成绩高到低依次为:

\n");break;

}

}

if(i==a+1)

printf("此项目取前3名学校成绩高到低依次为:

\n");for(i=7;i>0;i--)

{for(b=1;b<=a;b++)

{

if(f[b][ge].num==i)

printf("%d号学校\n",b);

}

}

}

void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};

/*主函数*/

voidmain()

{

intchoos;printf("\n\n***运动会分数统计***\n\n\n");printf("共有多少个学校参赛:

");

scanf("%d",&a);

while(a<=0||a>20)

{

if(a<=0)

{

printf("\n参赛学校个数不能是负数或零\n\n");printf("共有多少个学校参赛:

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

}

if(a>20)

{

printf("\n参赛学校个数不能大于20\n\n");

printf("共有多少个学校参赛:

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

}

}

printf("有几个男子组:

");

scanf("%d",&c);

printf("有几个女子组:

");

scanf("%d",&d);

for(i=0;i<=a;i++)

{

f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));for(j=0;j<=c+d+2;j++)

f[i][j].num=0;

}

choos=choose();

while

(1)

{

while(choos<0||choos>8)

choos=choose();

(*g[choos])();

printf("\n");

choos=choose();

}

}

程序设计工程训练成绩评定标准表

明细项目

评分等级(含系数)

评分分值

实际得分

考勤

A

(1)

B(0.8)

C(0.5)

D(0.0)

r10

工程项目规范

A

(1)

B(0.8)

C(0.5)

D(0.2)

10

工程训练报告

A

(1)

B(0.8)

C(0.5)

D(0.2)

30

设计作品质量

A

(1)

B(0.8)

C(0.5)

D(0.2)

45

材料收集情况

A

(1)

B(0.8)

C(0.5)

D(0.2)

5

综合评分

合格

不合格

90-100

80-89

70-79

60-69

0-59

该生成绩为:

,指导老师(签名):

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

当前位置:首页 > 解决方案 > 学习计划

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

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