• 功能要求
  1. 登录系统用户认证通过后才能列出下一级菜单员工信息表
  2. 登录系统要有用户登录、注册账号、删除账号、修改密码、退出
  3. 登录密码要有加密功能
  4. 从info.txt文件读取员工及工资信息,最后通过增加,修改员工信息写入原info.txt文件
  • 开发环境
  1. python 3.6.1
  2. PyCharm 2016.2.3
  • 目录结构
1 project
2   |--day2
3         |--login.py
4         |--PayrollStstem.py
5         |--log.txt
6         |--info.txt
  • 程序设计
  1 #!/usr/bin/env python
  2 #coding=utf-8
  3 __author__ = 'yinjia'
  4 
  5 import hashlib
  6 import sys
  7 from project.day2 import PayrollSystem
  8 
  9 #存储文件
 10 filename = 'log.txt'
 11 #账号信息表
 12 result = {}
 13 
 14 def md5(arg):
 15     """
 16     密码进行md5加密
 17     :param arg: 用户的密码
 18     :return: 返回进行加密后的密码
 19     """
 20     result = hashlib.md5(bytes("k1:1a2 k2:688",encoding='utf-8'))
 21     result.update(bytes(arg,encoding='utf-8'))
 22     return result.hexdigest()
 23 
 24 
 25 def login(username,password):
 26     """
 27     用于验证用户密码
 28     :param username:用户名
 29     :param password:密码
 30     :return: True,用户名验证成功;False,用户验证失败
 31     """
 32 
 33     with open(filename,"r") as f:
 34             for line in f:
 35                 u,p = line.strip().split(":")
 36                 if username == u and md5(password) == p:
 37                     return True
 38             return False
 39 
 40 def register(username,password):
 41     """
 42     用户注册
 43     :param username: 用户名
 44     :param password: 密码
 45     :return: True,用户注册成功;
 46     """
 47 
 48     with open(filename,"a") as f:
 49         temp = "\n" + username + ":" + md5(password)
 50         f.write(temp)
 51     return True
 52 
 53 def user_exist(username):
 54     """
 55     检查用户名是否存在
 56     :param username: 用户名
 57     :return: True,用户名存在; False,用户名不存在
 58     """
 59     with open(filename,"r") as f:
 60         for line in f:
 61             line = line.strip()
 62             line_list = line.split(":")
 63             if username == line_list[0]:
 64                 return True
 65     return False
 66 
 67 def delete(username):
 68     """
 69     删除用户名
 70     :param username: 用户名
 71     :return: True,删除成功; False,删除失败
 72     """
 73     info()
 74     del result[username]
 75     with open(filename,'w') as f:
 76         for key,value in result.items():
 77             f.write("%s%s%s\n" % (key,":",value))
 78     return True
 79 
 80 def edit(username,old_password,new_password):
 81     """
 82     修改密码
 83     :param username:用户名
 84     :param old_password:旧密码
 85     :param new_password:新密码
 86     :return:True,修改成功;False,修改失败
 87     """
 88     info()
 89     ret = result[username]
 90     if ret == md5(old_password):
 91         result[username] = md5(new_password)
 92         with open(filename, 'w') as f:
 93             for key, value in result.items():
 94                 f.write("%s%s%s\n" % (key, ":", value))
 95         return True
 96 
 97 def info():
 98     """
 99     提取账号信息
100     :return: 返回账号信息表
101     """
102     with open(filename,'r') as f:
103         for line in f:
104             line = line.strip()
105             result[line.split(":")[0]] = line.split(":")[1]
106         return result
107 
108 def main():
109     info_msg = """
110     1、登录系统
111     2、注册账号
112     3、删除账号
113     4、修改密码
114     """
115 
116     print('\033[32;1m')
117     print('*' * 50)
118     print('\t\t\t\t欢迎登录工资管理系统')
119     print('*' * 50)
120     print('\033[0m')
121     print(info_msg)
122     pingtai = str(input("\033[1;34;1m请选择操作(退出请输入q|Q):\033[0m")).strip()
123     if pingtai == "1":
124         user = input("请输入用户名:")
125         pwd = input("请输入密码:")
126         ret = login(user,pwd)
127         if ret:
128             print("\033[1;31;1m<<<<<<<<登录成功>>>>>>>>>\033[0m")
129             info = PayrollSystem.salary()
130             info.comm()
131         else:
132             print("\033[1;31;1m<<<<<<<<登录失败>>>>>>>>>\033[0m")
133     elif pingtai == "2":
134         user = input("请输入用户名:")
135         pwd = input("请输入密码:")
136         ret = user_exist(user)
137         if ret:
138             print("\033[1;31;1m用户名已存在,不能注册!\033[0m")
139         else:
140             add_user = register(user,pwd)
141             if add_user:
142                 print("注册成功")
143             else:
144                 print("注册失败")
145     elif pingtai == "3":
146         user = input("请输入用户名:")
147         del_user1 = user_exist(user)
148         if del_user1:
149             del_user2 = delete(user)
150             if del_user2:
151                 print("删除成功!")
152             else:
153                 print("删除失败!")
154         else:
155             print("\033[1;31;1m用户名不存在,无法删除!\033[0m")
156 
157     elif pingtai == "4":
158         user = input("请输入用户名:")
159         pas1 = input('请输入旧密码:')
160         pas2 = input('请输入新密码:')
161         del_user = user_exist(user)
162         if del_user:
163             edit_user = edit(user,pas1,pas2)
164             if edit_user:
165                 print("修改密码成功!")
166             else:
167                 print("\033[1;31;1m旧密码错误,修改密码失败!\033[0m")
168         else:
169             print("\033[1;31;1m用户名不存在,无法修改!\033[0m")
170     elif str(pingtai).lower() == "q":
171         print("GoodBye!")
172         sys.exit()
173     else:
174         print("\033[1;31;1m非法输入!\033[0m")
175 
176 if __name__ == "__main__":
177     main()
系统登录

相关文章:

  • 2021-06-26
  • 2021-12-24
  • 2022-01-16
  • 2022-12-23
  • 2021-04-24
  • 2021-05-20
  • 2021-08-28
  • 2022-12-23
猜你喜欢
  • 2021-09-28
  • 2021-11-29
  • 2021-08-30
  • 2021-09-30
  • 2022-12-23
  • 2021-05-17
相关资源
相似解决方案