运动员管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“运动员信息管理系统”。
#include #include #include #include“conio.h” #define N 20 struct student {char num[20];char name[10];float baimi;float sanjitiao;float chenggantiao;};void menu();int reads(struct student stu[N]);void save(struct student stu[N],int n);void add();void del();void sort();void keep();void sheep();void query();void show();void change();void main(){
int n;
while(1)
{
menu();
printf(“n 请输入您要选择的操作序号,按回车键确认:”);
scanf(“%d”,&n);
switch(n)
{
case 1: add();break;
case 2: show();break;
case 3: del();break;
case 4: change();break;
case 5: sort();break;
case 6: keep();break;
case 7 :sheep();break;
case 8: exit(0);
default: printf(“输入错误,请输入列表中存在的序号!n ”);
}
} } void menu(){
printf(“
************************* 运动员成绩管理系统************************ ”);
printf(“n
O(∩_∩)O 添加运动员数据
O(∩_∩)O”);
printf(“n
O(∩_∩)O 显示运动员数据
O(∩_∩)O”);
printf(“n
O(∩_∩)O 删除运动员数据
O(∩_∩)O ”);
printf(“n
O(∩_∩)O 更改运动员数据
O(∩_∩)O ”);
printf(“n
O(∩_∩)O 百米成绩排序
O(∩_∩)O ”);
printf(“n
O(∩_∩)O 三级跳成绩排序
O(∩_∩)O ”);
printf(“n
O(∩_∩)O 撑杆跳成绩排序
O(∩_∩)O ”);
printf(“n
O(∩_∩)O 退出
O(∩_∩)O ”);
printf(“ n
~(@^_^@)~~(@^_^@)~ ~(@^_^@)~ ~(@^_^@)~~(@^_^@)~ ~(@^_^@)~~(@^_^@)~ ”);} int reads(struct student stu[N])// 读取运动员文件中的内容
{
FILE *fp;
int i=0;
if((fp=fopen(“e:student.txt”,“r”))==NULL)
{
printf(“文件打开失败!n”);
return 0;
}
else
{
for(i=0;!feof(fp);i++)
fscanf(fp,“%s %s %f %f %fn”,stu[i].num,stu[i].name,&stu[i].baimi,&stu[i].sanjitiao,&stu[i].chenggantiao);
}
fclose(fp);
return i;} void save(struct student stu[N],int n)// 运动员信息改变后更新文件 {
FILE *fp;
int i=0;
if((fp=fopen(“e:student.txt”,“w”))==NULL)
{
printf(“文件打开失败!n”);
return;
}
else
{
for(i=0;i
fprintf(fp,“%s %s %f %f %fn”,stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggantiao);
}
fclose(fp);} void add()/*添加运动员信息*/ {
FILE *fp;
int n,i;
struct student stu;
if((fp=fopen(“e:student.txt”,“a”))==NULL)//如果文件已经存在,可以追加学生信息
{
if((fp=fopen(“e:student.txt”,“w”))==NULL)// 文件不存在时,创建新文件,输入学生信息
{
printf(“文件打开失败!n”);
return;
}
}
printf(“请输入要添加的运动员数量,按回车键确认:”);
scanf(“%d”,&n);
for(i=1;i
{
printf(“n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:n”,i);
scanf(“%s%s”,stu.num,stu.name);printf(“n请输入第%d个运动员的百米赛跑、三级跳和撑杆跳三项成绩,用空格分开,并按回车键确认:n”,i);
scanf(“%f%f%f”,&stu.baimi,&stu.sanjitiao,&stu.chenggantiao);
fprintf(fp,“%s %s %f %f %fn”,stu.num,stu.name,stu.baimi,stu.sanjitiao,stu.chenggantiao);
}
fclose(fp);} void show()// 运动员信息显示函数 {
struct student stu[N];
int i,n;
n=reads(stu);
printf(“*********************所有的学生信息如下**********************nn”);
printf(“ 序号
号码
姓名
百米赛跑
三级跳
撑杆跳
n”);
printf(“*************************************************************n”);
for(i=0;i
printf(“n%3d%12s%11s%11.2f%12.2f%11.2fn”,i+1,stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggantiao);
getch();} void del()/*运动员信息删除函数*/ {
struct student stu[N];
char number[20];
int n,i,j;
n=reads(stu);
printf(“n请输入要删除信息运动员号码,按回车键确认:”);
scanf(“%s”,number);
for(i=0;i
if(strcmp(number,stu[i].num)==0)
break;
if(i>=n)
{
printf(“没有找到该运动员信息!n”);
return;
}
else
{
for(j=i+1;j
stu[j-1]=stu[j];
}
save(stu,n-1);
printf(“删除成功!n”);} void change()//学生信息更改 {
struct student stu[N];
int n,i;
char number[20];
printf(“n请输入要更改信息的学生学号,按回车键确认:”);
scanf(“%s”,number);
n=reads(stu);
for(i=0;i
if(strcmp(number,stu[i].num)==0)
break;
if(i>=n)
{
printf(“无此学生信息!”);
return;
}
printf(“n请输入更改后学生的号码,姓名,百米赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n”);
scanf(“%s%s%f%f%f”,stu[i].num,stu[i].name,&stu[i].baimi,&stu[i].sanjitiao,&stu[i].chenggantiao);
save(stu,n);} void sort()// 按百米赛跑成绩排名 {struct student stu[N],temp;int i,j,n;n=reads(stu);for(i=0;i
printf(“*********************百米赛跑成绩排序结果如下****************************nn”);
printf(“ 名次
号码
姓名
百米赛跑
成绩
n”);
printf(“***********************************************************************n”);
for(i=0;i
{
if(stu[i].baimi==stu[i+1].baimi)
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j,stu[i].num,stu[i].name,stu[i].baimi,stu[i].baimi);
else
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j++,stu[i].num,stu[i].name,stu[i].baimi,stu[i].baimi);
}
getch();} void keep()// 按三级跳成绩排名 {struct student stu[N],temp;int i,j,n;n=reads(stu);for(i=0;i
printf(“*********************三级跳成绩排序结果如下****************************nn”);
printf(“ 名次
号码
姓名
三级跳
成绩
n”);
printf(“***********************************************************************n”);
for(i=0;i
{
if(stu[i].sanjitiao==stu[i+1].sanjitiao)
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j,stu[i].num,stu[i].name,stu[i].sanjitiao,stu[i].sanjitiao);
else
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j++,stu[i].num,stu[i].name,stu[i].sanjitiao,stu[i].sanjitiao);
}
getch();} void sheep()// 按三级跳成绩排名 {struct student stu[N],temp;int i,j,n;n=reads(stu);for(i=0;i
printf(“*********************撑杆跳成绩排序结果如下****************************nn”);
printf(“ 名次
号码
姓名
三级跳
成绩
n”);
printf(“***********************************************************************n”);
for(i=0;i
{
if(stu[i].chenggantiao==stu[i+1].chenggantiao)
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j,stu[i].num,stu[i].name,stu[i].chenggantiao,stu[i].chenggantiao);
else
printf(“n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn”,j++,stu[i].num,stu[i].name,stu[i].chenggantiao,stu[i].chenggantiao);
}
getch();}