用python优化代码编程完成:用户信息管理以及购物信息管理:(补充文本读写) 模块一(列表应用):编写程序:实现多用户信息管理,如下其中包含注册用户的用户名、密码、姓名、电话号码、地址,出生年月、资产等信息请构建序列,可以从键盘中添加用户基本信息表包括(学号 姓名 性别 年龄..... .),并可以注册用户信息、浏览用户基本信息、删除用户信息和修改,查询等操作。 说明 1)能完成序用户信息的注册(添加一条用户信息) 2)构建菜单完成循环操作 0、退出 1、添加(注册)用户 2、用户登录 3、删除用户 4、修改用户 5、查询用户 ... 任务:在上一次的实验中,补充完成数据文件的读写,将用户数据存储在文本文件userlist.txt中,使得每次的增删改查操作结果都记录在文本文件中。

时间: 2023-08-31 17:29:02 浏览: 43
好的,下面是代码实现: ```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` 模式打开文件,如果文件不存在会自动创建,因此我们不需要进行判断。

相关推荐

最新推荐

recommend-type

python学生信息管理系统实现代码

主要介绍了python学生信息管理系统的实现代码,代码简单,复制即可使用,需要的朋友可以参考下
recommend-type

python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。

一:填空题: 1.python是一种面向_对象 __的高级语言。 2.python可以在多种平台运行,这体现了python的___可移植___特性。 3.python源代码被解释器转换后的格式为___.pyc______。 4.python3.x默认使用的编码是_UTF-8...
recommend-type

python实现外卖信息管理系统

主要为大家详细介绍了python实现外卖信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Python实现GUI学生信息管理系统

主要介绍了Python实现GUI学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Python数据分析基础:异常值检测和处理

在机器学习中,异常检测和处理是一个比较小的分支,或者说,是机器学习的一个副产物,因为在一般的预测问题中,模型通常是对整体样本数据结构的一种表达方式,这种表达方式通常抓住的是整体样本一般性的性质,而那些...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性

![MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性](https://picx.zhimg.com/80/v2-8132d9acfebe1c248865e24dc5445720_1440w.webp?source=1def8aca) # 1. MATLAB结构体基础** MATLAB结构体是一种数据结构,用于存储和组织相关数据。它由一系列域组成,每个域都有一个名称和一个值。结构体提供了对数据的灵活访问和管理,使其成为组织和处理复杂数据集的理想选择。 MATLAB中创建结构体非常简单,使用struct函数即可。例如: ```matlab myStruct
recommend-type

详细描述一下STM32F103C8T6怎么与DHT11连接

STM32F103C8T6可以通过单总线协议与DHT11连接。连接步骤如下: 1. 将DHT11的VCC引脚连接到STM32F103C8T6的5V电源引脚; 2. 将DHT11的GND引脚连接到STM32F103C8T6的GND引脚; 3. 将DHT11的DATA引脚连接到STM32F103C8T6的GPIO引脚,可以选择任一GPIO引脚,需要在程序中配置; 4. 在程序中初始化GPIO引脚,将其设为输出模式,并输出高电平,持续至少18ms,以激活DHT11; 5. 将GPIO引脚设为输入模式,等待DHT11响应,DHT11会先输出一个80us的低电平,然后输出一个80us的高电平,
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。