#defineN20
structathletes
{
charnum[20];
charname[10];
charIdentity_information[10];
floatbaimi;
floatsanjitiao;
floatchenggantiao;
};
structreferee
{
charnum[20];
charname[10];
charIdentity_information[10];
charbaimi[10];
charsanjitiao[10];
charchenggantiao[10];
};
structAll_the_events
{
charsport_name[10];
chartime[20];
charreferee[10];
charplace[20];
};
voidmenu();//输出菜单选项
voidmenu2();//输出输出单项比赛信息菜单选项
intreads(structathletesath[N]);//读取运动员文件中的内容
intreads1(structrefereeref[N]);//读裁判员取文件中的内容
intreads2(structAll_the_eventssport[N]);//读取全部比赛项目文件中的内容
voidsave(structathletesath[N],intn);//运动员信息改变后更新文件
voidshow_athletes();//输出全部运动员信息
voidshow_referee();//输出全部裁判员信息
voidadd();//增加运动员信息
voidAccording_to_the_number_to_find_players_information();//按号码查找运动员信息
voidAccording_to_the_name_to_find_players_information();//按姓名查找运动员信息
voidAccording_to_the_number_to_Modify_the_players_information();//搜索号码修改运动员信息
voidAccording_to_the_name_to_Modify_the_players_information();//搜索号码姓名修改运动员信息
voidAccording_to_the_name_to_delete_the_players_information();//按姓名删除该运动员信息
voidAccording_to_the_name_to_find_referee_information();//按姓名查找裁判员信息
voidshow_all_events();//输出输出全部比赛项目
voidOutput_on_a_single_information();//输出单项比赛信息
voidsort();//按百米赛跑成绩排名
voidkeep();//按三级跳成绩排名
voidsheep();//按撑杆跳成绩排名
voidmain()
{
intn;
while
(1)
{
menu();
printf("\n请输入您要选择的操作序号,按回车键确认:
");
scanf("%d”,&n);
switch(n)
{
case1:
show_athletes();break;
case2:
add();break;
case3:
According_to_the_number_to_find_players_information();break;
case4:
According_to_the_name_to_find_players_information();break;
case5:
According_to_the_number_to_Modify_the_players_information();break;
case6:
According_to_the_name_to_Modify_the_players_information();break;
case7:
According_to_the_name_to_delete_the_players_information();break;
case9:
show_referee();break;
case10:
According_to_the_name_to_find_referee_information();break;
case11:
show_all_events();break;
case12:
Output_on_a_single_information();break;
case13:
exit(0);
default:
printf(”输入错误,请输入列表中存在的序号!
\n”);
}
}
}
voidmenu()//输出菜单选项
{
printf("*════════*\n”);
printf(”════════╣*运动会管理系统*╠═════\n");
printf("║*════════*║\n");
printf("║【1】输出全部运动员信息║\n");
printf(”║║\n");
printf("║【2】增加运动员信息║\n”);
printf(”║║\n");
printf(”║【3】按号码查找运动员信息║\n");
printf("║║\n”);
printf("║【4】按姓名查找运动员信息║\n");
printf("║║\n");
printf(”║【5】搜索号码修改运动员信息║\n”);
printf(”║║\n”);
printf(”║【6】搜索姓名修改运动员信息║\n”);
printf(”║║\n");
printf("║【7】按姓名删除运动员信息║\n");
printf("║║\n");
printf(”║【8】运动员积分排名║\n");
printf("║║\n”);
printf(”║【9】输出全部裁判员信息║\n");
printf(”║║\n");
printf(”║【10】按姓名查询裁判员信息║\n");
printf(”║║\n”);
printf("║【11】输出全部比赛项目║\n”);
printf(”║║\n”);
printf(”║【12】输出单项比赛信息║\n");
printf(”║║\n");
printf("║【13】退出系统║\n");
printf(”═══════════════════════\n”);
}
voidmenu2()//输出输出单项比赛信息菜单选项
{
printf(”*════════*\n”);
printf("════════╣*单项比赛信息*╠═════\n”);
printf("║*════════*║\n”);
printf(”║【1】百米赛跑║\n”);
printf("║║\n");
printf("║【2】三级跳║\n”);
printf("║║\n”);
printf("║【3】撑杆跳║\n");
printf("║║\n”);
printf("║【4】退出系统║\n");
printf(”═══════════════════════\n”);
}
intreads(structathletesath[N])//读取运动员文件中的内容
{
FILE*fp;
inti=0;
if((fp=fopen(”f:
\\程序设计\\athletes。
txt”,"r”))==NULL)
{
printf("文件打开失败!
\n");
return0;
}
else
{
for(i=0;!
feof(fp);i++)
fscanf(fp,”%s%s%s%f%f%f\n",ath[i].num,ath[i].name,ath[i].Identity_information,&ath[i]。
baimi,&ath[i].sanjitiao,&ath[i]。
chenggantiao);
}
fclose(fp);
returni;
}
intreads1(structrefereeref[N])//读取裁判员取文件中的内容
{
FILE*fp;
inti=0;
if((fp=fopen("f:
\\程序设计\\referee。
txt”,"r"))==NULL)
{
printf(”文件打开失败!
\n”);
return0;
}
else
{
for(i=0;!
feof(fp);i++)
fscanf(fp,"%s%s%s%s%s%s\n”,ref[i].num,ref[i]。
name,ref[i]。
Identity_information,ref[i].baimi,ref[i]。
sanjitiao,ref[i]。
chenggantiao);
}
fclose(fp);
returni;
}
intreads2(structAll_the_eventssport[N])//读取全部比赛项目文件中的内容
{
FILE*fp;
inti=0;
if((fp=fopen("f:
\\程序设计\\All_the_events。
txt”,”r"))==NULL)
{
printf("文件打开失败!
\n");
return0;
}
else
{
for(i=0;!
feof(fp);i++)
fscanf(fp,"%s%s%s%s\n”,sport[i].sport_name,sport[i]。
time,sport[i].referee,sport[i]。
place);
}
fclose(fp);
returni;
}
voidsave(structathletesath[N],intn)//运动员信息改变后更新文件
{
FILE*fp;
inti=0;
if((fp=fopen(”f:
\\程序设计\\athletes。
txt”,"w"))==NULL)
{
printf("文件打开失败!
\n”);
return;
}
else
{
for(i=0;i〈n;i++)
printf(”%s%s%s%f%f%f\n",ath[i]。
num,ath[i]。
name,ath[i]。
Identity_information,ath[i].baimi,ath[i]。
sanjitiao,ath[i]。
chenggantiao);
}
fclose(fp);
}
voidshow_athletes()//输出全部运动员信息
{
structathletesath[N];
inti,n;
n=reads(ath);
printf("*****************************所有的学生信息如下***************************\n\n”);
printf("序号号码姓名身份百米赛跑(s)三级跳(m)撑杆跳(m)\n");
printf(”**************************************************************************\n”);
for(i=0;i〈n;i++)
printf("\n%3d%12s%8s%8s%10。
1f%12。
1f%12.1f\n”,i+1,ath[i].num,ath[i].name,ath[i].Identity_information,ath[i]。
baimi,ath[i]。
sanjitiao,ath[i]。
chenggantiao);
getch();
}
voidadd()//增加运动员信息
{
FILE*fp;
intn,i;
structathletesath;
if((fp=fopen("f:
\\程序设计\\athletes。
txt”,"a”))==NULL)//如果文件已经存在,可以追加学生信息
{
if((fp=fopen("f:
\\程序设计\\athletes。
txt","w"))==NULL)//文件不存在时,创建新文件,输入学生信息
{
printf(”文件打开失败!
\n");
return;
}
}
printf("请输入要添加的运动员数量,按回车键确认:
”);
scanf(”%d",&n);
for(i=1;i<=n;i++)
{
printf(”\n请输入第%d个运动员的号码、姓名、身份,用空格分开,并按回车键确认:
\n”,i);
scanf("%s%s%s",ath.num,ath。
name,ath。
Identity_information);
printf(”\n请输入第%d个运动员的百米赛跑(单位:
s)、三级跳(单位:
m)和撑杆跳(单位:
m)三项成绩,用空格分开,没参加的项目用0表示,并按回车键确认:
\n",i);
scanf(”%f%f%f",&ath.baimi,&ath。
sanjitiao,&ath。
chenggantiao);
fprintf(fp,”%s%s%s%f%f%f\n",ath.num,ath.name,ath。
Identity_information,ath。
baimi,ath.sanjitiao,ath。
chenggantiao);
}
fclose(fp);
}
voidA