Python第三週做業--工資管理系統

工資管理系統
Alex 100000
Rain 80000
Egon 50000
Yuan 30000
-----以上是info.txt文件-----
實現效果:
從info.txt文件中讀取員工及其工資信息,最後將修改或增長的員工工資信息也寫入原info.txt文件。
效果演示:
1. 查詢員工工資
2. 修改員工工資
3. 增長新員工記錄
4. 退出
>>:1
請輸入要查詢的員工姓名(例如:Alex):Alex
Alex的工資是:100000。
1. 查詢員工工資
2. 修改員工工資
3. 增長新員工記錄
4. 退出
>>:2
請輸入要修改的員工姓名和工資,用空格分隔(例如:Alex 10):Alex 10
修改爲功!
1. 查詢員工工資
2. 修改員工工資
3. 增長新員工記錄
4. 退出
>>:3
請輸入要增長的員工姓名和工資,共空格分割(例如:Eric 100000):Eric 100000
增長成功!
1. 查詢員工工資
2. 修改員工工資
3. 增長新員工記錄
4. 退出
>>:4
再見!

info.txt 數據庫文件python

Alex 100000
Rain 80000
Egon 50000
Yuan 30000

hrms.py 運行文件git

#!/use/bin/env python
# -*- coding:utf-8 -*-
import os
def select(): # 查詢員工工資
    with open("info.txt", "r", encoding="utf-8") as f:
        fsb = f.readlines()
    user_choice = input("請輸入你要查詢的員工姓名:")
    for line in fsb:
        if user_choice.split()[0] in line.split()[0]:
            print(user_choice, "的工資是:",line.split()[1])

def update(): # 修改員工工資
    user_choice_1 = input("請輸入要修改的員工姓名和工資,用空格分隔(例如:Alex 10):").strip()
    with open("info.txt", "r", encoding="utf-8") as f,open("info.bak", "w", encoding="utf-8") as f1:
        for user_list in f:
            if user_list=="\n": # 判斷文本中有空行的話直接跳過
                continue
            if user_choice_1.split()[0] in user_list.split()[0]: #判斷輸入的員工是否在文本中
                user_list = user_list.replace(user_list.split()[1], user_choice_1.split()[1]) # 修改員工工資
            f1.write(user_list)# info.txt文本內容已經從新寫入info.bak
        f.close()# 關閉f
        f1.close()# 關閉f1
        os.remove("info.txt")# 刪除info.txt文件
        os.rename("info.bak","info.txt")# 把info.bak文本從新命名爲info.txt
    print("修改爲功")

def add(): # 添加新員工
    user_add = input("請輸入要增長的員工姓名和工資(例如:Eric 100000):")
    with open("info.txt", "a", encoding="utf-8") as f:
        # f.seek(0)
        f.write('\n' + user_add)
        print("添加成功")

def delete(): # 刪除員工
    user_choice = input("請輸入要刪除的員工姓名:").strip()
    with open("info.txt", "r", encoding="utf-8") as f, open("info.bak", "w", encoding="utf-8") as f1:
        for user_list in f:
            if user_list =="\n": # 判斷文本中有空行的話直接跳過
                continue
            if user_choice in user_list.split()[0]:  # 判斷輸入的員工是否在文本中
                continue # 直接跳過輸入的用戶,這樣也至關於刪除了
            f1.write(user_list) # 輸入的用戶直接跳過了,因此不會加載到文本中
        f.close() # 關閉f
        f1.close() # 關閉f1
        os.remove("info.txt") # 刪除info.txt文件
        os.rename("info.bak", "info.txt") # 把info.bak文本從新命名爲info.txt
    print("刪除成功")

while True:
    user_chioce = '''
    1.查詢員工工資
    2.修改員工工資
    3.增長新員工記錄
    4.刪除員工
    5.退出
    '''
    print(user_chioce)
    user_choice = input("請輸入你的選擇:")
    if user_choice.isdigit(): # 判斷輸入的是否數字類型
        if user_choice == '1':
            select() # 查詢
        elif user_choice == '2':
            update() # 修改
        elif user_choice == '3':
            add() # 添加
        elif user_choice == '4':
            delete() # 刪除
        elif user_choice == '5':
            exit() # 退出
        else:
            print("請輸入正確的選項")
    else:
        print("請輸入正確的選項")
相關文章
相關標籤/搜索