1、思路分析

员工管理系统可依据职责不同分为3部分:
(1)数据存储
(2)业务实现
(3)数据呈现

2、员工数据存储问题

       我们首要要解决的问题就是数据的存储问题, 我们这里要考虑的是数据以什么样的容器来存储.
      从业务的删除操作、修改操作来讲, 我们都需要根据键(员工编号)快速定位员工信息, 达到修改和删除的目的.
       所学容器中, 字典可以根据某个不重复的关键字来快速定位元素. 所以我们使用字典存储员工信息, 字典的键为员工
       编号, 字典的值为员工信息. 存储结构如下:employee = {'1001': 员工信息, '1002': 员工信息}

3、业务实现步骤

(1) 首先显示操作菜单.
(2) 获得用户输入的菜单编号.
(3)根据菜单编号选择不同的操作执行.
(4)重复上面3个步骤.

4、搭建业务框架

yuangongs={}
def enum():
    pass

def add():
    pass

def delete():
    pass

def edit():
     pass

def show_single():
    pass

def show():
    pass

while True:
    enum()
    operate=input('请输入您的操作:')
    if operate=='1':
        print('添加员工信息')
        add()
    elif operate=='2':
        print('删除员工信息')
        delete()
    elif operate=='3':
        print('修改员工信息')
        edit()
    elif operate=='4':
        print('显示单个员工信息')
        show_single()
    elif operate=='5':
        print('显示所有员工信息')
        show()
    elif operate=='6':
        print('退出系统')
        break
    else:
        print('您输入的操作有误')
        break

5、显示菜单

def enum():
    print('*'*16+'员工管理系统'+'*'*16)
    print('1.添加员工信息')
    print('2.删除员工信息')
    print('3.修改员工信息')
    print('4.显示单个员工信息')
    print('5.显示所有员工信息')
    print('6.退出系统')
    print('*'*45)

6、新增操作

1. 获得输入的员工信息.
2. 将员工信息依据 "键:值" 存储到字典中, 每个字典表示一个员工的完整信息.
3. 以员工编号为键, 员工信息为值, 将员工信息存储到 yuangongs字典中.


#新增
def add():
    #1.员工编号,员工姓名,性别,薪资
    yuangong_id=input('请输入员工编号:')
     #判断员工编号是否存在,如果存在,拒绝添加,并提示员工编号重复,添加失败
    yuangong_all_key=yuangongs.keys()
    if yuangong_id in yuangong_all_key:
        print('工编号重复,添加失败')
        return
     #如果不重复进行下面操作
    #2.将员工信息保存在字典中
    #编号作为键,其他信息作为值
    yuangong_name=input('请输入员工姓名:')
    yuangong_sex = input('请输入员工性别:')
    yuangong_salary = input('请输入员工工资:')
    yuangong_info={'name':yuangong_name,'sex':yuangong_sex,'salary':yuangong_salary}
    yuangongs[yuangong_id]=yuangong_info
    print('员工编号为%s的信息添加成功' %yuangong_id)

7、删除操作

1. 获得要删除的员工编号.
2. 判断员工编号是否存在, 如果不存在则终止函数执行.
3. 如果员工信息存在, 则根据键删除员工信息.

#删除
def delete():

    #获取要删除的员工编号,
    yuangong_id=input('输入要删除的员工编号:')
    yuangong_all_key = yuangongs.keys()
    # 判断员工编号是否存在,不存在,提示错误信息,终止函数执行
    if yuangong_id not in yuangong_all_key:
        print('员工编号不存在')
        return
    #如果编号存在,删除对应员工编号信息
    del yuangongs[yuangong_id]
    print('员工编号%s的员工删除成功' %yuangong_id)

8、修改操作

1. 获得要修改的员工编号.
2. 判断员工编号是否存在, 如果不存在则终止修改函数执行.
3. 首先显示员工的对应信息, 并提示用户输入修改之后的值: 3.1 如果直接回车, 表示用户无任何输入, 则表示不修改. 3.2 如果用户输入值, 则将对应信息修改为新输入的值.

#修改员工信息
def edit():
    # 获取要修改的员工编号,
    yuangong_id = input('输入要修改的员工编号:')
    yuangong_all_key = yuangongs.keys()
    # 判断员工编号是否存在,不存在,提示错误信息,终止函数执行
    if yuangong_id not in yuangong_all_key:
        print('员工编号不存在')
        return
    # 如果编号存在,修改对应员工编号信息
    yuangong_name=input('姓名为:%s,您要修改为:' %(yuangongs[yuangong_id]['name']) )
    yuangong_sex = input('性别为:%s,您要修改为:' %(yuangongs[yuangong_id]['sex']))
    yuangong_salary = input('工资为:%s,您要修改为:' %(yuangongs[yuangong_id]['salary']))

    if yuangong_name !='':
        yuangongs[yuangong_id]['name']=yuangong_name
    if yuangong_sex != '':
        yuangongs[yuangong_id]['sex'] = yuangong_sex
    if yuangong_salary != '':
        yuangongs[yuangong_id]['salary'] = yuangong_salary

    print('员工编号为%s的信息修改成功' % yuangong_id)

9、显示单个员工信息

1. 获得要查看的员工编号.
2. 判断员工编号是否存在, 如果不存在则终止修改函数执行.
3. 取字典中对应的编号,显示其信息

def show_single():
    yuangong_id = input("请输入要显示的员工信息的编号:")
    yuangong_all_key = yuangongs.keys()
    # 判断员工编号是否存在,不存在,提示错误信息,终止函数执行
    if yuangong_id not in yuangong_all_key:
        print('员工编号不存在')
        return
    for yuangong, value in yuangongs.items():
        if yuangong ==yuangong_id:
           v = list(value.values())
           print('%s\t\t%s\t\t%s\t\t' % (v[0],v[1],v[2]))

10、显示所有员工信息

直接遍历 yuangongs 字典, 注意字典中存储的每一个元素都是一个键, 键为员工编号, 值为字典类型, 存储的是员工的信息.

#显示员工信息
def show():
    for yuangong in yuangongs.items():
        print('%s\t\t%s\t\t%s\t\t%s\t\t' %(yuangong[0],yuangong[1]['name'],yuangong[1]['sex'],yuangong[1]['salary']))

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐