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日

相关文章

  • 我想在 Simpy Python 中从 FilterStore 中获取许多项目

    【问题标题】:I want go get many items from FilterStore in Simpy Python我想在 Simpy Python 中从 FilterStore 中获取许多项目 【发布时间】:2023-04-02 13:11:01 【问题描述】: 我想从 FilterStore 中获取许多项目。 factory.stock_pa…

    Python开发 2023年4月8日
    00
  • python多进程 主进程和子进程间共享和不共享全局变量实例

    Python支持多进程的并发模型,其中主进程可以创建多个子进程,每个子进程都是独立运行的。在多进程编程中,共享变量和不共享变量是一个常见问题。对于共享变量,它们在主进程和子进程之间共享,而对于不共享变量,它们在各自的进程中都有自己的拷贝。下面我们就来详细讲解。 共享变量 通过共享内存Array共享变量 Python提供了共享内存(Array, Value, …

    python 2023年6月5日
    00
  • Python中如何引入第三方模块

    在Python中,引入第三方模块是一种常见的操作,可以大大提高程序的开发效率和功能性,下面我将介绍详细的引入第三方模块的攻略。 引入第三方模块的方法 Python引入第三方模块有多种方法,例如: 方法一:使用pip安装 pip是Python的默认包管理器,可以用来方便地安装、升级、卸载第三方模块。使用方法很简单,只需要在命令行输入以下命令: pip inst…

    python 2023年5月18日
    00
  • Python如何处理异常报错方法(建议收藏!)

    以下是“Python如何处理异常报错方法”的完整攻略,包含两个示例说明。 Python如何处理异常报错方法 在Python中,异常处理是一处理程序错误方法。以下是在Python中处理异常的步骤: 使用try-except语句:使用try-except语句来捕获可能出现的异常。 python try: # some code that may raise an…

    python 2023年5月13日
    00
  • wtfPython—Python中一组有趣微妙的代码【收藏】

    让我来介绍一下wtfPython这个有趣的项目。 首先,wtfPython是一个Python编程中的有趣的、微妙的代码集合,类似于代码块和面试问题的混合。 具体的说,这个项目中收集了一些在 Python 编程中容易被忽视或被误解的问题,并通过有趣和微妙的示例代码来进行阐述和说明。 下面,我会结合两个实例,让你更好地了解wtfPython这个项目: 1. 复杂…

    python 2023年5月13日
    00
  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.packaging’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.packaging’”错误。这个错误通常是由以下原因之一引起的: pip版本过低:如果pip版本过低,则可能会出现此错误。在这种情况下,需要升级pip版本。 pip安装文件损坏:如果pip安装文件损坏,则可能会出现…

    python 2023年5月4日
    00
  • 国外开发者谈为何放弃PHP而改用Python

    当我们看到一个题目时,有时候会不禁在心里问一句:“这个和我有什么关系吗?” 在这里,作为一个开发者,虽然你在使用某项技术时或永远没有使用过 PHP 或 Python,但了解这两个技术之间的差异还是很有用的。在这篇文章中,我们将讨论一些开发者为什么放弃 PHP 而转向 Python 的原因。同时,我们还会深入了解 Python 和 PHP 之间的差异。 PHP…

    python 2023年6月5日
    00
  • Jupyter notebook如何实现打开数据集

    Jupyter notebook是一种常见的数据科学工具,它可以方便地打开、分析和可视化数据集。以下是Jupyter notebook如何实现打开数据集的完整攻略: 步骤一:导入必要的Python库 在Jupyter notebook中打开一个新的notebook文件,在第一个cell中,我们需要导入必要的Python库,例如: import pandas …

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