共两个Python文件:第一个是Luoji,写运行逻辑;第二个是Yuangong,生成员工编号和显示信息。
1.Luoji.python
'''
【员工信息管理-2】
实现三个功能:
1.录入员工信息
2.查看员工信息
3.按编号和按姓名查找员工
'''
#逻辑程序类
from Yuangong import Employee
class EmpSys:
def __init__(self):
self.__emps=[] #创建存储所有员工信息的列表,私有保护
#主菜单
def __mainMenu(self):
print("【欢迎进入员工管理系统】")
print("1.新员工录入\n2.查看所有员工信息\n3.查找员工\n4.退出系统")
m=input("请输入选项代号:")
return m
#录入员工信息
def __addEmp(self):
name = input("姓名:")
sex = input("性别:")
e = Employee(name, sex) # 创建员工对象
self.__emps.append(e) #将新员工对象追加到所有员工列表中
#显示员工信息
def __showInfo(self,emps): #emps
print("=======【员工信息】=======")
print("员工编号\t\t\t姓名\t性别")
if type(emps)==list:
for e in emps:
e.showSelf()
print("员工人数:",len(emps))
elif type(emps)==Employee:
emps.showSelf()
print("========================")
#查找员工信息:1.按员工编号查找 2.按姓名查找
def __findEmpByNum(self,num):
for e in self.__emps: #遍历所有对象
if e.getNum()==num: #如果对象e的编号=输入查找的编号
return e #返回e的信息
return None
def __findEmpByName(self,name):
en=[] #按姓名查找可能有多个员工,创建一个员工列表
for e in self.__emps:
if e.name==name:
en.append(e)
return en
def __findEmps(self):
print("【查找方式】\n1.按员工编号查找\n2.按姓名查找")
i=input("请输入选项代号:")
if i=="1":
num=input("请输入员工编号:")
emp=self.__findEmpByNum(num)
if emp!=None:
self.__showInfo(emp)
else:
print("此员工编号不存在!")
elif i=="2":
name=input("请输入员工姓名:")
emps=self.__findEmpByName(name)
if len(emps)>0:
self.__showInfo(emps)
else:
print("没有找到此姓名的员工!")
else:
print("代号无效,请核对!")
#逻辑程序
def sysMain(self):
while True:
# 1.提供系统选项
menu=self.__mainMenu()
# 2.根绝输入的选项进入不同功能
# 1)录入员工信息
if menu=="1":
self.__addEmp()
# 2)显示员工信息
elif menu=="2":
self.__showInfo(self.__emps)
# 3)查询(按编号、按姓名)
elif menu == "3":
self.__findEmps()
# 4)退出系统
elif menu=="4":
print("您已退出系统!")
break
else:
print("代号无效,请核对后重新输入!")
if __name__=="__main__":
es=EmpSys()
es.sysMain()
2.Yuangong.python
'''
【员工信息管理-1】
录入员工姓名、性别、存入对象-自动生成此员工工号
工号:年月日时分秒性别
生成工号代码:datetime.datetime.now().strftime("%Y%m%d%H%M%S")
'''
import datetime
class Employee:
#员工对象的构造方法
def __init__(self,name,sex):
self.name=name
self.sex=sex
self.__num=self.__createNum(sex)
#查看员工信息
def showSelf(self):
print(f"{self.__num}\t{self.name}\t{self.sex}")
#生成员工编号
def __createNum(self,sex):
num_str=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
if sex=="男":
num_str+="M"
else:
num_str+="F"
return num_str
#返回员工编号
def getNum(self):
return self.__num