Python案例-用户信息管理系统

需求

实现对用户信息的增加、删除、修改和查询。

分析

  • 界面使用控制台
  • 分层
    • 识别对象:界面视图类、逻辑控制类、数据模型类
    • 分配职责:
      • 界面视图类:负责处理界面逻辑,比如显示菜单,获取输入,显示结果等。
      • 逻辑控制类:负责存储用户信息,处理业务逻辑。比如添加、删除等
      • 数据模型类:定义需要处理的数据类型。比如用户信息。
    • 建立交互:
      • 界面视图对象 <----> 数据模型对象 <----> 逻辑控制对象

设计

  • 数据模型类:UserModel
    • 数据:编号 id,姓名 name,年龄 age , 登录ID login_id,密码 pwd
  • 逻辑控制类:UserController
    • 数据:用户列表 list_user
    • 行为:添加用户 add_user,删除用户remove_user,修改用户update_user
  • 界面视图类:UserView
    • 数据:逻辑控制对象controller
    • 行为:显示菜单:__display_menu,选择菜单项:__select_menu,入口逻辑:main,录入用户:__add_users,输出用户:__display_user,删除用户:__delete_user,修改用户:__modify_user

代码实现

  • 用户实体类 UserModel
class UserModel:
    """
        数据模型类
    """
    def __init__(self, id, name, age):
        self.id = id
        self.name = name
        self.age = age

    def __str__(self):
        return f"ID: {self.id}, 姓名: {self.name}, 年龄: {self.age}"

  • 逻辑控制类 UserController
class UserController:
    """
        逻辑控制类
    """
    def __init__(self):
        self.list_user = []

    def add_user(self, user):
        self.list_user.append(user)
        print(f"用户 {user.name} 添加成功.")

    def update_user(self, user_id, new_user):
        for user in self.list_user:
            if user.id == user_id:
                user.__dict__.update(new_user)  # 假设new_data是一个包含新属性的字典
                print(f"用户ID {user_id} 修改成功.")
                return
        print(f"用户ID {user_id} 未找到.")

    def remove_user(self, user_id):
        for user in self.list_user[:]:  # 使用[:]创建列表的副本,避免在迭代时修改列表
            if user.id == user_id:
                self.list_user.remove(user)
                print(f"用户ID {user_id} 删除成功.")
                return
        print(f"用户ID {user_id} 未找到.")

    def list_users(self):
        if len(self.list_user) == 0:
            print("系统用户为空")
        for user in self.list_user:
            print(user)

  • 界面视图类 UserView
import sys

from higher.user_management.UserModel import UserModel


class UserView:
    """
        界面视图类
    """

    def __init__(self, user_manager):
        self.user_manager = user_manager

    def __display_menu(self):
        print("================== 欢迎使用用户管理系统 ==================")
        print("==================     1.用户查询     ==================")
        print("==================     2.用户录入     ==================")
        print("==================     3.用户修改     ==================")
        print("==================     4.用户删除     ==================")
        print("==================     5.退出系统     ==================")
        print("=======================================================")

    def __select_menu(self):
        choice = int(input("请输入序号: "))
        return choice

    def main(self):
        while True:
            self.__display_menu()
            choice = self.__select_menu()
            if choice == 1:
                self.user_manager.list_users()
            elif choice == 2:
                user = self.__input_user()
                self.user_manager.add_user(user)
            elif choice == 3:
                self.__modify_user()
            elif choice == 4:
                self.__delete_user()
            elif choice == 5:
                print("您已退出系统,欢迎下次使用!")
                sys.exit(0)
                break
            else:
                print("输入有误,请重新输入!")

    def __input_user(self):
        id = input("请输入ID: ")
        name = input("请输入姓名: ")
        age = input("请输入年龄: ")
        return UserModel(id, name, int(age))

    def __display_user(self, user):
        print(user)

    def __delete_user(self):
        user_id = input("请输入需删除的ID: ")
        self.user_manager.remove_user(user_id)

    def __modify_user(self):
        user_id = input("请输入需修改的ID: ")
        new_name = input("请输入新的姓名: ")
        new_age = input("请输入新的年龄: ")
        new_data = {"name": new_name, "age": int(new_age)}
        self.user_manager.update_user(user_id, new_data)

  • 主程序入口
from higher.user_management.UserController import UserController
from higher.user_management.UserView import UserView

"""
    主函数入口
"""
if __name__ == "__main__":
    User_controller = UserController()
    user_view = UserView(User_controller)
    user_view.main()
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值