【19】Python工資管理系統

實驗名稱:工資管理系統
實驗要求:
Alex 100000
Rain 80000
Egon 50000
Yuan 30000
-----以上是info.txt文件-----
實現效果:
從info.txt文件中讀取員工及其工資信息,最後將修改或增長的員工工資信息也寫入原info.txt文件。
效果演示:python

  1. 查詢員工工資
  2. 修改員工工資
  3. 增長新員工記錄
  4. 刪除員工信息
  5. 退出

    :1
    請輸入要查詢的員工姓名(例如:Alex):Alex
    Alex的工資是:100000。app

  6. 查詢員工工資
  7. 修改員工工資
  8. 增長新員工記錄
  9. 刪除員工信息
  10. 退出

    :2
    請輸入要修改的員工姓名和工資,用空格分隔(例如:Alex 10):Alex 10
    修改爲功!ide

  11. 查詢員工工資
  12. 修改員工工資
  13. 增長新員工記錄
  14. 刪除員工信息
  15. 退出

    :3
    請輸入要增長的員工姓名和工資,共空格分割(例如:Eric 100000):Eric 100000
    增長成功!code

  16. 查詢員工工資
  17. 修改員工工資
  18. 增長新員工記錄
  19. 刪除員工信息
  20. 退出

    :4
    請輸入要增長的員工姓名和工資,共空格分割(例如:Eric 100000):Eric 100000
    增長成功!ip

  21. 查詢員工工資
  22. 修改員工工資
  23. 增長新員工記錄
  24. 刪除員工信息
  25. 退出

    :5
    再見!utf-8

代碼實現:rem

#!/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()
相關文章
相關標籤/搜索