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

yizhihongxing

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日

相关文章

  • 显示纯文本和 HTML 版本的 Python SMTP 电子邮件

    【问题标题】:Python SMTP Emails Showing Both Plain and HTML Versions显示纯文本和 HTML 版本的 Python SMTP 电子邮件 【发布时间】:2023-04-01 18:33:01 【问题描述】: 发送一封 smtp 电子邮件,当我收到电子邮件时,它会背靠背显示纯文本版本和 html 版本。这样做…

    Python开发 2023年4月8日
    00
  • Python中遇到的小问题及解决方法汇总

    Python中遇到的小问题及解决方法汇总 在Python编程过程中,我们可能会遇到各种小问题,例如安装库时出现错误、语法错误、缩进错误等。以下是Python中到的小问题及解决方法的完整攻略: 1. 安装库时出现错误 在Python编程过程中,我们可能会到安装库时出现错误的情况。这些错误可能是由于缺少依赖项、网络问题或其他因引起的。以下是一些常见的错误及其解决…

    python 2023年5月13日
    00
  • Python编码时应该注意的几个情况

    当我们使用Python编写代码时,有一些情况需要特别注意,下面我会为大家详细讲解。 1.指定编码方式 在Python2中,默认的源文件编码是ASCII,而在Python3中则是UTF-8。因此,在编写代码时,需要指定正确的编码方式。一般情况下,我们会在源文件开头指定编码方式,具体操作如下: # -*- coding: utf-8 -*- 其中,utf-8是指…

    python 2023年5月31日
    00
  • 简单介绍Python中的RSS处理

    当使用Python处理带有RSS的网站时,可以使用“feedparser”模块,此模块可以让你轻松地获取和处理这些数据。 安装feedparser 使用feedparser模块需要先安装它。可以使用pip来安装feedparser,运行以下命令即可: pip install feedparser 解析RSS Feed 一旦安装了feedparser,就可以使…

    python 2023年6月3日
    00
  • python批量解压zip文件的方法

    下面是详细的讲解: 标题 首先,在撰写本文的时候,为了更好的呈现代码,我们应该添加代码块、标题等元素来进行标识。 代码块 在Markdown中插入代码块,可以使用三个反引号或者四个空格 + 相应的编程语言。 import zipfile import os # 解压zip文件 def unzip_file(zip_src, dst_dir): r = zip…

    python 2023年6月3日
    00
  • sip消息拆包原理及组包流程

    操作系统 :CentOS 7.6_x64      freeswitch版本 :1.10.9 sofia-sip版本: sofia-sip-1.13.14   freeswitch使用sip协议进行通信,当sip消息超过mtu时,会出现拆包的情况,这里整理下sip消息拆包原理及组包流程。 一、拆包的原理  简单来说:拆包的原因是,sip消息过长,超过mtu值…

    python 2023年4月18日
    00
  • Python中的collections集合与typing数据类型模块

    Python是一门强大的编程语言,由于它的动态特性,开发人员可以使用数据结构和类型进行更轻松的编程。Python提供了两个非常有用的模块,即collections和typing,它们都能够为你的开发工作提供相当多的帮助。 collections模块 collections模块是Python标准库中的一部分,提供了一系列数据类型,这些数据类型对于处理特定类型的…

    python 2023年5月13日
    00
  • 关于Python字符串显示u…的解决方式

    关于Python字符串显示u…的问题,其实是与Python的编码方式有关的。在Python 2版本中,默认使用ASCII编码格式,而在Python 3版本中则默认使用Unicode编码格式。因此,在Python 2版本中,如果出现u…的情况,则表示该字符串是Unicode编码格式,需要进行转换才能正确地进行处理。 下面,我将分享两种解决该问题的方式:…

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