1. 程式人生 > >python實現簡易工資管理系統(Salary Manage)源碼

python實現簡易工資管理系統(Salary Manage)源碼

容器 str strip 思路 例如 line col 用戶信息 split()

一、需求:

1.導入文件讀取員工的信息和工資信息,最後將增加、刪除或修改的員工工資信息寫入原來的文件中

2.能夠實現員工工資信息的增刪改查

3.當增加和修改員工信息時用戶用空格分隔員工姓名和薪資

4.實現退出功能

二、思路

1.首先需要將包含有員工薪資信息的文件讀出來存儲到一個容器裏,因為員工姓名和薪資一一對應,因此想到字典的key--->value機制,將員工薪資信息存儲到字典中。

2.寫一個函數讓用戶選擇該如何操作----->add、delete、modify、search(增刪改查)以及退出操作

3.定義四個函數----- >user_add()、user_delete()、user_modify()、user_seach()

三、實現(源碼)

  1 #!/user/bin/env python
  2 #-*-coding:utf-8 -*-
  3 #Author: qinjiaxi
  4 import sys,os,re
  5 operation_list = """
  6 1.增加新員工薪資信息
  7 2.刪除已有員工薪資信息
  8 3.修改已有員工薪資信息
  9 4.查詢已有員工薪資信息
 10 5.退出操作
 11 """
 12 user_dict = {}#空字典用來存儲員工薪資信息
 13 def user_info():
 14     ‘‘‘定義員工薪資信息函數‘‘‘
 15     with open(
info.txt,r) as f: 16 for i in f: 17 i = i.strip()#去掉每行字符串前後空格和換行以及縮進 18 user_dict[i.split()[0]] = i.split()[1]#將員工信息以鍵值對key(員工姓名)--->value(員工薪資)的方式存儲在字典中 19 print(當前員工的姓名:, i.split()[0]) 20 21 def user_choice(): 22 ‘‘‘用戶輸入選擇‘‘‘ 23 while
True: 24 print(operation_list) 25 user_choice = input(請選擇操作編號:) 26 if user_choice.isdigit(): 27 user_choice = int(user_choice) 28 if user_choice > 5: 29 print(\033[31;1m請輸入正確的操作編號\033[0m) 30 if user_choice == 1: 31 user_info_add() 32 if user_choice == 2: 33 user_info_del() 34 if user_choice == 3: 35 user_info_modify() 36 if user_choice == 4: 37 user_info_search() 38 if user_choice == 5: 39 sys.exit(退出程序) 40 else: 41 print(\033[31;1m請輸入正確的操作編號\033[0m) 42 43 def user_info_add(): 44 ‘‘‘定義增加新員工薪資信息函數‘‘‘ 45 while True: 46 user_info() 47 add_user = input(請輸入要增加員工的姓名和薪資,並以空格隔開(例如: Qinjiaxi 10000)) 48 add_user_info = add_user.strip()#去掉用戶輸入前後的空格換行以及縮進 49 if len(add_user_info) < 2: 50 print(\033[32;1m請輸入正確的格式\033[0m) 51 elif not add_user_info[1].isdigit(): 52 print(\033[32;1m請輸入正確的數字\033[0m) 53 else: 54 name = add_user_info[0].capitalize()#把用戶名的第一個字母變成大寫 55 salary = add_user_info[1] 56 if name in user_dict:#判斷姓名是否在字典中 57 print("\033[32;1m您輸入的名字已存在\033[0m") 58 elif not name.isalpha():#判斷姓名是否是全英文 59 print(\033[32;1m請輸入正確的姓名) 60 else: 61 with open(info.txt,a) as f: 62 f.write(name + ) 63 f.write(salary + \n) 64 print(已將\033[32;1m[%s\033\[0m用戶信息添加成功 % name) 65 break 66 67 def user_info_del(): 68 ‘‘‘定義刪除員工薪資信息函數‘‘‘ 69 while True: 70 user_info() 71 del_user = input(請輸入要刪除員工的姓名,例如(Qinjiaxi)) 72 del_user_info = del_user.capitalize()#把首個字母改成大寫,方便用戶輸入 73 if del_user_info in user_dict: 74 confirm = input(請確認是否刪除\033[32;1m %s\033[0m用戶信息--->按\033[32;1mN\033[0m退出,按任意鍵確認% del_user_info) 75 if confirm.capitalize() != N: 76 list = []#定義一個空列表用於存儲不需要刪除的員工信息 77 with open(info.txt, r) as f: 78 lines = f.readlines() 79 for line in lines: 80 if not re.search(del_user_info, line):#判斷哪些員工不需要刪除 81 list.append(line) 82 with open(info.txt, w) as f: 83 f.writelines(list) 84 print(\033[32;1m%s\033[0m已經刪除 % del_user_info) 85 break 86 else: 87 print(\033[32;1m%已取消刪除\033[0m) 88 else: 89 print(\033[32;1m該用戶不存在\033[0m) 90 91 def user_info_modify(): 92 ‘‘‘定義修改員工薪資信息函數‘‘‘ 93 while True: 94 user_info() 95 modify_user = input(請輸入要修改員工的姓名和薪資,並以空格隔開(例如:Qinjiaxi 10000)) 96 modify_user_info = modify_user.strip() 97 if len(modify_user_info) < 2: 98 print(\033[32;1m請輸入正確的格式\033[0m) 99 elif not modify_user_info[1].isdigit(): 100 print(\033[32;1m請輸入正確的數字\033[0m) 101 else: 102 name = modify_user_info[0].capitalize()#姓名 103 salary = modify_user_info[1]#薪資 104 if name in user_dict: 105 with open(info.txt, r) as f: 106 lines = f.readlines() 107 with open(info.txt, w) as f_w: 108 for line in lines: 109 if name in line: 110 line = line.replace(user_dict[name], salary)#替換薪資 111 f_w.write(line) 112 print(已將\033[32;1m%s\033[0m的工資修改為\033[32;1m%s\033[0m元%(name, salary)) 113 break 114 else: 115 print(\033[32m;1m您輸入的用戶不存在\033[0m) 116 117 def user_info_search(): 118 ‘‘‘定義查詢員工薪資信息函數‘‘‘ 119 while True: 120 user_dict() 121 search_user = input(請輸入要查詢的員工姓名(例如:Qinjiaxi)) 122 search_user_info = search_user.capitalize() 123 if search_user_info in user_dict: 124 print(\033[32;1m%s\033[0m工資為\033[32;1m%s\033[0m元 % (search_user_info, user_dict[search_user_info])) 125 break 126 else: 127 print(\033[32;1m請輸入有效的用戶名\033[0m) 128 129 user_choice()

python實現簡易工資管理系統(Salary Manage)源碼