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日

相关文章

  • Python调用两个机器人聊天的实战

    本文将详细讲解如何用 Python 调用两个机器人进行聊天的实战攻略。 简介 现在机器人应用越来越广泛,然而如何调用两个机器人进行对话,却是一个比较有趣的话题。本文将介绍通过 Python 调用两个机器人进行聊天的实现方法。 实现方式 准备工作 在开始操作之前,我们需要安装一些必要的 Python 库: pip install requests 获取机器人的…

    python 2023年5月19日
    00
  • Python中的list.sort()方法和函数sorted(list)

    以下是“Python中的list.sort()方法和函数sorted(list)”的完整攻略。 1. list.sort()方法 在Python中,list.sort()方法用于对列表进行排序。该方法会直接修改原列表而不是返回一个新的排序后的列表。示例如下: my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] my_lis…

    python 2023年5月13日
    00
  • Python实现字典(dict)的迭代操作示例

    以下是Python实现字典(dict)的迭代操作示例的完整攻略: 1. 字典(dict)的基本介绍 字典是Python语言中重要的数据类型之一,用于存储和处理键值对(key-value)的数据结构。 2. 字典的创建 在Python中,我们可以使用如下语法来创建字典: d = {‘key1’: ‘value1’, ‘key2’: ‘value2’, ‘key…

    python 2023年5月13日
    00
  • Python使用正则实现计算字符串算式

    Python使用正则实现计算字符串算式 在Python中,我们可以使用正则表达式来计算字符串算式。本文将详细讲解如何使用正则表达来计算字符串算式,包括基本语法、常用函数和两个示例说明。 基本语法 在Python中,我们可以使用re模块来处理正则表达式。以下是一些常用的正则表达式语法: \d:匹配数字。 \s:匹配空格。 \w:匹配字母、数字和下划线。 ():…

    python 2023年5月14日
    00
  • 用Python给图像算法做个简单应用界面

    下面是详细讲解“用Python给图像算法做个简单应用界面”的完整攻略,包含两个示例说明。 应用界面的作用 应用界面是一种非常有用的工具,可以帮助用户更方便地使用图像算法。应用界面可以提供以下功能: 显示图像 提供算法选项 显示算法结果 保存算法结果 应用界面可以使用户更轻松地使用图像算法,而不需要编写代码或使用命令行界面。 Python实现应用界面 Pyth…

    python 2023年5月14日
    00
  • 爬虫代理池Python3WebSpider源代码测试过程解析

    首先,你需要明确这篇文章的主题是“爬虫代理池Python3WebSpider源代码测试过程解析”(以下简称文章),它主要讲解了一个开源的代理池框架——Python3WebSpider的使用方法。文章分为多个章节,如下所示: 目录 前言 Python3WebSpider介绍 代理池使用场景 代理池实现方法 代理池调用方法 代码测试步骤 代码示例 总结 在阅读本…

    python 2023年5月14日
    00
  • 教你用python编写脚本实现自动签到

    教你用Python编写脚本实现自动签到 简介 本文将详细讲解如何使用Python编写脚本实现自动签到。在本文中,我们将使用Selenium和ChromeDriver两个库。Selenium是一个自动化测试工具,可以用于模拟用户在Web上的操作,如点击按钮等。而ChromeDriver则是Selenium用于控制Chrome浏览器的驱动程序。 环境配置 首先,…

    python 2023年5月19日
    00
  • Python帮你微信头像任意添加装饰别再@微信官方了

    Python帮你微信头像任意添加装饰别再@微信官方了 1. 背景简介 众所周知,微信头像是不允许添加装饰的。但是我们可以通过使用Python脚本进行图片的添加,使得我们的微信头像也能够添加各种个性化装饰元素,如帽子、周边等等。 2. 实现思路 实现这一功能的主要思路是在头像图片基础上,添加我们所需要的装饰图案,然后再将这两个图案合并成一个新的图像,并且保存为…

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