• 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+"
    ")
        f.flush()
        f.close()
    
    def chakan(): # 第二个
        print("编号		名字		生日		收入		录入时间")
        f = open("emp.db", mode="r", encoding="utf-8")
        for line in f:
            lst = line.strip().split("_")
            print(lst[0]+"	"+lst[1]+"	"+lst[2]+"	"+lst[3]+"	"+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+"
    ")
        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	%s	%s	%s	%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 == '1':
            chakan()
        elif n == '2':
            tianjia()
        elif n == "3":
            xiugai()
        elif n == "4":
            shanchu()
        elif n == "5":
            print("程序退出")
            exit()
        else:
            print("对不起. 您输入的菜单不存在. 请重新输入")
    不怕大牛比自己牛,就怕大牛比自己更努力
  • 相关阅读:
    ejs
    appcan.slider.js探索
    js语法重点
    canvas动画
    canvas绘图
    Bootstrap 表单
    模态框
    Node.js EventEmitter(事件队列)
    Node.js 事件循环
    react native 页面跳转
  • 原文地址:https://www.cnblogs.com/zaizai1573/p/10182066.html
Copyright © 2020-2023  润新知