第三周 工资管理系统
实现如下功能:
#!/usr/bin/env python3 # Author:zhangyang # --*-- coding: utf-8 --*-- import os def file_test(): with open("The salary management", 'r+', encoding="utf-8") as f: file=list(f) #str-->list return file#['Alex 100000\n', 'Rain 80000\n', 'Egon 50000\n', 'Yuan 30000\n'] # file_test() def server(): #启动服务窗口 for i in range(1): print("1.查询员工工资\n2.修改员工工资\n3.增加新员工记录\n4.退出") return i #进入主程序 while 1: print('-----Welcome to the payroll management system-----') server() number=input('请选择你的服务:') if number.isdigit(): number=int(number) file=file_test() #文件内容 if number>0 and number<5: #查询功能 if number==1: print('---欢迎进入查询界面---') name=input('请输入要查询的员工姓名:').strip() for i in file: file=i.strip().split() #file=['Alex','100000'] if name in file: #如果输入的名字在文件中有 break for i in file: if name in file: salary = file[1] print('%s的工资是:%s'%(name,salary)) break else: print('没有此用户!') #修改功能 elif number == 2: print('---欢迎进入修改界面---') name_old = input('请输入你要修改的员工姓名:') for i in file: #遍历这个文件 #['Alex 100000'] file=i.strip().split() #字符串转为list-->file=['Alex','100000'] if name_old in file: #如果在输入的姓名在文件中 print(file) salary_old=file[1] #记录这个员工未修改的工资 print('目前%s的工资是:%s'%(name_old,salary_old)) name_alter,salary_alter=input('请输入你要修改员工的姓名和工资,用空格分割:').strip().split() #接受两个变量 #打开文件读取 with open("The salary management", 'r', encoding="utf-8")as f ,\ open("The salary management.bak", 'w', encoding="utf-8")as f_a: lines=f.readlines() for line in lines: #line=['Alex 10000'] if name_old and salary_old in line: #['Alex', '100000'] #print(line) line=line.replace(line,(name_alter+' '+salary_alter)+'\n') #print(line) f_a.write(line) os.remove('The salary management') os.rename('The salary management.bak','The salary management') print('修改成功!') break else:print('无此用户,请重试...') #增加功能 elif number==3: print('---欢迎进入增加界面---') try: #判断参数数量 name_new,salary_new=input('请输入你要新增员工的姓名和工资金额(格式:员工 金额):').strip().split() except ValueError: #如果错误的话,执行这一句 print('输入的参数不够,请重试!!') else: #如果正确执行下面语句 if name_new.isalpha() and salary_new.isdigit(): for i in file: file=i.strip().split() if name_new not in file: with open("The salary management", 'a+', encoding="utf-8") as f_b: f_b.write("%s %s" % (name_new,salary_new)) print('新增成功!') break else:print('新增内容数据类型不对,请重新输入!') #退出功能 elif number == 4: print('\033[32;0m谢谢使用,再见!\033[;0m') break else:print('请输入正确的序列号') else:print('请输入整数数据类型')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)