用python优化代码编程完成:用户信息管理以及购物信息管理:(补充文本读写) 模块一(列表应用):编写程序:实现多用户信息管理,如下其中包含注册用户的用户名、密码、姓名、电话号码、地址,出生年月、资产等信息请构建序列,可以从键盘中添加用户基本信息表包括(学号 姓名 性别 年龄..... .),并可以注册用户信息、浏览用户基本信息、删除用户信息和修改,查询等操作。 说明 1)能完成序用户信息的注册(添加一条用户信息) 2)构建菜单完成循环操作 0、退出 1、添加(注册)用户 2、用户登录 3、删除用户 4、修改用户 5、查询用户 ... 任务:在上一次的实验中,补充完成数据文件的读写,将用户数据存储在文本文件userlist.txt中,使得每次的增删改查操作结果都记录在文本文件中。
时间: 2023-08-31 10:29:02 浏览: 95
好的,下面是代码实现:
```python
import os
# 定义用户信息管理系统
class UserInfoSystem:
def __init__(self):
self.user_list = []
self.load_user_data()
# 注册用户
def register(self):
username = input("请输入用户名:")
password = input("请输入密码:")
name = input("请输入姓名:")
phone_number = input("请输入电话号码:")
address = input("请输入地址:")
birth = input("请输入出生年月:")
asset = input("请输入资产:")
user = {"username": username, "password": password, "name": name,
"phone_number": phone_number, "address": address,
"birth": birth, "asset": asset}
self.user_list.append(user)
self.save_user_data()
print("注册成功!")
# 用户登录
def login(self):
username = input("请输入用户名:")
password = input("请输入密码:")
for user in self.user_list:
if user["username"] == username and user["password"] == password:
print("欢迎登录,%s!" % username)
return
print("用户名或密码错误!")
# 删除用户
def delete(self):
username = input("请输入要删除的用户名:")
for user in self.user_list:
if user["username"] == username:
self.user_list.remove(user)
self.save_user_data()
print("删除成功!")
return
print("用户不存在!")
# 修改用户
def modify(self):
username = input("请输入要修改的用户名:")
for user in self.user_list:
if user["username"] == username:
password = input("请输入密码:")
name = input("请输入姓名:")
phone_number = input("请输入电话号码:")
address = input("请输入地址:")
birth = input("请输入出生年月:")
asset = input("请输入资产:")
user["password"] = password
user["name"] = name
user["phone_number"] = phone_number
user["address"] = address
user["birth"] = birth
user["asset"] = asset
self.save_user_data()
print("修改成功!")
return
print("用户不存在!")
# 查询用户
def query(self):
username = input("请输入要查询的用户名:")
for user in self.user_list:
if user["username"] == username:
print("用户名:", user["username"])
print("姓名:", user["name"])
print("电话号码:", user["phone_number"])
print("地址:", user["address"])
print("出生年月:", user["birth"])
print("资产:", user["asset"])
return
print("用户不存在!")
# 浏览用户信息
def browse(self):
for user in self.user_list:
print("用户名:", user["username"])
print("姓名:", user["name"])
print("电话号码:", user["phone_number"])
print("地址:", user["address"])
print("出生年月:", user["birth"])
print("资产:", user["asset"])
print()
# 加载用户数据
def load_user_data(self):
if not os.path.exists("userlist.txt"):
return
with open("userlist.txt", "r") as f:
for line in f:
user = eval(line.strip())
self.user_list.append(user)
# 保存用户数据
def save_user_data(self):
with open("userlist.txt", "w") as f:
for user in self.user_list:
f.write(str(user) + "\n")
# 显示菜单
def display_menu(self):
print("欢迎使用用户信息管理系统!")
print("0. 退出")
print("1. 添加(注册)用户")
print("2. 用户登录")
print("3. 删除用户")
print("4. 修改用户")
print("5. 查询用户")
print("6. 浏览用户信息")
# 运行用户信息管理系统
def run(self):
while True:
self.display_menu()
choice = input("请选择操作:")
if choice == "0":
print("谢谢使用!")
break
elif choice == "1":
self.register()
elif choice == "2":
self.login()
elif choice == "3":
self.delete()
elif choice == "4":
self.modify()
elif choice == "5":
self.query()
elif choice == "6":
self.browse()
else:
print("请选择正确的操作!")
# 测试代码
if __name__ == "__main__":
sys = UserInfoSystem()
sys.run()
```
在代码中,我们使用了 `load_user_data()` 方法和 `save_user_data()` 方法来读写用户数据文件 `userlist.txt`。其中 `load_user_data()` 方法从文件中读取用户数据,将其转换为字典类型并添加到用户列表中,而 `save_user_data()` 方法则将用户列表中的所有用户信息转换为字符串并写入文件中。这样,每次用户进行增删改查操作时,都会自动将结果保存到文件中。
另外需要注意的是,由于用户数据文件可能不存在,我们需要在读取数据时进行判断。当文件不存在时,我们就不进行任何读取操作,而在保存数据时,由于我们使用了 `w` 模式打开文件,如果文件不存在会自动创建,因此我们不需要进行判断。
阅读全文