C语言课程设计报告工资管理系统.docx
- 文档编号:10042689
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:20
- 大小:21.70KB
C语言课程设计报告工资管理系统.docx
《C语言课程设计报告工资管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告工资管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告工资管理系统
C语言课程设计报告-工资管理系统
一.系统功能
设计一个职工工资管理系统,其功能包括:
(1)职工基本工资信息录入
包括工号,姓名,应发工资,奖金,扣款,应发工资,扣税,实发工资。
(2)职工基本工资信息保存
(3)职工基本工资信息查询
按照工号查询
按照姓名查询
(4)职工基本工资信息显示
在屏幕上显示所有的职工基本工资信息。
(5)职工基本工资信息更新
能够实现修改,删除,插入,排序功能。
(6)职工基本工资信息统计
统计公司员工工资在各等级的人数
主界面系统主界面应有如下功能选项
录入职工基本工资信息
查询职工基本工资信息
保存职工基本工资信息
删除职工基本工资信息
插入职工基本工资信息
修改职工基本工资信息
统计职工基本工资信息
排序职工基本工资信息
显示职工基本工资信息
退出
代码如下:
#include
typedefstructemployee
{
charnum[10];//保存职工编号
charname[15];//保存职工姓名
floatjbgz;//保存职工基本工资
floatjj;//保存职工奖金
floatkk;//保存职工扣款
floatyfgz;//保存职工应发工资
floatsk;//保存职工税款
floatsfgz;//保存职工实发工资
}ZGGZ;
voidmenu()
{
printf("EmpoyeeSystem\n");
printf("--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@\n");
printf("*1inputrecord*2deleterecord\n");
printf("*3searchrecord*4modifyrecord\n");
printf("*5insertrecord*6countrecord\n");
printf("*7sortrecord*8saverecord\n");
printf("*9displayrecord*0quitrecord\n");
printf("--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@\n");
printf("Pleaseenteryouchoice(0-9)\n");
}
intinput(ZGGZa[],intk)
{
intj,x;
charstr[10];
j=x=0;
while
(1)
{
printf("----------------------------\n");
printf("请输入职工的编号:
(按0返回主菜单)");
scanf("%s",str);
strcpy(a[k].num,str);
for(j=0;j<k;j++)
{
if(strcmp(a[j].num,str)==0)
{
printf("已经有工号为%s的员工信息!
请重新输入员工号。
\n",str);
printf("请输入职工的编号:
");
scanf("%s",str);
strcpy(a[k].num,str);
}
}
if(strcmp(a[k].num,"0")==0)
break;
printf("请输入职工的姓名:
");
scanf("%s",a[k].name);
printf("请输入职工的基本工资:
");
scanf("%f",&a[k].jbgz);
printf("请输入职工的奖金:
");
scanf("%f",&a[k].jj);
printf("请输入职工的扣款:
");
scanf("%f",&a[k].kk);
a[k].yfgz=a[k].jbgz+a[k].jj-a[k].kk;
a[k].sk=a[k].yfgz*(0.05);
a[k].sfgz=a[k].yfgz*(0.95);
k++;
}
returnk;
}
intdel(ZGGZa[],inty)
{
inti=0;
intx=0;
charstr[15];
printf("请输入你要删除的编号或姓名:
");
scanf("%s",str);
printf("--------删除成功--------\n");
for(i=0;i if(! strcmp(str,a[i].num)||! strcmp(str,a[i].name)) { while(i { strcpy(a[i].num,a[i+1].num); strcpy(a[i].name,a[i+1].name); a[i].jbgz=a[i+1].jbgz; a[i].jj=a[i+1].jj; a[i].kk=a[i+1].kk; a[i].sfgz=a[i+1].sfgz; a[i].sk=a[i+1].sk; a[i].yfgz=a[i+1].yfgz; i++; } x++; } if(x==0) { printf("输入的编号或姓名不存在,请重新输入: \n"); } returny-x; } intsear(ZGGZa[],inty) { inti; intx=0; charstr[15]; printf("请输入你要查找的编号或姓名: "); scanf("%s",str); for(i=0;i<y;i++) if(! strcmp(str,a[i].num)||! strcmp(str,a[i].name)) { printf("员工编号为%s\n",a[i].num); printf("员工姓名为%s\n",a[i].name); printf("基本工资: %f\n",a[i].jbgz); printf("奖金: %f\n",a[i].jj); printf("扣款: %f\n",a[i].kk); printf("应发工资: %f\n",a[i].yfgz); printf("税款: %f\n",a[i].sk); printf("实发工资: %f\n",a[i].sfgz); x++; } if(x==0) { printf("未找到该记录\n"); return-1; } } voidmod(ZGGZa[],inty) { inti; intx=0; charstr[15]; printf("请输入你要修改的编号: "); scanf("%s",str); for(i=0;i if(! strcmp(str,a[i].num)||! strcmp(str,a[i].name)) { printf("请输入修改后职工的姓名: "); scanf("%s",a[i].name); printf("请输入修改后职工的基本工资: "); scanf("%f",&a[i].jbgz); printf("请输入修改后职工的奖金: "); scanf("%f",&a[i].jj); printf("请输入修改后职工的扣款: "); scanf("%f",&a[i].kk); printf("-------------修改成功------------\n"); a[i].yfgz=a[i].jbgz+a[i].jj-a[i].kk; a[i].sk=a[i].yfgz*(0.05); a[i].sfgz=a[i].yfgz*(0.95); x++; } if(x==0) { printf("未找到要修改的编号\n"); } } intinsert(ZGGZa[],inty) { inti; intx=0; charstr[15]; printf("请输入你要插入的编号: "); scanf("%s",str); printf("请输入一条新的记录信息: \n"); for(i=0;i if(strcmp(str,a[i].num)==0) { x=i; for(i=y;i>x+1;i--) { a[i].jbgz=a[i-1].jbgz; a[i].jj=a[i-1].jj; a[i].kk=a[i-1].kk; a[i].sfgz=a[i-1].sfgz; a[i].sk=a[i-1].sk; a[i].yfgz=a[i-1].yfgz; strcpy(a[i].name,a[i-1].name); strcpy(a[i].num,a[i-1].num); } } x++; printf("请输入职工的编号: "); scanf("%s",a[x].num); printf("请输入职工的姓名: "); scanf("%s",a[x].name); printf("请输入职工的基本工资: "); scanf("%f",&a[x].jbgz); printf("请输入职工的奖金: "); scanf("%f",&a[x].jj); printf("请输入职工的扣款: "); scanf("%f",&a[x].kk); a[x].yfgz=a[x].jbgz+a[x].jj-a[x].kk; a[x].sk=a[x].yfgz*(0.05); a[x].sfgz=a[x].yfgz*(0.95); returny+1; } voidcount(ZGGZa[],inty) { intq[11]={0,0,0,0,0,0,0,0,0,0,0}; inti; intx; for(i=0;i { x=(int)a[i].yfgz/1000; switch(x) { case9: q[1]++;break; case8: q[2]++;break; case7: q[3]++;break; case6: q[4]++;break; case5: q[5]++;break; case4: q[6]++;break; case3: q[7]++;break; case2: q[8]++;break; case1: q[9]++;break; case0: q[10]++;break; default: q[0]++;break; } } printf("应发工资在10000以上的人数为%d\n",q[0]); printf("应发工资在9000到10000的人数为%d\n",q[1]); printf("应发工资在8000到9000的人数为%d\n",q[2]); printf("应发工资在7000到8000的人数为%d\n",q[3]); printf("应发工资在6000到7000的人数为%d\n",q[4]); printf("应发工资在5000到6000的人数为%d\n",q[5]); printf("应发工资在4000到5000的人数为%d\n",q[6]); printf("应发工资在3000到4000的人数为%d\n",q[7]); printf("应发工资在2000到3000的人数为%d\n",q[8]); printf("应发工资在1000到2000的人数为%d\n",q[9]); printf("应发工资在1000以上的人数为%d\n",q[10]); } voidsort(ZGGZa[],inty) { inti,j; floatt; charstr[15]; for(j=0;j for(i=0;i<y-1-j;i++) if(a[i].sfgz>a[i+1].sfgz) { t=a[i].sfgz; a[i].sfgz=a[i+1].sfgz; a[i+1].sfgz=t; t=a[i].jbgz; a[i].jbgz=a[i+1].jbgz; a[i+1].jbgz=t; t=a[i].jj; a[i].jj=a[i+1].jj; a[i+1].jj=t; t=a[i].kk; a[i].kk=a[i+1].kk; a[i+1].kk=t; t=a[i].yfgz; a[i].yfgz=a[i+1].yfgz; a[i+1].yfgz=t; t=a[i].sk; a[i].sk=a[i+1].sk; a[i+1].sk=t; strcpy(str,a[i].num); strcpy(a[i].num,a[i+1].num); strcpy(a[i+1].num,str); strcpy(str,a[i].name); strcpy(a[i].name,a[i+1].name); strcpy(a[i+1].name,str); } } voidsave(ZGGZa[],intn) { FILE*fp; inti; if((fp=fopen("sj.txt","wb"))==NULL) { printf("cannotopenfile\n"); return; } for(i=0;i<n;i++) if(fwrite(&a[i],sizeof(structemployee),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } voiddisplay(ZGGZa[],intn) { inti=0; if(n==0) { printf("Filesareempty\n"); return; } do { printf("----------------------------\n"); printf("员工编号为%s\n",a[i].num); printf("员工姓名为%s\n",a[i].name); printf("基本工资: %f\n",a[i].jbgz); printf("奖金: %f\n",a[i].jj); printf("扣款: %f\n",a[i].kk); printf("应发工资: %f\n",a[i].yfgz); printf("税款: %f\n",a[i].sk); printf("实发工资: %f\n",a[i].sfgz); i++; }while(i } voidmain() { intselete,c=0; inti=0; intz=0; charq,p,x,s; ZGGZb[100]; FILE*fp; if((fp=fopen("sj.txt","rb"))==NULL) printf("NotFound! \n"); else { do { fread(&b[i],sizeof(structemployee),1,fp); i++; }while(! feof(fp)); fclose(fp); c=i-1; } while (1) { menu(); scanf("%d",&selete); if(selete==0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 工资管理 系统