c++工资系统.doc
《c++工资系统.doc》由会员分享,可在线阅读,更多相关《c++工资系统.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxC+工资管理系统【精品文档】某大学 面向对象程序设计 课程设计报告书题目: 工资管理系统(C+) 院 系: 软件学院 专 业: 软件工程 班 级: 姓 名: 学 号: 课设时间: 2016.12.22 指导教师: 二一六年十二月面向对象程序设计课程设计报告书员工工资管理系统一、设计要求用类函数和派生类来计算某公司雇员的工资,通过多层派生和多重派生来实现对不同工资级别的工资管理。编辑实现工资管理。特别注意pay()的定义和调用方法使用运行时多态。编写程序提示用户输入employee类的共有数据,再提醒用户输入工资类型来区分工资级别不同的类的特有数据。最后通过pay()
2、函数来计算各种数据,用Print函数输出。二、设计目的(1)、将课本上的理论知识运用于实践,通过实际的程序操作来提高自己编写程序的能力,达到理论与实践相结合的目的。(2)、查阅相关资料,自学具体课题中涉及到的新知识。(3)、根据实现的功能,划分出合理的对象类,明确对象类间的关系。为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。 (4)、编程简练,程序功能齐全,能正确运行。三、设计过程1、程序流程图employeesalesmantechnicianmanagerdevelopermanagersalesmanager2、程序原理 使用户能根据程序提示输入employee类的共有数
3、据,再提醒用户输入工资类型来区分工资级别不同的类的特有数据。最后通过pay()函数来计算各种数据,用Print函数输出。3、算法原理通过基类中的公有函数来访问基类中的私有成员来计算各派生类的工资。 4、软件设计过程中遇到的问题以及解决办法 在这次设计程序的过程中遇到了许多问题:比如对类模板、类的多重、多层继承、析构函数、赋值构造函数等知识掌握不牢固,使得拿到题目无从下手。但最后都通过请教别人和翻课本,上网查找相关资料等途径解决了。四、程序源代码#include#include using namespace std;static int Grades=600,700,850,1000,1200
4、,1600,2000,3000; /静态class employee protected: 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; dou
5、ble 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(nam
6、e!=NULL) deletename; void employee:show() coutnametIDtsalaryendl; void employee:pay() int days; coutdays; base_salary = Gradesgrade*(30 - days)/30; merit_salary = base_salary/2;/普通员工业绩工资为基本工资的一半 salary = base_salary+merit_salary; class manager:virtual public employee/虚基类 protected: double prize;/固定奖
7、金额 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; coutdays; coutfactor; base_salary = Gradesgrade*(30 - days)/30; merit_salary = prize*
8、factor*(30 - days)/30; salary = base_salary + merit_salary ; class technician:virtual public employee protected: double hours;/月工作时数 double perhour;/每小时附加酬金 double shfactor;/研究进度系数 public: technician(char* =NULL,int=0,int=0,double=0); void pay(); ; technician:technician(char*nn,int id,int gr,double
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 工资 系统
限制150内