人事档案管理系统.docx
- 文档编号:6126540
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:20
- 大小:18.89KB
人事档案管理系统.docx
《人事档案管理系统.docx》由会员分享,可在线阅读,更多相关《人事档案管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
人事档案管理系统
人事档案管理系统
源代码:
#include
#include
#include
#include
#include
#defineMAXSize400
structworker
{
intID;
charBirth[20];
charSex[20];
charName[30];
charTelenum[20];
intWage;
charDepartment[30];
charJob[30];
}
work[MAXSize];
voidmain()
{
voidshowmenu();/*声明主菜单函数*/
voidappend();/*声明添加函数*/
voidsearch();/*声明查找函数*/
voidoutput();/*声明输出函数*/
voidmodify();/*声明修改函数*/
voiddeletes();/*声明删除函数*/
voidsave();/*声明保存函数*/
voidread();/*声明录入函数*/
voidsort();/*声明排序存函数*/
intm;
showmenu();
scanf("%d",&m);
for(;m>=0&&m<=8;)
{
switch(m)
{
case1:
append();/*用户选择1号菜单,程序执行添加的数据文件的函数*/
break;
case2:
search();/*用户选择2号菜单,程序执行查找数据的函数*/
break;
case3:
modify();/*用户选择3号菜单,程序执行修改数据的函数*/
break;
case4:
deletes();/*用户选择4号菜单,程序执行删除数据的函数*/
break;
case5:
output();/*用户选择5号菜单,程序执行输出数据录的函数*/
break;
case6:
save();/*用户选择6号菜单,程序执行保存数据的函数*/
break;
case7:
read();/*用户选择7号菜单,程序执行读取文件的函数*/
break;
case8:
sort();/*用户选择8号菜单,程序执行排序数据的函数*/
break;
case0:
exit(0);/*用户选择3号菜单,程序执行退书的函数*/
printf("\n\n操作完毕,请再次选择!
");
default:
printf("错误,重新输入\n");}
showmenu();
scanf("%d",&m);
}
}
/*主菜单函数*/
voidshowmenu()/*显示主菜单,并返回用户所选择的菜单项的编号*/
{
printf("********************************************************************\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^员工档案管理系统^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("--------------------------------------------------------------------\n");
printf("*******************************************************************\n");
printf("\n");
printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("&1,录入员工5,输出员工&\n");
printf("&2,查找员工6,保存员工&\n");
printf("&3,修改员工7,读取档案&\n");
printf("&4,删除员工8,员工排序&\n");
printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("--------------------------------------------退出,请按0----------------\n");
printf("请选择(0--8):
");
}
/*添加函数*/
voidappend()
{intnumber,i;
FILE*fp;
charfilepn[MAXSize];
system("cls");
printf("\n您选择的是添加员工!
\n");
printf("\n请输入本次录入的员工人数:
");
scanf("%d",&number);
if(number>MAXSize)
{
printf("您输入的人数太多,大于%d人!
\n",MAXSize);
}
for(i=0;i { printf("\n请输入第%d个员工的编号: \t",i+1); scanf("%d",&work[i].ID); printf("\t职工档案: \n"); printf("\t\t姓名: "); scanf("%s",&work[i].Name); printf("\t\t出生年月: "); scanf("%s",&work[i].Birth); printf("\t\t电话: "); scanf("%s",&work[i].Telenum); printf("\t\t性别: "); scanf("%s",&work[i].Sex); printf("\t\t工资: "); scanf("%d",&work[i].Wage); printf("\t\t部门: "); scanf("%s",&work[i].Department); printf("\t\t职称: "); scanf("%s",&work[i].Job); } printf("\n您的输入是: \n"); printf("**********************************员工档案信息库*************************\n"); printf("序号编号姓名出生年月电话\t性别\t工资\t部门\t职称\n"); for(i=0;i { printf("%d%d%s%s\t%s\t%s\t%d\t%s\t%s\n",i+1,work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } printf("*************************************************************************\n"); printf("\n");} /*查找函数*/ voidsearch() { system("cls"); intnumber=MAXSize,findID,v,i; charfindName[30]; printf("\n您选择的是档案查询! \n"); printf("*****************************请选择查询方式********************************\n"); printf("\t\t1--按编号查找;\t\t\t\t2--按姓名查找\n");/*以下可以修改为子菜单方式: 1--按编号查找,2--按姓名查找*/ printf("***************************************************************************\n"); printf("请选择: ");scanf("%d",&v); switch(v) {case1: system("cls"); printf("\n您选择的是按编号查找! \n"); printf("\n请输入员工的编号: "); scanf("%d",&findID); for(i=0;i { if(work[i].ID==findID) break; } if(i { printf("查找结果如下: \n"); printf("\t编号\t姓名\t出生年月\t电话\t性别\t工资\t部门\t职称\n"); printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } elseprintf("您输入的编号不存在! \n"); break; case2: system("cls"); printf("\n您选择的是按姓名查找! \n"); printf("\n请输入员工的姓名: "); scanf("%s",&findName);; for(i=0;i { if(! strcmp(work[i].Name,findName)) break; } if(i { printf("查找结果如下: \n"); printf("\t编号\t姓名\t出生年月\t电话\t性别\t工资\t部门\t职称\n"); printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } elseprintf("您输入的姓名不存在! \n"); break; } } /*输出函数*/ voidoutput() {inti,number=MAXSize; system("cls"); printf("查找结果如下: \n"); printf("\t编号\t姓名\t出生年月\t电话\t性别\t工资\t部门\t职称\n"); for(i=0;i { printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } } voiddeletes() {intfindID,i,j,number=MAXSize; system("cls"); printf("\n您选择的是档案删除! \n"); printf("\n请输入员工的编号: "); scanf("%d",&findID); for(i=0;i { if(work[i].ID==findID) break; } printf("\t编号\t姓名\t出生年月\t电话\t性别\t工资\t部门\t职称\n"); if(i {for(j=i;j { work[j].ID=work[j+1].ID; strcpy(work[j].Name,work[j+1].Name); strcpy(work[j].Telenum,work[j+1].Telenum); strcpy(work[j].Birth,work[j+1].Birth); strcpy(work[j].Sex,work[j+1].Sex); work[j].Wage=work[j+1].Wage; strcpy(work[j].Department,work[j+1].Department); strcpy(work[j].Job,work[j+1].Job); } for(i=0;i { printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } } else for(i=0;i printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Telenum,work[i].Birth,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); number--; } /*修改函数*/ voidmodify() { intfindID,i,number=MAXSize; system("cls"); charyz[9],psw[9]={"12345678"}; printf("\n您选择的是档案修改! \n"); while (1) { printf("\n请输入密码! \n"); for(i=0;i<9;i++) { yz[i]=getch(); printf("*"); if(yz[i]=='\r') { yz[i]='\0'; break; } } if(! strcmp(psw,yz)) { printf("\n密码正确! \n"); break; } else printf("密码错误,请重输! \n"); } printf("\n请输入员工的编号: "); scanf("%d",&findID); for(i=0;i { if(work[i].ID==findID) break; } if(i { printf("\t姓名\t出生年月电话\t\t性别\t工资\t部门\t职称\n"); printf("原档案: \n\t%d\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); printf("请输入新档案: \n"); printf("\t\t姓名: "); scanf("%s",&work[i].Name); printf("\t\t出生年月: "); scanf("%s",&work[i].Birth); printf("\t\t电话: "); scanf("%s",&work[i].Telenum); printf("\t\t性别: "); scanf("%s",&work[i].Sex); printf("\t\t工资: "); scanf("%d",&work[i].Wage); printf("\t\t部门: "); scanf("%s",&work[i].Department); printf("\t\t职称: "); scanf("%s",&work[i].Job); printf("\n您的输入是: \n"); printf("**********************************员工档案信息库*************************\n"); printf("序号编号姓名出生年月电话\t性别\t工资\t部门\t职称\n"); for(i=0;i { printf("%d%d%s%s\t%s\t%s\t%d\t%s\t%s\n",i+1,work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } printf("*************************************************************************\n"); printf("\n");} else printf("您输入的编号不存在! \n"); } /*保存函数*/ voidsave() { FILE*fp; charfilepn[MAXSize]; intnumber=MAXSize,i; system("cls"); printf("您选择的是员工档案的保存! \n"); printf("请输入文件路径及文件名: "); scanf("%s",filepn); if((fp=fopen(filepn,"w+"))==NULL) { printf("不能打开文件! \n"); } for(i=0;i { if(fwrite(&work[i],sizeof(structworker),1,fp)! =1) { printf("写入文件错误! \n"); } } fclose(fp); printf("文件已经保存! \n"); } /*读取档案函数*/ voidread() {FILE*fp; charfilepn[MAXSize]; intnumber=MAXSize,i; system("cls"); printf("您选择的是员工档案的读取! \n"); printf("请输入文件路径及文件名: "); scanf("%s",filepn);/*输入文件路径及名称*/ if((fp=fopen(filepn,"r+"))==NULL) { printf("不能打开文件! \n"); }i=0; while(! feof(fp)) { fread(&work[i++],sizeof(structworker),1,fp); } number=i-1; } /*排序函数*/ voidsort() { inti,j,n=MAXSize,s,v; chartemp[20]; printf("\n您选择的是数据排序! \n"); printf("*****************************请选择排序方式********************************\n"); printf("\t\t1--按编号排序;\t\t\t\t2--按工资排序\n");/*以下可以修改为子菜单方式: 1--按编号排序,2--按工资排序*/ printf("***************************************************************************\n"); printf("请选择: "); scanf("%d",&v); switch(v) {case1: for(i=0;i<=n;i++) { for(j=i+1;j<=n;j++) if(work[j].ID { strcpy(temp,work[i].Birth); strcpy(work[i].Birth,work[j].Birth); strcpy(work[j].Birth,temp); strcpy(temp,work[i].Name); strcpy(work[i].Name,work[j].Name); strcpy(work[j].Name,temp); strcpy(temp,work[i].Sex); strcpy(work[i].Sex,work[j].Sex); strcpy(work[j].Sex,temp); s=work[i].Wage; work[i].Wage=work[j].Wage; work[j].Wage=s; strcpy(temp,work[i].Telenum); strcpy(work[i].Telenum,work[j].Telenum); strcpy(work[j].Telenum,temp); strcpy(temp,work[i].Department); strcpy(work[i].Department,work[j].Department); strcpy(work[j].Department,temp); strcpy(temp,work[i].Job); strcpy(work[i].Job,work[j].Job); strcpy(work[j].Job,temp); s=work[i].ID; work[i].ID=work[j].ID; work[j].ID=s; } } printf("新的排序如下: \n"); printf("\t编号\t姓名\t出生年月\t电话\t性别\t工资\t部门\t职称\n"); for(i=0;i { printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",work[i].ID,work[i].Name,work[i].Birth,work[i].Telenum,work[i].Sex,work[i].Wage,work[i].Department,work[i].Job); } break; case2: intk; printf("\n您选择的是按工资排序! \n"); printf("*****************************请选择排序方式********************************\n"); printf("\t\t1--按工资从高到低排序;\t\t\t\t2--按工资从低到高排序\n");/*以下可以修改为子菜单方式: 1--按工资从高到低排序;2--按工资从低到高排序*/ printf("*****************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事 档案管理系统