职工工资管理系统

上传人:博****1 文档编号:511156734 上传时间:2023-02-07 格式:DOC 页数:13 大小:48.50KB
返回 下载 相关 举报
职工工资管理系统_第1页
第1页 / 共13页
职工工资管理系统_第2页
第2页 / 共13页
职工工资管理系统_第3页
第3页 / 共13页
职工工资管理系统_第4页
第4页 / 共13页
职工工资管理系统_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《职工工资管理系统》由会员分享,可在线阅读,更多相关《职工工资管理系统(13页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include #include #include #define NULL 0int const N=20;#define LEN sizeof(struct staff)using namespace std; void Menu(); void Pass();int n=0; /定义一个全局变量统计职工人数 /-定义一个职工信息的结构体struct staff char nameN; /用来存放姓名char sexN; /用来存放性别long id; /用来存放编号float paid3; /用来存放工资int total; /用来

2、存放总工资struct staff *next;/-职工类class Information public:Information() ; /构造函数. Information() ; /析构函数. staff *creat(); /建立链表void output(staff *head); /显示职工信息int count(staff *head); /定义函数count()统计职工总数staff *insert(staff*head); /指针函数*insert()用来添加职工信息.staff *cancel(staff *head,long id); /指针函数*cancel()用来删除

3、职工信息.staff *find(staff *head,long id); /指针函数*find()用来查找职工信息.staff *modify(staff *head,long id); /指针函数*modife()用来修改职工的信息.void save(staff *head); /保存文件信息staff *Read(); /读取文件信息private:staff *p1,*p2,*p3,*head,st; ;Information:Information() cout *n;cout -n; cout作者的信息和提示void zuozhe()cout按键进入登陆界面!;Informat

4、ion:Information() cout *n;cout -n; cout建立链表信息staff *Information:creat(void) /定义一个指向struct student的结构体指针函数*creat()用来录入职工信息. char chN;n=0; /用来存放职工姓名 p1=p2=(staff *)malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元 cout -endl;coutch;head=NULL; /给指针head赋初值while (strcmp(ch,#)!=0) /调用字符比较函数strcmp()用来判断是否继续输入p1=(staff

5、 *)malloc(LEN); /调用malloc()函数用来开辟一个新的存储单元strcpy(p1-name,ch); /将循环结构前面输入的姓名复制到结构体名为p1的数组name中coutp1-sex;coutp1-id;coutp1-paid0;coutp1-paid1;coutp1-paid2;p1-total=p1-paid0+p1-paid1+p1-paid2; /计算总额 if(n=0)head=p1; /如果是输入第一组职工信息就将指针p1赋给指针headelse p2-next=p1; /否则将p1赋给p2所指结构体的next指针p2=p1; /将指针p1赋给指针p2n+;

6、/将职工人数n的值加1coutch; /将输入的姓名存放到字符数组ch中p2-next=NULL; /将p2所指结构体的next指针重新赋空值return (head);/将输入的第一组职工信息返回/-定义output()函数将职工的信息从头指针所指内容开始输出void Information:output(staff *head) system(cls);if(head=NULL) cout 这是一个空表,请先输入职工信息!n;elsecout-n;cout *职工工资信息表*n;cout-n; cout|编 号| |姓 名| |性别| |基本工资| |加班工资| |其他奖金| |总额|n;

7、cout-n; p1=head; /将头指针赋给p1 docoutsetw(6)idsetw(10)namesetw(10)sexsetw(10)paid0setw(10)paid1setw(12)paid2setw(12)totalendl;coutnext; /将下一组职工信息的next指针赋给p1while(p1!=NULL); /若指针p非空则继续,目的是把所有的职工信息都传给指针p然后输出./-统计职工人数的函数int Information:count(struct staff *head) /定义函数count()统计职工总数if(head=NULL)return(0); /若指

8、针head为空返回值为0else return(1+count(head-next); /函数的递归调用/-添加职工的信息的函数staff *Information:insert( staff *head) /插入新结点定义一个指向struct student的结构体指针函数*insert()用来添加职工信息.system(cls);coutt-nendl;p1=(staff *)malloc(LEN); /使p1指向插入的新结点coutp1-id;coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;coutp1-pai

9、d1;coutp1-paid2;p1-total=p1-paid0+p1-paid1+p1-paid2;/计算总分 p2=head; /将头指针赋给p2if(head=NULL) /若没调用次函数以前的头指针head为空head=p1;p1-next=NULL; /则将p1赋给头指针head并将p1所指结构体成员指针next赋空值else while(p1-idp2-id)&(p2-next!=NULL)p3=p2; /p3指向原p2指向的结点p2=p2-next; /p2后移一个结点if(p1-idid)if(head=p2)p1-next=head;head=p1; /插入到第一个结点之前else p3-next=p1;p1-next=p2; /插入到p3所指结点之后elsep2-next=p1;p1-next=NULL

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 文学/艺术/历史 > 人文/社科

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号