1. 程式人生 > >老男孩Day3作業:工資管理系統

老男孩Day3作業:工資管理系統

當前 chan 輸入 github ref 函數 txt文件 nes 第三周

作業需求:

1、從info.txt文件中讀取員工及其工資信息,最後將修改或增加的員工工資信息也寫入原info.txt文件。

2、能增查改員工工資

3、增、改員工工資用空格分隔

4、實現退出功能

1)編寫思路

編寫思路參考下面GitHub鏈接中的流程圖

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/HomeWork/OB%2423%259IE%24XR8D59IN0%7B%24SJ.jpg

2)具體實現

#-*- Coding:utf-8 -*-
# Author: D.Gray
‘‘‘
作業需求
1、從info.txt文件中讀取員工及其工資信息,最後將修改或增加的員工工資信息也寫入原info.txt文件。
2、能增查改員工工資
3、增、改員工工資用空格分隔
4、實現退出功能
‘‘‘
import sys,os,re

operation_lists = ‘‘‘1.查詢工資
2.修改工資
3.增加新員工記錄
4.刪除員工信息
5.退出‘‘‘
user_dict = {}                  #定義一個存儲員工姓名及工資的空字典
def user_information():
    
‘‘‘定義一個員工信息函數‘‘‘ with open(info,r) as f: for i in f: i = i.strip() #剔除字符串中的前後空格和換行 user_dict[i.split()[0]] = i.split()[1] #將員工姓名及工資存儲到user_dict字典中,i.split()[0]=員工姓名 作為鍵 #i.split()[1]=員工工資 作為值 print
(當前員工姓名:,i.split()[0]) def user_operations(): ‘‘‘定義一個用戶操作的函數‘‘‘ while True: print(operation_lists) user_operation = input(請選擇操作編號>>>:) if user_operation.isdigit(): user_operation = int(user_operation) if user_operation > 5: print(\033[31;1m請輸入有效操作編號\033[0m) if user_operation == 1: user_enquiries() if user_operation == 2: salary_change() if user_operation == 3: add_users() if user_operation == 4: del_users() if user_operation == 5: sys.exit(程序退出) else: print(\033[31;1m請輸入有效操作編號\033[0m) def user_enquiries(): ‘‘‘定義一個用戶查詢的函數‘‘‘ while True: user_information() enquirie_name = input(請輸入要查詢的員工姓名(例如:Alex):) if enquirie_name.capitalize() in user_dict: #將輸入的員工姓名首字母變大寫,方便用戶輸入 print(\033[32;1m%s\033[0m 工資為: \033[32;1m%s\033[0m元 %(enquirie_name.capitalize(),user_dict[enquirie_name.capitalize()])) break else: print(\033[31;1m請輸入有效用戶名\033[0m) def salary_change(): ‘‘‘定義一個修改工資函數‘‘‘ while True: user_information() change_salary = input(請輸入要修改的員工姓名和工資,用空格分隔(例如:Alex 10):) salary_lists = change_salary.split() #將用戶輸入的姓名和工資以列表形式打印 if len(salary_lists) < 2: #判斷輸入內容格式是否正確 姓名 工資 print(\033[31;1m請輸入正確格式內容\033[0m) elif not salary_lists[1].isdigit(): #判斷輸入的工資是否是數字 print(\033[31;1m請輸入有效工資金額\033[0m) else: _name = salary_lists[0].capitalize() #定義_name變量存儲 用戶輸入的姓名 _salary = salary_lists[1] #定義_salary變量存儲 用戶輸入的工資 if _name in user_dict: with open(info,r) as f: lines = f.readlines() with open(info,w) as f_w: for line in lines: if _name in line: line = line.replace(user_dict[_name],_salary) #將源文件中的工資金額替換為修改後的工資金額 f_w.write(line) print(已將 \033[32;1m%s\033[0m 的工資修改為 \033[32;1m%s\033[0m元%(_name,_salary)) break else: print(\033[31;1m該用戶不存在\033[0m) def add_users(): ‘‘‘定義一個增加員工函數‘‘‘ while True: user_information() add_user = input(請輸入要增加員工姓名和工資,用空格分隔(例如:Eric 100000):) add_lists = add_user.split() if len(add_lists) < 2: #判斷輸入內容格式是否正確 姓名 工資 print(\033[31;1m請輸入正確格式內容\033[0m) elif not add_lists[1].isdigit(): #判斷輸入的工資是否是數字 print(\033[31;1m請輸入有效工資金額\033[0m) else: _name = add_lists[0].capitalize() # 定義_name變量存儲 用戶輸入的姓名 _salary = add_lists[1] # 定義_salary變量存儲 用戶輸入的工資 if _name in user_dict: #判斷輸入的姓名是否已存在 print(\033[31;1m該用戶已存在\033[0m) elif not _name.isalpha(): #判斷輸入的姓名是否是純英文 print(\033[31;1m請輸入正確姓名\033[0m) else: with open(info,a) as f: f.write(_name+ ) f.write(_salary+\n) print(已將 \033[32;1m%s\033[0m 的信息添加成功 % _name) break def del_users(): ‘‘‘定義一個刪除員工函數‘‘‘ while True: user_information() del_user = input(請輸入要刪除的員工姓名(例如:Alex):) del_name = del_user.capitalize() if del_name in user_dict: #將輸入的員工姓名首字母變大寫,方便用戶輸入 confirm_del = input(是否確認刪除\033[32;1m%s\033[0m員工信息>>>任意鍵確認刪除、按N不刪除: %del_user.capitalize()) if confirm_del.capitalize() != N: #判斷用戶選擇確認刪除 list = [] #定義一個空列表存儲不需要刪除員工信息 with open(info,r) as f: lines = f.readlines() for line in lines: if not re.search(del_name,line): #判斷哪些員工不需要刪除 del_name為確認刪除的員工 list.append(line) with open(info,w) as f: f.writelines(list) #將不需要刪除員工的信息列表重新寫入 info文本中 print(\033[32;1m%s\033[0m的員工信息已刪除%del_user.capitalize()) break else: print(\033[31;1m已取消刪除\033[0m) else: print(\033[31;1m該用戶不存在\033[0m) user_operations()

3)Github筆記

第三周的筆記的地址是:

https://github.com/KongChan1988/51CTO-Treasure/tree/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/Practice%20Notes

4)Readme.md文檔

https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day03/HomeWork/readme_%E5%B7%A5%E8%B5%84%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F.md

老男孩Day3作業:工資管理系統