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
    评论
Python (发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。 Python 语言的特点: 简单————Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。 易学————就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。 免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自 由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么 Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。 高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS /390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC和Symbian! 解释性————这一点需要一些解释。一个用编译性语言比如C或C 写的程序可以从源文件(即 C或C 语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/ 转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心 如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它 就可以工作了,这也使得你的Python程序更加易于移植。 面向对象————Python即支持面向过程的编程也支持面向对象的编程。在“面向过程”的语 言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如 C 和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C 编写,然后在你的Python程序中使用它们。 可嵌入性————你可以把Python嵌入你的C/C 程序,从而向你的程序用户提供脚本功能。 丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、 文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户 界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以 外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。 概括————Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。 Python 3.4.0 发布,此本包括一系列 3.x 系列的改进,数百个小的改进和 bug 修复。 新语法特性: Python 3.4 并未添加任何新的语法特性

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值