Python面向对象——学生管理系统【简陋版】

需求:
        1. 显示菜单
        2. 添加信息
                  View: 录入信息
                  Controller: 打包信息
                  Module: 编号,追加
        3. 删除信息
        4. 查看信息
        5. 修改信息
        6. 退出

定义类

CommodityModule类

class CommodityModule:
    """
        商品数据模型:对商品的数据进行整体打包,便于发送给商品信息管理器
    """

    def __init__(self, cid=0, name="", price=0):
        self.cid = cid  # 要求唯一,因此用controller,即系统来创建id,避免重复
        self.name = name
        self.price = price

CommodityView类

    """
        商品信息界面:录入、显示信息
    """

    def __init__(self):
        # 构造函数中调用其他类,为了创建一个永远存在的伴随自己的类
        self.controller = CommodityController()

    def display_menu(self): # 显示菜单 ——> 录入、显示 ——> View
        print("1.添加商品信息")
        print("2.删除商品信息")
        print("3.修改商品信息")
        print("4.查看商品信息")
        print("5.退出")

    def select_commodity(self): # 录入选项 ——> 录入、显示 ——> View
        select_id = input("请输入选项:")
        if select_id not in ["1","2","3","4","5"]:
            print("输入错误!请重新输入:")
            self.select_commodity()
        if select_id == "1":
            self.input_commodity_info()
        elif select_id == "2":
            self.delete_commodity_info()
        elif select_id == "3":
            self.modify_commodity_info()
        elif select_id == "4":
            self.check_commodity_info()
        elif select_id == "5":
            self.exit_program()

    def input_commodity_info(self): # 录入信息 ——> 录入、显示 ——> View
        commodity = CommodityModule()
        commodity.name = input("请输入商品的名称:")
        commodity.price = input("请输入商品的价格:")
        self.controller.add_commodity(commodity)

    def delete_commodity_info(self): # 删除 ——> 逻辑控制 ——> Controller
        del_commodity_id = int(input("请输入要删除商品的id:"))
        if self.controller.delete_commodity(del_commodity_id):
            print("删除成功")
        else:
            print("删除失败")

    def modify_commodity_info(self): # 修改 ——> 逻辑控制 ——> Controller
        select_commodity_id = int(input("请输入要修改商品的id:"))
        select_commodity_new_name = input("请输入新名称:")
        select_commodity_new_price = input("请输入新价格:")
        if self.controller.modify_commodity(select_commodity_id,select_commodity_new_name,select_commodity_new_price):
            print("修改成功")
        else:
            print("修改失败")
            
    

    def check_commodity_info(self): # 查看商品信息 ——> 录入、显示 ——> View
        if self.controller.list_commodity == []:
            print("暂无商品信息!")
        else:
            for item in self.controller.list_commodity:
                print(item.cid, "号商品是:", item.name, ",价格是:", item.price, sep="")

    def exit_program(self):  # 退出程序 ——> 录入、显示 ——> View
        exit()

 CommodityController类

    """
        商品管理器:用于对商品的信息增删改查等处理
    """

    def __init__(self): # 初始化商品信息列表 和 ID
        self.list_commodity = []
        self.commodity_id = 1001

    def add_commodity(self, new_commodity): # 添加商品信息
        new_commodity.cid = self.commodity_id
        self.commodity_id += 1
        self.list_commodity.append(new_commodity)

    def delete_commodity(self, del_commodity_id): # 删除商品信息
        for item in self.list_commodity:
            if item.cid == del_commodity_id:
                self.list_commodity.remove(item)
                return True
        return False


    def modify_commodity(self,target_commodity_id,new_commodity_name,new_commodity_price):# 修改商品信息
        for item in self.list_commodity:
            if item.cid == target_commodity_id:
                item.name = new_commodity_name
                item.price = new_commodity_price
                return True
        return False

 入口

# ---------------入口-------------------
view = CommodityView()
while True:
    view.display_menu()
    view.select_commodity()

综上所示,即为本人所写的简陋版学生管理系统

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值