Python作业工资管理系统(第三周)
作业内容:
实现效果:
从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
效果演示:
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
思路:
进行文件读写,将读或写的数据利用strip和split方法,对文件内容进行增改查
代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Sean_Yao
"""工资管理系统作业"""
import sys
with open("info.txt", 'r', encoding="utf-8") as f:
file = list(f)
msg = '''
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
'''
exit_flag = False
while not exit_flag:
print(msg)
index_user_choice = input('>>:')
if index_user_choice == '':
with open("info.txt", 'r', encoding="utf-8") as f:
user_salary = f.readlines()
username = input("请输入要查询的员工姓名(例如:Alex):")
for user_line in user_salary:
(user,salary) = user_line.strip('\n').split()
if username == user:
print('%s 的工资是:%s ' % (username,salary))
pass elif index_user_choice == '':
old_user = input("输入员工姓名(例如:Alex):").strip()
for i in file:
file = i.strip().split()
if old_user in file:
old_salary = file[1]
new_user,new_salary = input("请输入更改后员工姓名和工资,用空格分隔(例如:Alex 10):").strip().split()
with open("info.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
with open("info.txt", "w", encoding="utf-8") as f_a:
for line in lines:
if old_user in line:
line = line.replace(old_user,new_user)
f_a.write(line)
f_a.close()
with open("info.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
with open("info.txt", "w", encoding="utf-8") as f_b:
for line in lines:
if new_user in line:
line = line.replace(old_salary,new_salary)
f_b.write(line)
f_b.close()
print("修改成功") elif index_user_choice == '':
f = open('info.txt', 'r+', encoding='utf-8')
user_salary = f.readlines()
new_user_new_salary = input("请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):")
f.write(new_user_new_salary + '\n')
f.close()
elif index_user_choice == '':
sys.exit("再见")
else:
print('输入操作无效!')
info.txt文件内容:
Alex 100000 Rain 80000 Egon 50000 Yuan 30000
Python作业工资管理系统(第三周)的更多相关文章
- Python 学习日记(第三周)
知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...
- python作业ATM(第五周)
作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...
- Python数据分析与展示[第三周](pandas简介与数据创建)
第三周的课程pandas 分析数据 http://pandas.pydata.org import pandas as pd 常与numpy matplotlib 一块定义 d=pd.Series(r ...
- python作业学员管理系统(第十二周)
作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学 ...
- python作业:购物车(第二周)
一.作业需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4 ...
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- 企业管理系统——第三周需求&原型改进_张正浩,黄锐斌
企业管理系统——需求&原型改进,架构设计,测试计划 组员:张正浩,黄锐斌 一.需求&原型改进 1.给目标用户展现原型,与目标用户进一步沟通理解需求 我们的目标用户是公司管理员 场景:随 ...
- python作业堡垒机(第十三周)
作业需求: 1. 所有的用户操作日志要保留在数据库中 2. 每个用户登录堡垒机后,只需要选择具体要访问的设置,就连接上了,不需要再输入目标机器的访问密码 3. 允许用户对不同的目标设备有不同的访问权限 ...
- python作业三级菜单day1(第一周)
一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二三级菜单文 ...
随机推荐
- 虚拟机下安装CentOS6.5系统教程
虚拟机下安装CentOS6.5系统教程 时间:2014-12-09 01:40来源:linuxdown.net 作者:linuxdown.net 举报 点击:15315次 其实通过VM安装虚拟机还是蛮 ...
- (转)Linux 命令--查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- NoSQL - Redis应用场景
问题的引入 DB(Oracle.MySQL.Postgresql等)+Memcached 这种架构模式在我们生产环境中十分常见,一般我们通过Memcached将热点数据加载到cache,应用 ...
- 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...
- [洛谷P4563][JXOI2018]守卫
题目大意:有一段$n(n\leqslant5\times10^3)$个点的折线,特殊点可以覆盖它以及它左边的它可以“看见”的点(“看见”指连线没有其他东西阻挡).定义$f_{l,r}$为区间$[l,r ...
- Dirichlet 卷积学习笔记
Dirichlet 卷积学习笔记 数论函数:数论函数亦称算术函数,一类重要的函数,指定义在正整数集上的实值或复值函数,更一般地,也可把数论函数看做是某一整数集上定义的函数. 然而百科在说什么鬼知道呢, ...
- POJ.3087 Shuffle'm Up (模拟)
POJ.3087 Shuffle'm Up (模拟) 题意分析 给定两个长度为len的字符串s1和s2, 接着给出一个长度为len*2的字符串s12. 将字符串s1和s2通过一定的变换变成s12,找到 ...
- 【学习笔记】ac自动机&fail树
定义 解决文本串和多个模式串匹配的问题: 本质是由多个模式串形成的一个字典树,由tie的意义知道:trie上的每一个节点都是一个模式串的前缀: 在trie上加入fail边,一个节点fail边指向这个节 ...
- 【arc080F】Prime Flip
Portal --> arc080_f Solution 这题的话..差分套路题(算吗?反正就是想到差分就很好想了qwq) (但是问题就是我不会这种套路啊qwq题解原话是:&quo ...
- 网络编程----粘包以及粘包问题的解决、FTP上传
一.粘包现象 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意: res=subprocess.Popen(cmd.decode('u ...