day 3 作业, 员工工资管理系统--信息保存到文件中

 1 #定义函数,把info 读成字典,返回info 字典,
 2 def open_r_info():
 3     with open("info.txt","r",encoding="utf-8") as f:
 4         d=f.readlines()
 5         #print(d)
 6         for i in d:
 7             if len(i.strip())>0:
 8                 #print(i.strip())
 9                 j=i.strip().split()
10                 #print(j)
11                 info[j[0]]=j[1]
12     return info
13 #模块二:功能选择
14 info={}  #定义空字典
15 while True:
16     print("工资管理系统".center(30, "*"))  #  打印标题及功能选项
17     print("1. 查询员工工资\n2. 修改员工工资\n3. 增加新员工记录\n4. 退出")
18     user_choice = input("请输入你要操作的选项:") #获取用户输入的选项
19     if user_choice== "1":  #查询功能
20         find_n=input("请输入要查询的员工姓名:") #获取用户输入用户名
21         if find_n.isalpha(): #判断是否是字母字符串,否则提示出错。
22             find_n=find_n.capitalize() #将名字首字母大写
23             open_r_info()  #调用将文本读成字典的函数,
24             if find_n in info: #判断用户名是否在字典中,如果没有就提示错误,如果有就返回工资
25                 print("\033[1;35;40m{}\033[0m的工资是:\033[1;35;40m{}\033[0m。".format(find_n,info[find_n]))
26             else:
27                 print("***你查找的用户:\033[1;35;40m{}\033[0m不存在".format(find_n))
28         else:
29             print("***请输入正确的员工姓名,纯字母组成")
30     elif user_choice =="2": #功能二修改工资模块
31         change_u_s=input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):")
32         change_u_s=change_u_s.split()#将用户输入,用split 分割成list
33         if len(change_u_s) == 2:#判断用户是否 按照格式输入,
34             change_u_s[0]=change_u_s[0].capitalize()
35             open_r_info() #调用函数
36             if change_u_s[0].isalpha():
37                 if change_u_s[0] in info:
38                     if change_u_s[1].isdigit():
39                         info[change_u_s[0].capitalize()]=change_u_s[1]
40                         with open("info.txt", "w", encoding="utf-8") as f:
41                             for i in info: #将修改后字典,按照之前的文本格式,覆盖原来的文本。
42                                 f.write("{} {}\n\n".format(i, info[i]))
43                         print("修改成功!")
44                     else:
45                         print("***你输入的工资不是一个数字,请重新输入")
46                 else:
47                     print("***你修改工资的员工\033[1;35;40m{}\033[0m不存在".format(change_u_s[0]))
48             else:
49                 print("***请输入正确的员工姓名,纯字母组成")
50         else:
51             print("***请输入正确的格式,例如:'alex 100'")
52     elif user_choice == "3":#功能三新增员工记录
53         insert_u_s = input("请输入要增加的员工姓名和工资,用空格分割(例如:Eric 100000):")
54         insert_u_s = insert_u_s.split() #判断用户输入信息。。。
55         open_r_info()#调用函数
56         if len(insert_u_s) == 2:
57             insert_u_s[0] = insert_u_s[0].capitalize()
58             if insert_u_s[0] not in info:
59                 if insert_u_s[0].isalpha():
60                     insert_u_s[0]=insert_u_s[0].capitalize()
61                     if insert_u_s[1].isdigit():
62                         with open("info.txt", "a", encoding="utf-8") as f:
63                             f.write("\n\n{} {}".format(insert_u_s[0].capitalize(), insert_u_s[1]))
64                             f.flush()#将用户新增记录写到文件末尾,并刷新将内存信息写到文本中,为了新增之后可以马上查询到记录。
65                     print("增加成功!")
66                 else:
67                     print("***请输入正确的员工姓名,纯字母组成")
68             else:
69                 print("***员工已存在,请返回,选择2.修改工资")
70         else:
71             print("***请输入正确的格式,例如:'alex 100'")
72     elif user_choice =="4":#退出
73         print("再见!")
74         break
75     else:
76         print("***你输入的的选项错误,请重新输入正确的选项。")
View Code

文本内容

Alex 100000

Egon 50000

Rain 80000

Yuan 30000

 

posted @ 2017-12-25 17:24  东郭仔  阅读(252)  评论(0)    收藏  举报