#include #include #include #include #define N 50000 /*存储50000个工大学子的学籍信息*/ struct student { int age; /*年龄*/ char num[20]; /*学号*/ char name[25]; /*姓名*/ char sex[10]; /*性别*/ char addr[50]; /*籍贯*/ char dept[50]; /*系别*/ char major[30]; /*专业*/ char classs[30]; /*班级*/ char phone[20]; /*学籍改变*/ }stu[N]; int flag; /*定义一个小flag判断其是否登录*/ void login() /*注册函数*/ { void menu(); system("cls"); int load(); /*用于打开文件*/ int n,i,m,w; FILE *fp; if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/ n=load(); /*打开文件*/ else n=0; struct student s; /*定义一个为密码而设置的结构体*/ char password[20]; /*定义一个初始密码存储数组*/ int d,q; printf("\n\t请选择登录身份:1.管理员 "); scanf("%d",&d); if(d==1) /*判断登录身份*/ { printf("\n\t\t\t请输入密码:"); getchar(); int j=0; /*j为密码字符数*/ while(1) { password[j]=getch(); /*得到一个密码字符*/ if(password[j]=='\r') /*如果输入是回车,退出循环,密码设置成功*/ break; printf("*"); /*遮挡密码的作用*/ j++; } password[j]='\0'; if(!strcmp(password,"1")) /*判断密码是否正确*/ { flag=1; printf("\n\t登录成功!\n"); printf("\tPress [ Enter ] key to continue…"); getchar(); system("cls"); menu(); } if(!flag) { printf("\t\n密码错误!\n"); printf("What do you want to do next? 1.继续登录 2.返回菜单 "); scanf("%d",&q); if(q==1) /*继续登录*/ { system("cls"); login(); } else if(q==2) /*返回主菜单*/ { system("cls"); menu(); } } } } void printf_one(int k) /*输出一个工大学子的信息*/ { system("color f1"); printf("学号:%s\n",stu[k].num); printf("姓名:%s\n",stu[k].name); printf("性别:%s\n",stu[k].sex); printf("年龄:%d\n",stu[k].age); printf("籍贯:%s\n",stu[k].addr); printf("系别:%s\n",stu[k].dept); printf("专业:%s\n",stu[k].major); printf("班级:%s\n",stu[k].classs); printf("学籍变化:%s\n",stu[k].phone); } void printf_n(int n) /*浏览时输出所有工大学子的信息*/ { system("color f1"); int j,i=1; /*j为循环输出工大学子的学籍信息变量,i是表示第N个学生*/ for(j=0;j2) { printf("输入错误~请重新输入!\n"); w2=1; } else w2=0; /*这里要注意:不加这句话会陷入死循环,跳不出来*/ }while(w2==1); if(w1==1) /*按姓名查找*/ { do { k=-1; do { printf("\n请输入您想要查找的学生的姓名~\nName:"); scanf("%s",s.name); for(i=0;i12||c<1) { puts("\n选择错误~请重新选择!"); getchar(); } }while(c>12||c<1); do { switch(c) { case 1: printf("学号:"); scanf("%s",stu[i].num); break; case 2: printf("姓名:"); scanf("%s",stu[i].name); break; case 3: printf("性别:"); scanf("%s",stu[i].sex); break; case 5: printf("年龄:"); scanf("%d",&stu[i].age);break; case 6: printf("籍贯:"); scanf("%s",stu[i].addr);break; case 7: printf("系别:"); scanf("%s",stu[i].dept);break; case 8: printf("专业:"); scanf("%s",stu[i].major);break; case 9: printf("班级:"); scanf("%s",stu[i].classs);break; case 10: printf("学籍变化:"); scanf("%s",stu[i].phone);break; case 11: input(i); break; /*修改这位湖工大学子的所有信息*/ case 12: system("cls"); menu(); /*返回主菜单*/ } puts("\nNow:\n"); printf_one(i); /*输出 修改后这位湖工大学子学籍信息*/ printf("\n确定?\n\n\t1).是 2).不,重新修改 3).返回不保存 "); scanf("%d",&w1); }while(w1==2); return(w1); /*修改成功并选择1后返回1*/ } void modify() /*修改函数*/ { void menu(); if(!flag) /*提示未登录*/ { printf("\n\\t请先登录~\n"); printf("\n\t请按 Enter 键进入登录界面~"); getchar(); getchar(); login(); } else /*显示已登录*/ { struct student s; int i,n,k,w0=1,w1,w2=0; /*w1判断是否修改成功k、w0为循环开关*/ n=load(); do { k=-1; do { printf("\n请输入您想要修改的工大学子的学号~\nNum:"); scanf("%s",s.num); for(i=0;i7) /*判断是否在菜单内~*/ { system("cls"); printf("选择错误~.~ 请重新选择!\n"); w1=1; } else w1=0; }while(w1==1); switch(n) { case 1: login(); break; /*登录~*/ case 2: system("cls"); insert(); break; /*注册~*/ case 3: system("cls"); deleter(); break; /*删除~*/ case 4: system("cls"); search(); break; /*查找~*/ case 5: system("cls"); modify(); break; /*修改~*/ case 6: system("cls"); browse(); break; /*浏览~*/ case 7: exit(); break; /*退出~*/ } } int main() /*主函数~*/ { menu(); return 0; }