还剩6页未读,继续阅读
文本内容:
#includeconio.h#includestdio.h#includestdlib.h#defineMAX30/*日期结构体类型*/typedefstruct{intyear;intmonth;intday;}DATE;/*学生结构体类型*/typedefstruct{intnum;charname
[10];charsex
[10];DATEbirthday;intscore;}STU;intread_fileSTUstudents[]{FILE*fp;inti=0;iffp=fopenlab.txtrt==NULL{printf\n\n*****库文件不存在!请重建;return0;}whilefeoffp!=1{freadstudents[i]sizeofSTU1fp;ifstudents[i].num==0break;elsei++;}fclosefp;returni;}voidsave_fileSTUstudents[]intsum{FILE*fp;inti;iffp=fopenlab.txtwb==NULL{printf读文件错误!\n;return;}fori=0;isum;i++iffwritestudents[i]sizeofSTU1fp!=1printf写文件错误!\n;fclosefp;}/*输入模块*/intinputSTUstudents[]{inti=0sum;systemcls;printf\n\n录入学生个数\n\n;scanf%dsum;printf\n\n录入学生信息\nMAX;printf\n\n----------------------\n;fori=0;isum;i++{printf\n第%d个人i+1;printf\n\n学号;scanf%dstudents[i].num;printf\n\n姓名;scanf%sstudents[i].name;printf\n\n性别;scanf%sstudents[i].sex;printf\n\n出生日期;printf\n\n年;scanf%dstudents[i].birthday.year;printf\n\n月;scanf%dstudents[i].birthday.month;printf\n\n日;scanf%dstudents[i].birthday.day;printf\n\n成绩;scanf%dstudents[i].score;}printf\n---%d个学生信息输入完毕---\ni;printf---按任意键返回主菜单---;returni;}/*输出模块*/voidoutputSTUstudents[]intsum{systemcls;{inti=0;fori=0;isum;i++{printf\n-------学生信息-------\n;printf学号姓名性别出生日期成绩\n;printf-------------------------------\n;printf%4d%10s%8s%15d-%2d-%2d%3d\nstudents[i].numstudents[i].namestudents[i].sexstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.daystudents[i].score;}}printf按任意键返回主菜单\n;getch;}/*添加模块*/intappendSTUstudents[]intsum{systemcls;{intij;printf请输入要添加的学生数量:\n;scanf%dj;fori=sum;isum+j;i++{printf---按格式输入提示内容:\n;printf请输入学号:\n;scanf%dstudents[i].num;printf请输入姓名:\n;scanf%sstudents[i].name;printf请输入性别:\n;scanf%sstudents[i].sex;printf请输入出生日期:\n;scanf%d-%d-%dstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.day;printf请输入成绩:\n;scanf%dstudents[i].score;}printf%d本信息输入完毕i;printf学号姓名性别出生日期成绩\n;printf-------------------------------\n;printf%4d%10s%8s%15d-%2d-%2d%3d\nstudents[i].numstudents[i].namestudents[i].sexstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.daystudents[i].score;printf按任意键返回主菜单\n;sum=sum+j;returnsum;}}/*修改模块*/voidmodifySTUstudents[]intsum{inti=0choicemodify_numflag;do{systemcls;printf\n输入要修改的学生学号\n;scanf%dmodify_num;fori=0;isum;i++ifstudents[i].num==modify_num{printf\n-------学生信息-------\n;printf学号姓名性别出生日期成绩\n;printf-------------------------------\n;printf%4d%6s%4s%10d-%2d-%2d%6d\nstudents[i].numstudents[i].namestudents[i].sexstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.daystudents[i].score;printf\n您要修改那一项\n;printf\n1学号\n;printf\n2姓名\n;printf\n3性别\n;printf\n4出生日期\n;printf\n5成绩\n;printf\n请选择1-4:\n;scanf%dchoice;switchchoice{case1:printf\n输入修改后的学号;scanf%dstudents[i].num;break;case2:printf\n输入修改后的姓名;scanf%sstudents[i].name;break;case3:printf\n输入修改后的性别;scanf%sstudents[i].sex;break;case4:printf\n输入修改后的出生日期;scanf%d-%d-%dstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.day;break;case5:printf\n输入修改后的成绩;scanf%dstudents[i].score;break;}printf\n-------该学生信息-------\n;printf学号姓名性别出生日期成绩\n;printf-------------------------------\n;printf%4d%6s%4s%10d-%2d-%2d%6d\nstudents[i].numstudents[i].namestudents[i].sexstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.daystudents[i].score;break;}ifi==sum{printf\n该学号不存在;//bioskey0;}printf\n\n继续修改吗?Y/N;choice=getch;ifchoice==Y||choice==y{flag=1;printf\n继续!\n;}elseflag=0;}whileflag==1;printf\n---按任意键返回主菜单---\n;//bioskey0;}/*删除模块*/voiddelSTUstudents[]intsum{inti;intj;intdel_num;systemcls;printf\n输入要删除的学生学号\n;scanf%ddel_num;fori=0;isum;i++ifstudents[i].num==del_numbreak;forj=i;jsum;j++students[j]=students[j+1];}/*查询模块*/voidinquireSTUstudents[]intsum{inti=0choiceinquire_numflag;do{systemcls;printf\n输入要查询的学生学号\n;scanf%dinquire_num;fori=0;isum;i++ifstudents[i].num==inquire_num{printf\n-------该学生信息-------\n;printf学号姓名性别出生日期成绩\n;printf-------------------------------\n;printf%4d%6s%4s%10d-%2d-%2d%6d\nstudents[i].numstudents[i].namestudents[i].sexstudents[i].birthday.yearstudents[i].birthday.monthstudents[i].birthday.daystudents[i].score;break;}ifi==sum{printf\n该学号不存在;//bioskey0;}printf\n\n继续查询吗?Y/N;choice=getch;ifchoice==Y||choice==y{flag=1;printf\n继续!\n;}elseflag=0;}whileflag==1;printf\n---按任意键返回主菜单---\n;//bioskey0;}/*排序模块*/voidsortSTUstudents[]intsum{STUt;intijk;systemcls;printf\n------------------库行排名--------------------------\n;printf\n----------------------------------------------------\n;printf\n排名学号姓名性别出生日期\n;fori=0;isum;i++{k=i;forj=i+1;jsum;j++ifstudents[i].scorestudents[j].scorek=j;ifk!=i{t=students[i];students[i]=students[k];students[k]=t;}}outputstudentssum;//bioskey0;}voidmain{STUstudents[MAX];intchoicesum;sum=read_filestudents;ifsum==0{printf****并录入基本库存信息!****\n;getch;sum=inputstudents;}do{systemcls;printf\n\n\n****学生管理系统*****\n\n;printf1添加学生信息\n\n;printf2修改学生信息\n\n;printf3删除学生信息\n\n;printf4打印学生信息\n\n;printf5查询学生信息\n\n;printf6排序学生信息\n\n;printf0退出系统\n\n\n;printf请选择0-6:;scanf%dchoice;switchchoice{case1:sum=appendstudentssum;break;case2:modifystudentssum;break;case3:delstudentssum;break;case4:outputstudentssum;break;case5:inquirestudentssum;break;case6:sortstudentssum;break;case0:break;}}whilechoice!=0;save_filestudentssum;}。