python超详细实现完整学生成绩管理系统

Python超详细实现完整学生成绩管理系统

系统概述

本系统是一个基于Python的学生成绩管理系统,能够方便地记录学生的基本信息,并可以录入和查询学生的各科成绩情况。该系统主要包括三个模块,分别是学生信息管理模块、成绩录入模块和成绩查询模块。具体实现依赖于Python基础知识和面向对象编程的概念。

功能模块介绍

学生信息管理模块

  1. 学生基本信息录入;
  2. 学生基本信息查询;
  3. 学生基本信息修改;
  4. 学生基本信息删除。

成绩录入模块

  1. 成绩录入功能;
  2. 成绩修改功能。

成绩查询模块

  1. 学生单科成绩查询;
  2. 学生总分查询。

实现过程

1. 创建数据存储类

  1. 定义Student类来存储学生信息;
  2. 定义Score类来存储学生成绩。
class Student:
    def __init__(self, id, name, age, gender):
        self.id = id
        self.name = name
        self.age = age
        self.gender = gender

class Score:
    def __init__(self, id, chinese, math, english):
        self.id = id
        self.chinese = chinese
        self.math = math
        self.english = english

2. 实现学生信息管理模块

  1. 实现学生信息录入功能;
  2. 实现学生信息查询/修改/删除功能。
class StudentManager:
    def __init__(self):
        self.students = []

    def add_student(self, student):
        self.students.append(student)

    def remove_student(self, id):
        for s in self.students:
            if s.id == id:
                self.students.remove(s)
                return

    def get_student(self, id):
        for s in self.students:
            if s.id == id:
                return s

    def update_student(self, student):
        for i, s in enumerate(self.students):
            if s.id == student.id:
                self.students[i] = student
                return

3. 实现成绩录入模块

  1. 实现成绩录入功能;
  2. 实现成绩修改功能。
class ScoreManager:
    def __init__(self):
        self.scores = []

    def add_score(self, score):
        self.scores.append(score)

    def update_score(self, score):
        for i, s in enumerate(self.scores):
            if s.id == score.id:
                self.scores[i] = score
                return

4. 实现成绩查询模块

  1. 实现学生单科成绩查询;
  2. 实现学生总分查询。
class ScoreQuery:
    def __init__(self):
        self.scores = None

    def set_scores(self, scores):
        self.scores = scores

    def get_score(self, id, subject):
        for s in self.scores:
            if s.id == id:
                if subject == 'chinese':
                    return s.chinese
                elif subject == 'math':
                    return s.math
                elif subject == 'english':
                    return s.english
        return None

    def get_total_score(self, id):
        score = 0
        for s in self.scores:
            if s.id == id:
                score += s.chinese + s.math + s.english
        return score

5. 主程序调用

  1. 实例化各个类对象;
  2. 调用各个功能模块。
if __name__ == '__main__':
    sm = StudentManager()
    scorem = ScoreManager()
    scoreq = ScoreQuery()

    # 添加学生信息
    sm.add_student(Student(1, 'Tony', 20, '男'))
    sm.add_student(Student(2, 'Alice', 19, '女'))

    # 更新学生信息
    s = sm.get_student(1)
    s.name = 'Tom'
    sm.update_student(s)

    # 删除学生信息
    sm.remove_student(2)

    # 添加学生成绩
    scorem.add_score(Score(1, 90, 80, 70))
    scorem.add_score(Score(2, 60, 70, 80))

    # 查询学生成绩
    scoreq.set_scores(scorem.scores)
    print(scoreq.get_score(1, 'chinese'))
    print(scoreq.get_total_score(1))

示例说明

示例1:添加学生信息

sm.add_student(Student(1, 'Tony', 20, '男'))
sm.add_student(Student(2, 'Alice', 19, '女'))

在示例中,创建了StudentManager类对象sm,并分别添加了两个学生信息,分别是id为1的学生Tony和id为2的学生Alice。

示例2:更新学生信息

s = sm.get_student(1)
s.name = 'Tom'
sm.update_student(s)

在示例中,根据id为1的学生信息,更新了该学生的姓名为Tom。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python超详细实现完整学生成绩管理系统 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

    为了解决 PyCharm 编辑区显示 YAML 文件层级结构遇中文乱码的问题,我们可以按照以下步骤进行操作: 1. 打开 PyCharm 设置 点击 PyCharm 菜单栏中的 File -> Settings 进入 PyCharm 设置页面。 2. 找到 YAML 设置 在设置页面的左侧列表中,找到 Editor -> File Types -…

    python 2023年5月20日
    00
  • Python反射机制实例讲解

    下面我将为您详细讲解“Python反射机制实例讲解”的完整攻略。 什么是反射机制 Python 中的反射机制指的是,在运行时获取类、对象的属性、方法等信息的能力。 通过反射,我们可以动态获取一个对象的属性或方法并执行,从而简化代码的复用和增加程序的灵活性。 反射机制的应用场景 当我们无法确定一个对象是属于哪个类时,可以使用反射机制来判断其所属类型。 当我们需…

    python 2023年6月3日
    00
  • 解决Python plt.savefig 保存图片时一片空白的问题

    下面是解决Python plt.savefig保存图片时一片空白的问题的完整攻略: 问题分析 matplotlib作为一个Python的绘图库,有时会出现保存图片时仅出现一片空白的情况。通常情况下,这是因为前端设置的坐标轴未被保存到图片中,因此需要调整绘图过程中一些常见参数,以确保图片被正确生成。 解决方案 下面将给出两种解决方案。 解决方案1:设置坐标轴范…

    python 2023年5月18日
    00
  • 对json字符串与python字符串的不同之处详解

    对JSON字符串与Python字符串的不同之处详解 在本攻略中,我们将介绍JSON字符串和Python字符串之间的不同之处。JSON字符串是一种轻量级的数据交换格式,常用于Web应用程序中。Python字符串是Python编程语言中的一种数据类型,用于表示文本数据。虽然它们看起来很相似,但它们之间有一些重要的区别。 区别1:JSON字符串必须使用双引号 JS…

    python 2023年5月15日
    00
  • Python使用sklearn实现的各种回归算法示例

    Python使用sklearn实现的各种回归算法示例 简介 本文将介绍如何使用Python中的sklearn库来实现各种回归算法,并提供示例说明。回归算法常用于预测连续的数值型数据,并且在实际应用中有广泛的用途,如房价预测、股票价格预测等。 环境配置 在开始之前,需要安装Python和sklearn库。可以通过以下命令安装: pip install skle…

    python 2023年6月3日
    00
  • Python3中小括号()、中括号[]、花括号{}的区别详解

    下面是“Python3中小括号()、中括号[]、花括号{}的区别详解”的攻略: 小括号() 小括号在Python中通常用于表明函数的调用。在函数调用时,所有传递给函数的实参都应该用小括号括起来。比如: print(‘Hello World’) 在这个例子中,print()是Python的一个内置函数,它用来在标准输出中打印一些内容。’Hello World’…

    python 2023年5月14日
    00
  • 使用 tinter 在 python 上将网格打包到框架中

    【问题标题】:packing grid into frame on python with tinter使用 tinter 在 python 上将网格打包到框架中 【发布时间】:2023-04-02 16:25:01 【问题描述】: 我有这个循环: for y in range(0,matrixsize): button = Button(win, text…

    Python开发 2023年4月8日
    00
  • 将python运行结果保存至本地文件中的示例讲解

    以下是将 Python 运行结果保存至本地文件的攻略: 使用 open() 函数创建文件并保存 使用 Python 的 open() 函数可以将程序的运行结果保存至本地文件中。在使用前,我们需要确定文件名称、保存位置以及保存模式等参数。常用的保存模式有 w 和 a,分别表示覆盖和追加。下面是示例代码: result = "Hello, world!…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部