C 语言学生教务管理系统代码C++语言学生教务管理系统代码 #include <stdio.h> #include <string.h> struct teacher{char name[30];char teachernumber[30];char birthplace[30];char teacherID[30];char telephone[30];char course[30]; }teacher[100];struct student{char name[30];char studentnumber[30];char birthplace[30];char studentID[30];char telephone[30]; }student[1000];struct manager{char name[30];char managernumber[30];char birthplace[30];char managerID[30];char telephone[30]; }manager[100]; struct grade{char number[30];float math;float ph;float english;float c_language;float practise;float sum;float aver;}grade[30];struct grade_count {float amax;float amin;float mathmax;float cmax;float phmax;float emax;float pmax;float mathmin;float cmin;float phmin;float emin;float pmin;char str1[10];char str2[10];char str3[10];char str4[10];char str5[10];char str6[10];char str7[10];char str8[10];char str9[10];char str10[10];char str11[10];char str12[10];}grade_count;void addteacher(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("teacher.txt","a+");printf("请输入您要添加的教师的名字:\n"); scanf ("%s",teacher[i].name);printf("请输入您要添加的教师的教师号:\n");scanf ("%s",teacher[i].teachernumber);printf("请输入您要添加的教师的出生地:\n");scanf ("%s",teacher[i].birthplace);printf("请输入您要添加的教师的身份证号:\n");scanf ("%s",teacher[i].teacherID);printf("请输入您要添加的教师的联系方式:\n");scanf ("%s",teacher[i].telephone);printf("请输入您要添加的教师的课程:\n");scanf ("%s",teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp1);printf("%5s,%5s,%5s,%5s,%5s,%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teache rID,teacher[i].telephone,teacher[i].course);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changeteacher(){FILE *fp,*fp2;char teachername[30];int i;int choice;fp=fopen("teacher.txt","r");fp2=fopen("teacherl.txt","w");printf("------欢迎进入教师修改系统------\n\n");printf("请输入要修改的教师的名字\n");scanf("%s",teachername);for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) {if(strcmp(teacher[i].name,teachername)==0){printf("你所要修改的教师的资料如下:\n\n");printf("姓名:〈%s〉教师号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s> 课程:<%s>\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teacherID,teacher[i].telephone,teacher[i].course);printf(",请选择你要更新的内容:1:修改教师的姓名\n");printf(" 2:修改教师的教师号\n");printf(" 3:修改教师的出生地\n");printf(" 4:修改教师的身份证号\n");printf(" 5:修改教师的联系方式\n");printf(" 6:修改教师的课程\n");printf("请按照提示选择1-6:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",teacher[i].name);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 2:{printf("请输入新的教师号\n");scanf("%s",teacher[i].teachernumber);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",teacher[i].birthplace);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",teacher[i].teacherID);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&teacher[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 6:{printf("请输入新的课程 \n");scanf("%d",&teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&teacher[i],sizeof(struct teacher),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("teacher.txt","w");fp2=fopen("teacherl.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("teacherl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void tnamedele(){FILE *fp,*fp1;int i;char teachername[30];char ch1;printf("请输入教师的名字:\n");scanf("%s",teachername);fp=fopen("teacher.txt","r");fp1=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) if(strcmp(teachername,teacher[i].name)!=0){fwrite(&teacher[i],sizeof(struct teacher),1,fp1);fclose(fp);fclose(fp1);}printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("teacher.txt","w");fp1=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}void tnumberdele(){FILE *fp,*fp2;int i;char teachernumber[30];char ch2;printf("请输入教师的教师号:\n");scanf("%s",teachernumber);fp=fopen("teacher.txt","r");fp2=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++)if(strcmp(teachernumber,teacher[i].teachernumber)!=0) fwrite(&teacher[i],sizeof(struct teacher),1,fp2); fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("teacher.txt","w");fp2=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}void deleteteacher(){int i;do{printf("------欢迎进入教师删除系统------\n\n");printf(">>>按照教师的姓名删除按1\n");printf(">>>按照教师的教师号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:tnamedele();break;case 2:tnumberdele();break;default:break;}}while(i!=0);}void countteacher(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计教师的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在教师的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void tnameseek(){FILE *fp1;int i;char tname[30];int ch1;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的名字:\n");scanf("%s",tname);fp1=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){if(strcmp(tname,teacher[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void tnumberseek(){FILE *fp2;int i;char tnumber[30];int ch2;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的教师号:\n");scanf("%s",tnumber);fp2=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {if(strcmp(tnumber,teacher[i].teachernumber)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekteacher(){int i;do{printf("------欢迎进入教师查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照教师的名字查询\n");printf(" 2:按照教师的教师号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: tnameseek();break;case 2: tnumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mteachermanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<教师添加\n"); printf("2.<<<<教师修改\n"); printf("3.<<<<教师删除\n"); printf("4.<<<<教师统计\n"); printf("5.<<<<教师查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addteacher();break; case 2: changeteacher();break; case 3: deleteteacher();break; case 4: countteacher();break; case 5: seekteacher();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addstudent(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("student.txt","a+");printf("请输入您要添加的学生的名字:\n");scanf ("%s",student[i].name);printf("请输入您要添加的学生的学号:\n");scanf ("%s",student[i].studentnumber);printf("请输入您要添加的学生的出生地:\n");scanf ("%s",student[i].birthplace);printf("请输入您要添加的学生的身份证号:\n");scanf ("%s",student[i].studentID);printf("请输入您要添加的学生的联系方式:\n");scanf ("%s",student[i].telephone);fwrite(&student[i],sizeof(struct student),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",student[i].name,student[i ].studentnumber,student[i].birthplace,student[i].studentID, student[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changestudent(){FILE *fp,*fp2;char studentname[30];int i;int choice;fp=fopen("student.txt","r");fp2=fopen("studentl.txt","w");printf("------欢迎进入学生修改系统------\n\n");printf("请输入要修改的学生的名字\n");scanf("%s",studentname);for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(student[i].name,studentname)==0){printf("你所要修改的学生的资料如下:\n\n");printf("姓名:〈%s〉学生号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式:<%s>\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].studentID,student[i].telephone);printf(",请选择你要更新的内容:1:修改学生的姓名\n");printf(" 2:修改学生的学号\n");printf(" 3:修改学生的出生地\n");printf(" 4:修改学生的身份证号\n");printf(" 5:修改学生的联系方式\n");printf("请按照提示选择1-5:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",student[i].name);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 2:{printf("请输入新的学号\n");scanf("%s",student[i].studentnumber);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",student[i].birthplace);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",student[i].studentID);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&student[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&student[i],sizeof(struct student),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("student.txt","w");fp2=fopen("studentl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp2);fp2=fopen("studentl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void snamedele(){FILE *fp,*fp1;int i;char studentname[30];char ch1;printf("请输入学生的名字:\n");scanf("%s",studentname);fp=fopen("student.txt","r");fp1=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(studentname,student[i].name)!=0)fwrite(&student[i],sizeof(struct student),1,fp1); fclose(fp);fclose(fp1);printf("确定删除该学生,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("student.txt","w");fp1=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp1)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}}void snumberdele(){FILE *fp,*fp2;int i;char studentnumber[30];char ch2;printf("请输入学生的学号:\n");scanf("%s",studentnumber);fp=fopen("student.txt","r");fp2=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(studentnumber,student[i].studentnumber)!=0)fwrite(&student[i],sizeof(struct student),1,fp2);fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("student.txt","w");fp2=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {fwrite(&student[i],sizeof(struct student),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}}void deletestudent(){int i;do{printf("------欢迎进入学生删除系统------\n\n");printf(">>>按照学生的姓名删除按1\n");printf(">>>按照学生的学号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:snamedele();break;case 2:snumberdele();break;default:break;}}while(i!=0);}void countstudent(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计学生的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在学生的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void snameseek(){FILE *fp1;int i;char sname[30];int ch1;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的名字:\n");scanf("%s",sname);fp1=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(structstudent),1,fp1)!=0;i++){if(strcmp(sname,student[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,st udent[i].studentnumber,student[i].birthplace,student[i].stu dentID,teacher[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void snumberseek(){FILE *fp2;int i;char snumber[30];int ch2;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的学号:\n");scanf("%s",snumber);fp2=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {if(strcmp(snumber,student[i].studentnumber)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].stu dentID,student[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekstudent(){int i;do{printf("------欢迎进入学生查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照学生的名字查询\n");printf(" 2:按照学生的学号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: snameseek();break;case 2: snumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mstudentmanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<学生添加\n");printf("2.<<<<学生修改\n");printf("3.<<<<学生删除\n"); printf("4.<<<<学生统计\n"); printf("5.<<<<学生查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addstudent();break; case 2: changestudent();break; case 3: deletestudent();break; case 4: countstudent();break; case 5: seekstudent();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addmanager(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("manager.txt","a+");printf("请输入您要添加的管理员的名字:\n");scanf ("%s",manager[i].name);printf("请输入您要添加的管理员的证件号:\n");scanf ("%s",manager[i].managernumber);printf("请输入您要添加的管理员的出生地:\n");scanf ("%s",manager[i].birthplace);printf("请输入您要添加的管理员的身份证号:\n");scanf ("%s",manager[i].managerID);printf("请输入您要添加的管理员的联系方式:\n");scanf ("%s",manager[i].telephone);fwrite(&manager[i],sizeof(struct manager),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",manager[i].name,manager[i ].managernumber,manager[i].birthplace,manager[i].managerID, manager[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changemanager(){FILE *fp,*fp2;char managername[30];int i;int choice;fp=fopen("manager.txt","r");fp2=fopen("managerl.txt","w");printf("------欢迎进入管理员修改系统------\n\n");printf("请输入要修改的管理员的名字\n");scanf("%s",managername);for(i=0;fread(&manager[i],sizeof(struct manager),1,fp)!=0;i++) {if(strcmp(manager[i].name,managername)==0){printf("你所要修改的管理员的资料如下:\n\n");printf("姓名:〈%s〉证件号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s>\n",manager[i].name,manager[i].managernumber,manager[i].bir thplace,manager[i].managerID,manager[i].telephone);printf(",请选择你要更新的内容:1:修改管理员的姓名\n");printf(" 2:修改管理员的证件号\n");printf(" 3:修改管理员的出生地\n");printf(" 4:修改管理员的身份证号\n");printf("。