C++实现工资管理系统:文员与业务员薪酬计算

需积分: 9 1 下载量 121 浏览量 更新于2024-09-13 收藏 59KB DOC 举报
本资源是一份C++编程作业,涉及到员工工资管理系统的设计。主要关注三个类:`Person`、`Cservant`(文员)和`Salesman`(业务员)。以下是关于这些类及其相关功能的详细解释: 1. **类定义**: - `Person` 类:这是一个基类,用于表示所有员工的基础属性,如工号(`int ID`)、姓名、性别、联系方式、国籍、职位和收入。它包含两个虚函数 `CalcSalary()` 和 `Output()`,这些函数在派生类中会被重写以实现特定计算和输出。 2. **派生类**: - `Cservant` 类:继承自 `Person`,专为文员设计。除了基础属性,还添加了上个月完成的工作量(`double Workload`)作为私有变量。`Cservant` 类提供了一个方法来获取和设置工作量,以及一个具体的 `CalcSalary()` 方法,根据文员的基本工资 `CSalary` 和工作量进行计算,工作量超过20时,每超过部分按20的比例增加工资。`Output()` 函数在计算工资后显示员工信息。 - `Salesman` 类:同样继承自 `Person`,专为业务员设计。这个类也包括工作量的私有变量,并且在 `CalcSalary()` 方法中根据业务员的基本工资 `SSalary` 和工作量进行计算。具体机制与文员类似,但可能有不同的计算规则。 3. **全局数据和对象**: - `double CSalary`, `double SSalary`, 和 `double APSalary` 分别代表文员、业务员和行政人员的基本工资,它们是全局变量,用于在整个程序中存储和处理不同职位的工资标准。 4. **核心功能**: - 主要关注的是如何通过C++代码实现员工的工资计算,这涉及到继承、多态性(虚函数)的应用以及类间的协作。`CalcSalary()` 函数在每个派生类中被重写,以便根据员工的具体职位(文员或业务员)进行定制化的工资计算。 5. **文件结构**: 根据提供的代码片段,可以推测该作业文件可能包含头文件(如 `<iostream.h>`,应为 `<iostream>`),用于输入输出操作;`<fstream.h>` 用于文件操作;`<ctype.h>` 和 `<string.h>` 提供字符串处理功能。 这份C++作业围绕着如何创建一个基本的工资管理系统展开,通过类结构和继承来管理文员和业务员的工资计算,并展示了如何利用全局变量存储职位差异化的工资标准。理解并实现这些类的功能对于学习C++面向对象编程以及继承和多态的应用至关重要。