python第二次周末大作业
题目
'''
HR人力资源管理.
1. 菜单: ("查看员⼯信息","添加员⼯信息", "修改员⼯信息", "删除员⼯信息", "退出")
2. 添加员⼯信息:
⽤户输⼊员⼯的基本信息(id, name, birthday, salary, input_time),
将员⼯信息写⼊到⽂件emp.db⽂件内
3. 修改员⼯信息:
显示所有员⼯信息. 然后让⽤户选择要修改的员⼯的id. 然后让⽤户输⼊员⼯的
⼯资, 将员⼯的⼯资修改为⽤户输⼊的⼯资. 其余内容不做改动
4. 删除员⼯信息:
显示所有员⼯信息. 然后⽤户选择要删除的员⼯id, 根据⽤户输⼊的id删除该员
⼯的全部信息
5. 查看员⼯信息:
显示出所有员⼯的基本信息.
以上操作都需要围绕着emp.db来完成.
关于时间的处理: ⾃⼰搜索time模块. 主要是针对input_time. birthday不⽤处理. ⽤户
输⼊什么就是什么.
扩展(升级题):
⽤户的每⼀次操作成功都要将⽤户执⾏的操作记录在emp.log⽂件中(查看员⼯信息除外).
例如:
⽤户选择"添加员⼯信息". 当添加动作执⾏完毕, 在emp.log中记录⼀句话: 管理
员在xxxx-xx-xx hh:mm:ss时间执⾏了添加员⼯信息操作. 添加的员⼯信息为: xxx
以此类推. 每次操作成功后都要记录信息. (查看员⼯信息除外)
emp.db ⽂件中的内容格式⾃⼰定义. 这个没有要求. 但是要符合你⾃⼰的设计需求.
'''
import time
import os
print("欢迎来到HR⼈⼒资源管理系统")
menu = ("查看员⼯信息", "添加员⼯信息", "修改员⼯信息", "删除员⼯信息", "退出")
# ("查看员⼯信息","添加员⼯信息", "修改员⼯信息", "删除员⼯信息", "退出")
import time
import os
def log(content):
f = open("emp.log", mode="a", encoding="utf-8")
f.write(content+"\n")
f.flush()
f.close()
def chakan(): # 第二个
print("编号\t\t名字\t\t生日\t\t收入\t\t录入时间")
f = open("emp.db", mode="r", encoding="utf-8")
for line in f:
lst = line.strip().split("_")
print(lst[0]+"\t"+lst[1]+"\t"+lst[2]+"\t"+lst[3]+"\t"+lst[4])
print("查看完毕!!!!")
def tianjia(): # 第一个
flag = True
while flag:
id = input("请输入员工的id:")
# 判定id是否可用
f = open("emp.db", mode="r", encoding="utf-8")
for line in f:
if id == line.strip().split("_")[0]:
print("对不起. id已经重复了. 不可用. 请重新输入")
break
else:
print("id不重复,可以使用")
flag = False
name = input("请输入员工的name:")
birthday = input("请输入员工的birthday:")
salary = input("请输入员工的salary:")
input_time = time.strftime("%Y-%m-%d %H:%M:%S") # 获取系统时间
f = open("emp.db", mode="a", encoding="utf-8")
f.write(id+"_"+name+"_"+birthday+"_"+salary+"_"+input_time+"\n")
f.flush()
f.close()
print("添加成功!!!")
log(f"管理员xxx在{input_time}添加了一个员工, 该员工信息为: {id}_{name}_{birthday}_{salary}_{input_time}")
def xiugai(): # 第四个
flag = True
while flag:
id = input("请输入你要修改的员工的id:")
f = open("emp.db", mode="r", encoding="utf-8")
for line in f:
lst = line.strip().split("_")
if id == lst[0]:
print("当前员工的信息是: %s\t%s\t%s\t%s\t%s" % (lst[0], lst[1], lst[2],lst[3],lst[4]) )
flag = False
break
else:
print("id不存在,请重新输入")
f.flush()
f.close()
salary = input("请输入该员工的最新工资")
with open("emp.db", mode="r", encoding="utf-8") as f1, \
open("emp.db_副本", mode="w", encoding="utf-8") as f2:
for line in f1:
lst = line.strip().split("_")
if id == lst[0]:
line = f"{id}_{lst[1]}_{lst[2]}_{salary}_{time.strftime('%Y-%m-%d %H:%M:%S')}"
f2.write(line) # 修改
os.remove("emp.db")
os.rename("emp.db_副本", "emp.db")
print("修改员工信息完毕!!!")
def shanchu(): # 第三个
id = input("请输入你要删除的员工的id")
with open("emp.db", mode="r", encoding="utf-8") as f1, \
open("emp.db_副本", mode="w", encoding="utf-8") as f2:
for line in f1:
if id == line.strip().split("_")[0]:
continue
f2.write(line) # 不要删除的数据
os.remove("emp.db")
os.rename("emp.db_副本", "emp.db")
print("删除完毕!!!!")
menu = ("查看员工信息","添加员工信息", "修改员工信息", "删除员工信息", "退出")
while 1:
for i in range(len(menu)):
print(i + 1, menu[i])
n = input("请输入你要执行的菜单:")
if n == '':
chakan()
elif n == '':
tianjia()
elif n == "":
xiugai()
elif n == "":
shanchu()
elif n == "":
print("程序退出")
exit()
else:
print("对不起. 您输入的菜单不存在. 请重新输入")
python第二次周末大作业的更多相关文章
- python第三次周末大作业
''' s18第三周周末⼤作业 模拟博客园系统: 1. 启动程序, 显⽰菜单列表 菜单: 1. 登录 2. 注册 3. ⽂章 4. ⽇记 5. 退出 2. ⽤户输入选项, ⽂章和⽇记必须在登录后才可以 ...
- python第一次周末大作业
#############################作业############################# 1. 三次登录验证 完成用户登录验证 要求: 1. 系统自动生成4位随机数. ...
- python第四次周末大作业
''' 选课系统开发 系统登录需要有两类用户:学生.管理员,针对不用用户提供不同功能: 学生用户 :对于学生用户来说,登陆之后有三个功能 1.查看所有课程 2.选择课程 3.查看所选课程 4.删除已选 ...
- python第二十四天-----作业终于完成啦
作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流 ...
- python第二十二天-----在做作业当中............
作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流水提供还款接 ...
- 数据库大作业--由python+flask
这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...
- 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析
作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...
- 【大数据应用技术】作业十二|Hadoop综合大作业
本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 前言 本次作业是在<爬虫大作业>的基础上进行的 ...
- python九周周末总结
python九周周末总结 UDP协议 udp协议的交互模式服务端不需要考虑客户端是否退出,你发多少那么他就会按照你发的东西直接去传输给客户端不存在黏包现象 服务端: import socket ser ...
随机推荐
- P1216 数字三角形
题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大.每一步可以走到左下方的点也可以到达右下方的点. 7 3 8 8 1 0 2 7 4 4 4 5 ...
- codeforces1096G Lucky Tickets
题目链接:https://codeforces.com/problemset/problem/1096/G 大意:给出\(k\)个数码\(d_1,d_2,\cdots,d_k\),构造一个由这\(k\ ...
- 【CF809E】Surprise me! 树形DP 虚树 数学
题目大意 给你一棵\(n\)个点的树,每个点有权值\(a_i\),\(a\)为一个排列,求 \[ \frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1}^n \varphi(a_ ...
- 【hdu6185】Covering(骨牌覆盖)
2017ACM/ICPC广西邀请赛-重现赛1004Covering 题意 n*4的格子,用1*2和2*1的砖块覆盖.问方案数(mod 1e9+7).(n不超过1e9) 题解 递推了个式子然后错位相减. ...
- 【BZOJ5285】[HNOI2018]寻宝游戏(神仙题)
[BZOJ5285][HNOI2018]寻宝游戏(神仙题) 题面 BZOJ 洛谷 题解 既然是二进制按位的运算,显然按位考虑. 发现这样一个关系,如果是\(or\)的话,只要\(or\ 1\),那么无 ...
- 【Luogu2197】NIM游戏(博弈论)
题面 洛谷 题解 \(Nim\)游戏模板题 #include<iostream> #include<cstdio> #include<cstdlib> using ...
- 「SCOI2014」方伯伯的 OJ 解题报告
「SCOI2014」方伯伯的 OJ 和列队有点像,平衡树点分裂维护即可 但是需要额外用个set之类的对编号查找点的位置 插入完了后记得splay,删除时注意特判好多东西 Code: #include ...
- 软硬连接ln
软硬连接Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引 ...
- luogu5019 [NOIp2018]铺设道路 (贪心)
和NOIp2013 积木大赛一模一样 我在堆一格的时候,我把它尽量地往右去延伸 于是如果对于一个i,a[i-1]<a[i],那i在之前一定只堆过a[i-1]那么多,所以要再堆a[i]-a[i-1 ...
- [Vani有约会]雨天的尾巴(树上差分+线段树合并)
首先村落里的一共有n座房屋,并形成一个树状结构.然后救济粮分m次发放,每次选择两个房屋(x,y),然后对于x到y的路径上(含x和y)每座房子里发放一袋z类型的救济粮. 然后深绘里想知道,当所有的救济粮 ...