注:开始输入的管理员的姓名和学号是,xx 2013 #include typedef struct teacher{ char name[20]; char sex[20]; char birth[20]; char post[20];//职称 int age; char timein[20];//入校时间 } teac; teac tea[1000]; int count = 0,flag1 = 0; charstr[20], Administrator[20] = \"xx\ void enter();//进入 void init();//初始化 void scan();//查看 void find();//查找 void change();//修改 void sum();//统计 void del();//删除 void add();//添加 void rank();//排序 void save();//保存 void copy(teac *t1, teac *t2);//赋值 void main() { int m; enter(); init(); while (1) { system(\"cls\");//清屏 printf(\"\\n\\n *********学校人事管理系统*********\"); printf(\"\\n ________________________________________________\\n\"); printf(\"\\n *1.查看职工信息表\\n\"); printf(\"\\n *2.查找职工\\n\"); printf(\"\\n printf(\"\\n printf(\"\\n printf(\"\\n printf(\"\\n printf(\"\\n printf(\"\\n printf(\"\\n *3.修改职工信息\\n\"); *4.统计同一类型职工的人数\\n\"); *5.删除某职工\\n\"); *6.添加职工\\n\"); *7.按职工的某项信息排序\\n\"); *8.保存\\n\"); *0.退出系统\\n\"); ________________________________________________\\n\"); printf(\" 请输入你的选择:\"); scanf(\"%d\switch(m) { case 1: system(\"cls\"); scan(); getchar(); getchar(); break; case 2: system(\"cls\"); find(); getchar(); getchar(); break; case 3: system(\"cls\"); change(); getchar(); getchar(); break; case 4: system(\"cls\"); sum(); getchar(); getchar(); break; case 5: system(\"cls\"); del(); getchar(); getchar(); break; case 6: system(\"cls\"); add(); getchar(); getchar(); break; case 7: system(\"cls\"); rank(); getchar(); getchar(); break; case 8: system(\"cls\"); save(); getchar(); getchar(); break; case 0: if (flag1) { printf(\"职工信息已改动,是否保存?(Y/N)\"); if ((getchar() == 'Y') || (getchar() == 'y')) save(); } exit(1); break; default: printf(\"输入有误,请重新输入……\"); system(\"cls\"); break; } } } void enter() { inti, flag = 0; char str1[20], str2[20]; printf(\"请输入管理员的名字和帐号:\"); scanf(\"%s%s\ if ((strcmp(str1, Administrator) != 0) || (strcmp(accounts, str2) != 0)) { for (i=0; i<3; i++) } } { printf(\"用户名或帐号有误,还有 %d 次机会,请重新输入:\ scanf(\"%s%s\ if ((strcmp(str1, Administrator)== 0) || (strcmp(accounts, str2) == 0)) return ; } printf(\"你的输入有问题,为本系统的安全,系统将自动退出,欢迎下次使用……\\n\"); exit(0); void init()//程序初始化 { FILE *fp; inti; fp = fopen(\"职工信息表.txt\if (fp == NULL) { printf(\"打开文件失败,请查找问题\"); exit(0); } for (i=0; !feof(fp); i++) { fscanf(fp, \"%s %s %s %s %d %s\\n\&tea[i].age, tea[i].timein); } count = i; } void scan()//浏览职工信息表 { inti; printf(\" 姓名 性别 出生日期 职称 年龄 入校时间\\n\"); for (i=0; i printf(\"请输入要查找的职工的名字:\"); scanf(\"%s\ for (i=0; i void change() { inti, j = 0, x, nianling, arr[50]; printf(\"请输入要修改的职工的名字:\"); scanf(\"%s\ for (i=0; i printf(\"没有你要查找的职工,请核对后再输入……\"); return ; } else if (j == 1) { xg: printf(\"情输入要修改的选项:\\n1 姓名\\n2 性别\\n3 出生日期\\n4 职称\\n5 年龄\\n6 入校时间\\n7 全部\\n\"); printf(\"请选择:\"); scanf(\"%d\ if (x == 5) { printf(\"请输入年龄:\"); scanf(\"%d\ tea[arr[j-1]].age = nianling; } else if (x == 7) { printf(\"请重新输入各项信息,输入顺序为:\\n\"); printf(\"姓名 性别 出生日期 职称 年龄 入校时间\\n\"); scanf(\"%s %s %s %s %d %sea[arr[j-1]].name, tea[arr[j-1]].sex, tea[arr[j-1]].birth, tea[arr[j-1]].post, &tea[arr[j-1]].age, tea[arr[j-1]].timein); } else if (x<1 || x>7) { printf(\"输入有误,请重新操作……\"); return ; } else { printf(\"请输入新的信息:\"); scanf(\"%s\switch (x) { case 1: strcpy(tea[arr[j-1]].name, str); break; case 2: strcpy(tea[arr[j-1]].sex, str); break; case 3: strcpy(tea[arr[j-1]].birth, str); break; case 4: } } else { } } strcpy(tea[arr[j-1]].post, str); break; case 6: strcpy(tea[arr[j-1]].timein, str); break; printf(\"请选择要修改的职工的:\"); scanf(\"%d\gotoxg; printf(\"修改成功……\\n\"); flag1 = 1; } void sum()//统计同一类型的职工的信息 { inti, j, x, sum = 0; printf(\"\\n1.性别 2出生日期 3职称 4年龄 5入校时间\\n请输入统计的类型:\"); scanf(\"%d\ if (x<1 || x>5) { printf(\"输入有误,请重新操作……\"); return ; } else if (x == 4) { printf(\"请输入需统计的年龄:\"); scanf(\"%d\ for (i=0; i } if (sum == 0) { } printf(\"没有找到有关信息或输入有误,请核对后在输入……\"); return ; printf(\"总人数为:%d\\n\} void del()//删除职工 { inti, j = 0, y, num = 0, arr[50]; printf(\"请输入要删除的教师的名字:\"); scanf(\"%s\ for (i=0; i printf(\"请选择要删除的职工:\"); scanf(\"%d\ if (j<1 || j>num) { printf(\"输入有误,请重新操作……\"); return ; } y = arr[j-1]; gotosc; } count--; printf(\"删除成功……\"); flag1 = 1; } void add() { printf(\"请按如下格式输入需要增加的职工信息:\\n\"); printf(\"姓名 性别 出生日期 职称 年龄 入校时间\\n\"); scanf(\"%s %s %s %s %d %sea[count].name, tea[count].sex, tea[count].post, &tea[count].age, tea[count].timein); count++; printf(\"添加成功……\"); flag1 = 1; } void rank()//按某种顺序排序 { inti, j, a, min = 0; teac tea1[1000], tmp; tea[count].birth, for (i=0; i printf(\"排序结果为:\\n\"); printf(\" 姓名 性别 出生日期 职称 年龄 入校时间\\n\"); for (i=0; i void save() { FILE *fp; inti; fp = fopen(\"职工信息表.txt\ for (i=0; i 因篇幅问题不能全部显示,请点此查看更多更全内容