零基础学 Python——面向对象编程实战封装

亲爱的亦菲彦祖们,欢迎回到我们的编程学习系列!在前两篇博客中,我们已经了解了类与对象的基本概念以及面向对象编程的三大核心特性——封装、继承、多态。今天,我们将通过一个实际的项目——学生信息管理系统,将所学的面向对象编程知识应用到实际开发中。让我们一起来动手,打造一个功能完善、结构清晰的学生管理系统吧!

一. 项目目标

通过本项目,亦菲彦祖们将:

  • 深入理解面向对象开发过程中类内部功能的分析方法。
  • 学会设计和实现常用的系统功能,包括添加、删除、修改、查询等操作。
  • 掌握如何将对象存储在文件中,实现数据的持久化。

二. 系统需求分析

我们将开发一个学生信息管理系统,具体需求如下:

  • 数据存储
    • 存储位置:文件(如students.json)。
    • 存储形式:列表中存储学生对象。
  • 系统功能
    1. 添加学员:录入学生的姓名、语文成绩、数学成绩、英语成绩,并计算总分。
    2. 显示全部信息:展示所有学生的详细信息。
    3. 查询学员信息:根据姓名查询学生信息。
    4. 删除学员信息:根据姓名删除学生记录。
    5. 修改学员信息:根据姓名修改学生成绩。
    6. 保存学员信息:将当前数据保存到文件。
    7. 退出系统:保存数据并退出程序。

三. 具体实现

1. 学生类的设计

首先,我们需要设计一个学生类,用于封装学生的基本信息和相关操作。

需求

  • 属性
    • name(姓名)
    • chinese(语文成绩)
    • math(数学成绩)
    • english(英语成绩)
    • total(总分)
  • 方法
    • __init__:初始化学生对象。
    • __str__:返回学生的详细信息字符串表示。

代码实现

import json

class Student:
    """学生信息类"""
    def __init__(self, name, chinese, math, english):
        """
        初始化方法
        :param name: 姓名
        :param chinese: 语文成绩
        :param math: 数学成绩
        :param english: 英语成绩
        """
        self.name = name
        self.chinese = chinese
        self.math = math
        self.english = english
        self.total = chinese + math + english  # 总分

    def __str__(self):
        return f"{self.name}\t{self.chinese}\t{self.math}\t{self.english}\t{self.total}"

解释

  • __init__方法用于初始化学生对象,计算总分。
  • __str__方法使得打印学生对象时,能以表格形式显示其信息。

2. 学生管理系统类的设计

接下来,我们设计学生管理系统类,负责管理学生对象的增删改查及数据的加载和保存。

2.1 系统框架

需求

  • 程序入口
    • 加载数据。
    • 显示功能菜单。
    • 接收用户输入,执行相应操作。
  • 系统功能函数
    • 添加、删除、修改、查询学生信息。
    • 显示所有学生信息。
    • 保存数据。

代码实现

class StudentManager:
    """学生信息管理系统类"""
    def __init__(self):
        # 存储学员数据 -- 列表
        self.student_list = []

    # 程序入口函数
    def run(self):
        # 加载文件里面的学员数据
        self.load_student()

        while True:
            # 显示功能菜单
            self.show_menu()
            # 用户输入目标功能序号
            action = input('请选择您想要进行的操作(0-退出):')

            # 根据用户输入的序号执行不同的功能
            if action == '1':
                # 新建学生信息
                self.add_student()
            elif action == '2':
                # 显示全部信息
                self.show_student()
            elif action == '3':
                # 查询学生信息
                self.search_student()
            elif action == '4':
                # 删除学生信息
                self.del_student()
            elif action == '5':
                # 修改学生信息
                self.modify_student()
            elif action == '0':
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨胜增

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值