当前位置:文档之家› 运动员管理系统

运动员管理系统

#include<iostream>#include<stdlib.h>#include<string>#include"conio.h"#define N 20struct 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 1 添加运动员数据O(∩_∩)O");printf("\n O(∩_∩)O 2 显示运动员数据O(∩_∩)O");printf("\n O(∩_∩)O 3 删除运动员数据O(∩_∩)O ");printf("\n O(∩_∩)O 4 更改运动员数据O(∩_∩)O ");printf("\n O(∩_∩)O 5 百米成绩排序O(∩_∩)O ");printf("\n O(∩_∩)O 6 三级跳成绩排序O(∩_∩)O ");printf("\n O(∩_∩)O 7 撑杆跳成绩排序O(∩_∩)O ");printf("\n O(∩_∩)O 8 退出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 %f\n",stu[i].num,stu[i].name,&stu[i].baimi,&stu[i].sanjitiao,&stu[i].chen ggantiao);}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<n;i++)fprintf(fp,"%s %s %f %f %f\n",stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggant iao);}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<=n;i++){printf("\n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:\n",i);scanf("%s%s",stu.num,);printf("\n请输入第%d个运动员的百米赛跑、三级跳和撑杆跳三项成绩,用空格分开,并按回车键确认:\n",i);scanf("%f%f%f",&stu.baimi,&stu.sanjitiao,&stu.chenggantiao);fprintf(fp,"%s %s %f %f %f\n",stu.num,,stu.baimi,stu.sanjitiao,stu.chenggantiao);}fclose(fp);}void show() // 运动员信息显示函数{struct student stu[N];int i,n;n=reads(stu);printf("*********************所有的学生信息如下**********************\n\n");printf(" 序号号码姓名百米赛跑三级跳撑杆跳\n");printf("*************************************************************\n");for(i=0;i<n;i++)printf("\n%3d%12s%11s%11.2f%12.2f%11.2f\n",i+1,stu[i].num,stu[i].name,stu[i].baimi,stu[i].san jitiao,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<n;i++)if(strcmp(number,stu[i].num)==0)break;if(i>=n){printf("没有找到该运动员信息!\n");return;}else{for(j=i+1;j<n;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<n;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<n-1;i++)for(j=0;j<n-1;j++){if(stu[j].baimi<stu[j+1].baimi){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}save(stu,n); j=1 ;printf("*********************百米赛跑成绩排序结果如下****************************\n\n");printf(" 名次号码姓名百米赛跑成绩\n");printf("***********************************************************************\n ");for(i=0;i<n;i++) // 输出结果并排名{if(stu[i].baimi==stu[i+1].baimi)printf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",j,stu[i].num,stu[i].name,stu[i].baimi,stu[i ].baimi);elseprintf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",j++,stu[i].num,stu[i].name,stu[i].baimi,st u[i].baimi);}getch();}void keep() // 按三级跳成绩排名{struct student stu[N],temp;int i,j,n;n=reads(stu);for(i=0;i<n-1;i++)for(j=0;j<n-1;j++){if(stu[j].sanjitiao<stu[j+1].sanjitiao){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}save(stu,n); j=1 ;printf("*********************三级跳成绩排序结果如下****************************\n\n");printf(" 名次号码姓名三级跳成绩\n");printf("***********************************************************************\n ");for(i=0;i<n;i++) // 输出结果并排名{if(stu[i].sanjitiao==stu[i+1].sanjitiao)printf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",j,stu[i].num,stu[i].name,stu[i].sanjitiao,st u[i].sanjitiao);elseprintf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",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<n-1;i++)for(j=0;j<n-1;j++){if(stu[j].chenggantiao<stu[j+1].chenggantiao){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}} save(stu,n); j=1 ;printf("*********************撑杆跳成绩排序结果如下****************************\n\n");printf(" 名次号码姓名三级跳成绩\n");printf("***********************************************************************\n ");for(i=0;i<n;i++) // 输出结果并排名{if(stu[i].chenggantiao==stu[i+1].chenggantiao)printf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",j,stu[i].num,stu[i].name,stu[i].chengganti ao,stu[i].chenggantiao);elseprintf("\n%3d%12s%11s%11.2f%11.2f%11.2f%11.2f\n",j++,stu[i].num,stu[i].name,stu[i].chengga ntiao,stu[i].chenggantiao);}getch();}。

相关主题