ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:17.60KB ,
资源ID:3549819      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3549819.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++工资管理系统源代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++工资管理系统源代码.docx

1、C+工资管理系统源代码提供完整代码:#include #include #include #include #include #define TITLE n 月份 工号 姓名 应发工资 各种折扣 实发工资n#define DATA %2d %4ld %-10s %6.1f %6.1f %6.1fn,p1-month,p1-num,p1-name,p1-should_pay,p1-rebate,p1-actual_paytypedef struct pay long num; short month; char name20; float gw,jn,zw,zl,jt,yj; float sho

2、uld_pay; float fz,gj,sd,others; float rebate; 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; do menu(); s

3、canf(%d,&sel); switch(sel) case 1: head=input(); /输入模块 break; case 2: head=insert(); /插入模块 break; case 3: head=revise(); /修改模块 break; case 4: head=del(); /删除模块 break; case 5: search(); /查找模块 break; case 6: output(); /输出模块 break; case 7: save(head); /保存模块 break; case 0: break; while(sel!=0);/*菜单*/voi

4、d menu() printf(nnnnnnn); printf(tttt *主菜单选项*nn); printf(tttt1.创建工资档案n); printf(tttt2.新增工资信息n); printf(tttt3.修改工资信息n); printf(tttt4.删除工资信息n); printf(tttt5.查找工资信息n); printf(tttt6.分类信息列表n); printf(tttt7.保 存 信 息n); printf(tttt0.退 出n); printf(nnnnnnnn);/*输入模块*/PAY *input() short n=1; p1=(PAY*)malloc(siz

5、eof(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(); printf( 姓名:); gets(p1-name); printf( 工资月份:); scanf(%d,&p1-month); printf( 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:n);

6、scanf(%f,%f,%f,%f,%f,%f,&p1-gw,&p1-jn,&p1-zw,&p1-zl,&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; while(p1!=NULL) if(n=

7、1) head=p1; else p2-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; printf( 姓名:); gets(p1-name); printf( 工资月份:); scanf(%d,&p1-month); printf( 岗位工资,技

8、能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:n); scanf(%f,%f,%f,%f,%f,%f,&p1-gw,&p1-jn,&p1-zw,&p1-zl,&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-r

9、ebate; p2-next=NULL; /edit by Yan-Xingyu Class Network-021 printf(职工信息已输入,请按任意键返回,并存盘); getch(); return head;/*输出模块*/void output() short sel,flag,month; float min,max; do do printf(nn请选择您的列表方式:n); printf(tt1.全部清单n); printf(tt2.按月输出n); printf(tt3.按工资段输出n); printf(tt0.返回n); scanf(%d,&sel); while(sel!=

10、1&sel!=2&sel!=3&sel!=0); head=open(); if(head=NULL) return; else switch(sel) case 1: printf(nttt *全部清单*n); printf(TITLE); p1=head; do printf(DATA); p1=p1-next; while(p1!=NULL); break; case 2: flag=0; printf(输入要查的月份:); scanf(%d,&month); printf(nttt*第%d月工资清单*n,month); printf(TITLE); p1=head; do if(p1-

11、month=month) printf(DATA); p1=p1-next; flag=1; else p1=p1-next; while(p1!=NULL); if(flag=0) printf(没有该月清单n); break; case 3: flag=0; printf(输入最低工资:); scanf(%f,&min); printf(输入最高工资:); scanf(%f,&max); printf(ntt *%5.1f到%5.1f工资的名单*n,min,max); printf(TITLE); p1=head; do if(p1-actual_paymin&p1-actual_payn

12、ext; flag=1; else p1=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(pay.txt,w); if(fp=NULL) printf(创建文件失败!); getch(); return; p1=p2=head; while(p1!=NULL) write=fwrite(p1,sizeof(PAY),1,fp); if(!write) pri

13、ntf(无法写入文件!); getch(); return; p1=p1-next; fclose(fp); printf(成功存盘!); getch();/*打开文件*/PAY *open() short n=1,read; fp=fopen(pay.txt,r); if(fp=NULL) printf(无法打开档案文件!); getch(); return NULL; if(p1=p2=(PAY*)malloc(sizeof(PAY)=NULL) printf(内存不足!); getch(); return NULL; read=fread(p1,sizeof(PAY),1,fp); if

14、(!read) printf(文件读取出错!1); getch(); return NULL; if(p1-next=NULL) head=p1; else do if(n=1) head=p1; else p2-next=p1; n+; p2=p1; if(p1=(PAY*)malloc(sizeof(PAY)=NULL) printf(内存不足!); getch(); return NULL; read=fread(p1,sizeof(PAY),1,fp); if(!read) printf(文件读取出错!2); getch(); return NULL; while(p1-next!=N

15、ULL); p2-next=p1; return head; fclose(fp);/*插入模块*/PAY *insert() PAY *p3=NULL; char sel; head=open(); if(head=NULL) return NULL; else do printf(请输入要插入的职工信息:n); p3=(PAY*)malloc(sizeof(PAY); if(p3=NULL) printf(内存不足,无法创建链表!); getch(); printf( 工号:); scanf(%d,&p3-num); getchar(); printf( 姓名:); gets(p3-nam

16、e); printf( 工资月份:); scanf(%d,&p3-month); printf( 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴: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-others); p3-should_pay=p3-gw+p3-jn+p3-zw+p3-zl+p3-jt+p3-yj; p3-rebate=p3-fz+

17、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) 否(N)n); sel=getch(); while(sel=Y|sel=y); printf(n任意键返回,并存盘n); getch(); return head;/*查找模块*/void search() short sel; long num; char name20,choose;

18、head=open(); if(head=NULL) return; else do do printf(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; while(p1-next!=NULL)&(p1-num!=

19、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); else printf(没有该信息!n); printf(是否继续?是(Y) 否(N)n); choose=getch(); while(choose=Y|choose=y); printf(任意键返回); getch(); /*删除模块*/PAY *del() short sel; long num;

20、 char name20,choose; head=open(); if(head=NULL) return NULL; else do do printf(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; if

21、(p1-num=num)|strcmp(p1-name,name)=0) head=p1-next; printf(删除信息成功!); else while(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); else printf(n没有该信息!n); printf(是否继续?是(Y) 否(N)n); choose=getch()

22、; 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; else do do printf(n查找要修改的对象:n); printf(tt1.按工号查找n); printf(tt2.按姓名查找n); scanf(%d,&sel); getchar(); while(sel!=1&sel!=2); switch(s

23、el) case 1: printf(输入要查的工号:); scanf(%ld,&num); break; case 2: printf(输入要查的姓名:); gets(name); break; p1=head; 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将上述信

24、息改为如下信息:n); printf( 工号:); scanf(%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,&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; else printf(你要修改的信息不存在!n); printf(是否继续?是(Y) 否(N)n); choose=getch(); while(choose=Y|choose=y); printf(任意键返回,并存盘); getch(); return head;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1