当前位置:文档之家› 人事管理系统源代码

人事管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 100struct member_info{char xm[7];char xb[3];char sr[15];char whcd[13];char zc[17];char sfzh[19];char lxdh[12];int gl;int nl;};struct member_info member[N+1];int CurrentCount=0;void input(){char sfjx=1;while(sfjx!=0){if(CurrentCount==N){printf("\n人数已达上限,不能添加!!!\n");sfjx=0;}else{CurrentCount++;printf("\n请输入员工信息(姓名性别生日年龄文化程度联系电话身份证号码工龄职称):\n");scanf("%s%s%s%d%s%s%s%d%s",member[CurrentCount].xm,member[CurrentCount].xb,memb er[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentC ount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}}printf("人员已排序");int i,j;for(i=1;i<CurrentCount;i++)for(j=CurrentCount;j>i;j--)if(strcmp(member[j].sfzh,member[j-1].sfzh)<0){member[0]=member[j];member[j]=member[j-1];member[j-1]=member[0];}printf("\n 人事基本信息表\n");printf(" 序号姓名性别生日年龄文化程度联系电话身份证号码工龄职称\n");for(i=1;i<=CurrentCount;i++)printf("%4d %6s%3s%11s%3d%8s%12s%20s%3d%5s\n",i,member[i].xm,member[i].xb,member[ i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);system("pause");}void save(){FILE *fp;fp=fopen("ygjbxx.txt","w");if(fp==NULL)printf("\n文件打开不成功,信息无法保存!!!\n");else{fprintf(fp,"%d",CurrentCount);for(int i=1;i<=CurrentCount;i++)fprintf(fp,"\n%8s%4s%16s%4d%14s%13s%20s%4d%18s",member[i].xm,member[i].xb,member[ i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);fclose(fp);printf("\n信息已成功保存!!!\n");}system("pause");}void read(){FILE *fp;fp=fopen("ygjbxx.txt","r");if(fp==NULL)printf("\n文件打开不成功,信息无法读取!!!\n");else{fscanf(fp,"%d",&CurrentCount);for(int i=1;i<=CurrentCount;i++){fscanf(fp,"%s%s%s%d%s%s%s%d%s",member[i].xm,member[i].xb,member[i].sr,&member[i].nl, member[i].whcd,member[i].lxdh,member[i].sfzh,&member[i].gl,member[i].zc);printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);}fclose(fp);printf("\n信息已成功读取!!!\n");}system("pause");}void search(){char dcsfzh[19];int sfjx=1,i;while(sfjx!=0){printf("\n请输入一个待查员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void del(){char dcsfzh[19];int sfjx=1,i,j;while(sfjx!=0){printf("\n请输入一个待删员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);printf("\n按任意键开始删除......\n");system("pause");for(j=i+1;j<=CurrentCount;j++)member[j-1]=member[j];CurrentCount--;printf("\n已成功删除......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void modify(){char dcsfzh[19];int sfjx=1,i;while(sfjx!=0){printf("\n请输入一个待修改员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);printf("\n请输入新内容......\n");printf("\n请输入人员相关信息(姓名性别生日年龄文化程度联系电话身份证号码工龄职称):");scanf("%s%s%s%d%s%s%s%d%s",member[CurrentCount].xm,member[CurrentCount].xb,memb er[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentC ount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);printf("\n已成功修改......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}int check(){int count=0,name,pass;while(count<=2){printf("\n请输入用户名及密码:");scanf("%d%d",&name,&pass);count++;if((name==1)&&(pass==1))count=10;elseif(count>2)count=5;}if(count==10)return 0;elsereturn 1;}struct mem_gz{float jbgz;float cql;float jj;float kk;float grsd;float sf;};struct mem_gz mem[N+1];void inputgz(){char sfjx=1;CurrentCount=0;while(sfjx!=0){if(CurrentCount==N){printf("\n工资已添加完毕,无法添加!!!\n");sfjx=0;}else{CurrentCount++;printf("请输入身份证号码为:%s的员工工资资料\n",member[CurrentCount].sfzh);printf("\n请输入员工工资信息(基本工资考勤奖金扣款个人所得税):\n");scanf("%f%f%f%f%f",&mem[CurrentCount].jbgz,&mem[CurrentCount].cql,&mem[CurrentCoun t].jj,&mem[CurrentCount].kk,&mem[CurrentCount].grsd);mem[CurrentCount].sf=mem[CurrentCount].jbgz*mem[CurrentCount].cql+mem[CurrentCount].jj -mem[CurrentCount].kk-mem[CurrentCount].grsd;}printf("\n是否继续(0--结束,其它--继续):\n");scanf("%d",&sfjx);}system("pause");}void savegz(){FILE *fq;fq=fopen("yggzxx.txt","w");if(fq==NULL)printf("\n文件打开不成功,信息无法保存!!!\n");else{fprintf(fq,"%d",CurrentCount);for(int i=1;i<=CurrentCount;i++)fprintf(fq,"\n%f %f %f %f %f %f",mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem [i].sf);fclose(fq);printf("\n信息已成功保存!!!\n");}system("pause");}void readgz(){FILE *fq;fq=fopen("yggzxx.txt","r");if(fq==NULL)printf("\n文件打开不成功,信息无法读取!!!\n");else{fscanf(fq,"%d",&CurrentCount);for(int i=1;i<=CurrentCount;i++){fscanf(fq,"%f%f%f%f%f%f",&mem[i].jbgz,&mem[i].cql,&mem[i].jj,&mem[i].kk,&mem[i].grsd, &mem[i].sf);printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i].sf);}fclose(fq);printf("\n信息已成功读取!!!\n");}system("pause");}void searchgz(){int dcbh;int sfjx=1;while(sfjx!=0){printf("\n请输入一个待查员工编号(身份证号从小到大的顺序):");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void delgz(){int dcbh;int sfjx=1,j;while(sfjx!=0){printf("\n请输入一个待删工资的编号:");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);printf("\n按任意键开始删除......\n");system("pause");for(j=dcbh+1;j<=CurrentCount;j++)mem[j-1]=mem[j];CurrentCount--;printf("\n已成功删除......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void modifygz(){int dcbh;int sfjx=1;while(sfjx!=0)printf("\n请输入一个待修改工资员工的编号:");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);printf("\n请输入新内容......\n");printf("\n请输入人员工资信息(基本工资考勤奖金扣款个人所得税实发工资):");scanf("%f%f%f%f",&mem[CurrentCount].jbgz,&mem[dcbh].cql,&mem[dcbh].jj,&mem[dcbh].kk ,&mem[dcbh].grsd,&mem[dcbh].sf);printf("\n已成功修改......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void listgz(){int i;printf("\n 员工工资信息表\n");printf(" 序号基本工资考勤奖金扣款个人所得税实发工资\n");for(i=1;i<=CurrentCount;i++)printf("%4d %8f%8f%8f%8f",i,mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i]. sf);system("pause");}void main(){int xz=1;printf(" *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*\n");printf(" * 欢迎使用人事工资管理系统*\n");printf(" ***************************************\n\n\n");if(check()!=0)printf("\n你无权使用本系统......\n\n");system("pause");}else{while(xz!=0){printf("\n请选择相应功能:\n");printf("1-录入\n2-查询\n3-修改\n4-删除\n5-保存\n6-读取\n7-输入员工工资\n8-保存工资信息\n9-读取工资信息\n10-修改工资信息\n11-删除工资信息\n12-工资列表\n0-结束\n请输入选择:");scanf("%d",&xz);switch(xz){case 1:input();break;case 2:search();break;case 3:modify();break;case 4:del();break;case 5:save();break;case 6:read();break;case 7:inputgz();break;case 8:savegz();break;case 9:readgz();break;case 10:modifygz();break;case 11:delgz();break;case 12:listgz();break;case 0:printf("\n\n谢谢使用本系统!\n\n");system("pause");break;default:printf("\n无此功能,请重新选择......\n");system("pause");}}}}。

相关主题