职工信息管理系统程序.docx
- 文档编号:23104172
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:17
- 大小:17.19KB
职工信息管理系统程序.docx
《职工信息管理系统程序.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统程序.docx(17页珍藏版)》请在冰豆网上搜索。
职工信息管理系统程序
#include
#include
#include
structemp{
intnum;/*工号*/
charname[20];/*姓名*/
charsex[2];/*性别*/
intage;/*年龄*/
chardepartment[20];/*部门*/
intjbgz;/*基本工资*/
intjj;/*奖金*/
intkk;/*扣款*/
intsfgz;/*实发工资*/
}staff[1000];
/*...............................菜单的编写...................................*/
voidmeun(){
intx,k;
voidAddNew();
voidDoMotify();
voidDoFind();
voidList();
voidDoDelete();
voidSort();
voidGoout();
system("cls");
printf("***************************************************************");
printf("\n");
printf("---职工管理工资系统---");
printf("\n");
printf("***************************************************************");
printf("\n");
printf("1、添加职工信息");
printf("\n");
printf("2、修改职工信息");
printf("\n");
printf("3、输出指定职工信息");
printf("\n");
printf("4、输出全体职工信息");
printf("\n");
printf("5、删除指定职工信息");
printf("\n");
printf("6、排序职工工资信息");
printf("\n");
printf("7、退出系统\n");
printf("***************************************************************");
printf("\n");
printf("请输入你要实现功能的序号\n");
scanf("%d",&x);
if(x<0||x>8)
{k=1;system("cls");}
else
k=0;
while(k==1);
switch(x){
case1:
AddNew();break;
case2:
DoMotify();break;
case3:
DoFind();break;
case4:
List();break;
case5:
DoDelete();break;
case6:
Sort();break;
case7:
Goout();break;
}
}
/*...................................输入功能.............................................*/
voidprintfface1(inti){
printf("请输入职工工号(1-1000)\n");
scanf("%d",&staff[i].num);
while(staff[i].num<1||staff[i].num>1000){
printf("输入有误!
请重新输入!
\n");
scanf("%d",&staff[i].num);
}
printf("请输入职工姓名\n");
scanf("%s",staff[i].name);
printf("请输入职工性别(男、女)\n");
scanf("%s",staff[i].sex);
while(strcmp(staff[i].sex,"男")&&strcmp(staff[i].sex,"女")){
printf("输入有误!
请重新输入!
\n");
scanf("%s",staff[i].sex);
}
printf("请输入职工年龄(18-60)\n");
scanf("%d",&staff[i].age);
while(staff[i].age<18||staff[i].age>60){
printf("输入有误!
请重新输入!
\n");
scanf("%d",&staff[i].age);
}
printf("请输入职工部门(研发部、营销部、生产部、财务部、行政部)\n");
scanf("%s",staff[i].department);
while(strcmp(staff[i].department,"研发部")&&strcmp(staff[i].department,"营销部")&&strcmp(staff[i].department,"生产部")&&strcmp(staff[i].department,"行政部")&&strcmp(staff[i].department,"财务部")){
printf("输入有误!
请重新输入!
\n");
scanf("%s",staff[i].department);
}
printf("请输入基本工资、奖金、扣款\n");
scanf("%d%d%d",&staff[i].jbgz,&staff[i].jj,&staff[i].kk);}
/*-----------------------输出功能---------------------------------*/
voidprintfface2(){
printf("工号姓名性别年龄部门基本工资奖金扣款实发工资\n");}
voidoutput(inti){
printf("%d%13s%5s%8d%12s%9d%11d%7d%10d\n",staff[i].num,staff[i].name,staff[i].sex,staff[i].age,staff[i].department,staff[i].jbgz,staff[i].jj,staff[i].kk,staff[i].sfgz);}
/*---------------------保存功能---------------------------------*/
voidsave(intn){
FILE*fp;
inti;
if((fp=fopen("D:
\\zhigonggongzi.txt","wb"))==NULL){
printf("cannotfingthisfile!
");
exit(0);
}
for(i=0;i if(staff[i].num! =0) if(fwrite(&staff[i],sizeof(structemp),1,fp)! =1) printf("filewriteerror! \n"); fclose(fp); } /*-------------------------提示功能--------------------------*/ voidprintfback(){ voidGoout(); inti; printf("\n"); printf("\n"); printf("\n"); printf("---------------------------------------------------------------------"); printf("\n"); printf("成功! "); printf("\n"); printf("---------------------------------------------------------------------"); printf("\n"); printf("\n"); printf("你接下来想实现的功能? \n"); printf("\n"); printf("1、返回菜单"); printf("\n"); printf("2、退出程序"); printf("\n"); scanf("%d",&i); if(i==1) meun(); elseif(i==2) Goout(); } /*----------------------------------写入功能---------------------*/ load(){ FILE*fp; inti; if((fp=fopen("D: \\zhigonggongzi.txt","rb"))==NULL){ printf("cannotfindthisfile! "); exit(0); } for(i=0;! feof(fp);i++)/*首先,feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1,由于feof(fp)返回0才是没有结束,所以通常写成while(! feof(fp)),这样使得没有结束时进行循环.*/ fread(&staff[i],sizeof(structemp),1,fp); fclose(fp); return(i-1); } /*.......................添加功能.......................*/ voidAddNew(){ inti,n; system("cls"); printf("请输入添加的职工人数\n"); scanf("%d",&n); if(n<1||n>1000){ printf("输入错误! 请重新输入! \n");AddNew();} else{ for(i=0;i printfface1(i); staff[i].sfgz=staff[i].jbgz+staff[i].jj-staff[i].kk; } save(n); printf("\t\t你添加的功能已经成功保存! \n"); printfback(); } } /*...................修改功能..........................*/ voidDoMotify(){ inti,n,x,m,t,p,j=-1; chark[15]; system("cls"); m=load(); printf("请选择修改的方式! "); printf("\n"); printf("1、工号\n"); printf("\n"); printf("2、姓名"); printf("\n"); scanf("%d",&n); if(n! =1&&n! =2){ printf("输入错误! 请重新输入! \n"); getchar(); system("cls"); DoMotify(); } elseif(n==1){ while(j==-1){ printf("请输入你要修改的职工工号\n"); scanf("%d",&x); for(i=0;i if(x==staff[i].num) j=i; if(j==-1) printf("没有找到! 请重新输入! \n");} } elseif(n==2){ while(j==-1){ printf("请输入你要修改的职工姓名\n"); scanf("%s",k); for(i=0;i if(strcmp(k,staff[i].name)==0) j=i; if(j==-1) printf("没有找到! 请重新输入! \n"); } } printf("请输入要修改的项目\n"); printf("*************************************************\n"); printf("1、工号\n"); printf("2、姓名\n"); printf("3、性别\n"); printf("4、年龄\n"); printf("5、部门\n"); printf("6、基本工资\n"); printf("7、奖金\n"); printf("8、扣款*\n"); printf("*************************************************\n"); scanf("%d",&t); switch(t){ case1: printf("请输入修改后的工号\n");scanf("%d",&staff[j].num);break; case2: printf("请输入修改后的姓名\n");scanf("%s",staff[j].name);break; case3: printf("请输入修改后的性别\n");scanf("%c",&staff[j].sex);break; case4: printf("请输入修改后的年龄\n");scanf("%d",staff[j].age);break; case5: printf("请输入修改后的部门\n");scanf("%s",staff[j].department);break; case6: printf("请输入修改后的基本工资\n");scanf("%d",&staff[j].jbgz);break; case7: printf("请输入修改后的奖金\n");scanf("%d",&staff[j].jj);break; case8: printf("请输入修改后的扣款\n");scanf("%d",&staff[j].kk);break; } printf("\n"); printfface2(); staff[j].sfgz=staff[j].jbgz+staff[j].jj-staff[j].kk; output(j); printf("1、保存\n"); printf("2、不保存\n"); scanf("%d",&p); if(p==1) save(m); j=-1; printfback(); } /*....................输出指定员工信息.........................*/ voidDoFind(){ inti,m,j,p,n=-1; chark[20]; m=load(); printf("请输入你要查找的方式! \n"); printf("***********************************************\n"); printf("1、工号\n"); printf("2、姓名\n"); printf("***********************************************\n"); scanf("%d",&i); if(i! =1&&i! =2){ printf("输入有误! 请重新输入! \n"); getchar(); DoFind(); } else {if(i==1){ while(n==-1){ printf("请输入要查找的职工工号\n"); scanf("%d",&p); for(j=0;j if(p==staff[j].num) n=j; if(n==-1) printf("输入有误! 请重新输入! \n"); } } elseif(i==2){ while(n==-1){ printf("请输入要查找的姓名\n"); scanf("%s",k); for(j=0;j if(strcmp(k,staff[j].name)==0) n=j; if(n==-1) printf("输入有误! 请重新输入! \n"); } } printfface2(); output(n); printfback(); } } /*...................输出全体职工信息......................*/ voidList(){ inti,n; n=load(); system("cls"); printf("*******************************全体职工工资************************************\n"); printfface2(); for(i=0;i output(i); printf("********************************************************************************\n"); printfback(); } /*..................删除指定职工信息........................*/ voidDoDelete(){ intn,x,i,m,p,j=-1; chark[20]; system("cls"); n=load(); printf("\n"); printf("请选择你要删除的方式! \n"); printf("1、工号\n"); printf("2、姓名\n"); scanf("%d",&x); if(x! =1&&x! =2){ printf("输入有误请重新输入! \n"); DoDelete(); } else{ if(x==1){ while(j==-1){ printf("请输入你要删除的职工工号\n"); scanf("%d",&m); for(i=0;i if(m==staff[i].num) j=i; if(j==-1) printf("输入有误! 请重新输入! \n"); } } elseif(x==2){ while(j==-1){ printf("请输入你要删除的职工姓名\n"); scanf("%s",k); for(i=0;i if(strcmp(k,staff[i].name)==0) j=i; if(j==-1) printf("输入有误! 请重新输入! \n"); } } } printf("\n"); printfface2(); output(j); for(i=j;i staff[i]=staff[i+1]; for(i=0;i output(i); printf("删除? \n"); printf("1、是\n"); printf("2、否\n"); scanf("%d",&p); if(p==1) save(n-1); printfback(); } /*...............排序职工工资信息..................*/ voidSort(){ intn,i,j,k; structempt; n=load(); system("cls"); printf("请选择你要排序的项目\n"); printf("1、按实发工资从高到低\n"); printf("2、按部门\n"); scanf("%d",&k); while(k! =1&&k! =2){ printf("输入有误! 请重新输入! \n"); voidsort(); } if(k==1){ for(i=0;i for(j=i+1;j if(staff[i].sfgz>staff[j].sfgz){ t=staff[i]; staff[i]=staff[j]; staff[j]=t; } for(i=0;i output(i); printfback(); } else{ for(i=0;i if(strcmp(staff[i].department,"研发部")==0) output(i); for(i=0;i if(strcmp(staff[i].department,"营销部")==0) output(i); for(i=0;i if(strcmp(staff[i].department,"生产部")==0) output(i); for(i=0;i if(strcmp(staff[i].department,"行政部")==0) output(i); for(i=0;i if(strcmp(staff[i].department,"财务部")==0) output(i); printfback(); } } /*.....................退出系统.........................*/ voidGoout(){ printf("*******************************************************"); printf("\n"); printf("\n"); printf("谢谢你的使用! "); printf("\n"); printf("\n"); printf("*******************************************************"); printf("\n"); } /*--------------------------主函数------------------------------------*/ voidmain(){ meun(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 程序