- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工资管理系统实验报告(附源程序)
合肥学院
计算机科学与技术系
课程设计报告
2008~2009学年第二期
课程 程序设计语言Ⅱ课程设计 课程设计名称 企业员工工资管理系统 学生姓名 吕劝劝 学号 0804032008 专业班级 网络工程(2)班 指导教师 高玲玲 李红
2009年6月
一、题目
工资管理系统。某小型公司,主要有四类人员:经理、技术人员、销售经理和推销员。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
人员编号基数为1000,每输入一位人员就加一。经理升级三级因此为四级,技术人员和销售经理升级二级所以为三级,销售人员升级为二级。
月薪计算办法是:经理拿固定月薪8000元;技术人员按每小时100元领取月薪;推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的0.5‰。
二、问题分析
根据题目要求,编写一个可以管理工资系统的程序,公司有四种成员:经理,销售经理,销售人员,技术人员。每个人员的信息有姓名,编号,级别,当前月薪,人员编号技术为1000。
1.功能选择项:输入选择功能项,及每个功能对应的作用。
2.信息的录入:包括姓名,级别,编号,技术人员需要本月的工作时数,销售经理需要固定月薪和本月销售额,销售人员仅需要本月的销售额,经理需要输入固定月薪。
3.显示信息:显示各人员的姓名,级别,编号和本月应发金额。
根据题目要求设计如下:
1.设计一个主菜单大体如下:
各成员信息输入一次;
各成员信息输入两次;
各成员信息输入三次;
2.程序运行时,首先提示输入雇员姓名;
3.对于经理直接输出其工资及其它信息;
4.对于技术人员,程序提示输入其本月工作时数,然后输出其工资及其它信息;
5.对于推销员,程序提示输入其本月销售额,然后输出其工资及其它信息;
6.对于销售经理,程序提示输入其管辖部门本月销售总额,然后输出其工资及其它信息。
三、算法的设计
根据上述需求,设计一个基类employee,然后派生出technician(技术人员)类、manager(经理)类和salesman(推销员)类。由于销售经理(salesmanager)既是经理又是销售人员,兼具两类人员的特点,因此同时继承manager和salesman两个类。
定义一个雇员类如下:
class employee
{
protected:
char name[20]; //姓名
int num; //个人编号
int grade; //级别
float salary;//月薪总额
static int No; //静态数据:目前编号
public:
employee(); //构造函数
~employee(); //析构函数
virtual void pay()=0; //计算月薪函数(纯虚函数)
virtual void promote(int jishu=0); //升级函数(虚函数)
void SetName(char *); //设置姓名函数
char * GetName(); //提取姓名函数
int GetNum(); //提取编号函数
int Getgrade();//提取级别函数
float Getsalary();//提取月薪函数
};
在基类中,除了定义构造函数和析构函数以外,还应统一定义对各类人员信息都应有的操作,这样可以规范各派生类的基本行为。但是各类人员的月薪计算方法不同,不能在基类employee中统一定义计算方法。各类人员信息的显示内容也不同,同样不能在基类中统一定义显示方法。因此,在employee类中用纯虚函数的方式定义了计算月薪函数pay,然后在派生类中再根据各自的同名函数实现具体的功能。
由于salesmanager的两个基类又有公共基类employee,为避免二义性,这里将employee类设计为虚基类。
系统类图
属性和方法定义
类名 成员类别 类型 成员名 描述 employee 属性 char * name 雇员姓名 int num 个人编号 int grade 级别 float accumPay 月薪总额 int No 本公司雇员编号目前最大值 方法 void pay() 计算月薪函数(为纯虚函数) void promote(int) 升级函数
类名 成员类别 类型 成员名 描述 technician 属性 float hourlyRate 每小时酬金 int workHours 当月工作时数 方法 void pay() accumPay=hourlyRate*workHour
文档评论(0)