import os
def  query():
    '''查询员工信息'''
    name = input('请输入要查询员工姓名:').strip()
    flag = False
    with open('info','r',encoding='utf-8')as readings:
        lists=[]
        for line in readings:
            lists.append(line.split())
    dicts={}
    for i in lists:
        dicts[i[0]]=i[1]
    if name in dicts:#判断提取信息
        flag = True
        print('%s的工资是:%s'%(name,dicts[name]))
    if not flag:
        print('\033[31;1m未查到员工%s信息\033[0m'%name)
def modify():
    flag = False
    lists=[]
    with open('info','r',encoding='utf-8')as readings:
        for line in readings:
            lists.append(line.split())
    dicts={}
    for i in lists:
        dicts[i[0]]=i[1]
    modify_name = input('请输入要修改的员工姓名:').strip()
    if  modify_name in dicts:
        modify_salary = input('请输入修改的工资:').strip()
        dicts[modify_name]=modify_salary
        with open('info_1', 'w', encoding='utf-8')as writings:
            for key,value in dicts.items():
                writings.write(key)
                writings.write(' ')
                writings.write(value)
                writings.write('\n')
                flag = True
    os.remove('info_bak')
    os.rename('info','info_bak')
    os.rename('info_1','info')
    if flag:
        print('\033[1;31m添加成功!!!\033[0m')
    else:
        print('\033[31;1m未查到员工%s信息\033[0m'%modify_name)

def add():
    flag = False
    lists = []
    with open('info', 'r', encoding='utf-8')as readings:
        for line in readings:
            lists.append(line.split())
    dicts = {}
    for i in lists:
        dicts[i[0]] = i[1]
    add_name = input('请输入要添加的新员工姓名:').strip()
    if add_name not in dicts:
        add_salary = input('请输入修改的工资:').strip()
        dicts[add_name] = add_salary
        add_staff = (add_name + ' ' + add_salary)
        with open('info', 'a', encoding='utf-8')as writings:
            writings.seek(0)
            writings.write(add_staff+'\n')
            flag = True
            print('\033[1;31m添加成功!!!\033[0m')
    else:
        print('\033[1;31m员工已存在!!!\033[0m')
def delete():#用字典实现删除:delete dict[name]
    flag = False
    lists = []
    with open('info', 'r', encoding='utf-8')as readings:
        for line in readings:
            lists.append(line.split())
    dicts = {}
    for i in lists:
        dicts[i[0]] = i[1]
    delete_name = input('请输入要删除的员工姓名:').strip()
    if delete_name in dicts:
        del dicts[delete_name]
        with open('info_1', 'w', encoding='utf-8')as writings:
            for key,value in dicts.items():
                writings.write(key)
                writings.write(' ')
                writings.write(value)
                writings.write('\n')
                writings.seek(0,2)
        print('\033[1;31m删除成功!!!\033[0m')
    else:
        print('\033[1;31m未找到员工%s的信息!!!\033[0m' % delete_name)


    os.remove('info_bak')
    os.rename('info','info_bak')
    os.rename('info_1','info')

def main():
    action_dict={
        '1':query,
        '2':modify,
        '3':add,
        '4':delete,
        '5':exit
    }
    print('''
    工资管理系统
       1.查询员工工资
       2.修改员工工资
       3.添加新员工记录
       4.删除员工记录
       5.退出
       ''')
    while True:
        choice = input('>>>').strip()
        if choice in action_dict:
            action_dict[choice]()
if __name__ == '__main__':
    main()
View Code

作业内容:

从info文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info文件
1.查询员工工资
2.修改员工工资
3.添加新员工记录
4.删除员工记录
5.退出

实现需求:

实现对文件做增、删、改、查的操作
代码结构:
1.查询:

员工姓名不存在,重新输入
员工姓名存在,输出其对应的工资
2.修改:

员工姓名不存在,重新输入
员工姓名存在,修改工资,把修改前、修改中、修改后的信息一起写入到新文件
删除原文件,重命名新文件
3.添加:

员工姓名存在,重新输入
员工姓名不存在,添加信息到文件

4.删除:

员工姓名不存在,重新输入
员工姓名存在,删除信息,把剩余信息写入到新文件
删除原文件,重命名新文件
5.退出:退出操作;

直接退出程序
工资管理流程图:

运行效果:

posted on 2017-08-21 10:37  鱼非鱼123  阅读(400)  评论(0编辑  收藏  举报