阿里云建站文章搜索,水平优化,几个做ppt的网站知乎,河南省住房城乡与建设厅网站首页前言#xff1a;在python系列19#xff0c;我们使用MVC架构初步完成员工信息管理系统#xff0c;今天我们使用封装#xff0c;继承#xff0c;多态让我们的程序有隐藏的魅力#xff0c;更加灵活#xff0c;有扩展性。
实现的功能和python系列19一模一样#xff0c;所以…前言在python系列19我们使用MVC架构初步完成员工信息管理系统今天我们使用封装继承多态让我们的程序有隐藏的魅力更加灵活有扩展性。
实现的功能和python系列19一模一样所以这里就不再展示功能与需求了直接使用模块化私有化多态来更好的实现员工信息管理系统。 1.设计模型 员工信息管理系统设计模型 usl模块-StaffView类 __display_menu() 显示菜单 __select_menu() 选择菜单 __input_staff() 录入员工信息 - 调用StaffController类add_staff() __display_staff() 显示员工信息 - 调用StaffModel类__str__方法 __delete_staff() 删除员工信息 - 调用StaffController类delete_staff() __modify_staff() 修改员工信息 - 调用StaffController类modify_staff() main() 程序入口 bll模块-StaffController类 __init__() 容器初始化 add_staff() 添加员工 返回值bool delete_staff() 删除员工 返回值bool modify_staff() 修改员工 返回值bool dtl模块-StaffModel类 __init__() 初始化员工编号-staff_number、员工名称name、部门编号number、薪资wages __str__() 打印员工信息 __eq__() 重写__eq__方法通过名字判断两个员工是否相等为了实现list.remove()方法 1.dtl
class StaffModel:def __init__(self, name, staff_number0, number0, wages0.0):self.name nameself.staff_number staff_numberself.number numberself.wages wagesdef __str__(self):return fname:{self.name}, staff_number:{self.staff_number}, number:{self.number}, wages:{self.wages}def __lt__(self, other):return self.name other.namedef __eq__(self, other):return self.name other.name2.bll
from dtl import StaffModelclass StaffController:def __init__(self):self.list_staff []def add_staff(self, staff: StaffModel):self.list_staff.append(staff)return Truedef delete_staff(self, staff_name):staff StaffModel(staff_name)if staff in self.list_staff:self.list_staff.remove(staff)return Truereturn Falsedef modifying_staff(self, staff: StaffModel):for item in self.list_staff:if item.name staff.name:item.__dict__ staff.__dict__return Truereturn False
3.usl from bll import StaffController
from dtl import StaffModelclass StaffView:def __init__(self):self.__staffController StaffController()staticmethoddef __display_menu():print(1. 录入员工信息)print(2. 显示员工信息)print(3. 修改员工信息)print(4. 删除员工信息)def __select_menu(self):num input(请选择操作)if num 1:self.__input_staff()elif num 2:self.__show_staff()elif num 3:self.__modify_staff()elif num 4:self.__delete_staff()else:print(输入错误请重新输入)def __input_staff(self):staff StaffModel(input(请输入员工姓名),input(请输入员工工号),input(请输入员工职位),input(请输入员工薪资))print(添加成功) if self.__staffController.add_staff(staff) else print(添加失败)def __show_staff(self):for item in self.__staffController.list_staff:print(item)def __modify_staff(self):staff StaffModel(input(请输入员工姓名),input(请输入员工新工号),input(请输入员工新职位),input(请输入员工新薪资))print(修改成功) if self.__staffController.modifying_staff(staff) else print(修改失败)def __delete_staff(self):print(修改成功) if self.__staffController.delete_staff(input(请输入员工姓名)) else print(修改失败)def main(self):while True:self.__display_menu()self.__select_menu()
4.main from usl import StaffViewif __name__ __main__:view StaffView()view.main()