#include #include #include #define M 40 //宏定义说明学生人数最多为50 FILE *fp; //定义文件指针 struct student /*结构体定义及声明 */ { char id[100]; /*学号*/ char name[100]; //姓名 char sex[50]; //性别 char minzu[100]; //民族 char jiguan[100];//籍贯 char adress[100]; //家庭住址 char num[100]; //联系电话 char idcard[100]; //身份证号码 } ; void input(struct student stu[M]);//输入学生信息函数 void show(struct student stu[M]); //浏览所有学生信息函数 void seek(struct student stu[M]); //查找函数 void add(struct student stu[M]); //修改学生信息函数 void reduce(struct student stu[M]);//删除学生信息函数 void filewrite(struct student stu[M]);//将学生信息写入文件函数 void fileread(struct student stu[M]);//将学生信息读出文件函数 int count=0; //定义全局变量保存当前学生数 struct student stu[M]; int main() { char ce; int choice; //定义选择功能数的变量 printf("\t\t\t\t欢迎你使用学生信息管理系统\n");//展示系统功能 do { printf("*****************************************************************\n"); printf("*\t\t\t\t+ 学生信息管理系统 +\n"); printf("*\t\t\t\t-------------------------------------------------\n"); printf("*\t\t\t\t ***************\n"); printf("*\t\t\t\t 1、添加学生信息 *\n"); printf("*\t\t\t\t 2、浏览学生信息 *\n"); printf("*\t\t\t\t 3、查询学生信息 *\n"); printf("*\t\t\t\t 4、修改学生信息 *\n"); printf("*\t\t\t\t 5、删除学生信息 *\n"); printf("*\t\t\t\t 6、保存学生信息到文件 *\n"); printf("*\t\t\t\t 7、读取文件中学生信息 *\n"); printf("*\t\t\t\t 8、退出系统 *\n"); printf("*****************************************************************\n"); printf("请输入你的选择\n"); do{ scanf("%c", &ce); }while(ce>'8' || ce<'1'); choice = ce - '0'; switch (choice) { case 1:input(stu);break; case 2:show(stu);break; case 3:seek(stu);break; case 4:add(stu);break; case 5:reduce(stu);break; case 6:filewrite(stu);break; case 7:fileread(stu);break; case 8:printf("感谢您的使用");break; default:printf("无效的选择,请您重新输入");break; } }while(choice!=8); printf("the program is over!!!\n"); return 0; } void seek(struct student stu[M])//自定义查找函数 { int j; FILE *FP; //fp=fopen("f1.txt","r+"); char sh[20]; system("cls");//清屏作用 if(count==0) { printf("无法查询") ; return; } else { printf("请输入你想要查找的同学学号\n"); scanf("%s",sh); //输入所查询的内容 // fp=fopen("f1.txt","r+"); for (j=0;j<40;j++) ///执行循环查找信息 { if (strcmp(stu[j].id,sh)==0)//通过字符函数对已经存入的学生信息对比找到相关位置 printf("学号\t\t姓名\t性别\t民族\t籍贯\t家庭住址\t\t联系电话\t\t身份证号码\t\n"); printf("%s\t\t",stu[j].id); printf("%s\t",stu[j].name); printf("%s\t",stu[j].sex); printf("%s\t",stu[j].minzu); printf("%s\t",stu[j].jiguan); printf("%s\t\t",stu[j].adress); printf("%s\t\t",stu[j].num); printf("%s",stu[j].idcard); break; } } if(j==count) printf("未找到您所查找的信息"); } void add(struct student stu[M]) { int i; // FILE *FP; // fp=fopen("f1.txt","r+"); char ch[20]; system("cls"); if(count==0) { printf("没有学生信息存在") ; return; } else { printf("请输入你想要修改的同学学号\n"); scanf("%s",&ch); fflush(stdin); // fp=fopen("f1.txt","r+"); for (i=0;i<40;i++) ///执行循环查找信息 { if (strcmp(stu[i].id,ch)==0) printf("学号\t\t姓名\t性别\t民族\t籍贯\t家庭住址\t\t联系电话\t\t身份证号码\t "); printf("%s%s%s%s%s%s%s%s",stu[i].id,stu[i].name,stu[i].sex,stu[i].minzu,stu[i].jiguan,stu[i].adress,stu[i].num,stu[i].idcard); printf("是否继续修改学生信息\n"); printf("请输入修改后的内容\n"); printf("学号\t\t姓名\t性别\t民族\t籍贯\t家庭住址\t\t联系电话\t\t身份证号码\t"); scanf("%s%s%s%s%s%s%s%s",stu[i].id,stu[i].name,stu[i].sex,stu[i].minzu,stu[i].jiguan,stu[i].adress,stu[i].num,stu[i].idcard);break; } } } void reduce(struct student stu[M]) { int i=0,j,k=count; char xh[20]; system("cls"); printf("请输入您要删除的同学姓名"); scanf("%s",&xh); fflush(stdin); for (j=0;j