Python例题:设计一个工资(月薪)结算系统
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例题:设计一个工资(月薪)结算系统相关推荐
- 【python】设计一个游戏角色类 属性:角色名、血量、魔法、状态 方法:释放技能 被伤害 要求:设计要合理
# 设计一个游戏角色类 # a. 属性:角色名.血量.魔法.状态 # b. 方法:释放技能 被伤害 # c. 要求:设计要合理 import time class Civillian:name=''b ...
- PYTHON练习题----设计一个列表存储歌咏比赛选手的最终得分,评委给出的分数是0-10分,选手最后得分是,去掉一个最高分,去掉一个最低分,计算其余评委的打分平均值(保留三位小数),并输出其他
歌咏小能手 描述 设计一个列表存储歌咏比赛选手的最终得分,评委给出的分数是0-10分,选手最后得分是,去掉一个最高分,去掉一个最低分,计算其余评委的打分平均值(保留三位小数),并输出其他多少个评委给了 ...
- Python,设计一个游戏,游戏会随机数字,让你猜。
- python作业之一个工资结算系统
任务描述 本关任务:某公司有三种类型的员工 分别是部门经理.程序员和销售员,需要设计一个工资结算系统 根据提供的员工信息来计算月薪,部门经理的月薪是每月固定15000元,程序员的月薪按本月工作时间计算 ...
- python定义一个圆类_python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。...
** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...
- python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。
** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...
- C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。
文章目录 例题 分析 代码 测试 结语 例题 设计一个银行账户(Account)类,包含户名.帐号以及当前余额属性,可完成开户.存款.取款和查询余额等行为.银行账户类的定义要求如下: class Ac ...
- C++上机实验,做一个工资管理系统
目标:熟悉输入与输出流的定义及操作方式. 上机任务: A.P268 第1题,第2题,第3题,第4题,第5题,第6题. B.设计一个工资管理系统,计算某高校教师.行政员工.临时工.双肩挑员工的工资数额 ...
- python界面设计-手把手教你用Python设计一个简单的命令行界面
原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...
- python经典小游戏-用Python设计一个经典小游戏:猜大小
码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...
最新文章
- 【面试 struts2】【第三篇】struts2的问题
- 面试还在被红-黑树虐?看完这篇动图文章轻松反虐面试官
- 【深度学习】基于web端和C++的两种深度学习模型部署方式
- 工厂方法设计模式示例
- 操作系统学习笔记-01-操作系统的概念(定义),功能和目标
- python的常见矩阵除法_Numpy矩阵除法返回所有零
- Java实训项目4:GUI学生信息管理系统 - 项目结构图
- Android通知,PendingIntent示例
- AVOD:点云数据与BEV图的处理及可视化
- el-select默认选中 显示的是id 不是汉字
- Windows 11 Manager(win11优化大师)官方中文版V1.0.0 | windows11优化软件下载
- python如何做一个财务报表_用python帮财务小姐姐自动生成财务报表
- MQX4.0:MK60DZ10.h头文件GPIO模块…
- 题目0063-射击比赛
- HTTPS中的数字证书是什么?数字签名又是什么?
- 我是如何用一行代码表白学妹~❤520情人节送女朋友的3D樱花雨相册礼物❤~(程序员表白专属)...
- onenote 思维导图_印象笔记、OneNote、熊掌记 哪个笔记App更适合文字工作者?
- Django 项目管理
- 读jQuery之十七(attribute/property/class)
- 产品:“嘘,这事千万别让开发知道”
热门文章
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
- Linux内核浮点运算
- 中国慕课moocpython答案_中国大学慕课moocPython编程基础答案
- 计算机网络:网络地址-MAC地址、IP地址、子网掩码
- Libcurl的初步实现tfp上传下载功能
- win10打不开图片,文件系统错误 (-2147219196)修复的方法
- 【深度学习】Cyclical Learning Rates 周期学习率
- c 语言查询条件并列怎么用,关于C# if语句中并列条件的执行
- 3 a 5的c语言表达式,C语言中,赋值表达式:(a=3*5)=4*3,为什么整个表达式的值为1,表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是...
- 2019 Python接口自动化测试框架实战开发(一)