




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、需求分析1. 从要求上来看是要对各个员工的各种情况(名字、年龄、性别、职位、工资状况)进行输入。然后可以输出.2. 可以对于员工数据进行修改,可以查询.3. 对于员工的各种情况系统还可以进行统计排名.二、概要设计首先,创建了一个employee类.然后派生出四个类: manager、technician、salesman、sales manager.在派生类中定义了三个构造函数,分别是:数据输入函数(Input),表格输出函数(Print),排序函数(Pay).其次,在总体结构上,建立以各根菜单,用于选择各种功能.1. Input(数据输入):输入员工的各种数据.2. Total(数据统计):将员工的总数据进行对比排序,然后输出.3. Output(数据显示):显示输入的各种数据.4. Save(数据保存):对输入的数据进行保存备份.5. Eixt(退出程序):执行退出程序命令.三、详细设计1. Input(数据输入): 定义了各个岗位的人员的类,并把每个类的人员的属性设为类中的保护成员,其中技术工的工作时间和每小时的所得为私有成员,而销售员的销售额、经理的工资和销售经理的所辖部门的销售额和其底薪设为公有成员,再依次录入。2. Total(数据统计): 根据所有类的工资算法在其所属类中定义一个函数void pay()来根据各个职位的具体情况来计算工资,并且算出的工资经过冒泡法排序.void printtotal()coutendl;coutTotal setw(10)total endl;coutendl;3. Output(数据显示): 通过do-while循环以及制表格和setw的使用将输入的数据和统计并排序的数据以表格的形式打印出来,销售额合计一栏宽度要大些。void saleprint()coutsetw(10)no1setw(10)name1setw(10)sale1endl;coutendl;coutsetw(10)no2setw(10)name2setw(10)sale2endl;coutendl;coutsetw(10)no3setw(10)name3setw(10)sale3endl;coutendl;coutsetw(10)no4setw(10)name4setw(10)sale4endl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;4. Save(数据保存): 通过函数save()来将输入的数据和统计并排序的数据进行保存.例如:void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileSales mangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl; 5. Eixt(退出):利用exit来完成退出系统功能。四、设计和调试分析程序清单:#include#include#include#include#includeclass employeepublic:employee()salary=0;void pay()void print()void input()coutno;coutname;coutsex;coutage;protected:int no;char name8;float salary;char sex;int age;class manager:virtual public employeeprotected:float monthlypay,sale;public:manager()monthlypay=8000; void input()coutManger;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileMangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void pay()salary=monthlypay;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class technician:virtual public employeeprivate:float hourlyrate;int workhours;public:technician()hourlyrate=100;void pay()coutnameworkhours;salary=hourlyrate*workhours;void input()coutTECHNICIANendl;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileTECHNICIANendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class salesman:virtual public employeeprotected:float commrate;float sales;public:salesman()commrate=0.04; void input()coutSALEMAN;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileTECHNICIANendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void pay()coutnamesales; salary=sales*commrate;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;class salesmanager:virtual public manager,virtual public salesmanprivate:float total;int no1,no2,no3,no4;char name18,name28,name38,name48;float sale1,sale2,sale3,sale4;public:void salemanager()monthlypay=5000;commrate=0.005;void input()coutSales manger;employee:input();void save()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileSales mangerendl;outfileIDnoNAMEnameSEXsexAGEageSALARYsalaryendl;void savesale()fstream outfile;outfile.open(f:flsdfj.txt,ios:app);if(!outfile)coutf cant open.n;abort();outfileThe salary of saleman of sales manger and themselvesendl;outfileIDno1NAMEname1SALARYsale1endl;outfileIDno2NAMEname2SALARYsale2endl;outfileIDno3NAMEname3SALARYsale3endl;outfileIDno4NAMEname4SALARYsale4endl;void pay()coutnameThe sales volume of everydepartment:;salary=monthlypay+commrate*total;float totalsale()total=sale1+sale2+sale3+sale4;return total;void printtotal()coutendl;coutTotal setw(10)total endl;coutendl;void sort(salesmanager p)int tmp,i,j;for(j=0;j2;j+)for(i=0;i2;i+)if(totalp.salary)tmp=salary;total=p.salary;p.salary=tmp;tmp=no;no=p.no;p.no=tmp;void saler()coutno1;coutname1;coutsale1;coutno2;coutname2;coutsale2;coutno3;coutname3;coutsale3;coutno4;coutname4;coutsale4;void saleprint()coutsetw(10)no1setw(10)name1setw(10)sale1endl;coutendl;coutsetw(10)no2setw(10)name2setw(10)sale2endl;coutendl;coutsetw(10)no3setw(10)name3setw(10)sale3endl;coutendl;coutsetw(10)no4setw(10)name4setw(10)sale4endl;void print()coutendl;coutsetw(10)nosetw(10)namesetw(10)sexsetw(10)agesetw(10)salaryendl;void main()manager m4;technician t4; salesman s4;salesmanager sm4;t1.save();int flag=1,operate; do cout # The system of salary manger #n; cout n; cout Chose your actions n; cout Input:1,Enter n; cout Total:2,Enter n; cout Output:3,Enter n; cout Save:4,Enter n; cout Exit:5,Enter n; cout n; coutoperate;switch(operate)case 1:coutWaiting for a minute!endl;for(int i=0;i4;i+)mi.input();for(int j=0;j4;j+)tj.input();for(int k=0;k4;k+)sk.input();for(int l=0;l4;l+)sml.input();for(int i=0;i4;i+)mi.pay();for(int j=0;j4;j+)tj.pay();for(int k=0;k4;k+)sk.pay();for(int l=0;l4;l+)sml.pay();sml.saler();break;case 2:coutWaiting for a minute!endl; for(int l=0;l4;l+)sml.totalsale();for(int i=0;i4;i+)for(int j=0;j2;j+)smj.sort(smj+1);coutThe saleman of the first sales mangerendl;coutendl;coutID NAME SALARY endl;sm0.saleprint();sm0.printtotal();cout The order is completeendl;coutList names of every sales mangerendl;coutendl;coutID NAME SEX AGE SALARY endl;for(int k=0;k4;k+)smk.print();coutendl;break;case 3:coutWaiting for a minute!endl;cout The blank of the :endl;coutendl;coutID NAME SEX AGE SALARY endl;for(int i=0;i4;i+)mi.print();coutendl;coutendl;coutendl;coutendl;coutID NAME SEX AGE SALARY endl;for(int k=0;k4;k+)sk.print();coutendl;coutendl;coutendl;break;case 4:coutWaiting for a minute!endl;for(int i=0;i4;i+)mi.save();for(int j=0;j4;j+)tj.save();for(int k=0;k4;k+)sk.save();for(int l=0;l4;l+)sml.save();cout Informatio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐理音程考试题库及答案
- 森林防护巡护知识培训课件
- 森林家庭防火知识培训课件
- 棋王课件中职
- 海南省养老护理员职业资格技师考试题(含答案)
- 2025年精细化工作业面试宝典涵盖各类工艺作业预测题
- 2025年裁判台球考试题及答案
- 2025年公路水运安全员(交安abc)考试考核题库答案
- 2025年项目经理从业资格认证考试模拟试题集及答题技巧
- 2025年软件工程师职称评定预测试题及答案参考
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年福建省厦门市【辅警协警】笔试真题(含答案)
- 2025年广西中考语文试题卷(含答案)
- 新疆维吾尔自治区、新疆生产建设兵团2020年中考语文试卷及答案
- GB/T 23986.2-2023色漆和清漆挥发性有机化合物(VOC)和/或半挥发性有机化合物(SVOC)含量的测定第2部分:气相色谱法
- JB-T 4088.1-2022 日用管状电热元件 第1部分:通用要求
- 重点单位消防八本台帐
- 售后维修服务单
- 中小学教师违反职业道德行为处理办法课件
- 《复变函数》课程说课
- 医院免疫检验报告(性激素6项)
评论
0/150
提交评论