本系统基于前面学习的12节内容编写,主要目的在于练习前面所学Python语法
1. 项目需求
使用面向对象编程思想完成员工管理系统的开发
项目需求:
- 员工数据存储在文件中
- 员工数据包括:姓名,年龄,性别,手机号,是否离职
- 项目功能包括:
- 添加员工
- 删除员工
- 修改员工信息
- 查询员工信息
- 显示所有员工信息
- 保存员工信息
- 退出系统等功能
2. 项目代码架构分析
项目中的对象分析:
- 员工: ——》对应一个类 Employee
- 员工管理系统:——》对应一个类:EmployeeManagerSystem
2.1 员工对象的特征和行为
- 特征
- 姓名:字符串
- 年龄:整形
- 性别:字符串
- 手机号码:字符串
- 是否离职:布尔类型
- 行为动作
- 输出员工的整体信息
- 员工转换成字典
2.2 员工管理系统对象的特征和行为
- 行为动作
- 加载和读取员工数据文件
- 显示系统欢迎界面
- 添加员工
- 删除员工
- 修改员工信息
- 查询员工信息
- 显示所有员工
- 保存员工信息到文件中
- 退出系统项目
- 程序入口函数
3. 代码编写
- 创建 员工类 employee.py 文件
# 员工信息
class Employee(object):
"""
员工类
"""
def __init__(self, name, gender, age, mobile_number, is_leave=0):
"""
:param name: 姓名
:param gender: 性别
:param age: 年龄
:param mobile_number: 电话号码
:param is_leave: 是否离职 (1表示离职,0表示在职)
"""
self.name = name
self.gender = gender
self.age = age
self.mobile_number = mobile_number
self.is_leave = False if is_leave == 0 else True
def __str__(self):
msg = "离职" if self.is_leave else "在职"
return f'{
self.name}\t{
self.gender}\t{
self.age}\t{
self.mobile_number}\t{
msg}'
if __name__ == '__main__':
e = Employee('张三', '男', 25, '15591727456')
print(e.__dict__) # 1. 把Python对象转换成字典
print(vars(e)) # 2. python内置函数 两种方式都可以将对象转换成字典
print(e)
- 创建员工管理系统类 employee_system.py 文件
# 企业员工管理系统
import os
from employee import Employee
class EmployeeManagerSystem(object):
def __init__(self):
# 存放员工数据的文件
self.employee_data_file = 'employee_data.txt'
# 备份员工数据的文件(上传保存前的员工备份文件,只备份一份)
self.employee_data_file_backup = 'employee_data_backup.txt'
# 从文件中加载之后的员工列表
self.employee_list = []
# True表示已保存员工数据
self.save_flag =