当前位置:文档之家› 学生成绩管理系统完整版C程序设计源代码不用链表有添加删除查找修改等功能

学生成绩管理系统完整版C程序设计源代码不用链表有添加删除查找修改等功能

/*4. 定义一个结构体数组,存放 10 个学生的学号,姓名,三门课的成绩,编写一程序。

应用简单菜单和子函数调用方式实现下面的功能:(1)从键盘输入 10 个学生的以上内容,存入文件 stud.txt(2)浏览显示成绩表(要求显示格式成绩时,格式较规范)(3)将 10 个学生按照平均分数从高到低进行排序,结果存入文件 stud1.txt( 4)输入任意的一个课程名,分数从高到低进行排序,结果存入文件stud2.txt ( 5)向文件 stud1.txt 中插入一个记录,成绩排序不变,结果存入文件 stud1.txt#include "stdio.h" /* 头文件名*/*/#inelude "stdlib.h" /*头文件名,因为程序中用到了exit(结束程序)和函数*/ #include "string.h"/*头文件名,因为程序中用到了字符串函数 */#define N 1000定义结构体模块struct student {long num; /* 定义学生学号为长整型 */char name[20]; /* 定义姓名为字符型,占 12 个字符*/float math,English,physics,total,average;float TOT_math,TOT_English,TOT_physics,TOT_total,TOT_aver;float aver_math,aver_English,aver_physics,aver_total,aver_average;}student; /* 定义结构体名称为 student*/输入初始值模块void input(struct student *p,int size){int i;for(i=0;i<size;i++){printf("请输入学号 :");while(1){scanf("%ld",&p[i].num);if(long(p[i].num)!=p[i].num||long(p[i].num)<=0){ /* 输入判断*/printf("输入错误,学号必须为整数 ,请重新输入 : ");fflush(stdin);}else{break;}}printf("请输入姓名 :");scanf("%s",p[i].name);printf("请输入数学成绩 :");保存初始值到 "初始二进制值 .txt"模************************************while(1){scanf("%f",&p[i].math);if(float(p[i].math)!=p[i].math||float(p[i].math)<=0||p[i].math>100||p[i].math <0){printf("输入错误 ,数学成绩必须为 0~100 之间的数 ,请重新输入 : "); fflush(stdin);} else{break;}}printf("请输入英语成绩 :");while(1){scanf("%f",&p[i].English);if(float(p[i].English)!=p[i].English||float(p[i].English)<=0||p[i].Eng lish>100||p[i ].English<0){printf("输入错误 ,英语成绩必须为 0~100 之间的数 ,请重新输入 : ");fflush(stdin); } else{break;}}printf("请输入物理成绩 :");while(1){scanf("%f",&p[i].physics);if(float(p[i].physics)!=p[i].physics||float(p[i].physics)<=0||p[i].phy sics>100||p[ i].physics<0){printf("输入错误 ,英语成绩必须为 0~100 之间的数 ,请重新输入 : "); fflush(stdin);} else{break;}} printf("\n");}printf("信息录入成功 !\n\n");}void save(struct student *p,int size){/* 保存模块 */FILE *fp;int i;if((fp=fopen("初始值二进制值 .txt","wb+"))==NULL){ /* 建立文件 */ printf("cannot open the file\n");}for(i=0;i<size;i++){ fwrite(&p[i],sizeof(student),1,fp);} /* 快写函数, 写到磁盘中为二进制数 */ fclose(fp); /* 关闭文件 */}*/ 块保存初始值到 "初始二进制值 .txt"模******************************************************************************************************void save0(struct student *p,int size){ /* 保存模块 */FILE *fp;int i;if((fp=fopen("初始值二进制值 1.txt","ab+"))==NULL){ /* 建立文件 */printf("cannot open the file\n");}for(i=0;i<size;i++){ fwrite(&p[i],sizeof(student),1,fp);} /* 快写函数, 写到磁盘中为二进制数 */ fclose(fp); /* 关闭文件 */ }保存初始值到可浏览文件模块void SAVE(struct student *p,int size){FILE *fp;int i,b=0; char name[20];printf("请输入保存初始值的可浏览文件名 : "); scanf("%s",name); if((fp=fopen(name,"w+"))==NULL){ printf("文件名输入错误 !!\n");}fprintf(fp,"\n\t\t -------------------------------- \n"); fprintf(fp,"\t\t 序号 学号 姓名 数学 英语 物理 \n"); fprintf(fp,"\t\t --------------------------------- "); fprintf(fp,"\n"); for(i=0;i<size;i++) {b++;fprintf(fp,"\t\t %-6d%-12d%-12s%-8.2f%-8.2f%-8.2f\n",b,p[i].num,p[i].n ame,p[ i].math,p[i].English,p[i].physics);fprintf(fp,"\t\t -------------------------------- \n"); }fclose(fp);printf("\n 文件保存成功!\n\n");*/ 块读取初始值模块int read(struct student *p,int size){FILE *fp;int i,n=0;if((fp=fopen("初始值二进制值 .txt","rb+"))==NULL){ printf("文件名输入错误 !!\n");}for(i=0;i<size;i++) { if(fread(&p[i],sizeof(structstudent),1,fp)!=0){n++;}} fclose(fp);return n;}I********************************************************************读取输出初始值模块void read_print(struct student *p,int size){ FILE *fp;int i,n=0,b=0;if((fp=fopen("初始值二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t\t ------------------------------------ \n");printf("\t\t 序号学号姓名数学英语物理 \n");printf("\t\t --------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} for(i=0;i<n;i++) {b++;printf("\t\t %-6d%-12d%-12s%-8.2f%-8.2f",b,p[i].num,p[i].name,p[i].mat h,p[i]. English);printf("%-8.2f\n",p[i].physics);printf("\t\t ---------------------------------- \n");}printf("\n\n");fclose(fp);}计算总分和平均分模块*****************************************'void total_average(struct student *p,int size){ /* 求每位同学的总分和平均分模块*/int i;for(i=0;i<size;i++){ /* 循环,从第一个同学开始计算到最后一个同学*/p[i].total=p[i].math+p[i].English+p[i].physics;/* 每个同学的总分等于三科成绩之和 */ p[i].average=p[i].total/3; /* 每个同学的平均分等于总分的 1/3*/ }}I********************************************************************输出初始值总分和平均分模块void read_print1(struct student *p,int size){void total_average(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("初始值二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 序号学号姓名数学英语物理总分平均分 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} total_average(p,n);for(i=0;i<n;i++) {b++;printf("\t %-6d%-12d%-12s%-8.2f%-8.2f",b,p[i].num,p[i].name,p[i].math, p[i].E nglish);printf("%-8.2f%-10.2f%-8.2f\n",p[i].physics,p[i].total,p[i].average);printf("\t --------------------------------------------- \n");}printf("\n\n"); fclose(fp);}I***********************************************************************************************************************************************将初始值按平均分排序模块void range(struct student *p,int size){ /* 所有同学的成绩按平均分由高到低排序模块 */int i,j,k;struct student temp; /* 定义一个 student 类型的变量备用 */ for(i=0;i<size;i++){ /* 用选择排序法进行排序 */ k=i;for(j=i+1;j<size;j++) if(p[k].average<p[j].average){ temp=p[k];p[k]=p[j]; p[j]=temp;}}}输出初始值按平均分排序的结果模块int read_print2(struct student *p,int size){void total_average(struct student *p,int size);void range(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("初始值二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分名次 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) { if(fread(&p[i],sizeof(structstudent),1,fp)!=0){n++;}} total_average(p,n); range(p,n);for(i=0;i<n;i++) {b++;printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].En glish);printf("%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average,b);printf("\t ---------------------------------------------- \n");}printf("\n\n");"初始值按平均分排保存初始值按平均分排序后结果到可浏览文件模块 ******************************** */ fclose(fp); return n;}/******************** 保存初始值按平均分排序后结果到 序二进制值 .txt"模块void save1(struct student *p,int size){/* 保存模块 */FILE *fp;int i;if((fp=fopen("按平均分排序二进制值 .txt","wb+"))==NULL){ /* 建 立文件 */ printf("cannot open the file\n");}for(i=0;i<size;i++){ fwrite(&p[i],sizeof(student),1,fp);} /* 快写函数, 写到磁盘中为二进制数 */ fclose(fp); /* 关闭文件 */}读取排序后结果模块 ************************************************ int read1(struct student *p,int size){FILE *fp;int i,n=0;if((fp=fopen("按平均分排序二进制值 .txt","r+"))==NULL){ printf("文件名输入错误 !!\n");} for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} fclose(fp); return n;}void SAVE1(struct student *p,int size){FILE *fp;int i,b=0; char name[20];printf("请输入保存排序结果的文件名 : ");scanf("%s",name); if((fp=fopen(name,"w+"))==NULL){ printf("文件名输入错误 !!\n");}fprintf(fp,"\n\t -------------------------------------------- \n");fprintf(fp,"\t 学号姓名数学英语物理总分平均分名次 \n");fprintf(fp,"\t --------------------------------------------- \n");fprintf(fp,"\n"); for(i=0;i<size;i++) {b++;fprintf(fp,"\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i ].Englis h);fprintf(fp,"%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average ,b); fprintf(fp,"\t --------------------------------------- \n");} fclose(fp); printf("\n 文件保存成功 !\n\n");}科目选择模块int choose(){system("color B1 ");system("cls");printf("\n\t************ 请选择按成绩从高到低排序的科目******************\n\n");printf("\t\t\t 查看数学成绩排序请输入 (数学 )\n\n");printf("\t\t\t 查看英语成绩排序请输入 (英语 )\n\n");printf("\t\t\t 查看物理成绩排序请输入 (物理 )\n\n");printf("\t=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* =*\n");printf("\t\t 请输入科目名称 : ");int a;char str1[]="数学",str2[]="英语",str3[]="物理";char str[20];scanf("%s",str);if(strcmp(str1,str)==0){a=1;}else{if(strcmp(str2,str)==0){a=2;}else{if(strcmp(str3,str)==0){a=3;}else{printf("\n 输入错误 ,请重新输入 !!\n\n"); system("pause");}} }return(a);所有同学的成绩按数学成绩由高到低排序}模块void range1(struct student *p,int size){int i,j,k;struct student temp;for(i=0;i<size;i++){ /* 用选择排序法进行排序 */ k=i;for(j=i+1;j<size;j++) if(p[k].math<p[j].math){ temp=p[k]; p[k]=p[j];p[j]=temp;}}所有同学的成绩按英语成绩由高到低排序}模块void range2(struct student *p,int size){int i,j,k;struct student temp;for(i=0;i<size;i++){ /* 用选择排序法进行排序 */ k=i;for(j=i+1;j<size;j++) if(p[k].English<p[j].English){ temp=p[k];p[k]=p[j]; p[j]=temp;}}}**************************************所有同学的成绩按物理成绩由高到低排序模块void range3(struct student *p,int size){int i,j,k;struct student temp;for(i=0;i<size;i++){ /* 用选择排序法进行排序 */ k=i;for(j=i+1;j<size;j++) if(p[k].physics<p[j].physics){ temp=p[k];p[k]=p[j]; p[j]=temp;}}}输出按数学科目排序结果模块int read_print31(struct student *p,int size){void total_average(struct student *p,int size);void range1(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("按平均分排序二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分名次 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} total_average(p,n);range1(p,n); for(i=0;i<n;i++) {b++;printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].En glish);printf("%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average,b);printf("\t ---------------------------------------------- \n");}printf("\n\n");fclose(fp);return n;}输出按英语科目排序结果模块int read_print32(struct student *p,int size){void total_average(struct student *p,int size);void range2(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("按平均分排序二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分名次 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} total_average(p,n);range2(p,n); for(i=0;i<n;i++) {b++;printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].En glish);printf("%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average,b);printf("\t ---------------------------------------------- \n");}printf("\n\n"); fclose(fp);return n;}输出按物理科目排序结果模块int read_print33(struct student *p,int size){ void total_average(struct student *p,int size); void range3(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("按平均分排序二进制值 .txt","rb+"))==NULL){printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分名次 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} total_average(p,n);range3(p,n);for(i=0;i<n;i++) {b++;printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].En glish);printf("%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average,b);printf("\t ---------------------------------------------- \n");}printf("\n\n"); fclose(fp);return n;}保存按科目排序结果模块void SAVE2(struct student *p,int size){FILE *fp;int i,b=0;char name[20];printf("请输入保存科目排序后的文件名 : "); scanf("%s",name);if((fp=fopen(name,"w+"))==NULL){ printf("文件名输入错误 !!\n");}fprintf(fp,"\n\t -------------------------------------------- \n");fprintf(fp,"\t 学号姓名数学英语物理总分平均分名次 \n");fprintf(fp,"\t --------------------------------------------- \n");fprintf(fp,"\n"); for(i=0;i<size;i++) {b++;fprintf(fp,"\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i ].Englis h);fprintf(fp,"%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average ,b); fprintf(fp,"\t --------------------------------------- \n");} fclose(fp); printf("\n 文件保存成功 !\n\n");}输出所有值按平均分排序的结果模块输出所有值按平均分排序的结果模块int read_print3(struct student *p,int size){void total_average(struct student *p,int size);void range(struct student *p,int size);FILE *fp;int i,n=0,b=0;if((fp=fopen("初始值二进制值 1.txt","rb+"))==NULL){ printf("文件名输入错误 !!\n");} printf("\n\t ------------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分名次 \n");printf("\t --------------------------------------------- \n");for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0){n++;}} total_average(p,n);range(p,n);for(i=0;i<n;i++) {b++;printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].En glish);printf("%-8.2f%-10.2f%-8.2f %d\n",p[i].physics,p[i].total,p[i].average,b);printf("\t ---------------------------------------------- \n");}printf("\n\n");fclose(fp);return n;}查找模块void search(struct student *p,int size){ void total_average(struct student *p,int size);char str[20]; long c;printf("\n\t* ******************* 查找某位同学的成绩int i,a,flag=0,n=0;*********************\n\n");printf("\t\t\t 按学号查找请输入 (学号 )\n\n"); printf("\t\t\t 按姓名查找请输入 (姓名 )\n\n");printf("\t=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*==*\n");char str1[]="学号",str2[]="姓名";char str3[20];while(1){printf("\t\t 请输入查找方式 : ");scanf("%s",str3);if(strcmp(str1,str3)==0){a=1;break;}else{if(strcmp(str2,str3)==0){a=2;break;}else{printf("\n 输入错误 ,请重新输入 !!\n\n");}}}switch(a){case 1: printf("\n\t 请输入学号 : ");scanf("%s",str);c=strtol(str,NULL,0);FILE *fp;if((fp=fopen("初始值二进制值 1.txt","rb+"))==NULL){printf("文件名输入错误 !!\n");}for(i=0;i<size;i++) {if(fread(&p[i],sizeof(struct student),1,fp)!=0)n++;}total_average(p,n);for(i=0;i<n;i++)if(p[i].num==c){ flag=1;\n");物理总分printf("\t 学号平均分\n");姓名数学英语printf("\n\t ---------------------------------------------- \n");printf("\t 学号姓名数学英语物理总分平均分 \n");printf("\t ---------------------------------------------- \n");printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].Englis h);printf("%-8.2f%-10.2f%-8.2f\n",p[i].physics,p[i].total,p[i].average);printf("\t ---------------------------------------------- \n\n");break;}if(flag==0){printf("输入学号错误 !!\n");}break;case 2: printf("\n\t 请输入姓名 : "); scanf("%s",str);if((fp=fopen("初始值二进制值 1.txt","rb+"))==NULL){printf("文件名输入错误 !!\n");for(i=0;i<size;i++){if(fread(&p[i],sizeof(struct student),1,fp)!=0)n++;}total_average(p,n);for(i=0;i<n;i++)if(strcmp(str,p[i].name)==0){ flag=1;printf("\n\tprintf("\t ---------------------------------------------- \n");printf("\t%-12d%-12s%-8.2f%-8.2f",p[i].num,p[i].name,p[i].math,p[i].Englis h);printf("%-8.2f%-10.2f%-8.2f\n",p[i].physics,p[i].total,p[i].average);printf("\t ---------------------------------------------- \n\n");break;}if(flag==0){printf("输入姓名错误 !!\n");}break;}**************************}void correct(struct student *p,int size){void input(struct student *p,int size);int i,a=0,flag=0; FILE *fp;if((fp=fopen("初始值二进制值 1.txt","r+"))==NULL){printf("不能打开文件 \n");}printf("请输入需要修改人的学号进行修改 ,修改后将自动计算总分和平均分并排序 !!\n");printf("\n\t 请输入需要修改学生的学号 : ");scanf("%ld",&p[N].num);for(i=0;fread(&p[i],sizeof(struct student),1,fp)!=0;i++){a++;}for(i=0;i<a;i++)if(p[i].num==p[N].num){flag=1;printf("请输入新的信息 !!\n\n");printf("请输入学号 :");while(1){scanf("%ld",&p[i].num);if(long(p[i].num)!=p[i].num||long(p[i].num)<=0){ /* 输入判断*/printf("输入错误,学号必须为整数 ,请重新输入 : ");fflush(stdin);} else{break;}} printf("请输入姓名 :");scanf("%s",p[i].name);printf("请输入数学成绩 :");while(1){scanf("%f",&p[i].math);if(float(p[i].math)!=p[i].math||float(p[i].math)<=0||p[i].math>100||p[ i].math <0){printf("输入错误,数学成绩必须为0~100 之间的数,请重新输入: ");fflush(stdin);}else{break;}}printf("请输入英语成绩 :");while(1){scanf("%f",&p[i].English);if(float(p[i].English)!=p[i].English||float(p[i].English)<=0||p[i].Eng lish>100||p[i ].English<0){printf("输入错误 ,英语成绩必须为 0~100 之间的数 ,请重新输入 : ");fflush(stdin); } else{break;}} printf("请输入物理成绩 :"); while(1){scanf("%f",&p[i].physics);if(float(p[i].physics)!=p[i].physics||float(p[i].physics)<=0||p[i].phy sics>100||p[i].physics<0){printf("输入错误,英语成绩必须为0~100 之间的数,请重新输入: ");fflush(stdin);} else{break;}}}if((fp=fopen("初始值二进制值 1.txt","w+"))==NULL){printf("不能打开文件 \n");exit(0); }for(i=0;i<a;i++){ fwrite(&p[i],sizeof(struct student),1,fp);}fclose(fp);if(flag==0){printf("对不起 !! 没有查找到您所输的学号 !!\n");}}删除void delite (struct student *p,int size){int i,a=0,flag=0; FILE *fp;printf("请输入需要删除的学号进行查找后,该项将自动删除并自动计算总分和平均分及排序 !!\n");if((fp=fopen("初始值二进制值 1.txt","rb+"))==NULL){ printf("不能打开文件 \n");}printf("\n\t 请输入需要删除学生的学号 : "); scanf("%ld",&p[N].num);for(i=0;fread(&p[i],sizeof(struct student),1,fp)!=0;i++){a++;}for(i=0;i<a;i++){if(p[i].num==p[N].num){ for(i=i;i<a;i++){ p[i]=p[i+1];}if((fp=fopen("初始值二进制值 1.txt","w+"))==NULL){ printf("不能打开文件 \n");exit(0);} for(i=0;i<a-1;i++){ fwrite(&p[i],sizeof(struct student),1,fp);} fclose(fp);flag=1;break;}} if(flag==0){ printf("对不起 !! 没有你找到你想删除的人 !!\n");system("pause");*/\n\n");printf("\t |***| (6)插入新的成绩 \n\n");|***| (7)查找某位|=*=| (8)按学号修改|===| (9)按学号删除|=*=| (0)浏览所有同|===| (10)退出程序*/ ******************************************************* int menu(){int a;system("color 9F"); /* 改变输出框字体和背景的颜色 */ system("cls");/* 运行前清屏 */printf("\n");printf("\t===============成绩 *=*=*=*=*=*=* 处理=*=*=*=*=*=*=* 系统===============\n");printf("\n\t 作者:卢荣盼 班级 :计本 102 学号:1018014052\n\n");printf("\t 此程序具有以下功能: \n"); printf("\t =========\n");printf("\n\t |***| (1)输入同学的相关信息同学的成绩 \n\n"); printf("\t |=*=| (2)浏览初始学生信息某位同学的成绩 \n\n"); printf("\t |===| (3)求初始学生总分及平均分某位同学的信息 \n\n"); printf("\t |=*=| (4)查看初始学生平均分排序 学的信息及排名 \n\n"); printf("\t |===| (5)按科目排序存入所有成绩printf("\t=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n");printf("\t 请选择操作序号 (0-7):"); /* 选择操作项 */scanf("%d",&a); /* 输入选择项 */ return a;}主函数******************************************************* void main(){int b=0,n;struct student p[N];}while(1){switch(menu()){case 1:system("color B0 ");system("cls");printf("请输入要保存的初始数据的个数 : ");while(1){scanf("%d",&n);if(int(n)!=n||long(n)<=0){ /* 输入判断 */ printf("输入错误,个数必须为整数 ,请重新输入 : "); fflush(stdin);}else{break;}} input(p,n); /* 输入初始同学信息 */save(p,n);save0(p,n);SAVE(p,n); /* 保存初始同学信息 */system("pause"); /* 程序运行至此暂停,然后按任意键可继续运行*/break;case 2:system("color F9");system("cls");printf("\n\n 读取数据如下 :\n");read_print(p,N); /* 读取并输出初始值数据 */system("pause");break;case 3:system("color d0 ");system("cls");printf("\n\n\n\n 录入初始学生的总分平均分如下表 : \n");read_print1(p,N); /* 输出初始值每位同学的总分和平均分*/system("pause");break;case 4:system("color F0 ");system("cls");printf("\n\n\n\n 录入初始学生成绩按平均分由高到低排序如下\n\n");SAVE1(p,read_print2(p,N)); /* 输出和保存初始值每位同学的平均分排名*/save1(p,read(p,N)); system("pause");break;case 5:switch(choose()){case 1: printf("\n 所有同学的成绩按数学成绩由高到低排序如下 :\n\n");/* 保存输出SAVE2(p,read_print31(p,N));模块*/system("pause");break;case 2: printf("\n 所有同学的成绩按英语成绩由高到低排序如下 :\n\n");SAVE2(p,read_print32(p,N)); /* 保存输出模块*/system("pause");break;case 3: printf("\n 所有同学的成绩按英语成绩由高到低排序如下 :\n\n");SAVE2(p,read_print33(p,N)); /* 保存输出模块*/system("pause");break;}break;case 6: system("color d0 "); system("cls");printf("插入前学生信息如下 :\n"); read_print3(p,N);printf("请输入插入学生信息 :\n\n"); input(p,1);save0(p,1);printf("插入后学生信息如下 :\n");SAVE1(p,read_print3(p,N)); system("pause"); break;case 7:system("color fc "); system("cls"); search(p,N);system("pause");break;case 8: system("color E0 "); system("cls"); printf("修改前学生信息如下 :\n"); read_print3(p,N); correct(p,N);printf("修改后学生信息如下 :\n"); SAVE1(p,read_print3(p,N));system("pause");break;case 9:system("color A0 "); system("cls"); printf("删除前学生信息如下 :\n"); read_print3(p,N); delite(p,N);printf("删除后学生信息如下 :\n"); SAVE1(p,read_print3(p,N));谢谢使用程序,谢 /* 程序终止 system("pause");break;case 0: system("color e0 "); system("cls"); printf("读取数据如下 :\n"); read_print3(p,N); system("pause");break;case 10:system("color E0 ");{printf("\n谢!!\n\n");}system("pause");exit(O);*/default: system("color fc ");{printf("\n菜 单 选 择 错 误 ,请 重 新 选择!!\n\n");}system("pause");break;}}}。

相关主题