运动会比赛计分系统Word下载.docx
- 文档编号:19054550
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:26
- 大小:111.18KB
运动会比赛计分系统Word下载.docx
《运动会比赛计分系统Word下载.docx》由会员分享,可在线阅读,更多相关《运动会比赛计分系统Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
intmscore;
//男子团体总分
intwscore;
//女子团体总分
intsum;
//学校项目总分
structschool*next;
}scl;
scl*p,*q,*head,*g,*s,*u;
//全局指针变量
项目信息(及运动员信息):
typedefstructsco
intmark[5];
//分数
intitmnum;
//项目编号
intitmkind;
//项目类型
charitmname[20];
//项目名称
charname[10];
//运动员姓名
intl;
//获奖名次数
intrange[5];
//排名
}sc;
2.3程序流程系统的执行应从输入信息功能开始,再执行菜单功能,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
*1
结束
输入项目编号、名称、获奖名次数排名、运动员姓名
按学校排+/名输出学校和项目信息
n>
在项目概要设计的基础之上,对系统进行详细设计,以便下一步进
三、详细设计:
对于总设计时的系统模块功能图,各个功能模块的处理逻辑如下
1)菜单选择模块:
调用voidmenu()//菜单函数
给出信息提示;
绘制菜单(包含查询、退出);
提示菜单选择并输入变量;
根据输入变量的值调用不同的模块函数;
以下是截取的菜单函数:
voidmenu()
system("
cls"
);
printf("
★================运动会比赛计分系统=================★\n"
printf(
welcome
编制
******************
**\n"
printf("
**1>
>
**2>
**3>
**4>
**5>
**男子前五名依次得分:
**女子前三名依次得分:
键盘输入**\n"
文件读入**\n"
输出**\n"
查询**\n"
退出**\n"
7分5分3分2分1分**\n"
5分3分2分**\n"
H*****************************************************
\n"
}
2)信息输入模块:
调用scl*input()//信息输入函数
在输入信息时要求按照文字提示进行输入,要输入的信息包括:
参赛学校编号,名称以及比赛项目的编号,名称,获奖名次,排名,(运动员姓名)。
建立单链表,以链式存储结构来存放学校,项目等数据;
以下是输入的内容与形式:
scanf("
%d"
&
p->
sclnum);
//输入学校编号scanf("
%s"
p->
sclname);
//输入学校名称for(x=0;
x<
m+w;
x++)
a[x].itmnum);
//输入项目编号
a[x].itmkind);
//输入项目类型
a[x].itmname);
//输入项目名称
a[x].l);
//输入获奖名次数
for(i=0;
i<
a[x].l;
i++)
a[x].range[i]);
//输入运动员的名次
a[x].name);
//运动员姓名
}
输入结束;
在输入结束结束后要调用计分模块。
3)计分模块:
计分模块主要是依据输入信息的不同予以判断,并以不同的计分方式来计数将节点中的数据改变,并保存。
if(k==3)//女子项目取前三名
else//男子项目取前五名
4)信息输出模块:
根据用户的需要与选择,给出两种方式:
1、存入文件,不输出;
2、输出,不存入文件。
****1不输出,存入文件\n"
****2输出,不存入文件\n"
co);
switch(co)
Case1:
运用文件存储内容;
break;
Case2:
输出相应信息;
5)文件读入模块:
!
此模块只是用来读入文件中的信息,无实际意义,只是满足题目要求,需谨慎使用。
6)信息查询模块:
和输出模块相似,同样有两种选择:
1、按学校编号查询;
2、按项目编号查询。
按学校查找请输入1,按项目查找请输入2\n"
cha);
if(cha==1)
请输入你要查询的学校编号:
"
num);
while(q!
=NULL)
{按学校输出相应信息;
if(cha==2)
请输入你要查询的项目编号:
xiang);
{按项目输出相应信息;
四、调试与测试
1.调试方法;
上机运行各个模块,分别调试,最后综合运行;
2.测试结果的讨论与分析;
首先必须要对程序进行数据信息输入,对于所需不同的信息程序会自动提示用户进行相关操作,再输出相关信息,对于一些错误的操作可能会造成程序运行错误的后果,因此在输入信息的时候用户请务必细心操作。
其数据与运行结果如下图:
运行结果:
输入1
遭卿验粋編瓷
重复
222——
半有:
111
号2
称>
卑厂项目类型R项目名称A滾得名枕数”名衣"
姓名”
输入:
1
huada
1111taiqiu31zhao2qian3sun
2222ticao12li
2
dongda
1111taiqiu24zhou5wu
2222ticao21feng3chen
输出:
Mixat徒清薛祷其斗轉科
W4
MM
we
75
33
二
岀分
lc
g玛键芟>
>
■■尊>
*_-
二»
二僚】一
-一一
»
请选择■
输入:
输出:
鎚出不存入对牛
输出:
4
输入;
口尋号型咬咬nnnnrm奖匐路项疣
个
3
有
号型舉
8i目目目奖顶项枭
总总得a.nins项项目赁项团团校男女
口诵号
目Qnun奖
H範筈名目目HE奖男项获个
八罠务
<
"
-I•
总目项项目团团校
子孟尹男女
请选
Imada
taiaiu
第诧第時第昭
222
ticao
第時
15
IM
don^da
1intaiqiu
第昭第站
ticao
報名第丁名
7
10
按学校查找请输入-按顶目查找请输入2
手校编号
貢目编]
鉄目类型
寿3个获奖名次二第诧第请第昭
目编号縮类型
2Z2
育1个获奖名次=第2名
£
e131■■■■s总总得目mi口3项養a-a-枝尹一^于男女
披学校查找诣输入4按顶目查找请输入上
请辆人怀旻食询旳顶日垢号】
输出;
(因为只定义了两个学校,所以结果只有两个学校的名称)
二:
二二醴出禱燉
目目目顶顶顶
121・B
入入人有
已已已输
结束程序运行!
五、源程序清单
#include<
stdio.h>
stdlib.h>
#definen2//参赛学校数
#definem1//男子竞赛项目数
#definew1//女子竞赛项目数
〃分数
intitmnum;
〃项目编号
intitmkind;
charitmname[20];
〃项目名称
charname[10];
〃运动员姓名
intrange[5];
intsclnum;
〃学校编号
charsclname[20];
〃学校名称
structschool*next;
〃全局指针变量
/**
************************************************************************
**/
*******************************
/
****************************************************************************
/**************************************************************/voidcompute(inti,intx,intk){
if(k==3)//
switch(p->
a[x].range[i])
计分
女子项目取前三名
case0:
p->
a[x].mark[p->
a[x].range[i]]=0;
case1:
a[x].range[i]]=5;
case2:
a[x].range[i]]=3;
case3:
a[x].range[i]]=2;
default:
puts("
输入有误!
exit(0);
else
a[x].range[i])//男子项目取前五名
a[x].range[i]]=7;
case4:
case5:
a[x].range[i]]=1;
数*********************
/***********************输scl*input()//
inti,x,y=1,k;
p=(scl*)malloc(sizeof(scl));
创建链表输入函数
//头结点的初始化printf("
\n**按如下格式输入(相同学校编号不重复输入)**\n"
**项目类型有:
111---男子222---女子**\n"
**学校编号>
\n**学校名称>
\n**项目编号>
项目类型>
项目名称>
获得名次数>
名次>
姓名>
mscore=0;
wscore=0;
scanf("
//输入学校编号
//输入学校名称
for(x=0;
//输入项目类型scanf("
//输入运动员的名次scanf("
if(p->
a[x].itmkind==222)//计分方式判断
k=3;
k=5;
compute(i,x,k);
//共两种项目:
111(男子项目)
a[x].itmkind==222)
222(女子项目)
wscore+=p->
a[x].range[i]];
else
mscore+=p->
sum=p->
mscore+p->
wscore;
head=p;
q=p;
****************************************************************
while(y<
n)//
y++;
//计数:
控制输入学校的个数
for(i=0;
a[x].itmkind==222)
创建新节点
i++){compute(i,x,k);
if(p->
a[x].itmkind==222)p->
elsep->
q->
next=p;
}p->
next=NULL;
menu();
returnhead;
/********************
voidoutput(scl*head)
//
出函数********************/
输出成绩
scl*q=head;
inti,x,y=1;
FILE*fp;
intco;
fp=fopen("
d:
\\abc.txt"
"
w+"
if(fp==NULL)
{printf("
无法打开文件!
}while(q!
fprintf(fp,"
%d\n"
q->
%d\t\n"
i++)fprintf(fp,"
%d\t"
q=q->
next;
fclose(fp);
}break;
===================================\n"
printf("
学校编号:
\t"
学校名称:
%s\n"
项目编号:
项目类型:
项目名称:
printf(”有%d个获奖名次:
\t"
第%d£
a[x].range[i]);
\n\n"
}printf("
男子团体项目总分:
\t%d\n"
mscore);
女子团体项目总分:
wscore);
学校项目总得分:
\t%d\n\n"
sum);
default:
puts("
输入有误!
文件读入函数
********************/
scl*read()
FILE*fpa=NULL;
p=(scl*)malloc(sizeof(scl));
fpa=fopen("
r+"
//打开文件
if(fpa==NULL)
{puts("
对不起,无法打开文件!
fscanf(fpa,"
printf(”已读入%d个项目\n"
x+1);
%d%d%d"
a[x].itmnum,&
a[x].itmkind,&
for(i=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 比赛 计分 系统