zoukankan      html  css  js  c++  java
  • 函数之-------------------------HR管理操作

    import os
    import time
    def emplog(content):       #记录操作的一个函数,在删除,添加,修改都会用到这一操作,
        f=open("emp.log",mode="a",encoding="utf-8")  #所以就提取出来
        f.write(content+"
    ")
        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)+"
    ")     #写入文件
                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("员工编号	员工姓名	员工生日	员工薪水")
        for line in f:
            d=eval(line.strip())    #占位符的格式化输出
            print("%s	%s	%s	%s"%(d["id"],d["name"],d["birthday"],d["salary"]))
            #print(f"{d['empno']}	{d['name']}	{d['salary']}	{d['birthday']}	")
            #真正的格式化输出
        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)+"
    ")
        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)+"
    ")
        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("没有这项操作")
  • 相关阅读:
    CSS中em,rem的区别
    Bootstrap自学笔记
    lable标签的妙用
    Ajax
    基础小知识杂烩
    用CSS3画出一个立方体---转
    CSS3方法总汇
    HTML5 DOM扩展
    VS2010在C盘下生成的.iTrace文件解决办法 ,c盘偷偷的减少,心很烦啊,找了半天才知道是这个问题
    伪静态
  • 原文地址:https://www.cnblogs.com/tjp40922/p/9977921.html
Copyright © 2011-2022 走看看