函数之-------------------------HR管理操作

import os
import time
def emplog(content):       #记录操作的一个函数,在删除,添加,修改都会用到这一操作,
    f=open("emp.log",mode="a",encoding="utf-8")  #所以就提取出来
    f.write(content+"\n")
    f.flush()
    f.close()

def tianjia():
    while 1:
        id = input("请输入员工编号")   #添加之前要判断员工编号是否已经存在
        f=open("emp.db",mode="r",encoding="utf-8")
        for line in f:
            d=eval(line.strip())
            if d["id"]==id:
                print("编号已存在,请重新输入")
                break                   # 存在就跳出循环
        else:
            f=open("emp.db",mode="a",encoding="utf-8")  #不存在走这边
            name=input("请输入员工姓名")
            birthday=input("请输入员工生日")
            salary=input("请输入员工薪水") #把员工信息整合成一个字典
            dic={"id":id,"name":name,"birthday":birthday,"salary":salary}
            f.write(str(dic)+"\n")     #写入文件
            f.flush()
            f.close()
            print("添加成功")    #记录所进行的操作,必须在return之前,要不然不会记录
            emplog("管理员在%s添加了一名员工,该员工信息为%s"%(time.strftime("%Y-%m-%d %H:%M:%S"),str(dic )))
            return
        f.close()

def chakan():  #查看看功能
    f=open("emp.db",mode="r",encoding="utf-8")
    print("员工编号\t员工姓名\t员工生日\t员工薪水")
    for line in f:
        d=eval(line.strip())    #占位符的格式化输出
        print("%s\t%s\t%s\t%s"%(d["id"],d["name"],d["birthday"],d["salary"]))
        #print(f"{d['empno']}\t{d['name']}\t{d['salary']}\t{d['birthday']}\t")
        #真正的格式化输出
    f.close()

def shanchu():     #删除员工信息
    chakan()
    id=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:
            d=eval(line.strip())
            if d["id"]==id:   #删除要记录,也要在continue之前才会被记录到
                emplog("管理员在%s删除了一名员工,该员工信息为%s" % (time.strftime("%Y-%m-%d %H:%M:%S"), str(d)))
                continue
            f2.write(str(d)+"\n")
    os.remove("emp.db")
    os.rename("emp.db_副本","emp.db")

def xiugai():  #修改用工信息
    id=input("请输入你要修改的员工的编号")
    f=open("emp.db",mode="r",encoding="utf-8")
    for line in f:               #修改之前要判断员工是否存在
        d = eval(line.strip())
        if d["id"] == id:
            break            #存在就跳出循环,进行修改操作
    else :
        print("没有此员工")
        return
    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:
            d = eval(line.strip())
            if d["id"] == id:
                d["salary"]=salary
                emplog("管理员在%s修改了一名员工,该员工信息为%s" % (time.strftime("%Y-%m-%d %H:%M:%S"),str(d)))
            f2.write(str(d)+"\n")
    os.remove("emp.db")
    os.rename("emp.db_副本","emp.db")

while 1:
    menu=("添加员工信息","查看员工信息","删除员工信息","修改员工信息","退出")
    for i,j in enumerate(menu,1):
        print(i,j)
    option=input("请输入相应的编号进行操作")
    if option=="1":
        tianjia()
    elif option=="2":
        chakan()
    elif option=="3":
        shanchu()
    elif option=="4":
        xiugai()
    elif option=="5":
        print("系统退出")
        exit()
    else:
        print("没有这项操作")

 

posted @ 2018-11-18 14:48  阿布_alone  阅读(120)  评论(0编辑  收藏  举报
TOP