1、C语言课程设计报告工资管理系统 C语言课程设计报告-工资管理系统一. 系统功能设计一个职工工资管理系统,其功能包括:(1) 职工基本工资信息录入包括工号,姓名,应发工资,奖金,扣款,应发工资,扣税,实发工资。(2) 职工基本工资信息保存(3) 职工基本工资信息查询按照工号查询按照姓名查询(4) 职工基本工资信息显示在屏幕上显示所有的职工基本工资信息。(5) 职工基本工资信息更新能够实现修改,删除,插入,排序功能。(6) 职工基本工资信息统计统计公司员工工资在各等级的人数主界面系统主界面应有如下功能选项录入职工基本工资信息查询职工基本工资信息保存职工基本工资信息删除职工基本工资信息插入职工基本工
2、资信息修改职工基本工资信息统计职工基本工资信息排序职工基本工资信息显示职工基本工资信息退出代码如下:#include typedef struct employee char num10; /保存职工编号 char name15; /保存职工姓名 float jbgz; /保存职工基本工资 float jj; /保存职工奖金 float kk; /保存职工扣款 float yfgz; /保存职工应发工资 float sk; /保存职工税款 float sfgz; /保存职工实发工资 ZGGZ;void menu() printf( Empoyee Systemn); printf(- - -
3、- - - - -n); printf( *1 input record *2 delete recordn); printf( *3 search record *4 modify recordn); printf( *5 insert record *6 count recordn); printf( *7 sort record *8 save recordn); printf( *9 display record *0 quit recordn); printf(- - - - - - - -n); printf(Please enter you choice(0-9)n);int i
4、nput(ZGGZ a,int k) int j,x; char str10; j=x=0; while(1) printf(-n); printf(请输入职工的编号:(按0返回主菜单)); scanf(%s,str); strcpy(ak.num,str); for(j=0;jk;j+) if(strcmp(aj.num,str)=0) printf(已经有工号为%s的员工信息!请重新输入员工号。n,str); printf(请输入职工的编号:); scanf(%s,str); strcpy(ak.num,str); if(strcmp(ak.num,0)=0) break; printf(
5、请输入职工的姓名:); scanf(%s,ak.name); printf(请输入职工的基本工资:); scanf(%f,&ak.jbgz); printf(请输入职工的奖金:); scanf(%f,&ak.jj); printf(请输入职工的扣款:); scanf(%f,&ak.kk); ak.yfgz=ak.jbgz+ak.jj-ak.kk; ak.sk=ak.yfgz*(0.05); ak.sfgz=ak.yfgz*(0.95); k+; return k; int del(ZGGZ a,int y) int i=0; int x=0; char str15; printf(请输入你要删
6、除的编号或姓名:); scanf(%s,str); printf(-删除成功-n); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,ai.name) while(iy) strcpy(ai.num,ai+1.num); strcpy(ai.name,ai+1.name); ai.jbgz=ai+1.jbgz; ai.jj=ai+1.jj; ai.kk=ai+1.kk; ai.sfgz=ai+1.sfgz; ai.sk=ai+1.sk; ai.yfgz=ai+1.yfgz; i+; x+; if(x=0) printf(输入的编号或姓名不存在
7、,请重新输入:n); return y-x;int sear(ZGGZ a,int y) int i; int x=0; char str15; printf(请输入你要查找的编号或姓名:); scanf(%s,str); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,ai.name) printf(员工编号为%sn,ai.num); printf(员工姓名为%sn,ai.name); printf(基本工资:%fn,ai.jbgz); printf(奖金:%fn,ai.jj); printf(扣款:%fn,ai.kk); printf(应
8、发工资:%fn,ai.yfgz); printf(税款:%fn,ai.sk); printf(实发工资:%fn,ai.sfgz); x+; if(x=0) printf(未找到该记录n); return -1; void mod(ZGGZ a,int y) int i; int x=0; char str15; printf(请输入你要修改的编号:); scanf(%s,str); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,ai.name) printf(请输入修改后职工的姓名:); scanf(%s,ai.name); printf(
9、请输入修改后职工的基本工资:); scanf(%f,&ai.jbgz); printf(请输入修改后职工的奖金:); scanf(%f,&ai.jj); printf(请输入修改后职工的扣款:); scanf(%f,&ai.kk); printf(-修改成功-n); ai.yfgz=ai.jbgz+ai.jj-ai.kk; ai.sk=ai.yfgz*(0.05); ai.sfgz=ai.yfgz*(0.95); x+; if(x=0) printf(未找到要修改的编号n); int insert(ZGGZ a,int y) int i; int x=0; char str15; printf
10、(请输入你要插入的编号:); scanf(%s,str); printf(请输入一条新的记录信息:n); for(i=0;ix+1;i-) ai.jbgz=ai-1.jbgz; ai.jj=ai-1.jj; ai.kk=ai-1.kk; ai.sfgz=ai-1.sfgz; ai.sk=ai-1.sk; ai.yfgz=ai-1.yfgz; strcpy(ai.name,ai-1.name); strcpy(ai.num,ai-1.num); x+; printf(请输入职工的编号:); scanf(%s,ax.num); printf(请输入职工的姓名:); scanf(%s,ax.name
11、); printf(请输入职工的基本工资:); scanf(%f,&ax.jbgz); printf(请输入职工的奖金:); scanf(%f,&ax.jj); printf(请输入职工的扣款:); scanf(%f,&ax.kk); ax.yfgz=ax.jbgz+ax.jj-ax.kk; ax.sk=ax.yfgz*(0.05); ax.sfgz=ax.yfgz*(0.95); return y+1;void count(ZGGZ a,int y) int q11=0,0,0,0,0,0,0,0,0,0,0; int i; int x; for(i=0;iy;i+) x=(int)ai.y
12、fgz/1000; switch(x) case 9:q1+;break; case 8:q2+;break; case 7:q3+;break; case 6:q4+;break; case 5:q5+;break; case 4:q6+;break; case 3:q7+;break; case 2:q8+;break; case 1:q9+;break; case 0:q10+;break; default:q0+;break; printf(应发工资在 10000以上 的人数为%dn,q0); printf(应发工资在 9000到10000 的人数为%dn,q1); printf(应发
13、工资在 8000到9000 的人数为%dn,q2); printf(应发工资在 7000到8000 的人数为%dn,q3); printf(应发工资在 6000到7000 的人数为%dn,q4); printf(应发工资在 5000到6000 的人数为%dn,q5); printf(应发工资在 4000到5000 的人数为%dn,q6); printf(应发工资在 3000到4000 的人数为%dn,q7); printf(应发工资在 2000到3000 的人数为%dn,q8); printf(应发工资在 1000到2000 的人数为%dn,q9); printf(应发工资在 1000以上 的
14、人数为%dn,q10);void sort(ZGGZ a,int y) int i,j; float t; char str15; for(j=0;jy-1;j+) for(i=0;iai+1.sfgz) t=ai.sfgz; ai.sfgz=ai+1.sfgz; ai+1.sfgz=t; t=ai.jbgz; ai.jbgz=ai+1.jbgz; ai+1.jbgz=t; t=ai.jj; ai.jj=ai+1.jj; ai+1.jj=t; t=ai.kk; ai.kk=ai+1.kk; ai+1.kk=t; t=ai.yfgz; ai.yfgz=ai+1.yfgz; ai+1.yfgz=t
15、; t=ai.sk; ai.sk=ai+1.sk; ai+1.sk=t; strcpy(str,ai.num); strcpy(ai.num,ai+1.num); strcpy(ai+1.num,str); strcpy(str,ai.name); strcpy(ai.name,ai+1.name); strcpy(ai+1.name,str); void save(ZGGZ a,int n) FILE *fp; int i; if(fp=fopen(sj.txt,wb)=NULL) printf(cannot open filen); return; for(i=0;in;i+) if(fw
16、rite(&ai,sizeof(struct employee),1,fp)!=1) printf(file write errorn); fclose(fp);void display(ZGGZ a,int n) int i=0; if(n=0) printf(Files are emptyn); return; do printf(-n); printf(员工编号为%sn,ai.num); printf(员工姓名为%sn,ai.name); printf(基本工资:%fn,ai.jbgz); printf(奖金:%fn,ai.jj); printf(扣款:%fn,ai.kk); print
17、f(应发工资:%fn,ai.yfgz); printf(税款:%fn,ai.sk); printf(实发工资:%fn,ai.sfgz); i+; while(in);void main() int selete,c=0; int i=0; int z=0; char q,p,x,s; ZGGZ b100; FILE *fp; if(fp=fopen(sj.txt,rb)=NULL) printf(Not Found!n); else do fread(&bi,sizeof(struct employee),1,fp); i+; while(!feof(fp); fclose(fp); c=i-1; while(1) menu(); scanf(%d,&selete); if(selete=0)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1