运行效果:

注意:运行前请在同一目录下创建一个userdata.bin用于保存用户数据
源代码:
1 # coding:utf-8
2 '''
3 用户注册信息管理系统 4 功能包括: 5 1.查看全部已注册用户信息 6 2.查找用户信息 7 3.修改用户信息 8 4.删除用户信息 9 5.添加新用户 10 6.将用户信息存入文件 11 每个注册用户的信息用对象表示,程序启动时,自动载入文件中保存的用户信息 12 程序启动后,显示操作菜单,并根据选择执行不同的操作 13 各种菜单操作定义为函数,调用函数完成对应操作 14 '''
15 '''
16 导入pickle模块中的dump、load方法 17 dump方法将对象写入文件,load方法从文件中载入对象 18 '''
19
20 from pickle import dump,load 21
22 ##定义user类,实例对象的userName属性存储用户名,passWord属性存储登录密码
23
24 class user: 25 #实例化对象,默认是None
26 def __init__(self,userName=None,passWord=None): 27 self.userName=userName 28 self.passWord=passWord 29
30 #update方法修改用户名和登录密码
31 def update(self,userName,passWord): 32 self.userName=userName 33 self.passWord=passWord 34
35 #__repr__()方法定义对象打印格式
36 def __repr__(self): 37 return 'userName=%s\tpassWord=%s'%(self.userName,self.passWord) 38
39 ##函数showAll()显示当前已注册用户信息########################
40 def showAll(): 41 global userList 42 if len(userList)==0: 43 print('\t当前无注册用户') 44 else: 45 print('\t当前已注册用户信息如下:') 46 n=0 47 for x in userList: 48 n+=1
49 print('\t%s. '%n,x) 50 input('\n\t按Enter键继续...\n') 51
52
53 ##函数check_update()执行查找、修改或删除操作######################
54 def check_update(): 55 global userList 56 userName=input('\t请输入要查找的用户名:') 57 index=find(userName) 58 if index==-1: 59 print('\t%s不存在!'%userName) 60 else: 61 #用户名已注册,执行修改或删除操作
62 print('\t%s 已经注册!'%userName) 63 print('\t请选择操作:') 64 print('\t 1.修改用户') 65 print('\t 2.删除用户') 66 op=input('\t请输入序号选择对应操作:') 67 if op=='2': 68 #删除用户
69 del userList[index] 70 print('\n\t 已成功删除用户!') 71 else: 72 #修改用户信息
73 userName=input('\t请输入新的用户名:') 74 if userName=='': 75 print('\t用户名输入无效!') 76 else: 77 #检查是否已存在同名的注册用户
78 if find(userName)>-1: 79 print('\t你输入的用户名已经使用!') 80 else: 81 passWord=input('\t请输入新用户登录密码:') 82 if passWord=='': 83 print('\t登录密码输入无效!') 84 else: 85 userList[index].update(userName,passWord) 86 print('\n\t已成功修改用户!') 87 input('\n\t按Enter键继续...\n') 88
89
90 ##函数addUser()添加新用户########################
91 def addUser(): 92 global userList 93 userName=input('\t请输入用户名:') 94 if userName=='': 95 print('\t用户名输入无效!') 96 else: 97 #检查是否已存在同名的注册用户
98 if find(userName)>-1: 99 print('您输入的用户名已经使用,请重新添加用户!') 100 else: 101 passWord=input('\t请输入新用户登录密码:') 102 if passWord=='': 103 print('\t登录密码输入无效!') 104 else: 105 userList.append(user(userName,passWord)) 106 print('\t已成功添加用户!') 107 input('\n\t按Enter键继续........') 108
109 ##函数find(namekey)查找是否存在用户名为namekey的注册用户
110 def find(namekey): 111 global userList 112 #如果注册用户列表userList中存在namekey的用户,则返回位置,否则返回-1
113 n=-1
114 for x in userList: 115 n+=1
116 if x.userName==namekey: 117 break
118 else: 119 n=-1
120 return n 121
122 ##函数save()将当前用户信息写入文件永久保存
123 def save(): 124 global userList 125 #将用户写入文件永久保存
126 myfile=open(r'userdata.bin','wb') 127 global userList 128 dump(userList,myfile) 129 myfile.close() 130 print('\t已成功保存用户信息') 131 input('\n\t按Enter键继续......') 132
133 ##程序启动时,载入文件中的用户数据
134 myfile=open(r'userdata.bin','rb') 135 x=myfile.read(1) 136 if x==b'': 137 userList=list() 138 else: 139 myfile.seek(0) 140 userList=load(myfile) 141 myfile.close() 142
143 #以死循环显示系统操作菜单,直到选择退出系统
144 while True: 145 print('用户注册信息管理系统') 146 print('\t1. 显示全部已注册用户') 147 print('\t2. 查找/修改/删除用户信息') 148 print('\t3. 添加新用户') 149 print('\t4. 保存用户数据') 150 print('\t5. 退出系统') 151 no=input('请输入序号选择对应菜单:') 152 if no=='1': 153 showAll() 154 elif no=='2': 155 check_update() 156 elif no=='3': 157 addUser() 158 elif no=='4': 159 save() 160 elif no=='5': 161 print('谢谢使用,系统已退出') 162 break
