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

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; /用来存放工资int total; 。

2、/用来存放总工资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 *head,long id);。

3、 /指针函数*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 *Read(); /读取文件信息。

4、private:student *p1,*p2,*p3,*head,st; ;Information:Information() cout-n; cout-n; cout建立链表信息student *Information:creat(void) /定义一个指向struct student的结构体指针函数*creat()用来录入职工信息. char chN;n=0; /用来存放职工姓名 p1=p2=(student *)malloc(LEN);/调用malloc()函数用来开辟一个新的存储单元 cout-ch;head=NULL; /给指针head赋初值while (strcmp(ch,#)!。

5、=0) /调用字符比较函数strcmp()用来判断是否继续输入p1=(student *)malloc(LEN); /调用malloc()函数用来开辟一个新的存储单元strcpy(p1-name,ch); /将循环结构前面输入的姓名复制到结构体名为p1的数组name中coutp1-sex;coutp1-id;while(p1-id)id)100000) /判断输入的编号是否有效(100000个)cout0p1-id; coutp1-paid0;while(p1-paid0)paid0)100000) /判断输入的分数是否有效(=0 0p1-paid0; coutp1-paid1;while(p。

6、1-paid1)paid1)100000) /判断输入的分数是否有效(=0 0p1-paid1; coutp1-paid2;while(p1-paid2)paid2)100000) /判断输入的分数是否有效(=0 0p1-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+; /将职工人数n的值加1coutch; /将输入的姓名存放到字符数组c。

7、h中p2-next=NULL; /将p2所指结构体的next指针重新赋空值return (head);/将输入的第一组职工信息返回/-定义output()函数将职工的信息从头指针所指内容开始输出void Information:output(student *head) system(cls);if(head=NULL) coutidnamesexpaid0paid1paid2totalnext; /将下一组职工信息的next指针赋给pwhile(p1!=NULL); /若指针p非空则继续,目的是把所有的职工信息都传给指针p然后输出./-统计职工人数的函数int Information:cou。

8、nt(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);cout-np1-id;while(p1-id)id)100000)cout0p1-id; /将输入的编号存放到p1。

9、所指结构体的数组id中 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)100000)cout0p1-paid0; /将输入的基本工资存放到p1所指结构体的数组paid中coutp1-paid1;while(p1-paid1)paid1)100000)cout0p1-paid1; /将输入的加班工资存放到p1所指结构体的数组paid中coutp1-paid2;while(p1-paid2)paid2)100000)cout0p1-paid2; /将输入的其他奖金存放到p1所指。

10、结构体的数组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-next; /p2后移一个结点if(p1-idid)if(head=p2)p1-next=head;head=p1; /插入到第一个结点之前else。

11、 p3-next=p1;p1-next=p2; /插入到p3所指结点之后elsep2-next=p1;p1-next=NULL; /插入到尾结点之后n+; /将职工人数加1cout-删除职工信息student *Information:cancel(student *head,long id) /定义一个指向struct student的结构体指针函数*delete()用来删除考生信息. system(cls);if(head=NULL) /若调用次函数以前的头指针head为空 return(head);elsep1=head; /否则将头指针赋给p1while(id!=p1-id&p1-ne。

12、xt!=NULL) /寻找要删除的结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p2=p1;p1=p1-next; /p2指向原p1指向的结点p1后移一个结点if(id=p1-id) /如果输入的职工编号是p1所指的职工编号/结点找到后删除if(p1=head) head=p1-next; /如果head指针和p1指针相等则将下一个结点赋给指针head else p2-next=p1-next; /否则将p1所指结点赋给p2所指结点将要删除的职工信息跳过去cout-nid&p1-next!=NULL)/寻找结点当p1所指的职工编号不是输入的职工编号并且p1所指的ne。

13、xt指针不为空p1=p1-next; /p2指向原p1指向的结点p1后移一个结点 if(id=p1-id) /如果要查找的职工编号是p1所指的职工编号coutidnamesexpaid0paid1paid2totalp1-id;while(p1-id)id)100000)cout0p1-id; /将输入的编号存放到p1所指结构体的数组id中 coutp1-name; /将输入的姓名存放到结构体名为p1的数组name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)100000)cout0p1-paid0; /将输入的基本工资存放到p1所指结构体的数组。

14、paid中coutp1-paid1;while(p1-paid1)paid1)100000)cout0p1-paid1; /将输入的加班工资存放到p1所指结构体的数组paid中coutp1-paid2;while(p1-paid2)paid2)100000)cout0p1-paid2; /将输入的其他奖金存放到p1所指结构体的数组paid中 p1-total=p1-paid0+p1-paid1+p1-paid2; /计算总分 else cout查找职工信息student *Information:find(student *head,long id) /定义一个指向struct student。

15、的结构体指针函数*find()用来查找职工信息.system(cls);if(head=NULL) /若调用次函数以前的头指针head为空coutid&p1-next!=NULL)/寻找结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p1=p1-next; /p2指向原p1指向的结点p1后移一个结点if(id=p1-id) /如果要查找的职工编号是p1所指的职工编号coutidnamesexpaid0paid1paid2totalnext;for(k=0;ktotaltotal)p2=pk;pk=pj;pj=p2; /从大到小排列的指针 for(i=0;iidname。

16、sexpaid0paid1paid2total求各工资的平均值的函数void Information:average(student *head)int k,m;float arg1=0,arg2=0,arg3=0;if(head=NULL)/如果头指针是空则继续coutpaid0;arg2+=p1-paid1;arg3+=p1-paid2;p1=p1-next;arg1/=m;arg2/=m;arg3/=m;cout保存函数.void Information:save(student *head)system(cls);ofstream out(data.txt,ios:out);outna。

17、meidsexpaid0paid1paid2totalnext; /读取文件的信息student *Information:Read() system(cls);int i=0;p1=p2=( student *)malloc(LEN);head=NULL; ifstream in(data.txt,ios:in);ini;if(i=0)cout0;i-) p1=(student *)malloc(LEN);inst.namest.idst.sexst.paid0st.paid1st.paid2st.total;strcpy(p1-name,st.name);p1-id=st.id;strcp。

18、y(p1-sex,st.sex);p1-paid0=st.paid0;p1-paid1=st.paid1;p1-paid2=st.paid2;p1-total=st.total;if(n=0)head=p1; /如果是输入第一组职工信息就将指针p1赋给指针headelse p2-next=p1; /否则将p1赋给p2所指结构体的next指针p2=p1; /将指针p1赋给指针p2n+; /将n的值加1/显示读入数据coutnameidsex paid0 paid1 paid2 totalnext=NULL;in.close();return (head);/-菜单void Menu()Infor。

19、mation person;student *head=NULL; int choice;long i; head=person.Read();do coutchoice;while(choice9)coutchoice; /head=person.Read(); switch(choice)case 1:head=person.creat(); break;case 2: /head=person.Read(); person.output(head); break;case 3: /head=person.Read(); person.paixu(head); person.average。

20、(head); couti;while(i100000)couti; person.find(head,i); break;case 5: /head=person.Read(); head=person.insert(head);person.output(head);break;case 6:/head=person.Read(); couti;while(i100000)couti; head=person.cancel(head,i);person.output(head);break;case 7: /head=person.Read(); couti;while(i100000)c。

21、outi; person.modify(head,i); break;case 8: cout管理员登陆void Pass()char UserName30;char Passward20;int i=0;coutUserName;while (strcmp(UserName,1)!=0)if(i=3) exit(0); /超过4次则登陆失败,退出系统i+;coutUserName;coutPassward;while(strcmp(Passward,1)!=0)if(i=3)exit(0); /超过4次则登陆失败,退出系统i+;coutPassward;cout主函数.int main(void) /设置背景色和字体颜色system(PAUSE); /系统暂停system(cls); /系统清屏Pass();system(PAUSE);system(cls);Menu();return 0;。

计算机员工工资管理系统源代码,C++员工工资管理系统源代码相关推荐

  1. 计算机代码设计-基于ssm的员工工资管理系统-人事工资管理系统设计-企业工资管理系统代码

    计算机代码设计-基于ssm的员工工资管理系统-人事工资管理系统设计-企业工资管理系统代码 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台:SSM(Spr ...

  2. java工资管理系统(java员工工资管理系统)

    java工资管理系统(java员工工资管理系统) public Swingtest002() {// 设置标题setTitle("请登陆");// 绝对布局setLayout(nu ...

  3. 用python写:完成一个员工管理系统 要求存储员工的工号、姓名、年龄、性别、工资 1、员工录入 2、查询员工信息 3、修改员工信息 4、删除 5、根据工号查看 6、退出

    完成一个员工管理系统    要求存储员工的工号.姓名.年龄.性别.工资    1.员工录入    2.查询员工信息    3.修改员工信息    4.删除    5.根据工号查看    6.退出 Em ...

  4. SQL-16 统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。...

    题目描述 统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg. CREATE TABLE `salaries` ( `emp_no` int(11) N ...

  5. 阿里巴巴有一群全年无休从不领工资的高智商员工

    俗话说男女搭配,干活不累.人和机器人搭配,想必是一番别样的景象. 在全球巨头中,阿里巴巴是少数几家大规模应用机器人的科技公司,并在双 11 期间催生了史上最大规模的人机协同.这些机器人中有些的是&qu ...

  6. 为员工长工资。从最低工资调起每人长10%,请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额。

    /* 为员工长工资.从最低工资调起每人长10%,但工资总额不能超过50万元, 请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额. 可能的sql: select empno,sal ...

  7. 《数据库SQL实战》统计出当前各个title类型对应的员工当前薪水对应的平均工资。

    题目描述 统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg. CREATE TABLE salaries ( emp_no int(11) NOT N ...

  8. 018年,这种员工,开再高的工资都要留住

    2018年,这种员工,开再高的工资都要留住! 生活中时常听到人们抱怨工资少,但是抱怨归抱怨,公司的员工是否意识到自身的一些问题呢?高薪的条件他们又满足几条? 忠诚 单位可能开除有能力的员工,但对一个忠 ...

  9. 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工

    今天我们来看看大数据开发中row_number函数. 作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力.而row_nu ...

  10. [SQL实战]之统计出当前各个title类型对应的员工当前薪水对应的平均工资

    题目描述 统计出当前各个title类型对应的员工当前薪水对应的平均工资.结果给出title以及平均工资avg. CREATE TABLE salaries ( emp_no int(11) NOT N ...

最新文章

  1. 【ACM】杭电OJ 1106 函数atoi
  2. 来,聊聊程序员的爱情
  3. 基于WASM的无侵入式全链路A/B Test实践
  4. flask执行python脚本_如何在Flask中运行python脚本
  5. XSS:RPO(Relative Path Overwrite)攻击
  6. linux自带浏览器如何更新,在deepin上安装edge浏览器后更新系统报错的解决方案
  7. nosql mysql mongodb_nosql数据库MongoDB的用法
  8. 面试pythone_Python面试考题
  9. 运行VINS-mono:/home/tony-ws1/output/pose_graph/ not exists, trying to create it /home/tony-ws1/ou错误解决
  10. 「腾讯地图」小程序插件
  11. 在向服务器发送请求时发生传输级错误。
  12. 如何安装仿宋GB2312字体
  13. c语言坐标轮换法_优化设计-鲍威尔法程序(c语言)
  14. 获取URI和URL中的参数
  15. win10专业版激活
  16. Charles 手机https抓包
  17. 中国联通开放号码标记一键查询与清除服务
  18. oracle mod函数
  19. FusionAccess桌面云介绍
  20. 利用Eclipse-Python简单爬取京东商城书籍信息进行可视化

热门文章

  1. 花费多少钱能创建百度百科词条?
  2. 量子计算机中证网,电子行业:全球首款纯硅量子计算机芯片诞生
  3. 为什么共享充电宝能赚钱,共享单车不行?
  4. 使用stm32f407和stm32f103板子进行can通信
  5. wifi不可靠 无线局域网八大安全困惑
  6. vscode报错ERROR in node_modules/@types/node/ts3.5/globals.global.d.ts:1:13 - error TS2403: Subsequent
  7. 测试-答对5道题的人是天才,答对4道的是帅才,答对3道的是将才,答对2道的是奇才,答对1道的是人才
  8. [ACM]【map/分治】厦大月赛 环鸽的CHONG
  9. 再白也能学会的C-C语言的前世今生
  10. web前端基础 html5+css3(十三.移动端)