C++_工资管理系统_源代码(1).docx

上传人:scccc 文档编号:12794475 上传时间:2021-12-06 格式:DOCX 页数:24 大小:31.61KB
返回 下载 相关 举报
C++_工资管理系统_源代码(1).docx_第1页
第1页 / 共24页
C++_工资管理系统_源代码(1).docx_第2页
第2页 / 共24页
C++_工资管理系统_源代码(1).docx_第3页
第3页 / 共24页
C++_工资管理系统_源代码(1).docx_第4页
第4页 / 共24页
C++_工资管理系统_源代码(1).docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++_工资管理系统_源代码(1).docx》由会员分享,可在线阅读,更多相关《C++_工资管理系统_源代码(1).docx(24页珍藏版)》请在三一文库上搜索。

1、#define TITLE "n月份 工号 姓名应发工资各种折扣实发工资n"#defineDATA"%2d %4ld %-10s % % %n",p1->month,p1->num,p1->name,p1->should_pay,p1->rebate,p1->actual_paytypedef struct paylong num;short month;char name20;float gw,jn,zw,zl,jt,yj;float should_pay;float fz,gj,sd,others;float re

2、bate;float actual_pay;struct pay *next;PAY;FILE *fp;PAY *p1=NULL,*p2=NULL,*head=NULL;void menu();PAY *input();void output();void save(PAY *head);PAY *open();PAY *insert();void search();PAY *del();PAY *revise();/* 主程序模块*/void main(void)short sel;domenu();scanf("%d",&sel);switch(sel)case

3、 1:head=input(); 建工资档案n");printf("tttt2.新增工资信息n");printf("tttt3.修改工资信息n");printf("tttt4.删除工资信息n");printf("tttt5.查找工资信息n");printf("tttt6.分类信息列表n");printf("tttt7.保 存 信 息 n");printf("tttt0.退出 n");printf("nnnnnnnn");/*

4、输入模块*/PAY *input()short n=1;p1=(PAY*)malloc(sizeof(PAY);if(p1=NULL)printf(" 内存不足,无法创建链表!");getch();printf("n请输入第d位职工的信息(以工号为0结束):n",n);printf(" 工号: ");scanf("%d",&p1->num);if(p1->num=0)printf(" 按任意键返回!");getch();free(p1);return 0;getchar();

5、printf(" 姓名: ");gets(p1->name);printf("工资月份:");scanf("%d",&p1->month);printf("岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴: n");scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p 1->yj);printf(&q

6、uot; 房租扣款,公积金,水电费,其它扣款:n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p

7、1->rebate;while(p1!=NULL)if(n=1)head=p1;elsep2->next=p1;n+;p2=p1;p1=(PAY*)malloc(sizeof(PAY);if(p1=NULL)printf(" 内存不足,无法创建链表!");getch();printf("请输入第d位职工的信息(以工号为 0结束):n”,n);printf(" 工号: ");scanf("%d",&p1->num);getchar();if(p1->num=0)p1=NULL;break;pri

8、ntf(" 姓名: ");gets(p1->name);printf(" 工资月份:");scanf("%d",&p1->month);printf("岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴: n");scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj);printf("

9、; 房租扣款,公积金,水电费,其它扣款:n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1-&

10、gt;rebate;p2->next=NULL;部清单 n");printf("tt2. 按月输出n");printf("tt3. 按工资段输出n");printf("tt0. 返回 n");scanf("%d",&sel);while(sel!=1&&sel!=2&&sel!=3&&sel!=0);head=open();if(head=NULL) return;switch(sel)case 1:printf("nttt *全部清

11、单*n");printf(TITLE);p1=head;doprintf(DATA);p1=p1->next;while(p1!=NULL);break;case 2:flag=0;printf(" 输入要查的月份:");scanf("%d",&month);printf("nttt*第月工资清单 *n",month);printf(TITLE);p1=head;doif(p1->month=month)printf(DATA);p1=p1->next;flag=1;elsep1=p1->ne

12、xt;while(p1!=NULL);if(flag=0)printf(" 没有该月清单n");break;case 3:flag=0;printf("输入最低工资:");scanf("%f",&min);printf("输入最高工资:");scanf("%f",&max);printf("ntt *%到 %工资的名单*n",min,max);printf(TITLE);p1=head;doif(p1->actual_pay>min&&am

13、p;p1->actual_pay<max)printf(DATA);p1=p1->next;flag=1;elsep1=p1->next;while(p1!=NULL);if(flag=0)printf(" 没有该工资段的职工n");break;case 0:break;while(sel!=0);/* 保存文件*/void save(PAY *head) short write;fp=fopen("","w");if(fp=NULL)printf(" 创建文件失败!");getch();r

14、eturn;p1=p2=head;while(p1!=NULL)write=fwrite(p1,sizeof(PAY),1,fp);if(!write)printf(" 无法写入文件!");getch();return;p1=p1->next;fclose(fp);printf(" 成功存盘!");getch();/* 打开文件*/PAY *open()short n=1,read;fp=fopen("","r");if(fp=NULL)printf(" 无法打开档案文件!");getch

15、();return NULL;if(p1=p2=(PAY*)malloc(sizeof(PAY)=NULL)printf(" 内存不足!");getch();return NULL;read=fread(p1,sizeof(PAY),1,fp);if(!read)printf(" 文件读取出错!1");getch();return NULL;if(p1->next=NULL)head=p1;elsedoif(n=1)head=p1;elsep2->next=p1;n+;p2=p1;if(p1=(PAY*)malloc(sizeof(PAY)=

16、NULL)printf(" 内存不足!");getch();return NULL;read=fread(p1,sizeof(PAY),1,fp);if(!read)printf(" 文件读取出错!2");getch();return NULL;while(p1->next!=NULL);p2->next=p1;return head;fclose(fp);/* 插入模块*/PAY *insert()PAY *p3=NULL;char sel;head=open();if(head=NULL)return NULL;elsedoprintf(

17、" 请输入要插入的职工信息:n");p3=(PAY*)malloc(sizeof(PAY);if(p3=NULL)printf(" 内存不足,无法创建链表!");getch();printf("工号: ");scanf("%d",&p3->num);getchar();printf("姓名: ");gets(p3->name);printf("工资月份:");scanf("%d",&p3->month);printf(&q

18、uot;岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴: n");scanf("%f,%f,%f,%f,%f,%f",&p3->gw,&p3->jn,&p3->zw,&p3->zl,&p3->jt,&p3->yj);printf("房租扣款,公积金,水电费,其它扣款:n");scanf("%f,%f,%f,%f",&p3->fz,&p3->gj,&p3->sd,&p3->ot

19、hers);p3->should_pay=p3->gw+p3->jn+p3->zw+p3->zl+p3->jt+p3->yj;p3->rebate=p3->fz+p3->gj+p3->sd+p3->others;p3->actual_pay=p3->should_pay-p3->rebate;p1=head;while(p1 !=NULL)p2=p1;p1=p1->next;)p2->next=p3;p3->next=NULL;printf(" 成功插入,是否继续?是(Y)否(

20、N) n");sel=getch();while(sel='Y'|sel='y');printf("n任意键返回,并存盘 n");getch();return head;)/*查找模块*/void search() short sei;long num;char name20,choose;head=open();if(head=NULL)return;elsedodoprintf("n 选择查找方式:n");printf("tt1.按工号查找n");printf("tt2.按姓名查

21、找n");scanf("%d",&sel);getchar();while(sel!=1&&sel!=2);switch(sel)case 1:printf(" 输入要查的工号:");scanf("%ld",&num);break;case 2:printf(" 输入要查的姓名:");gets(name);break;p1=head;while(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1

22、->name,name)!=0)工号删除n");printf("tt2. 按姓名删除n");scanf("%d",&sel);getchar();while(sel!=1&&sel!=2);switch(sel)case 1:printf(" 输入要删除的工号:");scanf("%ld",&num);break;case 2:printf(" 输入要删除的姓名:");gets(name);break;p1=head;if(p1->num=n

23、um)|strcmp(p1->name,name)=0)head=p1->next;printf(" 删除信息成功!");elsewhile(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)p2=p1;p1=p1->next;if(p1->num=num)|strcmp(p1->name,name)=0)p2->next=p1->next;free(p1);printf("n删除信息成功!n")

24、;elseprintf("n 没有该信息!n");printf(" 是否继续?是(Y)否(N) n");choose=getch();while(choose='Y'|choose='y');printf("任意键返回,并存盘");getch();return head;/* 修改模块*/PAY *revise()short sel;long num;char name20,choose;head=open();if(head=NULL)return NULL;elsedodoprintf("

25、n 查找要修改的对象:n");printf("tt1.按工号查找n");printf("tt2.按姓名查找n");scanf("%d",&sel);getchar();while(sel!=1&&sel!=2);switch(sel)case 1:printf(" 输入要查的工号:");scanf("%ld",&num);break;case 2:printf(" 输入要查的姓名:");gets(name);break;p1=head

26、;while(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0)/用成p1!=NULL有问题?p1=p1->next;if(p1->num=num)|strcmp(p1->name,name)=0)printf(" 您要修改的原始信息如下:n");printf(TITLE);printf(DATA);printf("n 将上述信息改为如下信息:n");printf("工号: ");scanf(&quo

27、t;%d",&p1->num);getchar();printf("姓名: ");gets(p1->name);printf("工资月份:");scanf("%d",&p1->month);printf("岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:n");scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&

28、p1->jt,&p1->yj);printf("房租扣款,公积金,水电费,其它扣款:n");scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;elseprintf("你要修改的信息不存在!n");printf("是否继续?是(Y) 否(N) n");choose=getch();while(choose='Y'|choose='y');printf("任意键返回,并存盘 ");getch();return head;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1