公司人员管理系统实训分析报告课程设计_第1页
公司人员管理系统实训分析报告课程设计_第2页
公司人员管理系统实训分析报告课程设计_第3页
公司人员管理系统实训分析报告课程设计_第4页
公司人员管理系统实训分析报告课程设计_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈 阳 工 程 学 院课 程 设 计设计题目: C+程序设计课程设计 公司人员治理系统 系 不 xx 班级 xx 学生姓名 XX 学 号 xx 指导教师 xx 职称 讲师 副教授 起止日期:2013 年12月30日起至 2014 沈 阳 工 程 学 院课程设计任务书 课程设计题目: 公司人员治理系统 系 不 信息学院 班级 计算本121 学生姓名 学 号 指导教师 职称 课程设计进行地点: F608 任 务 下 达 时 间: 2013年 12起止日期:2013年12月教研室主任 年 月 日批准课程设计的原始资料及依据公司人员治理系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的

2、软件,配置一定的硬件,分析和设计一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的公司人员治理系统,为公司主管部门的决策者和治理者提供充足的信息、快捷的查询和有效的治理方式,减少不必要的损失和白费,提高人员治理的效率。课程设计要紧内容及要求设计名称:公司人员治理系统设计内容:某小型公司,要紧有四类人员:经理,兼职技术人员,销售经理和兼职推销员.人员信息包括姓名,编号,级不,当月薪水,计算月薪总额等能够显示这些人员的全部信息.添加删除功能:能依照公司人事的变动情况,添加删除记录;查询功能:能依照编号和姓名进行查询;保存功能:启动程序时能读取人员信息,关闭程序时能将信息保存至硬盘文

3、件。人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。设计要求:(1) 要求在设计的过程中建立清晰的类层次,并画出类图;(2) 设计功能满足要求、易于操作的友好界面;(3) 在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;(4) 在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。对课程设计讲明书撰写内容、格式、字数的要求1课程设计讲明书是体现和总结课程设计成果的载体,要紧内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算

4、法流程图等图表进行讲明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分要紧写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的方法以及今后的目标。4课程设计讲明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采纳A4纸,页边距均为20mm,正文采纳宋体小四号字,行间距18磅。文中大标题采纳黑体小三号字,一级节标题采纳黑体四号字,二级节标题采纳黑体小四号字,表题与图题采纳宋体五号字。5课程设计讲明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。设计完成后应提交成果的种类、数量、质量等方面的要求1完

5、成“任务书”中指定的功能,运行结果正确。2课程设计讲明书。时刻进度安排顺序时期日期计 划 完 成 内 容备注1第1天(12月30号)阅读资料2第2天(12月31号)系统分析设计3第3天(01月01号)程序编制、调试及运行4第4天(01月02号)成绩评定5第5天(01月02号)撰写课程设计讲明书参考文献1刘觉夫 王更生等编著C+程序设计.北京邮电大学出版社2曾辉 王更生 李广丽等编著C+程序设计实训教程.北京邮电大学出版社3谭浩强编著C+面向对象程序设计.北京清华大学出版社4郑莉 董渊 何江舟等编著的C+语言程序设计.北京清华大学出版社5李强 贾云霞等编著的VisualC+项目开发实践.北京中国

6、铁道出版社6皮德常编著的C+程序设计教程(第一版).北京清华大学出版社7钞票能编著的C+程序设计教程(第二版).北京清华大学出版社8郑阿奇编著VisualC+教程.北京清华大学出版社沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级: 计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.2543

7、2讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签

8、名: 年 月 日课 程 设 计 总 评 成 绩分沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级: 计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5543

9、2指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级:

10、计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体

11、 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432讲明书的质量讲明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分摘要在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品和销售服务,还必须加强对公司内部的人员治理,以提高内部人员的凝聚力和积极性、提高工作效率等。本文利用VisualC+6.0 编写程序

12、,实现了用户对公司人员的编号、姓名、性不、部门。级不、工资等信息的治理操作。本系统要紧有八个功能模块:到添加信息子系统、查询信息子系统、统计子系统、显示子系统、修改子系统、删除子系统、保存子系统和读取子系统。差不多过全面的系统测试,能够专门好的运行,达到了预期的效果。本系统要紧实现了对四类人员的治理:经理治理、销售人员治理、技术人员治理、销售经理治理;要紧运用了继承友元等编程方法来实现对这些人员的治理。 关键词:系统设计 人员治理 信息 公司目录TOC o 1-3 h u HYPERLINK l _Toc21858 摘要 Add(),Delete(),Modify(),Query(),Set(

13、),Save(),Load()分不表示系统各个功能模块:增加人员,删除人员,修改人员,查询本月经营信息,基础数据设置,数据存盘,数据装入。3.1.3系统流程图主函数首先调用菜单函数,显示菜单,菜单函数给出用户可选择的项目,用户能够通过选择该项前的代码来实现想要实现的功能。菜单函数返回一个值给主函数,主函数依照返回值,调用相应函数。主函数流程图如图3.2所示图3.2 主函数流程图32系统关键算法流程图(1)增加人员Company:Add()图3.3 增加人员函数流程图(2) 删除人员Company:Delete()图3.4 删除人员函数流程图显示本月经营信息Company:Display() 图

14、3.5 显示本月经营信息函数流程图查询Company:Query()图3.6 查询函数流程图保存Company:Save() 图3.7 保存函数流程图(7) 数据装入Company:Load()图3.7 数据装入函数流程图第四章 系统功能的实现4.1菜单函数菜单函数首先标出欢迎使用公司人员治理系统,然后给出用户可选择的项目,用户能够通过选择该项前的代码来实现想要实现的功能。程序源代码如下:void main()char c;Company a;dosystem(cls);coutntt* 公司人员治理系统 *n;coutttt1增加人员n;coutttt2删除人员n;coutttt3显示本月经

15、营信息n;coutttt4基础数据设置n;coutttt5查询n;coutttt6保存n;coutc;switch(c)case 1: a.Add(); system(pause);break;case 2: a.Delete();system(pause);break;case 3: a.display(); system(pause);break;case 4: a.Set(); system(pause);break;case 5: a.Query(); system(pause);break;case 6: a.Save(); system(pause);break;while(c!=

16、7);程序运行时,主界面如图4.1所示图4.1 菜单功能实现用户能够通过选择该项前的代码来实现想要实现的功能,例如,要添加记录,从键盘输入1,按回车后,用户可按相应的提示进行添加操作。4.2添加功能添加功能要求:能依照公司人事的变动情况,添加记录。人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。程序源代码如下:void Company:Add() Person *p; /新结点指针 int Duty; char Name20; double Amount,T; coutn* 新增职员 *n; /输入职员信息 ID+; coutDuty; coutName; if(Duty=3

17、)coutAmount; else if(Duty=4)coutT; /创建新职员结点 switch(Duty)case 1:p=new Manager(ID,Name,Duty); break;case 2:p=new SalesManager(ID,Name,Duty); break;case 3:p=new Sales(ID,Name,Duty,Amount); break;case 4:p=new Technician(ID,Name,Duty,T); break;p-next=0; /职员结点加入链表 if(Worker) /若差不多存在结点Person *p2;p2=Worker;

18、while(p2-next) /查找尾结点p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空)Worker=p; /连接在主界面中,选择1(即输入1,回车),即可输入要添加的信息,如图4.2所示。系统会排列需要添加的项目,用户只需依照对应项目输入信息。图4.2 添加功能实现4.3删除功能删除功能要求:选中某个人的ID时,可对此人的相应数据进行删除。程序源代码如下:void Company:Delete() /删除人员 int No; coutn* 删除职员 *n; coutNo; /查找要删除的结点 Person *p1,*p2; p1=Worker; whi

19、le(p1)if(p1-No=No) break; elsep2=p1;p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除if(p1=Worker) /若要删除的结点是第一个结点Worker=p1-next;delete p1; else /若要删除的结点是后续结点p2-next=p1-next;delete p1;cout找到并删除n; else /未找到结点cout未找到!n;在主界面中输入2,系统提示输入要删除的名字,用户从键盘输入名字,系统便自动删除要删除的通讯录信息,并提示差不多删除成功,如图4.3和4.4所示:图4.3 删除功能实现图4.4 显示找到并

20、删除4.4显示功能显示功能要求:能够显示这些人员的全部信息。程序源代码如下:void Company:display() coutn* 公司人员本月工资和销售信息 *n; cout编号t姓名tt职位tt月工资tt销售额或工作时刻Duty=3)sum+=(Sales *)p)-GetAmount(); p=p-next; p=Worker; double sum2=0; /工资总和 while(p) if(p-Duty=2)(SalesManager *)p)-SetAmount(sum); /sum和sum2必须分开计算 p-Output(); sum2+=p-Earning; p=p-nex

21、t; cout本月盈利:sum*0.20-sum2 (按照20利润计算)endl;/*设置基础数据*/void Company:Set()coutn* 设置基础数据 *n;cout经理固定月薪ManagerSalaryManagerSalary; cout销售经理固定月薪SalesManagerSalarySalesManagerSalary; cout销售经理提成SalesManagerPercentSalesManagerPercent; cout销售人员提成SalesPercentSalesPercent;cout技术人员小时工资WagePerHourWagePerHour;cout=I

22、DID;在主界面中输入3,显示通讯录中所有人信息。如图4.5所示:图4.5 显示功能实现4.5基础数据设置基础设置要求:对各类人员的差不多信息进行初始设置。程序源代码如下:void Company:Load() /数据装入(包括基础数据,人员数据)/基础数据装入ifstream fBase; /建立文件输入流对象char buf80; /buf用于保存数据文件中的注释字符串fBase.open(base.txt,ios:in);fBasebufManagerSalary; /经理固定月薪fBasebufSalesManagerSalary; /销售经理固定月薪fBasebufSalesMana

23、gerPercent; /销售经理提成fBasebufSalesPercent; /销售人员提成fBasebufWagePerHour; /技术人员小时工资fBasebufID; /职员标识fBase.close(); /人员数据数据装入ifstream fPerson;Person *p=Worker;int No; char Name20; int Duty;double Amount,T;fPerson.open(person.txt,ios:in);/读一条记录fPersonNoNameDuty;if(Duty=3)fPersonAmount;else if(Duty=4)fPerso

24、nT;while(fPerson.good()/创建职员结点switch(Duty)case 1:p=new Manager(No,Name,Duty); break;case 2:p=new SalesManager(No,Name,Duty); break;case 3:p=new Sales(No,Name,Duty,Amount); break;case 4:p=new Technician(No,Name,Duty,T); break;p-next=0;/职员结点加入链表if(Worker) /若差不多存在结点Person *p2;p2=Worker;while(p2-next) /

25、查找尾结点p2=p2-next;p2-next=p; /连接else /若不存在结点(表空)Worker=p; /连接 /读下一条记录fPersonNoNameDuty;if(Duty=3)fPersonAmount;else if(Duty=4)fPersonT; fPerson.close(); coutn人员和基础数据差不多装入.n;在主界面中输入4,显示需要设置的基础数据。如图4.6所示:图4.6 基础数据设置功能4.6查询功能查询功能要求:能依照编号和姓名进行查询。查找函数通过输入查找方式,进一步输入编号和姓名,与原系统中存储的编号,姓名的比较,找到与输入相同的位置。程序源代码如下:

26、void Company: Query()int No,a; char Name20; Person *p1,*p2; p1=Worker; coutn*查找职员*n; cout请选择查找方式:1 按编号查找 2 按姓名查找a; if(a=1) coutNo;/查找要修改的结点 while(p1) if(p1-No=No)break;elsep2=p1;p1=p1-next; else coutName;/查找要修改的结点Person *p1,*p2; p1=Worker;while(p1)if(strcmp(p1-Name,Name)=0)break;elsep2=p1;p1=p1-next

27、; p1-Output();在主界面中输入5后,选择查询方式,依照系统提示输入信息。例如,按编号查找,输入要找的编号。在系统没有要找信息时,系统会给出提示,如图4.7所示。系统中有符合所查询信息时,显示该人信息。如图4.8所示图4.7 查询功能(按编号查找)图4.8 查询功能(按姓名查找)4.7保存功能保存功能:启动程序时能读取人员信息,关闭程序时能将信息保存至硬盘文件。程序源代码如下:void Company:Save() /数据存盘(包括基础数据,人员数据),均采纳文本文件ofstream fPerson,fBase; /定义文件输出流对象char c;coutc;if(c!=Y&c!=y

28、)return;/保存人员编号、姓名、岗位fPerson.open(person.txt,ios:out); Person *p=Worker;while(p)fPersonNotNametDutyDuty=3)fPersonGetAmount()Duty=4)fPersonGetT()t;fPersonnext;fPerson.close();/保存基础数据fBase.open(base.txt,ios:out);fBase经理固定月薪tManagerSalaryendl; fBase销售经理固定月薪tSalesManagerSalaryendl; fBase销售经理提成tSalesMana

29、gerPercentendl; fBase销售人员提成tSalesPercentendl; fBase技术人员小时工资tWagePerHourendl; fBaseIDtIDendl;fPerson.close();coutn保存人员和基础数据差不多完成.n;在主界面中输入6,系统会将系统中所有人信息保存到文件如图4.9和4.10所示。图4.9 保存功能(1)图4.10 保存功能(2)4.8退出功能退出功能要求:编辑完毕后,退出此公司人员治理系统。在主界面中输入7,便可退出系统,如图4.11所示:图4.11 退出功能总结紧紧张张的一周实训差不多过去,从刚开始的不只如何下手到最后看到自己的程序按

30、自己的方法运行,内心时不时的有一种喜悦。通过这一周的实习,我认识到书上和老师教的内容是有限的,要想掌握更多的知识我们必须多动脑,多考虑,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不明白的知识。回头看来,编写那个程序并不像原来想像的那么难,我们要相信自己,不管做什么事,只要我们认确实考虑了,认确实去做了,我们就一定能做好。通过这周的编程我发觉了自己的一些不足,在编写时经常犯一些低级错误,由于自己的马虎而白费了许多时刻。在不知如何进行的时候有一种不自信,总想不人正在做什么,这些不足既然被发觉就得在以后的做事中注意,争取改掉。通过一周的努力我掌握了一些差不多的C+语言进行程序设计的

31、技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型有用系统的差不多方法,同时学会了一些调试一个较长程序的差不多方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。这次的课程设计让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师,感谢在我困惑时给我关心的同学,感谢学校给我们一个如此动手动脑的机会,使我们在理论与实践相结合方面又得到了一次专门好的锻炼,让我们得到专门大的收获。致谢公司人员治理系统课程设计的选题、研究及报告的撰写均是在我们的指导教师代老师和王老师的悉心指导下进行的。设计中的每一个环节无不凝聚着老师们的心血。老师对我们的悉心指导及其严谨的工作态度锐意创新的精神,使

32、我们受益匪浅,在此特不两位老师表示深深的感谢和由衷的敬意。在系统完善过程中,我们也遇到了如此或那样的技术问题,但通过我们的不懈努力及查阅大量的资料,最终都得到了差不多中意的答案。同时,同学也给了我们许多有益的启发,促动和关心,使我们能够顺利的完成课题。感谢课程设计机房所有给予我们关心的老师,他们辛勤耕作,传道授业,不仅使我们开阔了视野,拓宽了思路,增长了学识,而且为我们今后的工作和学习打下了牢固的基础,也使增强我们对计算机的兴趣。同时也感谢学校给了我们这次难得的课程设计机会,课程设计的过程让我们看到了自己理论知识上的不足,已掌握的知识也在这次的课程设计中有了质的飞跃,知识能够应用了才是真正掌握

33、了,也希望学校多给我们一些如此的机会。在论文的最后,再次感谢我们的指导教师,此报告是在他们的悉心指导下才顺利完成的。在我们做报告期间,老师渊博的学识、严谨求实的科学精神、一丝不苟的治学态度和高尚的品行,深深的感染了我们和每一个同学。报告的每次改动都离不开老师的辛勤工作,从各个方面来讲,审查的工作往往比编写任务更复杂。正是老师百忙中不辞劳累的关心,才使我能够顺利完成这篇报告,在那个地点,我们对您表示衷心的感谢。在大学中有一起“共患难”的同学们,对我们有深远阻碍的老师们,他们是我们在今后的是我们宝贵的财宝。在最后我们要在次感谢我们的母校和对我们有深远阻碍的老师和同学们,祝你们在今后的学习或工作中,

34、一帆风顺,事事顺心。在那个地点谨以此文献给他们。参考文献1刘觉夫 王更生等编著C+程序设计.北京邮电大学出版社2曾辉 王更生 李广丽等编著C+程序设计实训教程.北京邮电大学出版社3谭浩强编著C+面向对象程序设计.北京清华大学出版社4郑莉 董渊 何江舟等编著的C+语言程序设计.北京清华大学出版社5李强 贾云霞等编著的VisualC+项目开发实践.北京中国铁道出版社6皮德常编著的C+程序设计教程(第一版).北京清华大学出版社7钞票能编著的C+程序设计教程(第二版).北京清华大学出版社8郑阿奇编著VisualC+教程.北京清华大学出版社附录:源程序#include #include #include

35、#include /全局数据,对象double ManagerSalary; /经理固定月薪double SalesManagerSalary; /销售经理固定月薪double SalesManagerPercent; /销售经理提成double SalesPercent; /销售人员提成double WagePerHour; /技术人员小时工资int ID; /职员标识(要保证唯一)/*职员类*/class Person protected:int No; /编号 char Name20; /姓名 int Duty; /岗位 double Earning; /收入 Person *next;

36、public:Person(char ID,char *Name,int Duty)this-Duty=Duty;strcpy(this-Name,Name);this-No=ID; virtual void CalcSalary()=0; virtual void Output()=0; friend class Company;/*经理类*/class Manager:public Person public:Manager(char ID,char *Name,int Duty):Person(ID,Name,Duty) void CalcSalary()Earning=ManagerS

37、alary; void Output() CalcSalary();coutNotNamett经理ttEarningendl; ;/*销售经理类*/class SalesManager:public Person private: double Amount;public: SalesManager(char ID,char *Name,int Duty):Person(ID,Name,Duty) void SetAmount(double s)Amount=s; void CalcSalary()Earning=SalesManagerSalary+Amount*SalesManagerPe

38、rcent/100; void Output()CalcSalary();coutNotNamett销售经理tEarningAmount=Amount; double GetAmount() /用于计算月销售总额sumreturn Amount; void CalcSalary()Earning=SalesPercent/100*Amount; void Output()CalcSalary();coutNotNamett销售员ttEarningttAmountt=T; double GetT()return t; void CalcSalary()Earning=WagePerHour*t;

39、 void Output()CalcSalary();coutNotNamett技术员ttEarningtttnext;delete Worker;Worker=p; Worker=0; void Add(); /增加人员 void Delete(); /删除人员 void display();/显示本月工资和销售信息 void Query(); /查询 void Set(); /基础数据设置 void Save(); /数据存盘(包括基础数据,人员数据) void Load(); /数据装入(包括基础数据,人员数据);void Company:Add() Person *p; /新结点指针

40、int Duty; char Name20; double Amount,T; coutn* 新增职员 *n; /输入职员信息 ID+; coutDuty; coutName; if(Duty=3)coutAmount; else if(Duty=4)coutT; /创建新职员结点 switch(Duty)case 1:p=new Manager(ID,Name,Duty); break;case 2:p=new SalesManager(ID,Name,Duty); break;case 3:p=new Sales(ID,Name,Duty,Amount); break;case 4:p=n

41、ew Technician(ID,Name,Duty,T); break;p-next=0; /职员结点加入链表 if(Worker) /若差不多存在结点Person *p2;p2=Worker;while(p2-next) /查找尾结点p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空)Worker=p; /连接/*删除*/void Company:Delete() /删除人员 int No; coutn* 删除职员 *n; coutNo; /查找要删除的结点 Person *p1,*p2; p1=Worker; while(p1)if(p1-No=No)

42、break; elsep2=p1;p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除if(p1=Worker) /若要删除的结点是第一个结点Worker=p1-next;delete p1; else /若要删除的结点是后续结点p2-next=p1-next;delete p1;cout找到并删除n; else /未找到结点cout未找到!n;/*显示*/void Company:display() coutn* 公司人员本月工资和销售信息 *n; cout编号t姓名tt职位tt月工资tt销售额或工作时刻Duty=3)sum+=(Sales *)p)-GetAmo

43、unt(); p=p-next; p=Worker; double sum2=0; /工资总和 while(p) if(p-Duty=2)(SalesManager *)p)-SetAmount(sum); /sum和sum2必须分开计算 p-Output(); sum2+=p-Earning; p=p-next; cout本月盈利:sum*0.20-sum2 (按照20利润计算)endl;/*设置基础数据*/void Company:Set()coutn* 设置基础数据 *n;cout经理固定月薪ManagerSalaryManagerSalary; cout销售经理固定月薪SalesMan

44、agerSalarySalesManagerSalary; cout销售经理提成SalesManagerPercentSalesManagerPercent; cout销售人员提成SalesPercentSalesPercent;cout技术人员小时工资WagePerHourWagePerHour;cout=IDID;/*查找*/void Company: Query()int No,a; char Name20; Person *p1,*p2; p1=Worker; coutn*查找职员*n; cout请选择查找方式:1 按编号查找 2 按姓名查找a; if(a=1) coutNo;/查找要

45、修改的结点 while(p1) if(p1-No=No)break;elsep2=p1;p1=p1-next; else coutName;/查找要修改的结点Person *p1,*p2; p1=Worker;while(p1)if(strcmp(p1-Name,Name)=0)break;elsep2=p1;p1=p1-next; p1-Output();/*保存*/void Company:Save() /数据存盘(包括基础数据,人员数据),均采纳文本文件ofstream fPerson,fBase; /定义文件输出流对象char c;coutc;if(c!=Y&c!=y)return;/保存人员编号、姓名、岗位fPerson.open(person.txt,ios:out); Person *p=Worker;while(p)fPersonNotNametDutyDuty=3)fPersonGetAmount()Duty=4)fPersonGetT()t;fPerson

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论