首页 > 其他分享 >软工日报4.14

软工日报4.14

时间:2024-06-19 22:37:36浏览次数:16  
标签:__ salary 4.14 日报 软工 hours worked self name

问题:

8-3 【Python0016】设计并实现计算不同职称的教师工资 分数 10 作者 doublebest 单位 石家庄铁道大学

【题目描述】设计教师接口,该接口包含教师工资计算方法。应用(一)中的高校人员信息包,设计不同职称的教师类:教授,副教授,讲师,教师的基本信息包括姓名、性别、出生年月、职称、课时工作量等属性。注意学校对教师每月工资的计算规定如下:固定工资+课时补贴;教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。

程序中定义各种教师类的对象,并编写程序求这些教师的月工资。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。

代码:

from abc import ABC, abstractmethod

class Teacher(ABC):
def __init__(self, name, gender, birth_date, title, hours_worked):
self.name = name
self.gender = gender
self.birth_date = birth_date
self.title = title
self.hours_worked = hours_worked

@abstractmethod
def calculate_monthly_salary(self):
pass

class Professor(Teacher):
def __init__(self, name, gender, birth_date, hours_worked):
super().__init__(name, gender, birth_date, '教授', hours_worked)

def calculate_monthly_salary(self):
base_salary = 5000
hourly_rate = 50
return base_salary + (self.hours_worked * hourly_rate)

class AssociateProfessor(Teacher):
def __init__(self, name, gender, birth_date, hours_worked):
super().__init__(name, gender, birth_date, '副教授', hours_worked)

def calculate_monthly_salary(self):
base_salary = 3000
hourly_rate = 30
return base_salary + (self.hours_worked * hourly_rate)

class Lecturer(Teacher):
def __init__(self, name, gender, birth_date, hours_worked):
super().__init__(name, gender, birth_date, '讲师', hours_worked)

def calculate_monthly_salary(self):
base_salary = 2000
hourly_rate = 20
return base_salary + (self.hours_worked * hourly_rate)

def main():
prof_li = Professor('詹姆斯—摩根—麦吉尔', '男', '1970-01-01', 120)
assoc_prof_wang = AssociateProfessor('杰西—平克曼', '女', '1975-05-10', 100)
lect_zhang = Lecturer('索尔—古德曼', '男', '1980-08-20', 150)

print(f"{prof_li.name} 的月工资为:{prof_li.calculate_monthly_salary()}元")
print(f"{assoc_prof_wang.name} 的月工资为:{assoc_prof_wang.calculate_monthly_salary()}元")
print(f"{lect_zhang.name} 的月工资为:{lect_zhang.calculate_monthly_salary()}元")

if __name__ == "__main__":
main()

标签:__,salary,4.14,日报,软工,hours,worked,self,name
From: https://www.cnblogs.com/guozi6/p/18257638

相关文章

  • 软工日报4.13
    8-2【Python0015】以圆类为基础设计三维图形体系分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】设计三维图形类体系,要求如下:设计三维图形功能接口,接口包含周长、面积、体积计算方法;基于以上接口,首先定义点类,应包含x,y坐标数据成员,......
  • 软工日报4.16
    问题:8-5【Python0018】设计并实现平面点类Point分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】定义一个平面点类Point,对其重载运算符关系运算符,关系运算以距离坐标原点的远近作为基准,远的为大。程序完成对其的测试。【练习要求】......
  • 软工日报4.17
    今日,我主要负责实现应用中的登录注册功能。然而,在开始编码之前,我发现了一个关键的问题——数据库中的用户表尚未建立。因此,我首先决定先创建这个用户表,以支持后续的登录注册操作。在创建用户表时,我考虑了用户所需的基本信息,如用户名、密码(通常我们会存储密码的哈希值而非明文密......
  • 软工日报3.26
    代码量:8-4【Python0036】中文级联菜单分数10全屏浏览作者 doublebest单位 石家庄铁道大学编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。代码:defdisplay_menu(menu,level=0):"""递归显示菜单"""forindex,(key,v......
  • 软工日报3.25
    代码量:8-3【Python0035】英文统计分数10全屏浏览作者 doublebest单位 石家庄铁道大学编写程序实现对特定英文文章(文本文件)的单词数和有效行数的统计,其中要求空行不计数;代码:importrefile="HarryPotterAndTheChamberOfSecrets.txt......
  • 软工日报3.22
    代码量:8-2【Python0032】谢宾斯基三角型字符分形图形输出分数10全屏浏览作者 doublebest单位 石家庄铁道大学要求编程输出如下图示的字符分形图形(谢宾斯基三角形),要求提交源代码文件,其中源代码要求逐行注释。 代码:importturtle......
  • 软工日报3.21
    代码量:8-1【Python0031】简易带参计算器分数10全屏浏览作者 doublebest单位 石家庄铁道大学设计一个简易的参数计算器。【输入格式】第一行输入待计算的带变量参数的计算式第二行输入各变量参数的赋值序列【输出格式】输出带变量参数的计算式的计......
  • 软工日报3.13
    代码量:7-1产生每位数字相同的n位数分数15全屏浏览切换布局作者 陈春晖单位 浙江大学读入2个正整数A和B,1<=A<=9,1<=B<=10,产生数字AA...A,一共B个A输入格式:在一行中输入A和B。输出格式:在一行中输出整数AA...A,一共B个A输入样例1:在这......
  • 软工日报3.20
    代码量:6-1使用函数输出指定范围内Fibonacci数的个数分数20全屏浏览切换布局作者 陈春晖单位 浙江大学本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。所谓Fib......
  • 软工日报3.19
    代码量:6-1使用函数求特殊a串数列和分数30全屏浏览切换布局作者 陈春晖单位 浙江大学给定两个均不超过9的正整数a和n,要求编写函数fn(a,n)求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和函数接口定义: fn(a,n)其中a和n都是用户传......