面向对象C++设计:职工工资管理系统
4星 · 超过85%的资源 需积分: 14 169 浏览量
更新于2024-10-30
4
收藏 146KB DOC 举报
"C++课程设计的职工工资管理系统是一个面向对象程序设计的实践项目,用于模拟某公司的五类职工——技术人员、销售人员、文秘、技术经理和销售经理的工资计算。系统通过不同的类来代表各类职工,根据他们的工资计算规则进行工资结算。系统包括输入职工、添加职工、删除职工和结算工资等功能。设计中采用了类的继承和多态性,如Person类作为基类,其他四类职工类作为派生类,各自实现特定的工资计算方法。"
在这个职工工资管理系统中,主要涉及以下几个C++编程和面向对象设计的概念:
1. **类的设计**:系统定义了多个类,如Person类作为所有职工的基础,包含了职工的基本信息,如编号(num)、工资(wage)、年份(year)、姓名(name)、职位(post)和性别(sex)。每个类都包含了相应的数据成员和方法。
2. **继承**:为了实现不同类型的职工,系统采用了继承机制。Technician、Salesman、Secretary、Tech-manager和Sales-manager分别从Person类继承,并添加了各自特有的属性,如Technician的小时数(hours)和Salesman的销售额(sales)。
3. **多态性**:为了实现统一的工资结算,Person类中定义了一个虚函数`virtual void pay()`,在各个派生类中重写这个函数,根据不同的计算规则执行工资计算。这是多态性的体现,使得可以对不同类型的职工调用同一个接口进行工资结算。
4. **动态内存管理**:在系统中,职工可能被添加或删除,这涉及到动态内存的分配和释放。例如,`insert()`函数用于添加职工,可能需要创建新的职工对象并将其插入链表;`del()`函数用于删除职工,需要正确地释放内存。
5. **函数实现**:系统定义了一些关键函数,如`creat()`用于创建职工链表,`insert()`用于添加职工到链表,`del()`用于删除指定职工,以及`salary()`用于结算所有职工的工资。这些函数实现了系统的功能需求。
6. **工资计算逻辑**:对于每种类型的职工,工资计算逻辑如下:
- 技术人员:工资 = 工作小时数 × 35元/小时
- 销售人员:工资 = 销售额 × 5%
- 文秘:基本工资4000元,奖金根据工作情况而定
- 技术经理:固定工资6000元 + 根据工作等级的奖金(最多3000元)
- 销售经理:固定工资6000元 + 所管理销售员总销售额的0.2%作为奖金
7. **系统结构**:系统采用类和对象的组合构建,形成了一个层次结构,每个类代表一类职工,对象代表具体的职工实例。这种结构有利于代码的组织和维护,也方便扩展新的职工类型。
通过这个课程设计,学生可以深入理解C++的面向对象编程,包括类的设计、继承、多态性以及动态内存管理,同时也能实际应用这些知识解决实际问题,如职工工资的管理。
2010-09-11 上传
2009-06-18 上传
2018-01-01 上传
2017-12-24 上传
2021-10-03 上传
2021-10-11 上传
2022-06-30 上传
fanjiu
- 粉丝: 1
- 资源: 1
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍