#includestdio.h#includestring.h#includestdlib.h#defineJ30inti;structdate{intyear;intmonth;//出生年月日intday;};structclass1{chargrade[10];//班级charcollege[40];//学院charmajor[40];//专业};structstudent//学生信息{charnum[20];//学号charname[40];//姓名charsex[2];//性别structdatebirthday;//出生日期structclass1classroom;//charclass_num[20];//班级序号charnation[10];charnative[40];//家庭住址intave;}st[100];voidsave();/*功能保存函数*/voidscanf_stu();//输入模块intload();/*调用加载文件函数*/voidinput(inti);/*调用确认学号不重复函数*/voidsearch();//查询模块voidsearch_num();/*按学号查询函数*/voidsearch_class();/*按班号查询函数*/voidprintf_face();voidprintf_one(inti);voidrevise();//修改模块intqueren();/*确认修改或删除函数*/voidrevise_one(inti);/*修改一个学生信息函数*/voiddelete_stu();//删除模块voidstat();//统计模块voidstat_class();/*按班号统计函数*/voidstat_sex();/*按性别统计函数*/voidstat_nation();/*按民族统计函数*/voidstat_native();/*按籍贯统计函数*/voidstat_born();/*按出生年份统计*/voidmenu();voidprintf_back();voidsave(intn){FILE*fp;inti;if((fp=fopen(E:\\学生证管理信息.txt,w))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;in+1;i++)if(st[i].ave!=0)fprintf(fp,%s%s%s%s%s%s%s%s%s%d%d%d%d,st[i].num,st[i].class_num,st[i].classroom.grade,st[i].classroom.college,st[i].classroom.major,st[i].name,st[i].sex,st[i].nation,st[i].native,st[i].birthday.year,st[i].birthday.month,st[i].birthday.day,st[i].ave);fclose(fp);}voidprintf_back(){inta;printf(\n输入1回主菜单,0退出程序:);scanf(%d,&a);if(a==0)exit(0);elsemenu();}voidscanf_stu()//输入模块{intn,m,i;n=load();/*调用加载文件函数*/printf(需要添加新用户的个数:);scanf(%d,&m);printf(\n);for(i=0;im;i++)input(i);/*调用添加记录函数*/save(n+m);/*调用保存函数*/printf_back();/*调用选择返回或结束函数*/}intload()/*加载文件记录并计算学生个数函数*/{FILE*fp;inti;if((fp=fopen(E:\\学生证管理信息.txt,r))==NULL){printf(\nCannotopenfile\n);returnNULL;}for(i=0;!feof(fp);i++)fscanf(fp,%s%s%s%s%s%s%s%s%s%d%d%d%d,st[i].num,st[i].class_num,st[i].classroom.grade,st[i].classroom.college,st[i].classroom.major,st[i].name,st[i].sex,st[i].nation,st[i].native,&st[i].birthday.year,&st[i].birthday.month,&st[i].birthday.day,&st[i].ave);fclose(fp);return(i);}voidinput(inti){printf(\n学号:);scanf(%s,st[i].num);printf(\n班级序号:);scanf(%s,st[i].class_num);printf(\n班级:);scanf(%s,st[i].classroom.grade);printf(\n学院:);scanf(%s,st[i].classroom.college);printf(\n专业:);scanf(%s,st[i].classroom.major);printf(\n姓名:);scanf(%s,st[i].name);printf(\n性别:);scanf(%s,st[i].sex);printf(\n民族:);scanf(%s,st[i].nation);printf(\n籍贯:);scanf(%s,st[i].native);printf(\n出生年月:);scanf(%d%d%d,&st[i].birthday.year,&st[i].birthday.month,&st[i].birthday.day);st[i].ave=1;}voidsearch()//查询模块{intn,q;do{printf(\t\t***********************MENU*************************\n\n);printf(\t\t\t\t1.按学号查询\n);printf(\t\t\t\t2.按班号查询\n);printf(\t\t\t\t3.返回\n);printf(\n\t\t****************************************************\n);printf(请选择你需要做什么(1-3):[]\b\b);scanf(%d,&n);if(n1||n3){q=1;getchar();}elseq=0;}while(q==1);switch(n){case1:search_num();break;/*调用按学号查询函数*/case2:search_class();break;/*调用按班号查询函数*/case3:menu();/*调用主菜单函数*/}}voidsearch_num()/*按学号查询函数*/{intn,i;n=load();printf(\n请输入要查询学生的学号:);scanf(%s,st[n+1].num);for(i=0;in+1;i++)/*查找要修改或删除的学生*/if(strcmp(st[n+1].num,st[i].num)==0)break;if(i==n+1)printf(没有找到你输入的学号的学生!!请确认无误后重新输入!);else{printf_face();/*调用显示数据结构项目函数*/printf_one(i);/*输出该学生信息*/}printf_back();}voidprintf_face(){printf(\n学号班级序号班号学院专业姓名性别民族籍贯出生年份\n);}voidprintf_one(inti){printf(%s%s%s%s%s%s%s%s%s%d%d%d\n,st[i].num,st[i].class_num,st[i].classroom.grade,st[i].classroom.college,st[i].classroom.major,st[i].name,st[i].sex,st[i].nation,st[i].native,st[i].birthday.year,st[i].birthday.month,st[i].birthday.day);}voidsearch_class()/*按班号查询函数*/{intn,i,k=0;n=load();printf(\n请输入要查询学生的班号:);scanf(%s,st[n+1].classroom.grade);for(i=0;in+1;i++)/*查找要修改或删除的学生*/if(strcmp(st[n+1].classroom.grade,st[i].classroom.grade)==0)break;if(i==n+1)printf(没有找到你输入的班号的学生!!请确认无误后重新输入!);else{printf_face();/*调用显示数据结构项目函数*/printf_one(i);/*输出该学生信息*/}printf(\n共查找到该班学生%d个,k);printf_back();}voidrevise()//修改模块{intn,m;n=load();/*调用加载文件函数*/m=queren();/*调用确认修改函数*/printf(\n学号:);scanf(%s,st[i].num);printf(\n班级序号:);scanf(%s,st[i].class_num);printf(\n班级:);scanf(%s,st[i].classroom.grade);printf(\n学院:);scanf(%s,st[i].classroom.college);printf(\n专业:);scanf(%s,st[i].classroom.major);printf(\n姓名:);scanf(%s,st[i].name);printf(\n性别:);scanf(%s,st[i].sex);printf(\n民族:);scanf(%s,st[i].nation);printf(\n籍贯:);scanf(%s,st[i].native);printf(\n出生年月:);scanf(%d%d%d,&st[i].birthday.year,&st[i].birthday.month,&st[i].birthday.day);/*调用修改一个学生信息函数*/save(n);/*调用保存函数*/printf_back();}intqueren()/*确认修改或删除函数*/{inti,n,c;n=load();printf(\n请输入要修改或删除学生的学号:);scanf(%s,st[n+1].num);for(i=0;in+1;i++)/*查找要修改或删除的学生*/if(strcmp(st[n+1].num,st[i].num)==0)break;if(i==n+1)printf(没有找到你输入的学号的学生!!请确认无误后重新输入!);else{printf_face();/*调用显示数据结构项目函数*/printf_one(i);/*输出该学生信息*/}printf(输入1确认修改或删除\n输入0返回主菜单:);/*确认修改*/scanf(%d,&c);if(c==1)return(i);elseprintf_back();}voiddelete_stu(){intm,n;n=load();m=queren();st[m].ave=0;/*表示该记录要删除*/save(n);printf_back();}voidstat(){intn,q;do{printf(\t\t***********************MENU*************************\n\n);printf(\t\t\t\t1.按班号统计\n);printf(\t\t\t\t2.按性别统计\n