运行效果:
注意:运行前请在同一目录下创建一个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