zoukankan      html  css  js  c++  java
  • day4-用户管理程序

    1、流程图

    2、代码

      1 #!/usr/bin/env python
      2 #-*- coding:utf-8 -*-
      3 #Author: Tony Chiu
      4 #Blog:http://www.cnblogs.com/tonychiu
      5 #Github:https://github.com/qiujichun
      6 
      7 import sys,os
      8 
      9 INFO = (r'info.txt')
     10 LOGIN_USER = {"is_login":False}
     11 USER_LIST = []
     12 
     13 def outer1(func):
     14     def inner():
     15         if LOGIN_USER['is_login']:
     16             print("***用户信息如下***")
     17             func()
     18     return inner
     19 
     20 
     21 def outer2(func):
     22     def inner():
     23         r = func()
     24         if os.path.exists('info.bak'):
     25             os.remove('info.bak')
     26         os.rename('info.txt', 'info.bak')
     27         os.rename('info_tmp.txt', 'info.txt')
     28         return r
     29     return inner
     30 
     31 @outer1
     32 def check_self():
     33     '''
     34     查看自身信息
     35     :return:
     36     '''
     37     # if LOGIN_USER['is_login']:
     38     with open(INFO, 'r') as f:
     39         for line in f.readlines():
     40             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
     41             if line.strip():
     42                 User, Pass, Email, Type = line.strip().split('|')
     43                 if LOGIN_USER['current_user'] == User:
     44                     if Type == '0':
     45                         print("用户名:%s,邮箱:%s,账户类型:管理员" %(User,Email))
     46                     elif Type == '1':
     47                         print("用户名:%s,邮箱:%s,账户类型:普通用户" % (User, Email))
     48 
     49 @outer1
     50 def check_all():
     51     '''
     52     查看所有用户信息
     53     :return:
     54     '''
     55     # if LOGIN_USER['is_login']:
     56     with open(INFO, 'r') as f:
     57         for line in f.readlines():
     58             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
     59             if line.strip():
     60                 User, Pass, Email, Type = line.strip().split('|')
     61                 if Type == '1':
     62                     print("用户名:%s,邮箱:%s,账户类型:普通用户" % (User, Email))
     63                 elif Type == '0':
     64                     print("用户名:%s,邮箱:%s,账户类型:管理员" % (User, Email))
     65 
     66 @outer2
     67 def changepwd():
     68     '''
     69     定义函数:修改用户密码
     70     :return:
     71     '''
     72     New_Pass = input("请输入新的密码:")
     73     with open(INFO, 'r') as old, open(r'info_tmp.txt','w') as new:
     74         for line in old:
     75             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
     76             if line.strip():
     77                 User, Pass, Email, Type = line.strip().split('|')
     78                 if LOGIN_USER['current_user'] == User:
     79                     Pass = New_Pass
     80                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type) + '
    ')
     81                 else:
     82                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type) + '
    ')
     83     # if os.path.exists('info.bak'):
     84     #     os.remove('info.bak')
     85     # os.rename('info.txt','info.bak')
     86     # os.rename('info_tmp.txt','info.txt')
     87 
     88 @outer2
     89 def changepwd_other():
     90     '''
     91     定义函数:修改指定用户密码
     92     :return:
     93     '''
     94     New_User = input("请输入要修改密码的用户:")
     95     New_Pass = input("请输入新的密码:")
     96     with open(INFO, 'r') as old, open(r'info_tmp.txt','w') as new:
     97         for line in old:
     98             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
     99             if line.strip():
    100                 User, Pass, Email, Type = line.strip().split('|')
    101                 if New_User == User:
    102                     Pass = New_Pass
    103                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type) + '
    ')
    104                 else:
    105                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type)+'
    ')
    106     # if os.path.exists('info.bak'):
    107     #     os.remove('info.bak')
    108     # os.rename('info.txt','info.bak')
    109     # os.rename('info_tmp.txt','info.txt')
    110 
    111 @outer2
    112 def delete():
    113     '''
    114     定义删除用户功能函数
    115     :return:
    116     '''
    117     Del_User = input("请输入要删除的用户:")
    118     with open(INFO, 'r') as old, open(r'info_tmp.txt','w') as new:
    119         for line in old:
    120             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
    121             if line.strip():
    122                 User, Pass, Email, Type = line.strip().split('|')
    123                 if Del_User == User:
    124                     pass
    125                 else:
    126                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type)+'
    ')
    127     # if os.path.exists('info.bak'):
    128     #     os.remove('info.bak')
    129     # os.rename('info.txt','info.bak')
    130     # os.rename('info_tmp.txt','info.txt')
    131 
    132 
    133 def search():
    134     '''
    135     定义搜索功能函数,支持精确查找和模糊查找
    136     :return:
    137     '''
    138     Search_info = input("请输入要搜索的用户信息:")
    139     with open(INFO,'r') as f:
    140         for line in f.readlines():
    141             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
    142             if line.strip():
    143                 User,Pass,Email,Type = line.strip().split('|')
    144                 if Search_info in User:
    145                     if Type == '1':
    146                         print("用户名:%s,邮箱:%s,账户类型:普通用户" % (User, Email))
    147                     elif Type == '0':
    148                         print("用户名:%s,邮箱:%s,账户类型:管理员" % (User, Email))
    149                 elif Search_info in Email:
    150                     if Type == '1':
    151                         print("用户名:%s,邮箱:%s,账户类型:普通用户" % (User, Email))
    152                     elif Type == '0':
    153                         print("用户名:%s,邮箱:%s,账户类型:管理员" % (User, Email))
    154 
    155 @outer2
    156 def update():
    157     '''
    158     定义函数:升级指定普通用户为管理员账户
    159     :return:
    160     '''
    161     Update_User = input("请输入要提升为管理员权限的用户:")
    162     with open(INFO, 'r') as old, open(r'info_tmp.txt','w') as new:
    163         for line in old:
    164             # 布尔值判断是否为空行,strip()忽略空格和换行符
    
    165             if line.strip():
    166                 User, Pass, Email, Type = line.strip().split('|')
    167                 if Update_User == User:
    168                     Type = '0'
    169                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type) + '
    ')
    170                 else:
    171                     new.write(str(User) + '|' + str(Pass) + '|' + str(Email) + '|' + str(Type)+'
    ')
    172     # if os.path.exists('info.bak'):
    173     #     os.remove('info.bak')
    174     # os.rename('info.txt','info.bak')
    175     # os.rename('info_tmp.txt','info.txt')
    176 
    177 
    178 def main():
    179     '''
    180     定义主函数
    181     :return:
    182     '''
    183     print('-'.center(3,'-'), "Welcome To The User Management Program", '-'.center(3,'-'))
    184     print("         1.注册           2.登录")
    185     print('*'.center(46, '-'))
    186     inp = input("请键入您要的操作:")
    187     if inp == "1":
    188         register()
    189     elif inp == "2":
    190         login()
    191 
    192 
    193 def register():
    194     '''
    195     定义注册、添加用户功能函数
    196     提供三次尝试机会避免注册已存在的用户
    197     使用列表USER_LIST.append(User)保存已存在的用户
    198     :return:
    199     '''
    200     for i in range(3):
    201         username = input("请输入新的用户名:")
    202         with open(INFO,'r') as f:
    203             for line in f.readlines():
    204                 if line.strip():
    205                     User, Pass, Email, Type = line.strip().split('|')
    206                     USER_LIST.append(User)
    207             if username in USER_LIST:
    208                 print('xxxxxxxxxxxxxxxxxxxxxxxxxxxx')
    209                 print("用户已存在!请选择其他用户名")
    210                 print('xxxxxxxxxxxxxxxxxxxxxxxxxxxx')
    211                 continue
    212             else:
    213                 pwd = input("请输入密码:")
    214                 mail = input("请输入邮箱:")
    215                 with open(INFO,'a') as f:
    216                     f.write('
    '+str(username)+'|'+str(pwd)+'|'+str(mail)+'|'+'1')
    217                 print("恭喜!注册成功")
    218                 print("-".center(30,'-'))
    219                 main()
    220 
    221 
    222 def login():
    223     '''
    224     定义登录功能函数
    225     提供三次尝试登陆机会
    226     :return:
    227     '''
    228     for i in range(3):
    229         username = input("请输入用户名:")
    230         pwd = input("请输入密码:")
    231         with open(INFO,'r') as f:
    232             for line in f.readlines():
    233                 # 布尔值判断是否为空行,strip()忽略空格和换行符
    
    234                 if line.strip():
    235                     User,Pass,Email,Type = line.strip().split('|')
    236                 if username == User and pwd ==Pass:
    237                     LOGIN_USER['is_login'] = True                              #字典修改
    238                     LOGIN_USER['current_user'] = username                          #字典添加
    239                     LOGIN_USER['Type'] = Type
    240                     break
    241         order()
    242 
    243 
    244 def order():
    245     '''
    246     定义功能列表函数
    247     :return:
    248     '''
    249     if LOGIN_USER['is_login']:
    250         print("欢迎%s登录" % LOGIN_USER['current_user'])
    251         while True:
    252             if LOGIN_USER['Type'] == '0':
    253                 print('-'.center(48,'-'), "您可以进行的操作", '-'.center(48,'-'))
    254                 print("1.查看信息;2.修改密码;3.添加用户;4.删除用户;5.搜索用户;6.提高权限;7.查看所有用户;8.修改普通用户密码;q.退出
    ")
    255                 select = input("键入您的选择:")
    256                 if select == '1':
    257                     check_self()
    258                 elif select == '2':
    259                     changepwd()
    260                 elif select == '3':
    261                     register()
    262                 elif select == '4':
    263                     delete()
    264                 elif select == '5':
    265                     search()
    266                 elif select == '6':
    267                     update()
    268                 elif select == '7':
    269                     check_all()
    270                 elif select == '8':
    271                     changepwd_other()
    272                 elif select == 'q':
    273                     exit()
    274             elif LOGIN_USER['Type'] == '1':
    275                 print('-'.center(6, '-'), "您可以进行的操作", '-'.center(6, '-'))
    276                 print("1.查看信息;2.修改密码;q.退出
    ")
    277                 select = input("键入您的选择:")
    278                 if select == '1':
    279                     check_self()
    280                 elif select == '2':
    281                     changepwd()
    282                 elif select == 'q':
    283                     exit()
    284 
    285 
    286 main()
    View Code

    3、界面

    a、注册
            --- Welcome To The User Management Program ---
                     1.注册           2.登录
            ----------------------*-----------------------
            请键入您要的操作:1
            请输入新的用户名:test
            请输入密码:test
            请输入邮箱:test@demo.com
            恭喜!注册成功
        
        b、登录(普通用户)
            请键入您要的操作:2
            请输入用户名:user1
            请输入密码:user1
            欢迎user1登录
            ------ 您可以进行的操作 ------
            1.查看信息;2.修改密码;q.退出
            
            键入您的选择:1
            ***用户信息如下***
            用户名:user1,邮箱:user1@demo.com,账户类型:普通用户
            
        c、登录(管理员)
            请键入您要的操作:2
            请输入用户名:admin
            请输入密码:admin
            欢迎admin登录
            ------------------------------------------------ 您可以进行的操作 ------------------------------------------------
            1.查看信息;2.修改密码;3.添加用户;4.删除用户;5.搜索用户;6.提高权限;7.查看所有用户;8.修改普通用户密码;q.退出
            
            键入您的选择:7
            ***用户信息如下***
            用户名:admin,邮箱:admin@demo.com,账户类型:管理员
            用户名:user1,邮箱:user1@demo.com,账户类型:普通用户
            用户名:user2,邮箱:user2@demo.com,账户类型:普通用户
            用户名:user3,邮箱:user3@demo.com,账户类型:普通用户
            用户名:test,邮箱:test@demo.com,账户类型:普通用户
            
            键入您的选择:5
            请输入要搜索的用户信息:user1
            用户名:user1,邮箱:user1@demo.com,账户类型:普通用户
            
            键入您的选择:5
            请输入要搜索的用户信息:@demo.com
            用户名:admin,邮箱:admin@demo.com,账户类型:管理员
            用户名:user1,邮箱:user1@demo.com,账户类型:普通用户
            用户名:user2,邮箱:user2@demo.com,账户类型:普通用户
            用户名:user3,邮箱:user3@demo.com,账户类型:普通用户
            用户名:test,邮箱:test@demo.com,账户类型:普通用户
    View Code
  • 相关阅读:
    属性MyBank
    C#语法
    NTE与C#
    css3制作网页动画
    网页定位元素
    使用ADO.NET访问数据库
    连接查询和分组查询
    模糊查询和聚合函数
    习题集
    用sql语句操作数据
  • 原文地址:https://www.cnblogs.com/tonychiu/p/6073460.html
Copyright © 2011-2022 走看看