面向对象C++设计:职工工资管理系统

4星 · 超过85%的资源 需积分: 14 59 下载量 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++的面向对象编程,包括类的设计、继承、多态性以及动态内存管理,同时也能实际应用这些知识解决实际问题,如职工工资的管理。