员工工资管理系统源代码(共12页).docx
精选优质文档-倾情为你奉上#include<stdio.h>#include<string.h>typedef structint basic;/基本工资int position;/岗位工资int subsidy;/津贴int wages;/奖金int sum;/总工资money;typedef structchar num20;/职工号char name20;/姓名int age;/年龄char sex20;/性别money salary;/工资employee;int Print_jinru();/账号密码输入void Fscan_information();/“职工信息.txt”文件写入void Print_staff();/全体员工void Print_empl1(char x51);/按职工号查询void Print_empl2(char s51);/按姓名查询void Print_MainInterface();/主界面void Print_Interface_1();/职工信息录入界面void Print_Interface_2();/职工信息查询界面void Print_Interface_3();/职工工资排序界面void Print_Interface_4();/职工总工资void Print_Interface_5();/文件读出void qsort(int l,int r);/快速排序void Print_delete(int t);/删除职工信息void Print_Interface_2_1(int t);/职工信息修改界面int fyanzheng(char s1,char s2);/密码验证函数employee st500;/记录职工信息的函数int n;/职工总数void main()int x;employee em;printf("n");printf(" 欢迎使用员工工资管理系统 n");printf(" 制作人:刘爽 n");printf("在使用中产生的任何问题,欢迎进行批评指正n");printf("n");printf("n");printf("n");printf("n");if (Print_jinru()Fscan_information();Print_MainInterface();else return;void Fscan_information()FILE *fp;int i;if (fp=fopen("职工信息.txt","r")=NULL)printf("cannot open this filen");return ;fscanf(fp,"%d",&n);for (i=1;i<=n;i+)fscanf(fp,"%s%s%d%s%d%d%d",sti.num,sti.name,&sti.age,sti.sex,&sti.salary.basic,&sti.salary.subsidy,&sti.salary.wages);sti.salary.sum=sti.salary.basic+sti.salary.subsidy+sti.salary.wages;fclose(fp);int fyanzheng(char s1,char s2)FILE *fp1,*fp2;char str140="",str240="",st;int t;if (fp1=fopen("账号验证.in","r")=NULL)printf("cannot open this filen");return 0;t=0; st=fgetc(fp1);while (st!='#')str1t=st;t+;st=fgetc(fp1);if (fp2=fopen("密码验证.in","r")=NULL)printf("cannot open this filen");return 0;t=0; st=fgetc(fp2);while (st!='#')str2t=st;t+;st=fgetc(fp2);fclose(fp1);fclose(fp2);if (strcmp(str1,s1)=0)&&(strcmp(str2,s2)=0)return 1;elsereturn 0;int Print_jinru()int f,d;char x20,y20;f=0;d=0;while(1)printf("请输入账号:");scanf("%s",x);getchar();printf("请输入密码:");scanf("%s",y);getchar();f=fyanzheng(x,y);if (d>3)printf("错误次数太多,退出系统n");return 0;if (f>0) break;elseprintf("账号或密码输入错误,请重新输入n");d+;printf("n");printf("欢迎进入员工工资管理系统!n");return 1;void Print_MainInterface()int x;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("请选择所需操作:");scanf("%d",&x);if (x=1)Print_Interface_1();elseif (x=2)Print_Interface_2();elseif (x=3)Print_Interface_3();elseif (x=4)Print_Interface_4();elseif (x=5)Print_Interface_5();elseif (x=6)printf(" * * * * * * * *n");printf("* * * * * * * * * * *n");printf("* * * * * * * * * * *n");printf(" * * * * * * * *n");printf(" * * * * * * * *n");printf(" * * * * * * * *n");printf(" * * * * * * n");/printf("n");return;else printf("输入命令错误,返回主菜单(再乱输入我找人打你啊)n");Print_MainInterface();void Print_Interface_1()n+;if (n>500) printf("超出职工最大数n");Print_MainInterface();printf("n");printf("*妖精的分割线*n");printf("n");printf("新建职工号:");scanf("%s",stn.num);printf("姓名:");scanf("%s",stn.name);printf("年龄:");scanf("%d",&stn.age);printf("性别:");scanf("%s",stn.sex);printf("基本工资:");scanf("%d",&stn.salary.basic);printf("津贴:");scanf("%d",&stn.salary.subsidy);printf("奖金:");scanf("%d",&stn.salary.wages);stn.salary.sum=stn.salary.basic+stn.salary.subsidy+stn.salary.wages;printf("职工信息已成功录入n");Print_MainInterface();void Print_Interface_2()int x;char s50,y50;printf("n");printf("*逗比的分割线*n");printf("n");printf("1.查询所有职工n");printf("2.按职工号查询n");printf("3.按职工姓名查询n");printf("4.返回主菜单n");printf("请选择查找方式:n");scanf("%d",&x);if (x=1)Print_staff();elseif (x=2)printf("请输入职工工号:");scanf("%s",y);Print_empl1(y);elseif (x=3)printf("请输入职工姓名:");scanf("%s",s);Print_empl2(s);elseif (x=4)Print_MainInterface();else printf("输入命令错误,返回上一层n");Print_Interface_2();void Print_Interface_3()char ch10;printf("n");qsort(1,n);printf("排序完成!排序后结果请从查询全体职工处查看n");Print_MainInterface();void Print_Interface_4()int i,All=0;char ch10;printf("n");for (i=1;i<=n;i+)All=All+sti.salary.sum;printf("所有职工的总工资为:%dn",All);printf("请输入任意字符并敲回车键返回主菜单n");scanf("%s",&ch);Print_MainInterface();void Print_Interface_5()FILE *fp;char ch10;int i;if (fp=fopen("职工信息.txt","w")=NULL)printf("cannot open this filen");return ;fprintf(fp,"%dn",n);for (i=1;i<=n;i+)fprintf(fp,"%s %s %d %s %d %d %dn",sti.num,sti.name,sti.age,sti.sex,sti.salary.basic,sti.salary.subsidy,sti.salary.wages);fclose(fp);printf("n");printf("已保存到文件n");printf("n");printf("请输入任意字符返回主菜单n");scanf("%s",&ch);Print_MainInterface();void Print_staff()int i;printf("n");printf("*帅比的分割线*");printf("n");for (i=1;i<=n;i+)printf("职工工号:%sn",sti.num);printf("姓名:%sn",sti.name);printf("年龄:%dn",sti.age);printf("性别:%sn",sti.sex);printf("基本工资:%dn",sti.salary.basic);printf("津贴:%dn",sti.salary.subsidy);printf("奖金:%dn",sti.salary.wages);printf("总工资:%dn",sti.salary.sum);printf("n");printf("返回上一层n");Print_Interface_2();void Print_empl1(char x)int i,t,y,d=0;printf("n");for (i=1;i<=n;i+)if (strcmp(x,sti.num)=0)t=i;d=1;printf("职工工号:%sn",sti.num);printf("姓名:%sn",sti.name);printf("年龄:%dn",sti.age);printf("性别:%sn",sti.sex);printf("基本工资:%dn",sti.salary.basic);printf("津贴:%dn",sti.salary.subsidy);printf("奖金:%dn",sti.salary.wages);printf("总工资:%dn",sti.salary.sum);printf("n");break;if (d>0)printf("如需删除请按2,修改请按1,返回请按0n");scanf("%d",&y);if (y=2)Print_delete(t);elseif (y=1)Print_Interface_2_1(t);else if (y=0)Print_Interface_2();else printf("输入命令错误,返回上一层(再乱输入我找人打你啊)n");Print_Interface_2();elseprintf("对不起,查无此人(本系统不包括路人甲乙丙,不要乱输-_-!)n");printf("请重新选择查询方式n");Print_Interface_2();void Print_empl2(char s)int i,t,x,y=0;printf("n");for (i=1;i<=n;i+)if (strcmp(s,sti.name)=0)t=i;y=1;printf("职工工号:%sn",sti.num);printf("姓名:%sn",sti.name);printf("年龄:%dn",sti.age);printf("性别:%sn",sti.sex);printf("基本工资:%dn",sti.salary.basic);printf("津贴:%dn",sti.salary.subsidy);printf("奖金:%dn",sti.salary.wages);printf("总工资:%dn",sti.salary.sum);printf("n");break;if (y>0)printf("如需删除请按2,修改请按1,返回请按0(再乱输入我找人打你啊)n");scanf("%d",&x);if (x=2)Print_delete(t);elseif (x=1)Print_Interface_2_1(t);elseif (x=0)Print_Interface_2();else printf("输入命令错误,返回上一层n");Print_Interface_2();elseprintf("对不起,查无此人(本系统不包括路人甲乙丙,不要乱输-_-!)n");printf("请重新选择查询方式n");Print_Interface_2();void Print_delete(int t)stt.salary.sum=0;qsort(1,n);n-;printf("已删除该职工并排序,自动返回主菜单n");Print_MainInterface();void Print_Interface_2_1(int t)int x;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("9.返回主菜单n");scanf("%d",&x);switch(x)case 1:scanf("%s",stt.num);break;case 2:scanf("%s",stt.name);break;case 3:scanf("%d",stt.age);break;case 4:scanf("%s",stt.sex);break;case 5:scanf("%s",stt.salary.basic);break;case 6:scanf("%d",stt.salary.subsidy);break;case 7:scanf("%d",stt.salary.wages);break;stt.salary.sum=stt.salary.basic+stt.salary.subsidy+stt.salary.wages;if (x<=8)Print_Interface_2();elseif (x=9)Print_MainInterface();void qsort(int l,int r)int i,j,mid;employee tt;i=l;j=r;mid=st(l+r)/2.salary.sum;dowhile (sti.salary.sum>mid) i+;while (stj.salary.sum<mid) j-;if (i<=j)tt=sti;sti=stj;stj=tt;i+;j-;while(i<=j);if (i<r) qsort(i,r);if (l<j) qsort(l,j);专心-专注-专业