一、问题描述
EMS(Employee Manager System 员工管理系统)
- 做命令行版本的员工管理系统
- 功能:
1.查询:显示当前系统当中的所有员工
2.添加: 将员工添加到当前系统中
3.删除: 将员工从系统当中删除
4.退出:退出系统
二、涉及知识点
- 用户输入数字,程序输出结果。涉及python输入输出模块。
- 程序自动进行下一轮,涉及 python 循环模块。
- 判断用户输入,涉及python 条件判断模块。
- 查询用户输入历史,涉及python 的列表模块。
- 查询、添加、删除、涉及到列表的操作。
三、代码构建
#显示页面信息
print('-'*20,'欢迎使用员工管理系统','='*20)
print('请选择你需要的操作:
1.查询员工
2.添加员工
3.删除员工
4.退出系统')
# 创建一个列表存储员工信息
emps = ['test1 18 男 陕西','test2 19 女 山西']
while True:
user_choose =(input('请输入[1-4]选择你需要的操作:'))
if user_choose == '1':
print('你正在进行查询员工操作
',"-"* 40)
print(f' 序号 姓名 年龄 性别 住址')
n = 1
for emp in emps :
print(f' {n} {emp}')
n += 1
elif user_choose == '2' :
print('你正在进行添加员工操作
',"-"* 40)
emp_name = input('请输入员工的姓名:')
emp_age = input('请输入员工的年龄:')
emp_gender = input('请输入员工的性别:')
emp_address = input('请输入员工的地址:')
emp = f'{emp_name} {emp_age} {emp_gender} {emp_address}'
# 显示一个提示信息
print('以下员工将被添加到系统中
','-'*62,'
姓名 年龄 性别 住址')
print(emp)
print('-'*62)
user_confirm = input('是否确认该操作[Y/N]:')
# 判断
if user_confirm == 'Y' or user_confirm == 'yes'or user_confirm == 'y' :
# 确认
emps.append(emp)
# 显示提示信息
print('添加成功!')
else :
# 取消操作
print('添加已取消!')
elif user_choose == '3':
print('你正在进行删除员工操作
',"-"* 40)
del_num = int(input('请输入要删除的员工的序号:'))
# 判断序号是否有效
if 0 < del_num <= len(emps) :
# 输入合法,根据序号来获取索引
del_i = del_num - 1
# 显示一个提示信息
print('以下员工将被删除')
print('-'*62)
print(' 序号 姓名 年龄 性别 住址')
print(f' {del_num} {emps[del_i]}')
print('-'*62)
user_confirm = input('该操作不可恢复,是否确认[Y/N]:')
# 判断
if user_confirm == 'Y' or user_confirm == 'yes' or user_confirm == 'y' :
# 删除元素
emps.pop(del_i)
# 显示提示
print('该员工已被删除!')
else :
# 操作取消
print('删除操作已取消!')
else :
# 输入有误
print('输入有误,请重输入你的选择!')
elif user_choose == '4' :
print('你即将退出员工管理系统,欢迎再次使用!')
break
else :
print('输入错误!请重新输入
',"="* 40)
四、运行调试
五、补充
1.这里使用列表的原因;
元组和字符串中不能添加新的内容,不能修改元组里面的非可变容器元素列表则可以随意修改其中的值。
2.为什么没有员工信息修改功能:
这个将使用字典来实现员工信息修改,在使用列表对员工信息修改时,如果信息较多,修改其中一个实现很麻烦,实现过程是 :输入修改的序列号,取出对应元素,对元素进行分解,然后用户输入的修改信息赋值给原来的这一部分信息,再进行拼接操作,最后放回原列表中。