一个公司有四类人员:经理、技术人员、推销人员、销售经理以及推销人员。员工的共有属性有:姓名、级别、职工工号,月薪总额,新增的职工工号,由公司现有的员工工号最大值加1得到,方法有promote(),功能是改变员工的级别

时间: 2023-07-10 17:06:56 浏览: 48
好的,那我们可以定义一个Employee类来表示这些员工,代码如下: ```python class Employee: def __init__(self, name, level, id, salary): self.name = name self.level = level self.id = id self.salary = salary def promote(self, new_level): self.level = new_level def __str__(self): return f"Name:{self.name}, Level:{self.level}, ID:{self.id}, Salary:{self.salary}" ``` 在这个类中,我们定义了一个构造函数来初始化员工的基本信息,包括姓名、级别、职工工号和月薪总额。还定义了一个promote()方法,用来改变员工的级别。最后我们还定义了一个__str__()方法,方便打印输出员工的信息。 接下来,我们可以定义各种不同类型的员工,比如经理、技术人员、推销人员和销售经理。这些员工的属性和方法都可以继承自Employee类,再根据不同的需求进行扩展和修改。例如: ```python class Manager(Employee): def __init__(self, name, level, id, salary, department): super().__init__(name, level, id, salary) self.department = department def __str__(self): return f"{super().__str__()}, Department:{self.department}" class Technician(Employee): def __init__(self, name, level, id, salary, skill): super().__init__(name, level, id, salary) self.skill = skill def __str__(self): return f"{super().__str__()}, Skill:{self.skill}" class Salesman(Employee): def __init__(self, name, level, id, salary, region): super().__init__(name, level, id, salary) self.region = region def __str__(self): return f"{super().__str__()}, Region:{self.region}" class SalesManager(Salesman): def __init__(self, name, level, id, salary, region, department): super().__init__(name, level, id, salary, region) self.department = department def __str__(self): return f"{super().__str__()}, Department:{self.department}" ``` 在这些子类中,我们对父类的__init__()方法进行了重写,以便添加新的属性。同时,我们也重写了__str__()方法,方便打印输出员工的信息。例如,Manager类新增了一个department属性,表示所属部门;Technician类新增了一个skill属性,表示技能;Salesman类新增了一个region属性,表示销售区域;SalesManager继承自Salesman并新增了一个department属性,表示所属部门。 现在我们就可以创建各种不同类型的员工,并对他们进行操作,例如: ```python # 创建一个经理 manager = Manager("Tom", 3, 1001, 10000, "Sales") # 输出经理的信息 print(manager) # 将经理的级别提升为4 manager.promote(4) # 再次输出经理的信息 print(manager) ``` 输出结果为: ``` Name:Tom, Level:3, ID:1001, Salary:10000, Department:Sales Name:Tom, Level:4, ID:1001, Salary:10000, Department:Sales ``` 这个例子展示了如何创建一个经理,并对其进行级别调整。其他类型的员工也可以类似地创建和操作。

相关推荐

最新推荐

recommend-type

公司人员管理系统 实现公司人员的管理

某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
recommend-type

vc++企业人员管理系统代码

某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 人员编号在生成人员信息时同时生成,每输入一个人员...
recommend-type

鸡国大冒险运行程序,点开即用

recommend-type

基于Python+Flask的安全多方计算的隐私保护系统设计与实现+全部资料齐全+部署文档.zip

【资源说明】 基于Python+Flask的安全多方计算的隐私保护系统设计与实现+全部资料齐全+部署文档.zip基于Python+Flask的安全多方计算的隐私保护系统设计与实现+全部资料齐全+部署文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

聊天系统(java+applet).zip

聊天系统(java+applet)
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。