C++员工工资管理系统源代码(共16页).doc
《C++员工工资管理系统源代码(共16页).doc》由会员分享,可在线阅读,更多相关《C++员工工资管理系统源代码(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上#include #include #include #include #include #include using namespace std;#define NULL 0#define LEN sizeof(struct student) int const N=20;void Menu(); void Pass();int n=0; /定义一个全局变量统计职工人数 /-定义一个职工信息的结构体struct student char nameN; /用来存放姓名char sexN; /用来存放性别long id; /用来存放编号float paid3; /用来存
2、放工资int total; /用来存放总工资struct student *next;/-职工类class Information public:Information() ; /构造函数. Information() ; /析构函数. student *creat(); /建立链表void output(student *head); /显示职工信息int count(student *head); /定义函数count()统计职工总数student *insert(student*head); /指针函数*insert()用来添加职工信息.student *cancel(student *
3、head,long id); /指针函数*cancel()用来删除职工信息.student *find(student *head,long id); /指针函数*find()用来查找职工信息.student *modify(student *head,long id); /指针函数*modife()用来修改职工的信息.void paixu(student *head); /定义paixu()函数将职工的总额从大到小排列并输出void average(student *head); /定义职工工资平均值的函数void save(student *head); /保存文件信息student *R
4、ead(); /读取文件信息private:student *p1,*p2,*p3,*head,st; ;Information:Information() cout *n;cout -n; cout *nn; Information:Information() cout n;cout n;cout 本系统管理员 n;cout n;cout n;cout -n; cout n;cout n;cout 欢迎下次使用 n;cout n;cout n;cout 再见 n;cout n;cout建立链表信息student *Information:creat(void) /定义一个指向struct s
5、tudent的结构体指针函数*creat()用来录入职工信息. char chN;n=0; /用来存放职工姓名 p1=p2=(student *)malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元 cout -endl;coutch;head=NULL; /给指针head赋初值while (strcmp(ch,#)!=0) /调用字符比较函数strcmp()用来判断是否继续输入p1=(student *)malloc(LEN); /调用malloc()函数用来开辟一个新的存储单元strcpy(p1-name,ch); /将循环结构前面输入的姓名复制到结构体名为p1的数组
6、name中coutp1-sex;coutp1-id;while(p1-id)id) /判断输入的编号是否有效(个)cout0p1-id; coutp1-paid0;while(p1-paid0)paid0) /判断输入的分数是否有效(=0 =)cout0p1-paid0; coutp1-paid1;while(p1-paid1)paid1) /判断输入的分数是否有效(=0 =)cout0p1-paid1; coutp1-paid2;while(p1-paid2)paid2) /判断输入的分数是否有效(=0 =)cout0p1-paid2; p1-total=p1-paid0+p1-paid1+
7、p1-paid2; /计算总额 if(n=0)head=p1; /如果是输入第一组职工信息就将指针p1赋给指针headelse p2-next=p1; /否则将p1赋给p2所指结构体的next指针p2=p1; /将指针p1赋给指针p2n+; /将职工人数n的值加1coutch; /将输入的姓名存放到字符数组ch中p2-next=NULL; /将p2所指结构体的next指针重新赋空值return (head);/将输入的第一组职工信息返回/-定义output()函数将职工的信息从头指针所指内容开始输出void Information:output(student *head) system(cl
8、s);if(head=NULL) cout 这是一个空表,请先输入员工信息!n;elsecout-n;cout *职工工资信息表*n;cout-n; cout|编 号| |姓 名| |性别| |基本工资| |加班工资| |其他奖金| |总额|n;cout-n; p1=head; /将头指针赋给p docoutsetw(6)idsetw(10)namesetw(10)sexsetw(10)paid0setw(10)paid1setw(12)paid2setw(12)totalendl;coutnext; /将下一组职工信息的next指针赋给pwhile(p1!=NULL); /若指针p非空则继续
9、,目的是把所有的职工信息都传给指针p然后输出./-统计职工人数的函数int Information:count(struct student *head) /定义函数count()统计职工总数if(head=NULL)return(0); /若指针head为空返回值为0else return(1+count(head-next); /函数的递归调用/-添加职工的成绩的函数student *Information:insert( student *head) /插入新结点定义一个指向struct student的结构体指针函数*insert()用来添加职工信息.system(cls);coutt
10、-nendl;p1=(student *)malloc(LEN); /使p1指向插入的新结点coutp1-id;while(p1-id)id)cout0p1-id; /将输入的编号存放到p1所指结构体的数组id中 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)cout0p1-paid0; /将输入的基本工资存放到p1所指结构体的数组paid中coutp1-paid1;while(p1-paid1)paid1)cout0p1-paid1; /将输入的加班工资存放到p1所指结构
11、体的数组paid中coutp1-paid2;while(p1-paid2)paid2)cout0p1-paid2; /将输入的其他奖金存放到p1所指结构体的数组paid中 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-
12、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; /插入到尾结点之后n+; /将职工人数加1coutt-删除职工信息student *Information:cancel(student *head,long id) /定义一个指向struct student的结构体指针函数*delete()用来删除考生信息. system(cls);if(head=NULL) /若调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 员工 工资管理 系统 源代码 16
限制150内