Python例题:设计⼀个⼯资(⽉薪)结算系统
Python例题:设计⼀个⼯资(⽉薪)结算系统
本题涉及到的主要知识是函数的继承和多态两⼤特性,编程⽅法是⾯向对象的编程;那么什么是继承和多态呢?继承指的是从已有的类进⾏扩展创建出新的类的过程;其中提供继承信息的类叫⽗类(超类,基类),得到继承信息的类称为⼦类;简单的来说,继承就是扩展已有的类创建新类,实现对已有类的代码复⽤。⽽多态就是给不同的对象发出同样的消息,不同的对象执⾏了不同的⾏为。以下是给定的条件以及要求:
三类员⼯:
1.部门经理:固定⽉薪,15000元
2.程序员:计时结算⽉薪,每⼩时200元
3.销售员:底薪+提成,底薪1800元,销售额5%提成
要求:录⼊员⼯信息,⾃动结算⽉薪
以下是Python代码实现:
from abc import abstractmethod
class Employee:
def__init__(self, no, name):
< = no
self.name = name
@abstractmethod# 如果不执⾏就不调⽤
def get_salary(self):
pass
class Manager(Employee):
def get_salary(self):
return15000
class Programmer(Employee):
def__init__(self, no, name):
super().__init__(no, name)
self.working_hour =0
def get_salary(self):
return200* self.working_hour
电脑编程工资多少class Salesman(Employee):
def__init__(self, no, name):
super().__init__(no, name)
self.sales =0
def get_salary(self):
return1800+0.05* self.sales
def main():
emps =[
Manager(1122,'刘备'), Programmer(2233,'诸葛亮'),
Salesman(3344,'关⽻'), Salesman(4455,'张飞'),
Programmer(5566,'庞统'), Salesman(6677,'马超')
]
for emp in emps:
if type(emp)== Programmer:
emp.working_hour =int(input(f'请输⼊{emp.name}本⽉⼯作时长: '))
elif type(emp)== Salesman:
emp.sales =float(input(f'请输⼊{emp.name}本⽉销售额: '))
print(f'{emp.name}本⽉⼯资: {_salary()}元')
if __name__ =='__main__':
main()
代码中的名字,⼯作时长以及销售额以及员⼯数量都是⾃⼰定义的,可以更改;以下对代码进⾏简单的讲解:⾸先得定义⼀个⼤的类,就叫做Employee,主类员⼯包含经理,程序员,销售员等等;我们就可以通过⼦类来继承⽗类。注意:⼦类调⽤⽗类中的⽅法时必须⽅法名相同,否则⽆法调⽤
以下是⽤pycharm运⾏的结果:
总结
本题都⽤到了⾯向对象编程的三⼤⽀柱。封装,继承和多态是学习好⾯向对象编程必不可少的内容,在编程过程中遇到的难点就是定义类以及相关的属性和⽅法,所以说有⼀个好了理解能⼒是编程的⼀⼤助⼒。加油,各位!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。