![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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()
作业内容:
从info文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info文件
1.查询员工工资
2.修改员工工资
3.添加新员工记录
4.删除员工记录
5.退出
实现需求:
实现对文件做增、删、改、查的操作
代码结构:
1.查询:
员工姓名不存在,重新输入
员工姓名存在,输出其对应的工资
2.修改:
员工姓名不存在,重新输入
员工姓名存在,修改工资,把修改前、修改中、修改后的信息一起写入到新文件
删除原文件,重命名新文件
3.添加:
员工姓名存在,重新输入
员工姓名不存在,添加信息到文件
4.删除:
员工姓名不存在,重新输入
员工姓名存在,删除信息,把剩余信息写入到新文件
删除原文件,重命名新文件
5.退出:退出操作;
直接退出程序
工资管理流程图:
运行效果: