运动员分数统计系统Word文档格式.docx
- 文档编号:16717995
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:33
- 大小:23.78KB
运动员分数统计系统Word文档格式.docx
《运动员分数统计系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《运动员分数统计系统Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
structschool*next;
}School;
typedefstructsch_num_name{
charsch_name[20];
/*学校名*/
}Sch_num_name;
typedefstructath_num_name{
charath_num[20];
charath_name[20];
/*运动员名*/
}Ath_num_name;
typedefstructite_num_name{
charite_num[20];
charite_name[20];
/*项目名*/
}Ite_num_name;
typedefstructnum_name{/*编号与名称结构体*/
Sch_num_namesch[N];
Ath_num_nameath[(M+W)*R];
Ite_num_nameite[M+W];
}Num_name;
intmenu_selection()/*菜单函数*/
{
charsel;
do{
system("
COLOR5"
);
/*设置字体颜色*/
cls"
/*清屏*/
printf("
\t\t.oO欢迎使用运动会分数统计系统Oo.\n"
\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n"
\t\t〓|1.从文件读入信息|〓\n"
\t\t〓|2.输入项目信息|〓\n"
\t\t〓|3.查找项目信息|〓\n"
\t\t〓|4.修改项目信息|〓\n"
\t\t〓|5.删除项目信息|〓\n"
\t\t〓|6.输出学校成绩报表及团体报表|〓\n"
\t\t〓|7.向文件写入信息|〓\n"
\t\t〓|8.退出系统|〓\n"
\t\t\t请选择(0-8):
"
scanf("
%c"
&
sel);
getchar();
/*吃掉回车符*/
}while(sel>
'
8'
||sel<
0'
);
returnsel-'
;
}
Sport*init_link_sport(void)/*初始化项目链表*/
Sport*head1;
head1=(Sport*)malloc(sizeof(Sport));
head1->
next=NULL;
returnhead1;
School*init_link_school(void)/*初始化学校链表*/
School*head2;
head2=(School*)malloc(sizeof(School));
head2->
returnhead2;
voidMyfree_link_sport(Sport*head1)/*释放项目结构体*/
Sport*p=NULL;
while(head1!
=NULL)
{
p=head1->
next;
free(head1);
head1=p;
}
voidMyfree_link_school(School*head2)/*释放学校结构体*/
School*p=NULL;
while(head2!
p=head2->
free(head2);
head2=p;
char*Search_ite_num_name(Num_name*nn,char*search)/*查找项目编号对应的项目名或项目名对应的编号*/
inti;
for(i=0;
nn->
ite[i].ite_num[0]!
=0&
&
strcmp(nn->
ite[i].ite_num,search)!
=0;
i++);
/*在项目编号中查找*/
if(nn->
ite[i].ite_num[0]==0)
for(i=0;
ite[i].ite_name[0]!
ite[i].ite_name,search)!
/*在项目名中查找*/
if(nn->
=0)
returnnn->
ite[i].ite_num;
/*返回项目编号*/
else
{
printf("
\t\t没有该项目名或编号\n"
returnNULL;
}
else
returnnn->
ite[i].ite_name;
/*返回项目名字*/
char*Search_sch_num_name(Num_name*nn,char*search)//查找学校编号对应的型学校名或学校名对应的学校编号
sch[i].sch_num[0]!
sch[i].sch_num,search)!
/*在学校编号中查找*/
sch[i].sch_num[0]==0)
sch[i].sch_name[0]!
sch[i].sch_name,search)!
sch[i].sch_num;
\t\t没有该学校名或编号\n"
sch[i].sch_name;
char*Search_ath_num_name(Num_name*nn,char*search)//查找运动员编号对应的运动员姓名或运动员姓名对应的运动员编号
ath[i].ath_num[0]!
ath[i].ath_num,search)!
ath[i].ath_num[0]==0)
ath[i].ath_name[0]!
ath[i].ath_name,search)!
ath[i].ath_num;
\t\t没有该运动员名或编号\n"
}
ath[i].ath_name;
intLen_link_sport(Sport*head1)/*计算项目链表的长度*/
intn=0;
for(;
head1!
=NULL;
n++,head1=head1->
next);
returnn;
intLen_link_school(School*head2)/*计算学校链表长度*/
head2!
n++,head2=head2->
voidSwap_pointer(School**ptr1,School**ptr2)/*交换School型指针函数*/
School*temp;
temp=*ptr1;
*ptr1=*ptr2;
*ptr2=temp;
voidSwap_interger(int*a,int*b)
inttemp;
temp=*a;
*a=*b;
*b=temp;
voidSwap_string(char*str1,char*str2)
chartemp[20];
strcpy(temp,str1);
strcpy(str1,str2);
strcpy(str2,temp);
voidSort_athlete_rank(Sport*head1)
inti,j;
head1=head1->
next)
if(atoi(head1->
item_num)%2==0)/*如果是偶数项项目--取前三*/
for(i=0;
i<
3;
i++)
for(j=0;
j<
3-i-1;
j++)
if(head1->
rank[j]>
rank[j+1])
{
Swap_interger(&
head1->
rank[j],&
rank[j+1]);
/*交换排名*/
score[j],&
score[j+1]);
/*交换成绩*/
Swap_string(head1->
ath_num[j],head1->
ath_num[j+1]);
/*交换运动员编号*/
sch_num[j],head1->
sch_num[j+1]);
/*交换学校编号*/
sex[j],head1->
sex[j+1]);
/*交换性别*/
}
}//"
一定要注意悬挂if——else”
else/*是奇数--去前五*/
5;
5-i-1;
Swap_interger(&
voidSearch_item_info(Num_name*nn,Sport*head1)/*查找项目信息*/
intsel,i;
charsear[20];
Sort_athlete_rank(head1);
/*一开始就对运动员按成绩排序或说按名次排序*/
printf("
\t\t查找项目信息\n"
\t\t按项目名查找(0),按项目编号查找
(1):
%d"
if(0==sel)/*按项目名查找*/
\t\t请输入项目名:
scanf("
%s"
sear);
for(p=head1;
p!
p=p->
if(strcmp(p->
item_num,Search_ite_num_name(nn,sear))==0)
{
if(strcmp(p->
item_num,"
2"
)==0)
{
FILE*fp=fopen("
e:
\\gg.txt"
"
w"
fprintf(fp,"
\t\t%d\t%s\t%s\t%d\n"
p->
rank[1],Search_ath_num_name(nn,p->
ath_num[1]),Search_sch_num_name(nn,p->
sch_num[1]),p->
score[1]);
////
rank[2],Search_ath_num_name(nn,p->
ath_num[2]),Search_sch_num_name(nn,p->
sch_num[2]),p->
score[2]);
rank[3],Search_ath_num_name(nn,p->
ath_num[3]),Search_sch_num_name(nn,p->
sch_num[3]),p->
score[3]);
fclose(fp);
}
printf("
\t\t-------------%s------------\n"
type);
\t\t名次\t姓名\t学校\t成绩\n"
if(atoi(p->
item_num)%2==0)/*如果是偶数项项目--取前三*/
for(i=0;
printf("
rank[i],Search_ath_num_name(nn,p->
ath_num[i]),Search_sch_num_name(nn,p->
sch_num[i]),p->
score[i]);
else/*是奇数--取前五*/
\t\t----------------------------------------\n"
break;
/*找到及时退出循环*/
if(p==NULL)/*没找到相应项目*/
\t\t输入项目名错误!
\n"
elseif(1==sel)/*按项目编号查找*/
{
\t\t请输入项目编号:
item_num,sear)==0)
\t\t输入项目编号错误!
\t\tError!
你只能按项目编号或项目名查找\n"
voidModify_item_info(Num_name*nn,Sport*head1)/*修改项目信息*/
\t\t修改项目信息\n"
chargo='
y'
\t\t-------------%s--------------\n"
\t\t名次\t运动员编号\t学校编号\t成绩\n"
\t\t%d\t%s\t\t%s\t\t%d\n"
rank[i],p->
ath_num[i],p->
sch_num[i],p->
\t\t--------------------------------------------\n"
while(go=='
||go=='
Y'
)
intj,ra;
printf((atoi(p->
item_num)%2==0)?
\t\t第几名次需修改(1-3):
:
\t\t第几名次需修改(1-5):
ra);
for(j=0;
j++)/*当只取前三名时,rank[R]中其他内容为0*/
if(p->
rank[j]==ra)
{
printf("
\t\t名次修改为:
scanf("
p->
rank[j]);
\t\t成绩修改为:
score[j]);
\t\t运动员编号修改为:
ath_num[j]);
\t\t性别修改为:
sex[j]);
\t\t学校编号修改为:
sch_num);
break;
}
if(5==j)
\t\t您输入的名次有误,那最多只有1--5名\n"
printf("
\t\t是否继续修改(Y/N):
scanf("
go);
getchar();
item_num,sear)==0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动员 分数 统计 系统