Python例题:设计一个工资(月薪)结算系统

本题涉及到的主要知识是函数的继承和多态两大特性,编程方法是面向对象的编程;那么什么是继承和多态呢?继承指的是从已有的类进行扩展创建出新的类的过程;其中提供继承信息的类叫父类(超类,基类),得到继承信息的类称为子类;简单的来说,继承就是扩展已有的类创建新类,实现对已有类的代码复用。而多态就是给不同的对象发出同样的消息,不同的对象执行了不同的行为。以下是给定的条件以及要求:
三类员工:
1.部门经理:固定月薪,15000元
2.程序员:计时结算月薪,每小时200元
3.销售员:底薪+提成,底薪1800元,销售额5%提成

要求:录入员工信息,自动结算月薪

以下是Python代码实现:

from abc import abstractmethodclass Employee:def __init__(self, no, name):self.no = noself.name = name@abstractmethod           # 如果不执行就不调用def get_salary(self):passclass Manager(Employee):def get_salary(self):return 15000class Programmer(Employee):def __init__(self, no, name):super().__init__(no, name)self.working_hour = 0def get_salary(self):return 200 * self.working_hourclass Salesman(Employee):def __init__(self, no, name):super().__init__(no, name)self.sales = 0def get_salary(self):return 1800 + 0.05 * self.salesdef 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}本月工资: {emp.get_salary()}元')if __name__ == '__main__':main()

代码中的名字,工作时长以及销售额以及员工数量都是自己定义的,可以更改;以下对代码进行简单的讲解:首先得定义一个大的类,就叫做Employee,主类员工包含经理,程序员,销售员等等;我们就可以通过子类来继承父类。注意:子类调用父类中的方法时必须方法名相同,否则无法调用

以下是用pycharm运行的结果:

总结

本题都用到了面向对象编程的三大支柱。封装,继承和多态是学习好面向对象编程必不可少的内容,在编程过程中遇到的难点就是定义类以及相关的属性和方法,所以说有一个好了理解能力是编程的一大助力。加油,各位!

Python例题:设计一个工资(月薪)结算系统相关推荐

  1. 【python】设计一个游戏角色类 属性:角色名、血量、魔法、状态 方法:释放技能 被伤害 要求:设计要合理

    # 设计一个游戏角色类 # a. 属性:角色名.血量.魔法.状态 # b. 方法:释放技能 被伤害 # c. 要求:设计要合理 import time class Civillian:name=''b ...

  2. PYTHON练习题----设计一个列表存储歌咏比赛选手的最终得分,评委给出的分数是0-10分,选手最后得分是,去掉一个最高分,去掉一个最低分,计算其余评委的打分平均值(保留三位小数),并输出其他

    歌咏小能手 描述 设计一个列表存储歌咏比赛选手的最终得分,评委给出的分数是0-10分,选手最后得分是,去掉一个最高分,去掉一个最低分,计算其余评委的打分平均值(保留三位小数),并输出其他多少个评委给了 ...

  3. Python,设计一个游戏,游戏会随机数字,让你猜。

  4. python作业之一个工资结算系统

    任务描述 本关任务:某公司有三种类型的员工 分别是部门经理.程序员和销售员,需要设计一个工资结算系统 根据提供的员工信息来计算月薪,部门经理的月薪是每月固定15000元,程序员的月薪按本月工作时间计算 ...

  5. python定义一个圆类_python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。...

    ** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...

  6. python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。

    ** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...

  7. C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。

    文章目录 例题 分析 代码 测试 结语 例题 设计一个银行账户(Account)类,包含户名.帐号以及当前余额属性,可完成开户.存款.取款和查询余额等行为.银行账户类的定义要求如下: class Ac ...

  8. C++上机实验,做一个工资管理系统

    目标:熟悉输入与输出流的定义及操作方式. 上机任务: A.P268  第1题,第2题,第3题,第4题,第5题,第6题. B.设计一个工资管理系统,计算某高校教师.行政员工.临时工.双肩挑员工的工资数额 ...

  9. python界面设计-手把手教你用Python设计一个简单的命令行界面

    原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...

  10. python经典小游戏-用Python设计一个经典小游戏:猜大小

    码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...

最新文章

  1. 【面试 struts2】【第三篇】struts2的问题
  2. 面试还在被红-黑树虐?看完这篇动图文章轻松反虐面试官
  3. 【深度学习】基于web端和C++的两种深度学习模型部署方式
  4. 工厂方法设计模式示例
  5. 操作系统学习笔记-01-操作系统的概念(定义),功能和目标
  6. python的常见矩阵除法_Numpy矩阵除法返回所有零
  7. Java实训项目4:GUI学生信息管理系统 - 项目结构图
  8. Android通知,PendingIntent示例
  9. AVOD:点云数据与BEV图的处理及可视化
  10. el-select默认选中 显示的是id 不是汉字
  11. Windows 11 Manager(win11优化大师)官方中文版V1.0.0 | windows11优化软件下载
  12. python如何做一个财务报表_用python帮财务小姐姐自动生成财务报表
  13. MQX4.0:MK60DZ10.h头文件GPIO模块…
  14. 题目0063-射击比赛
  15. HTTPS中的数字证书是什么?数字签名又是什么?
  16. 我是如何用一行代码表白学妹~❤520情人节送女朋友的3D樱花雨相册礼物❤~(程序员表白专属)...
  17. onenote 思维导图_印象笔记、OneNote、熊掌记 哪个笔记App更适合文字工作者?
  18. Django 项目管理
  19. 读jQuery之十七(attribute/property/class)
  20. 产品:“嘘,这事千万别让开发知道”

热门文章

  1. 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
  2. Linux内核浮点运算
  3. 中国慕课moocpython答案_中国大学慕课moocPython编程基础答案
  4. 计算机网络:网络地址-MAC地址、IP地址、子网掩码
  5. Libcurl的初步实现tfp上传下载功能
  6. win10打不开图片,文件系统错误 (-2147219196)修复的方法
  7. 【深度学习】Cyclical Learning Rates 周期学习率
  8. c 语言查询条件并列怎么用,关于C# if语句中并列条件的执行
  9. 3 a 5的c语言表达式,C语言中,赋值表达式:(a=3*5)=4*3,为什么整个表达式的值为1,表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是...
  10. 2019 Python接口自动化测试框架实战开发(一)