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

《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;。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业人才培养模式改革,地方高校计算机科学与技术专业人才培养模式改革与实践...

摘要:本文分析了目前我国地方高等院校计算机专业人才培养现状,以太原科技大学计算机科学与技术专业为例,针对办学指导思想、专业定位、专业特色、专业培养模式及课程体系进行了研究与探讨,提出了“行业特色明显、专业方向细化、实践技能突出、素质教育鲜明”的专业建设指导思想…

java中审核订单流程图_「数据架构」数据流程图:实例-订餐系统

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图,您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例,对数据流图(DFD)进行了描述和说明。食品订…

太原市中考计算机考试系统,太原中考报名系统

中考报名即将开始,希望大家都能顺利报名,出国留学网小编为大家准备了2016太原中考报名系统,希望对大家有所帮助,更多精彩内容欢迎访问出国留学网中考频道。2016太原中考报名系统【点击查看最新报名系统】延伸阅读:中考…

python求圆柱体的体积_漫谈超球体的体积公式

现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式[1]。  我们生活在三维空间,对更高维度的空间难以构想。笛卡尔说:我思…

ftp 服务器 性能,FTP 服务器性能 测试点

使用ffmpeg转换webm格式安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...对于多个列的转行(一个值均匀分布在两个列中),对于个别字段通过取别名,join方式解决。例如,这个表的结构: s…

jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

一、宝塔简介:宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器&…

es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章

ES文件浏览器是一款多功能的手机文件/程序/进程管理器,可以在手机、电脑、远程和蓝牙间浏览管理文件。是一个功能强大的免费的本地和网络文件管理器和应用程序管理器。ES文件浏览器与电脑进行局域网链接后可以管理电脑的文件,不只是复制,还可…

arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

本文介绍如何用IDA进行动态调试及部分ARM指令的学习。环境:已root的安卓手机一部,IDA pro 6.8,win7系统。下载样本app,并已确认可调试(debuggable true),下文不表:http://pan.baidu.com/s/1jG22HMY一 手机…

糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...

原标题:糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼自从糖豆人游戏开放以来,大批玩家涌入,造成糖豆人服务器拥堵,一度出现崩溃。隔三差五就会来一次。玩家正玩得兴起,突然的崩溃让玩家…

js中立即执行函数会预编译吗_面试官:聊聊对Vue.js框架的理解

作者:yacan8https://github.com/yacan8/blog/issues/26本文为一次前端技术分享的演讲稿,所以尽力不贴 Vue.js 的源码,因为贴代码在实际分享中,比较枯燥,效果不佳,而更多的是以图片和文字的形式进行表达。分…

如何卸载服务器的系统,卸载服务器的操作系统

卸载服务器的操作系统 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载,没有操作系统限制,也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制&…

修改了模板文件tpl如何立即生效_Views视图与模板

一、概述用户请求到视图流程:当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23,django首先到加载mysite.urls模块在mysite.urls中发现有urlpatterns变量,于是在其内按顺序进行匹配。当它匹配上了polls,就到匹配到的po…

vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

项目中遇到了这样一个问题:每一种产品有对应的服务费,每一个商家有多种商品要单独计算每一家的服务费,最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台…

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体,防止结构剪切(受剪)破坏。又称抗震墙,一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…

片源系统服务器,OUO NAS10主控界面评测

OUO NAS10主控界面评测■OUO NAS10主控界面评测OUO NAS10采用了高集成度的芯片,功耗比较低,整机满载情况下也不会超过9W。不过他的主控界面看起来还是比较简单易懂的,由于本身自带了linux的操作系统,还是比较容易上手的。附送光盘…

解锁设备_无师自通解锁新设备抗击疫情

随着春节假期接近尾声,一线企业复工复产,春运迎来全面返程客流高峰,为应对返程客流,做好疫情防控工作,哈车管内各站全面组织积极应对,做好进出站旅客测温,加强对进出站旅客体温筛查,…

GPS无线视频服务器,宏电环卫车无线视频监控与GPS定位系统设计方案.docx

Connecting Things环卫车3G/4G视频监控及GPS定位系统解决方案市宏电技术股份Shenzhen Hongdian Technologies Corporation.2015年7月目录 TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc2914" 第一章 系统概述 PAGEREF _Toc2914 4HYPERLINK \l "_Toc5154&q…

css选择器权重排序_css选择器优先级高低排列_css样式权重计算和!important属性

首先我们需要知道选择器的类型有这些:选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的,在不同选择器的样式出现冲突时候,会采用权重高的选择器…

python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

Python Selenium Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页,以网页 ID 来保存为网页文件名PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教…

sql盲注特点_SQL注入的特点及危害详解

http://www.maiziedu.com/SQL注入的特点及危害详解在网站安全性方面,我们经常会遇到各种各样的安全性问题,SQL注入就是其中最常见的一种,那SQL注入到底有哪些特点呢?一起来看看吧。SQL注入攻击的主要特点1、变种极多有经验的攻击者…