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 ...
随机推荐
- STL的一些基本操作
STL是一个神奇的东西,在NOIP考试中非常重要. 什么是STL? STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C+ ...
- HDU1505 City Game(算竞进阶习题)
写了1506顺便写下1505.. 还是求矩形面积,不过要预处理一下以每一个F为底的高度,然后想左右扩展到最大长度即为矩形的长.. 计算方法有点绕,令l[i]表示i的左边界,那么初始化l[i] = i. ...
- 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python ...
- hdu 2159 FATE (二维完全背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路: dp[j][k] 代表消耗耐久度j,干掉k个敌人获得的经验值. 状态转移方程为: dp[j] ...
- python学习日记(匿名函数)
匿名函数 简介 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数. python 使用 lambda 来创建匿名函数. 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数. lam ...
- P3613 睡觉困难综合征(LCT + 位运算)
题意 NOI2014 起床困难综合症 放在树上,加上单点修改与链上查询. 题解 类似于原题,我们只需要求出 \(0\) 和 \(2^{k - 1} - 1\) 走过这条链会变成什么值,就能确定每一位为 ...
- Logger.error方法之打印错误异常的详细堆栈信息
一.问题场景 使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便. 二.先放出结论 Logger类下有多个不同的error方法,根据传入参数的 ...
- Codeforces | CF1010C 【Border】
这道题大致题意是给定\(n\)个十进制整数和一个进制数\(k\),可以用无数多个给定的十进制整数,问这些十进制整数的和在模k意义下有多少种不同的结果(\(k\)进制下整数的最后一位就是这个数模\(k\ ...
- centos7安装mha4mysql
mysql搭建mha需要用的两个rpm包.(manager包和node包) 下载地址:https://download.csdn.net/download/dajdajdajdaj/10603389 ...
- 2017蓝桥杯 省赛C题(承压计算)
X星球的高科技实验室中整齐地堆放着某批珍贵金属原料. 每块金属原料的外形.尺寸完全一致,但重量不同.金属材料被严格地堆放成金字塔形. 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 ...