#includestdio.h/*常用的标准输入输出函数*/#includeprocess.h/*access函数原型包含*/#includeio.h/*exit函数原型包含*/#includestring.h/*strcmp函数原型包含*/#includeconio.h#includestdlib.h#includestring#defineN100/*最多的学生人数*/structstudent/*学生结构体定义*/{charclas[15];/*班级*/charno[13];/*学号,最多为12位*/charname[20];/*姓名*/charsex[8];/*性别*/charaddr[30];/*地址*/charphone[15];/*电话*/floatscore[5];/*存储五门课成绩*/floatave;/*平均分*/}stu[N];intnum;voidinit();voidweihu();voidtongji();voidtongji1();voidtongji2();voidsort1();voidfind1();voidsave();voidnewfile();voidread1();voidnewfile();voidnew1();voiddelete1();voidmodify();voidsortscore();intfindname(charcname[]);voidmain(){intchoice=1;system(COLOR2f);printf(~~~~~~~~~~~~~~~~~学生信息管理系统~~~~~~~~~~~~~~~~\n);printf(********\n);printf(***欢迎进入!!!***\n);printf(**\n);printf(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);init();while(choice!=5){system(COLOR1F);printf(*******************************\n);printf(****\n);printf(**主菜单**\n);printf(**1:学生成绩维护**\n);printf(**2:学生成绩统计**\n);printf(**3:学生成绩排序**\n);printf(**4:学生成绩查询**\n);printf(**5:退出**\n);printf(****\n);printf(*******************************\n);printf(请选择:);scanf(%d,&choice);switch(choice){case1:weihu();break;case2:tongji();break;case3:sort1();break;case4:find1();break;case5:save();printf(谢谢使用本系统!!\n);break;default:printf(选择错误,请重新选择!);}}}//1)输出学生成绩(公共函数)voidoutput()/*输出学生数据*/{inti,j;for(i=0;inum;i++){printf(班级姓名学号性别地址电话\n);printf(%s%s%s%s%s%s\n,stu[i].clas,stu[i].name,stu[i].no,stu[i].sex,stu[i].addr,stu[i].phone);printf(\n);printf(C语言大学物理网页设计高数英语\n);for(j=0;j5;j++)printf(%-12.f,stu[i].score[j]);printf(\n);printf(\n);}}//2)系统初始化代码voidinit(){if(access(stu[i].dat,0))/*判断文件是否存在*/newfile();/*不存在创建新的数据文件*/elseread1();/*若存在,从文件中读取数据*/}//3)创立新的数据文件voidnewfile()/*从键盘输入学生成绩并保存到文件中*/{inti;FILE*fp;if((fp=fopen(F:\\stu.dat,wb))==NULL)/*创建二进制文件*/{printf(文件创建失败!请重新运行程序。\n);exit(0);/*终止程序运行*/}printf(请输入学生人数:);scanf(%d,&num);for(i=0;inum;i++){printf(班级:);getchar();gets(stu[i].clas);printf(姓名:);gets(stu[i].name);printf(请输入第%d位学生的学号:,i+1);gets(stu[i].no);printf(性别:);gets(stu[i].sex);printf(地址:);gets(stu[i].addr);printf(电话:);gets(stu[i].phone);printf(C语言:);scanf(%f,&stu[i].score[0]);printf(大学物理:);scanf(%f,&stu[i].score[1]);printf(网页设计:);scanf(%f,&stu[i].score[2]);printf(高数:);scanf(%f,&stu[i].score[3]);printf(英语:);scanf(%f,&stu[i].score[4]);fwrite(&stu,sizeof(stu),1,fp);printf(请输入下一条学生信息\n);/*把第i+1名学生成绩写入文件*/}fclose(fp);printf(你刚刚输入的数据共有%d个学生成绩。详细数据为:\n,num);output();}//4)从数据文件中读取成绩voidread1(){FILE*fp;num=0;/*num为数据文件实际存储成绩人数*/fp=fopen(stu.dat,r);if(fp==NULL)/*文件不存在*/{printf(文件打开失败!请重新运行程序。\n);exit(0);/*终止程序运行*/}while(!feof(fp)){fread(&stu[num],1,sizeof(structstudent),fp);num++;}num--;fclose(fp);printf(现在共有%d个学生成绩,初始数据为:\n,num);output();/*输出读取结果*/}//5)学生成绩维护voidweihu(){intchoice1;system(COLOR2F);printf(*******************************************\n);printf(****\n);printf(**学生成绩维护子菜单**\n);printf(**1.新增**\n);printf(**2.删除(按学号)**\n);printf(**3.修改**\n);printf(****\n);printf(********************************************\n);printf(请选择);scanf(%d,&choice1);switch(choice1){case1:new1();break;case2:delete1();break;case3:modify();break;default:printf(选择错误,请重新选择!\n);}}//6)新增一个学生成绩voidnew1(){printf(请输入班级:);getchar();gets(stu[num].clas);printf(请输入学号:);gets(stu[num].no);printf(姓名:);gets(stu[num].name);printf(性别:);gets(stu[num].sex);printf(地址:);gets(stu[num].addr);printf(电话:);gets(stu[num].phone);printf(C语言:);scanf(%f,&stu[num].score[0]);printf(大学物理:);scanf(%f,&stu[num].score[1]);printf(网页设计:);scanf(%f,&stu[num].score[2]);printf(高数:);scanf(%f,&stu[num].score[3]);printf(英语:);scanf(%f,&stu[num].score[4]);num++;printf(现在共有%d个学生成绩,数据为:\n,num);output();}//7)按学号查找intfind(charsno[]){inti;for(i=0;inum;i++)if(strcmp(stu[i].no,sno)==0)/*判断两个字符串相等*/returni;/*查找成功*/return-1;/*查找失败*/}//删除学生信息voiddelete1(){charcno[13];inti,j;printf(请输入要删除的学号:\n);getchar();gets(cno);i=find(cno);if(i==-1){printf(不存在该学号!!!!\n);}else{for(j=i;jnum;j++)stu[j]=stu[j+1];num--;printf(删除后还有%d个学生成绩,数据为:\n,num);output();}}//修改学生信息voidmodify(){charcno[13];inti,j;printf(请输入要修改学生的学号:\n);getchar();gets(cno);i=find(cno);printf(班级:);gets(stu[i].clas);printf(姓名:);gets(stu[i].name);printf(性别:);gets(stu[i].sex);printf(地址:);gets(stu[i].addr);printf(电话:);gets(stu[i].phone);printf(C语言:);scanf(%f,&stu[i].score[0]);printf(大学物理:);scanf(%f,&stu[i].score[1]);printf(网页设计:);scanf(%f,&stu[i].score[2]);printf(高数:);scanf(%f,&stu[i].score[3]);printf(英语:);scanf(%f,&stu[i].score[4]);printf(修改后为:\n);printf(%s\t%s\t%s\t%s\t%s\t%s\t\n,stu[i].clas,stu[i].name,stu[i].no,stu[i].sex,stu[i].addr,stu[i].phone);printf(C语言大学物理网页设计高数英语\n);for(j=0;j5;j++)printf(%-12.f,stu[i].score[j]);printf(\n);}//10)统计voidtongji(){intchoice2;system(COLOR3F);printf(***************************************************\n);printf(******\n);printf(***统计子菜单***\n);printf(***1.计算每门课程平均分***\n);printf(***2.计算每个学生平均分***\n);printf(******\n);printf(***************************************************\n);printf(请选择:);scanf(%d,&choice2);if(choice2==1)tongji1();elseif(choice2==2)tongji2();elsep