作业需求:
工资管理系统
Alex 100000
Rain 80000
Egon 50000
Yuan 30000
-----以上是info.txt文件-----
实现效果:
从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
效果演示:
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:1
请输入要查询的员工姓名(例如:Alex):Alex
Alex的工资是:100000。
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:2
请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):Alex 10
修改成功!
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:3
请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
增加成功!
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:4
再见!
流程图:
代码:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Lou # 导入模块 import sys import os # 员工信息存储文件 filename = ‘info.txt‘ # 过滤空行后的员工信息文件 new_filename = ‘new_info.txt‘ # 员工姓名列表 info_dict = {} # 员工工资列表 user_dict = {} # 提取用户信息 def info(): with open(filename, ‘r‘,encoding=‘utf-8‘) as f: for i in f: if not i.startswith(‘\\n‘): i = i.strip() # 去除前后空格 i = i.split(‘ ‘) #根据空格切片 info_dict[i[0]] = i[1] # 把员工和工资信息加入字典 # 删除和移动文件 def file(): os.remove(filename) # 把原文件删除 os.rename(new_filename, filename) # 把新文件重命名为原文件名 # 查询 def select(): while True: info() user_info = input(‘请输入员工姓名:‘).strip() if user_info in info_dict.keys(): print(‘%s的工资是:%s‘ % (user_info, info_dict[user_info])) break else: print(‘用户不存在!!!‘) # 新增 def insert(): while True: info() user_info = input(‘请输入要增加的员工姓名和工资:‘).strip() user_list = user_info.split(‘ ‘) # 把新员工信息转为列表 # 把新员工的姓名和工资加入字典 user_dict[user_info.split(‘ ‘)[0]] = user_info.split(‘ ‘)[1] # 当新员工在当前员工信息文件中不存在 if user_list[0] not in info_dict.keys(): # 写入新员工信息到文件中 with open(filename, ‘a+‘) as f: f.write(‘\\n‘+ user_info) print(‘%s 添加成功!‘ % user_list[0]) break else: # 当新员工在当前员工信息文件中存在 print(‘用户已存在!!!‘) info_dict.clear() # 修改 def update(): while True: info() user_info = input(‘请输入要修改的员工姓名和工资:‘).strip() # 把新员工信息转为列表 user_list = user_info.split(‘ ‘) # 当前需要修改的员工信息 user_now = ‘%s %s‘ % (user_list[0], info_dict[user_list[0]]) # 当新员工在当前员工信息文件中存在 if user_list[0] in info_dict.keys() : with open(filename, ‘r‘,encoding=‘utf-8‘) as fr, open(new_filename, ‘w‘,encoding=‘utf-8‘) as fw: for i in fr: if i.strip() == user_now: fw.write(user_info) else: fw.write(i) file() print(‘%s 修改成功!‘ % user_list[0]) break else: # 当新员工在当前员工信息文件中不存在 print(‘用户不存在!!!‘) info_dict.clear() # 删除 def delete(): while True: info() user_info = input(‘请输入要删除的员工姓名:‘).strip() # 当前需要修改的员工信息 user_now = ‘%s %s‘ % (user_info, info_dict[user_info]) # 当删除的员工在当前员工信息文件中存在 if user_info in info_dict.keys(): with open(filename, ‘r‘,encoding=‘utf-8‘) as fr, open(new_filename, ‘w‘,encoding=‘utf-8‘) as fw: for i in fr: if i.strip() == user_now: continue else : fw.write(i) file() print(‘%s 删除成功!‘ % user_info) break else: # 当删除的员工在当前员工信息文件中不存在 print(‘用户不存在!!!‘) info_dict.clear() choose_msg = ‘‘‘ 1: 查询员工工资 2: 增加新员工记录 3: 修改员工工资 4: 删除员工信息 5: 退出 ‘‘‘ salary = { ‘1‘: select, ‘2‘: insert, ‘3‘: update, ‘4‘: delete, ‘5‘: sys.exit, } while True: print(choose_msg) # 选择操作 choose = input(‘\\033[31;1m请输入操作选项:\\033[0m‘).strip() if choose not in salary.keys(): continue salary[choose]()