【19】Python工资管理系统

发布时间:2019-09-20 07:25:50编辑:auto阅读(1518)

    实验名称:工资管理系统
    实验要求:
    Alex 100000
    Rain 80000
    Egon 50000
    Yuan 30000
    -----以上是info.txt文件-----
    实现效果:
    从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
    效果演示:

    1. 查询员工工资
    2. 修改员工工资
    3. 增加新员工记录
    4. 删除员工信息
    5. 退出

      :1
      请输入要查询的员工姓名(例如:Alex):Alex
      Alex的工资是:100000。

    6. 查询员工工资
    7. 修改员工工资
    8. 增加新员工记录
    9. 删除员工信息
    10. 退出

      :2
      请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):Alex 10
      修改成功!

    11. 查询员工工资
    12. 修改员工工资
    13. 增加新员工记录
    14. 删除员工信息
    15. 退出

      :3
      请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
      增加成功!

    16. 查询员工工资
    17. 修改员工工资
    18. 增加新员工记录
    19. 删除员工信息
    20. 退出

      :4
      请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
      增加成功!

    21. 查询员工工资
    22. 修改员工工资
    23. 增加新员工记录
    24. 删除员工信息
    25. 退出

      :5
      再见!

    代码实现:

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    import os
    
    ######查询操作######
    def select():
        name=input("请输入要查询的员工姓名(例如:Alex):").strip() #空格分段
        flag=False #判断条件
        with open("info.txt","r")as reads:
            for line in reads: #遍历
                if line.split()[0]==name:  ###[alex 1000],[Yuan 9999][0]==name
                    flag=True
                    print("员工信息",name,line.split()[1])  #[alex 1000][1]==1000
                else:  ###跳过,知道遍历结束为查询到,执行if not flag的判断
                    continue
        if not flag:
            print("\033[31;1m未找到%s员工信息\033[0m"%name)
    
    #####修改操作######
    def revise():
        reff=input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):").strip()  ##reff: "Alex 10000"
        reff_list=reff.split() #reff_list : ['Alex','1000']  class list
        flag=False
        with open("info.txt","r")as reads,open("info",'w')as writes:
            for line in reads: #遍历  line "alex 10000'
                if line.split()[0] == reff_list[0]:   ##line "alex" == reff_list ["alex",""]
                    writes.write(reff+"\n")   #修改成功,True
                    flag=True
                else:###
                    writes.write(line)
    
        os.remove("info_bak.txt")
        os.rename("info.txt","info_bak.txt")
        os.rename("info","info.txt")
        if flag:
            print("修改成功")
        else:
            print("未找到需要修改的\033[31;1m%s\033[0m员工信息" % reff)
    
    def app():
        rtff=input("请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):").strip() ##以空格作为分隔符
        rtff_list=rtff.split()
        flag=False
        with open("info.txt","r")as reads:
            for line in reads:
                if line.split()[0] == rtff_list[0]: ##当相同时,print 以重复。
                    flag = True
                else:
                    continue
        if flag:
            print("\033[31;1m该%s用户已存在\033[0m"%rtff)
        else:
            with open("info.txt", "a") as writes:
                writes.write("\n"+rtff)
            print("增加成功")
    
    ######删除操作#######
    def delete():
        name=input("请输入要删除的员工姓名(例如:Alex):").strip()
        flag=False
        with open("info.txt","r") as reads,open("info","w")as writes:
            for line in reads:
                if line.split()[0]==name:
                    flag=True
                    continue
                else:
                    writes.write(line)
        os.remove("info_bak.txt")
        os.rename("info.txt", "info_bak.txt")
        os.rename("info", "info.txt")
        if flag:
            print("删除成功")
        else:
            print("未找到需要修改的\033[31;1m%s\033[0m员工信息" % name)
    
    #####菜单#####
    def main():
        menu={
            "1":select,
            "2":revise,
            "3":app,
            "4":delete,
            "5":exit,
        }
        while True:
            print("""
            请选择:
                1,查询员工信息
                2,修改员工工资
                3,增加员工信息
                4,删除员工信息
                5,退出工资系统
            """)
            choice=input(">>>").strip()  ##choice :"1,2,3,4"
            if choice in menu:  ###这里是menu字典的key值等于choice
                menu[choice]() ###进入对应的value
    
    if __name__ == "__main__":
        main()

关键字

上一篇: RH436 UNIT 3 UDEV

下一篇: Python Scapy ARP