员工管理程序.docx
- 文档编号:5000929
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:25
- 大小:19.86KB
员工管理程序.docx
《员工管理程序.docx》由会员分享,可在线阅读,更多相关《员工管理程序.docx(25页珍藏版)》请在冰豆网上搜索。
员工管理程序
/***************************************************
头文件
***************************************************/
#include
#include
#include
#defineN100
voidmenu_handle();/*函数处理菜单*/
intmenu_choose();/*函数选择菜单*/
voidinput_worker();/*创建文件并对工人信息输入函数*/
voidsave_file(intn);/*文件保存*/
intload();/*提取员工数*/
voidmessage_output();/*员工信息浏览函数*/
voidadd_worker();/*员工添加函数*/
voiddele_worker();/*员工信息删除函数*/
voidfine();/*员工信息查询函数*/
voidfine_num();/*员工号查询函数*/
voidfine_name();/*按姓名查询函数*/
voidsort_age();/*按年龄排序函数*/
voidsort_pay();/*按工资排序函数*/
voidsort();/*排序函数处理*/
voidchange(structworker*p,intn);/*交换元素*/
/***************************************************
主函数
***************************************************/
voidmain()
{
printf("\n\t\t\t∞∞∞∞计算机工程系∞∞∞∞\n");
printf("\n\t\t\t\t\t\t计Y111班");
printf("\n\t\t\t\t\t\t朱建国\n");
menu_handle();/*调用菜单函数*/
}
/***************************************************
菜单文件
***************************************************/
/***************************************************
菜单选择函数
***************************************************/
intmenu_chooose()
{
intshuzi;/*定义数字选择的变量s*/
chars[2];
//printf("\n");
printf("\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("\t*欢*1.员工信息输入*职*\n");
printf("\t**2.员工信息输出**\n");
printf("\t*迎*3.添加员工信息*工*\n");
printf("\t**4.删除员工信息**\n");
printf("\t*进*5.员工信息查询*档*\n");
printf("\t**6.员工信息排序**\n");
printf("\t*入*7.退出程序*案*\n");
printf("\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n\n");
printf("***********请选择1-7*********\n");/*选择菜单*/
for(;;)
{
scanf("%s",s);/*输入数字*/
shuzi=atoi(s);/*字符转换*/
if(shuzi>7||shuzi<1)
printf("\t\t\t输入错误\n\n\t\t\t请重新输入1-7!
\n\n\t\t\t退出请按7!
\n");
else
break;
}
return(shuzi);
}
/***************************************************
菜单处理函数
***************************************************/
voidmenu_handle()
{
for(;;)
{
switch(menu_chooose())/*调用菜单选择函数*/
{
case1:
printf("\t\t\t◆◆◆员工信息输出◆◆◆\n\n");
input_worker();
break;
case2:
system("cls");
printf("\t\t\t◆◆◆员工信息输出◆◆◆\n");
message_output();
break;
case3:
system("cls");
printf("\t\t\t◆◆◆添加员工信息◆◆◆\n\n");
add_worker();
break;
case4:
system("cls");
printf("\t\t\t◆◆◆删除员工信息◆◆◆\n\n");
dele_worker();
break;
case5:
system("cls");
printf("\t\t\t◆◆◆员工信息查询◆◆◆\n\n");
fine();
break;
case6:
system("cls");
printf("\t\t\t◆◆◆员工信息排序◆◆◆\n\n");
sort();
break;
case7:
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\\n\n");
printf("\t\t\t☆★☆★☆☆\n");
printf("\t\t\t☆★★★★☆\n");
printf("\t\t\t☆★★★☆\n");
printf("\t\t\t☆★谢谢使用★☆\n");
printf("\t\t\t☆★再见~★☆\n");
printf("\t\t\t☆★★☆\n");
printf("\t\t\t★★\n");
printf("\t\t\t★\n\n");
printf("\n\n\n\n\n\n\nn");
return;
}
}
}
structworker
{
intnum;/*--------员工号*/
charname[10];/*----姓名*/
charsex[10];/*-----性别*/
intage;/*--------年龄*/
charposition[10];/*----职位*/
intpay;/*---------工资*/
}work[N];
/***************************************************
员工信息输入函数
***************************************************/
voidinput_worker()/*定义一个员工信息输入的函数*/
{
intn,i;
printf("输入员工数:
");
scanf("%d",&n);
FILE*fp;/*定义一个指向员工信息数组的指针文件*/
structworker*p;/*定义员工数组及指向员工的指针*/
if((fp=fopen("workermessage","wb"))==NULL)/*创建一个存储员工信息的文件*/
{
printf("不能打开该文件");
exit(0);
}
for(p=work,i=1;p { printf("\t\t\t【输入第%d名员工】\n\n",i); printf("输入员工号: "); scanf("%d",&p->num); printf("\n"); printf("输入姓名: "); scanf("%s",p->name); printf("\n"); printf("输入性别: "); scanf("%s",p->sex); printf("\n"); printf("输入年龄: "); scanf("%d",&p->age); printf("\n"); printf("输入职位: "); scanf("%s",p->position); printf("\n"); printf("输入工资: "); scanf("%d",&p->pay); printf("\n\n\n"); fwrite(p,sizeof(structworker),1,fp); } fclose(fp); printf("输入完成\n\n\n\n\n"); } /*************************************************** 提取员工数 ***************************************************/ intload()/*定义一个能获取员工数的函数*/ { FILE*fp;/*定义指针文件*/ inti; structworker*p=work;/*定义一个指向结构体数组的指针*/ if((fp=fopen("workermessage","rb"))==NULL) { printf("不能打开该文件"); exit(0); } for(i=0;feof(fp)==0;i++) fread(p,sizeof(structworker),1,fp); fclose(fp); return(i-1);/*以返还的形式找到员工数*/ } /*************************************************** 文件存储函数 ***************************************************/ voidsave_file(intn)/*定义一个文件储存函数*/ { inti; FILE*fp; if((fp=fopen("workermessage","wb"))==NULL)/*创建一个存储员工信息的文件*/ { printf("不能打开该文件"); exit(0); } for(i=0;i { fwrite(&work[i],sizeof(structworker),1,fp); } fclose(fp); } /*************************************************** 员工信息浏览函数 ***************************************************/ voidmessage_output()/*员工信息输出函数*/ { intn;/*定义一个员工数变量*/ n=load();/*将员工数赋值给n*/ structworker*p;/*定义员工数组及指向员工的指针*/ FILE*fp; if((fp=fopen("workermessage","rb"))==NULL)/*打开存储员工信息的文件*/ { printf("不能打开该文件"); exit(0); } printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n"); for(p=work;p { fread(p,sizeof(structworker),1,fp);/*读文件*/ printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",p->num,p->name,p->sex,p->age,p->position,p->pay);/*输出员工信息*/ } fclose(fp); } /*************************************************** 员工信息添加函数 ***************************************************/ voidadd_worker()/*定义一个员工信息添加函数*/ { intn,m,i,j=1;/*定义添加的员员工数*/ m=load(); printf("输入添加多少名员工: "); scanf("%d",&n);/*输入员工数*/ FILE*fp;/*定义一个指向员工信息数组的指针文件*/ structworker*p;/*定义员工数组及指向员工的指针*/ if((fp=fopen("workermessage","ab"))==NULL)/*创建一个存储员工信息的文件*/ { printf("不能打开该文件"); exit(0); } for(p=work+m,i=m;i { printf("\t\t\t【输入第%d名员工】\n\n",j); printf("输入员工号: "); scanf("%d",&p->num); printf("\n"); printf("输入姓名: "); scanf("%s",p->name); printf("\n"); printf("输入性别: "); scanf("%s",p->sex); printf("\n"); printf("输入年龄: "); scanf("%d",&p->age); printf("\n"); printf("输入职位: "); scanf("%s",p->position); printf("\n"); printf("输入工资: "); scanf("%d",&p->pay); printf("\n"); fwrite(p,sizeof(structworker),1,fp); } fclose(fp); printf("输入完成\n\n\n\n\n"); } /*************************************************** 员工信息删除函数 ***************************************************/ voiddele_worker()/*定义员工信息删除函数*/ { intn,m,i,j,flag,x;/*定义员工数变量、选择数字、标志*/ charwk[10];/*定义一个数组用于提醒输入错误*/ structworker*p;/*定义结构体指针*/ n=load();/*调用提取员工数的函数*/ message_output();/*调用员工信息输出函数*/ p=work;/*指针p指向结构体数组*/ loop: printf("输入要删除的姓名"); scanf("%s",wk); for(i=0;i { if(strcmp((p+i)->name,wk)==0) { printf("找到此人\n此人原本信息: \n"); flag=1; printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n"); printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",(p+i)->num,(p+i)->name,(p+i)->sex,(p+i)->age,(p+i)->position,(p+i)->pay); printf("\n是否删除? \n是请按1\n否请按0\n"); scanf("%d",&m); if(m==1) { for(j=i;j { /*(p+j)->num=(p+j+1)->num; strcpy((p+j)->name,(p+(j+1))->name); strcpy((p+j)->sex,(p+j+1)->sex); (p+j)->age,(p+j+1)->age; strcpy((p+j)->position,(p+j+1)->position); (p+j)->pay,(p+j+1)->pay; n=load();*/ work[j].num=work[j+1].num; strcpy(work[j].name,work[j+1].name); strcpy(work[j].sex,work[j+1].sex); work[j].age=work[j+1].age; strcpy(work[j].position,work[j+1].position); work[j].pay=work[j+1].pay; } } } } if(flag! =1) { printf("\t\t\t\t查无此人! \n"); } if(flag==1) n=n-1; save_file(n);/*保存文件*/ message_output();/*刷新数组*/ printf("继续删除请按 (1)\n退出请按 (2)\n");/*选择菜单*/ scanf("%d",&x); switch(x) { case1: gotoloop; break; case2: printf("谢谢使用! \n"); break; } } /*************************************************** 员工信息查询函数 ***************************************************/ voidfine() { intm;/*定义变量提示输入*/ chars[10];/*定义一个数组用于提醒输入*/ printf("按员工号查询请按1: \n\n按姓名查询请按2: \n\n退出查询请按3: \n"); for(;;)/*防止输入错误*/ { scanf("%s",s);/*输入数字*/ m=atoi(s);/*字符转换*/ if(m<1||m>3) printf("\t\t\t输入错误! 请重新输入1-3\n"); else break; } switch(m)/*选择查询方式*/ { case1: fine_num();/*调用按员工号查询函数*/ break; case2: fine_name();/*调用按姓名查询函数*/ break; case3: printf("谢谢使用! \n"); break; } } /*************************************************** 按员工号查询函数 ***************************************************/ voidfine_num() { intm,n,q,x,flag;/*定义m存储员工号,n表示员工数,q提醒输入*/ chars[10];/*用于提醒输入*/ structworker*p;/*结构体指针*/ n=load();/*调用提取数组地址函数*/ message_output();/*调用信息输出函数*/ system("cls");/*清屏*/ loop: printf("输入要查询的员工号: ");/*返回输入*/ scanf("%d",&m); for(p=work;p {if(m==p->num)/*如果查到的数组与输入的数组相同*/ { printf("此员工信息如下: \n\n"); printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n"); printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",p->num,p->name,p->sex,p->age,p->position,p->pay); flag=1; printf("查询下一个请按 (1)\n返回上一级请按 (2)\n退出请按(3)\n"); scanf("%d",&x); system("cls"); switch(x)/*用于选择是否继续查询*/ { case1: gotoloop; break; case2: fine(); break; case3: printf("谢谢使用! \n"); break; } } } if(flag! =1) { printf("查无此人! \n"); for(;;)/*用于防止输入错误*/ { printf("重新输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理程序