您的当前位置:首页正文

学校人事管理系统 c语言编写

2021-08-13 来源:步旅网
学校人事管理系统

注:开始输入的管理员的姓名和学号是,xx 2013 #include #include #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; ivoid find()//查找职工 { inti, num = 0;

printf(\"请输入要查找的职工的名字:\"); scanf(\"%s\

for (i=0; iprintf(\"你要查找的职工的信息为:\\n\"); printf(\" 姓名 性别 出生日期 职称 年龄 入校时间\\n\"); } printf(\"%d: %s %s %s %s %d %s\\n\num, tea[i].name, tea[i].sex, tea[i].birth, tea[i].post, tea[i].age, tea[i].timein); } } if (num == 0) printf(\"没有找到你要查找的职工或输入错误,请核对后再输入!\"); }

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; iprintf(\"%d: %s %s %s %s %d %s\\n\sum, tea[i].name, tea[i].sex, tea[i].birth, tea[i].post, tea[i].age, tea[i].timein); } } } else if (x == 5) { printf(\"请输入需统计的信息:\"); scanf(\"%s\ 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; iprintf(\"姓名 性别 出生日期 职称 年龄 入校时间\\n\"); } printf(\"%d: %s %s %s %s %d %s\\nea[i].post, tea[i].age, tea[i].timein); } } num = j; if (j == 0) { printf(\"没有你要查找的职工,请核对后再输入……\"); return ; } else if (j == 1) { y = arr[0]; sc: printf(\"请确认是否删除(Y/N)\"); if ((getchar() == 'Y') || (getchar() == 'y')) { for (i=y; i{ strcpy(tea[i].name, tea[i+1].name); strcpy(tea[i].sex, tea[i+1].sex); strcpy(tea[i].birth, tea[i+1].birth); strcpy(tea[i].post, tea[i+1].post); strcpy(tea[i].timein, tea[i+1].timein); tea[i].age = tea[i+1].age; } } else return ; } else {

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; iprintf(\"\\n1 姓名\\n2 出生日期\\n3 年龄\\n4 入校时间\\n\"); printf(\"请输入需要排序的项目:\"); scanf(\"%d\switch (a) { case 1: printf(\"\\n________________________________________________\\n\");

printf(\"排序结果为:\\n\"); printf(\" 姓名 性别 出生日期 职称 年龄 入校时间\\n\"); for (i=0; i} printf(\"%d: %s %s %s %s %d %s\\n\i+1, tea1[min].name, tea1[min].sex, tea1[min].birth, tea1[min].post, tea1[min].age, tea1[min].timein); copy(&tmp, &tea1[i]); copy(&tea1[i], &tea1[min]); copy(&tea1[min], &tmp); } break; case 3: printf(\"\\n________________________________________________\\n\"); printf(\"排序结果为:\\n\"); printf(\" 姓名 性别 出生日期 职称 年龄 入校时间\\n\"); for (i=0; itea1[min].sex, tea1[min].birth, tea1[min].post, tea1[min].age, tea1[min].timein); copy(&tmp, &tea1[i]); copy(&tea1[i], &tea1[min]); copy(&tea1[min], &tmp); } break; default: printf(\"输入有误,请重新操作……\"); } return ; }

void save() { FILE *fp; inti;

fp = fopen(\"职工信息表.txt\ for (i=0; ivoid copy(teac *t1, teac *t2) { strcpy(t1->name, t2->name); strcpy(t1->sex, t2->sex); strcpy(t1->birth, t2->birth); strcpy(t1->post, t2->post); strcpy(t1->timein, t2->timein); t1->age = t2->age; }

因篇幅问题不能全部显示,请点此查看更多更全内容