版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、某大学面向对象程序设计课程设计报告书题目:工资管理系统(C+)院系:软件学院专业:软件工程班 级:姓 名:学 号:课设时间:2016.12.22指导教师:二。一六年十二月面向对象程序设计课程设计报告书? 员工工资管理系统一、设计要求用类函数和派生类来计算某公司雇员的工资, 通过多层派生和多重派生来实 现对不同工资级别的工资管理。编辑实现工资管理。特别注意 pay()的定义和调 用方法使用运行时多态。编写程序提示用户输入employee类的共有数据,再提醒用户输入工资类型 来区分工资级别不同的类的特有数据。最后通过 pay()函数来计算各种数据,用 Print函数输出。二、设计目的(1)、将课本
2、上的理论知识运用于实践, 通过实际的程序操作来提高自己编写 程序的能力,达到理论与实践相结合的目的。(2)、查阅相关资料,自学具体课题中涉及到的新知识。(3)、根据实现的功能,划分出合理的对象类,明确对象类间的关系。为每个 对象类设计正确的属性和方法,为每个方法设计合理的方法体。(4)、编程简练,程序功能齐全,能正确运行。三、设计过程1、程序流程图employee.工、salesmanmanager / z/可编辑范,technician/ salesmanagerdevelopermanager2、程序原理使用户能根据程序提示输入employe屋的共有数据,再提醒用户输入工资类型来区分工资级
3、别不同的类的特有数据。最后通过pay()函数来计算各种数据,用Print函数输出。3、算法原理通过基类中的公有函数来访问基类中的私有成员来计算各派生类的工资。4、软件设计过程中遇到的问题以及解决办法在这次设计程序的过程中遇到了许多问题:比如对类模板、类的多重、多层继承、析构函数、赋值构造函数等知识掌握不牢固,使得拿到题目无从下手。但最后都通过请教别人和翻课本,上网查找相关资料等途径解决了。四、程序源代码#include<iostream>#include <string>using namespace std;static int Grades尸600,700,850,
4、1000,1200,1600,2000,3000; /静态class employeeprotected:char *name; 姓名int ID;/职工号int grade;/工资级别double salary;月薪double base_salary;基本月薪double merit_salary;/ 业绩工资public:employee(char* =NULL,int=0,int=0);/ 构造函数employee(); / 析构函数virtual void pay();/ 月薪计算函数void show();double getsalary()return salary;double
5、 getbase_salary()return base_salary; double getmerit_salary()return merit_salary;employee:employee(char*nn,int id,int gr) if(nn=NULL) name=NULL;else name=new charstrlen(nn)+1;strcpy(name,nn);ID = id;grade = gr;salary=0;/ 月薪base_salary=0;/ 基本月薪merit_salary=0;/ 业绩工资employee:employee()if(name!=NULL) de
6、letename;void employee:show()cout<<name<<'t'<<ID<<'t'<<salary<<endl;void employee:pay()int days;cout<<" 请输入请假天数:n"cin>>days;base_salary = Gradesgrade*(30 - days)/30;merit_salary = base_salary/2;/ 普通员工业绩工资为基本工资的一半 salary = base
7、_salary+merit_salary;class manager:virtual public employee/ 虚基类protected:double prize;/ 固定奖金额double factor;/ 业绩系数public:manager(char* =NULL,int=0,int=0,double=0);void pay();manager:manager(char*nn,int id,int gr,double pr):employee(nn,id,gr)prize = pr;/ 固定奖金额factor = 0;void manager:pay()int days;cout
8、<<" 请输入请假天数:n"cin>>days;cout<<" 请输入业绩系数:n"cin>>factor;base_salary = Gradesgrade*(30 - days)/30;merit_salary = prize*factor*(30 - days)/30;salary = base_salary + merit_salary ;class technician:virtual public employeeprotected:double hours;/ 月工作时数double perh
9、our;/ 每小时附加酬金double shfactor;/ 研究进度系数public:technician(char* =NULL,int=0,int=0,double=0);void pay();technician:technician(char*nn,int id,int gr,double phr):employee(nn,id,gr) hours = 0;perhour = phr;/ 每小时附加酬金shfactor = 0;void technician:pay()int days;cout<<" 请输入请假天数:n"cin>>days
10、;cout<<" 请输入研究进度系数:n"cin>>shfactor;hours=8*(30-days);base_salary = Gradesgrade*(30 - days)/30;merit_salary = perhour*hours*shfactor*(30 - days)/30;salary= base_salary + merit_salary ;class salesman:virtual public employeeprotected:double amount;/ 销售额double slfactor;/ 提成比例public
11、:salesman(char* =NULL,int=0,int=0,double=0);void pay();salesman:salesman(char*nn,int id,int gr,double slfac):employee(nn,id,gr)amount = 0;slfactor = slfac;/ 提成比例void salesman:pay()int days;cout<<" 请输入请假天数:n"cin>>days;cout<<" 请输入销售额:n"cin>>amount;base_salar
12、y = Gradesgrade*(30 - days)/30;merit_salary = amount*slfactor;salary = base_salary + merit_salary ;class developermanager:public manager,public technician public:developermanager(char* =NULL,int id=0,int gr=0,double pr=0, double phr=0); void pay();developermanager:developermanager(char*nn,int id,int
13、 gr,double pr,double phr) :manager(nn,id,gr,pr),technician(nn,id,gr,phr),employee(nn,id,gr)void developermanager:pay()int days;cout<<" 请输入请假天数:n"cin>>days;cout<<" 请输入业绩系数:n"cin>>factor;cout<<" 请输入研究进度系数:n"cin>>shfactor;hours=8*(30-day
14、s);base_salary = Gradesgrade*(30 - days)/30;/基本工资merit_salary = perhour*hours*shfactor*(30 - days)/30;/ 技术人员奖金merit_salary += prize*factor*(30 - days)/30;/ 加经理业绩工资merit_salary /=2;salary = base_salary + merit_salary ;class salesmanager:public manager,public salesmanpublic:salesmanager(char* =NULL,in
15、t=0,int=0,double pr=0, double slfac=0);void pay();salesmanager:salesmanager(char*nn,int id,int gr,double pr,double slfac):manager(nn,id,gr,pr),salesman(nn,id,gr,slfac),employee(nn,id,gr)void salesmanager:pay()int days;cout<<" 请输入请假天数:n"cin>>days;cout<<" 请输入业绩系数:n&quo
16、t;cin>>factor;cout<<" 请输入销售额:n"cin>>amount;base_salary = Gradesgrade*(30 - days)/30;/基本工资merit_salary = prize*factor*(30 - days)/30;/ 经理业绩工资merit_salary /=2;merit_salary += amount*slfactor;/ 加销售业绩工资salary = base_salary + merit_salary ;void main()employee eml1("Dave&q
17、uot;,10001,0),*emlp;manager mag1("John",20003,4,1000);technician tec1("Helen",30006,5,10);salesman sal1("Heidi",40009,2,0.05);developermanager dem1("Steve",50009,6,1500,12);salesmanager sam1("Ryan",60020 ,3,1000,0.05);eml1.pay();eml1.show();mag1.pay();mag1.show();tec1.pay();tec1.show();sal1.pay();sal1.show();emlp=&dem1;emlp->pay();emlp->show();emlp=&sam1;emlp->pay();emlp->show();五、设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《环氧树脂使用教案》课件
- 吉林省长春市虹麓综合高中2023-2024学年高一上学期期末生物试卷
- 浙江省六校联盟2024-2025学年高二上学期期中联考历史试题 含解析
- 痔疮的中西医结合治疗
- 金融产品运营方案
- 木制品定制生产销售承包合同
- 航空巨头CEO聘任合同
- 教育培训机构高管聘用合同样本
- 企业行政管家招聘合同书
- 衢州市户外拓展基地租赁合同
- 天津市2023-2024学年七年级上学期语文期末试卷(含答案)
- 2024年法律职业资格考试(试卷一)客观题试卷及解答参考
- 桩基及基坑支护工程技术施工方案(三篇)
- 司法考试2024年知识点背诵版-民法
- 初级消防设施操作员实操题库
- 金蛇纳瑞企业2025年会庆典
- 低空经济产业园建设项目计划书
- 《生态和谐新景观》课件 2024-2025学年岭南美版(2024) 初中美术七年级上册
- 2024年医院财务管理制度(四篇)
- 安保服务评分标准
- it顾问合同模板
评论
0/150
提交评论