当前位置: 首页 > news >正文

Python:学生管理系统(继承性、多态性)。

输出样例如图: 

 

题目内容:

利用继承、多态性等面向对象程序功能编写程序,实现学生管理系统,并包含以下内容

第一,基类为学生类,并以此派生出本科生类、研究生类。

第二,本科生类包含成员变量:学号、姓名、年龄、高数成绩、英语成绩、平均成绩;包含成员函数:计算平均成绩,显示学生信息(以上所有成员变量)。

第三,研究生类包含成员变量:学号、姓名、年龄、英语成绩、矩阵论成绩、模糊数学成绩、平均成绩、发表论文篇数;包含成员函数:计算平均成绩,显示学生信息(以上所有成员变量)。

第四,写入3个本科生、3个研究生数据(其中不包含数据成员平均成绩)作为默认数据。

第五,编写两个函数,分别实现增加、删除某一个本科生或研究生。

第六,编写函数,能够显示所有学生信息。

第七,编写函数,能够计算每个学生的平均成绩并显示。

代码如下:

# 学生基类
class Student:def __init__(self, student_id, name, age):self.student_id = student_idself.name = nameself.age = age# 本科生类,继承自学生类
class Undergraduate(Student):def __init__(self, student_id, name, age, math_score, english_score):super().__init__(student_id, name, age)self.math_score = math_scoreself.english_score = english_scoreself.average_score = 0def calculate_average_score(self):self.average_score = (self.math_score + self.english_score) / 2return self.average_scoredef display_info(self):print(f"本科生 - 学号: {self.student_id}, 姓名: {self.name}, 年龄: {self.age}, 高数成绩: {self.math_score}, 英语成绩: {self.english_score}, 平均成绩: {self.average_score}")# 研究生类,继承自学生类
class Graduate(Student):def __init__(self, student_id, name, age, english_score, matrix_score, fuzzy_math_score, papers):super().__init__(student_id, name, age)self.english_score = english_scoreself.matrix_score = matrix_scoreself.fuzzy_math_score = fuzzy_math_scoreself.papers = papersself.average_score = 0def calculate_average_score(self):self.average_score = (self.english_score + self.matrix_score + self.fuzzy_math_score) / 3return self.average_scoredef display_info(self):print(f"研究生 - 学号: {self.student_id}, 姓名: {self.name}, 年龄: {self.age}, 英语成绩: {self.english_score}, 矩阵论成绩: {self.matrix_score}, 模糊数学成绩: {self.fuzzy_math_score}, 平均成绩: {self.average_score}, 发表论文篇数: {self.papers}")# 存储学生的列表
undergraduates = []
graduates = []# 初始化默认数据,3 个本科生和 3 个研究生
undergraduate1 = Undergraduate("001", "张三", 20, 80, 70)
undergraduate2 = Undergraduate("002", "李四", 21, 85, 75)
undergraduate3 = Undergraduate("003", "王五", 20, 90, 80)
undergraduates.extend([undergraduate1, undergraduate2, undergraduate3])graduate1 = Graduate("101", "赵六", 23, 70, 80, 85, 2)
graduate2 = Graduate("102", "孙七", 24, 75, 82, 88, 3)
graduate3 = Graduate("103", "周八", 25, 80, 85, 90, 1)
graduates.extend([graduate1, graduate2, graduate3])# 增加本科生函数
def add_undergraduate():student_id = input("请输入本科生学号:")name = input("请输入本科生姓名:")age = int(input("请输入本科生年龄:"))math_score = int(input("请输入高数成绩:"))english_score = int(input("请输入英语成绩:"))new_undergraduate = Undergraduate(student_id, name, age, math_score, english_score)undergraduates.append(new_undergraduate)print("本科生添加成功。")# 增加研究生函数
def add_graduate():student_id = input("请输入研究生学号:")name = input("请输入研究生姓名:")age = int(input("请输入研究生年龄:"))english_score = int(input("请输入英语成绩:"))matrix_score = int(input("请输入矩阵论成绩:"))fuzzy_math_score = int(input("请输入模糊数学成绩:"))papers = int(input("请输入发表论文篇数:"))new_graduate = Graduate(student_id, name, age, english_score, matrix_score, fuzzy_math_score, papers)graduates.append(new_graduate)print("研究生添加成功。")# 删除本科生函数
def delete_undergraduate():student_id = input("请输入要删除的本科生学号:")for undergraduate in undergraduates:if undergraduate.student_id == student_id:undergraduates.remove(undergraduate)print("本科生删除成功。")returnprint("未找到该本科生。")# 删除研究生函数
def delete_graduate():student_id = input("请输入要删除的研究生学号:")for graduate in graduates:if graduate.student_id == student_id:graduates.remove(graduate)print("研究生删除成功。")returnprint("未找到该研究生。")# 显示所有学生信息函数
def display_all_students():print("本科生信息:")for undergraduate in undergraduates:undergraduate.display_info()print("研究生信息:")for graduate in graduates:graduate.display_info()# 计算并显示每个学生平均成绩函数
def calculate_and_display_average_scores():print("本科生平均成绩:")for undergraduate in undergraduates:undergraduate.calculate_average_score()undergraduate.display_info()print("研究生平均成绩:")for graduate in graduates:graduate.calculate_average_score()graduate.display_info()
while True:print("\n学生管理系统菜单:")print("1. 添加本科生")print("2. 添加研究生")print("3. 删除本科生")print("4. 删除研究生")print("5. 显示所有学生信息")print("6. 计算并显示平均成绩")print("7. 退出")choice = input("请输入你的选择:")if choice == "1":add_undergraduate()elif choice == "2":add_graduate()elif choice == "3":delete_undergraduate()elif choice == "4":delete_graduate()elif choice == "5":display_all_students()elif choice == "6":calculate_and_display_average_scores()elif choice == "7":breakelse:print("无效选择,请重新输入。")

该 Python 代码构建了一个简单的学生管理系统,能管理本科生和研究生信息,支持添加、删除学生,展示学生信息及计算平均成绩。具体解释如下:

  1. 类的定义
    • Student 基类
      • 包含学号、姓名、年龄三个基本属性,通过 __init__ 方法初始化。
    • Undergraduate 类
      • 继承自 Student 类,新增高数、英语成绩和平均成绩属性。
      • calculate_average_score 方法计算平均成绩(高数和英语成绩的平均值)。
      • display_info 方法输出本科生详细信息。
    • Graduate 类
      • 继承自 Student 类,新增英语、矩阵论、模糊数学成绩,发表论文篇数和平均成绩属性。
      • calculate_average_score 方法计算平均成绩(三门课成绩的平均值)。
      • display_info 方法输出研究生详细信息。
  2. 数据初始化
    • 创建 undergraduates 和 graduates 两个列表分别存储本科生和研究生对象。
    • 初始化 3 个本科生和 3 个研究生对象并添加到对应列表。
  3. 功能函数
    • 添加学生add_undergraduate 和 add_graduate 函数,通过用户输入信息创建新学生对象并添加到相应列表。
    • 删除学生delete_undergraduate 和 delete_graduate 函数,根据用户输入的学号查找并删除对应学生对象。
    • 显示信息display_all_students 函数输出所有本科生和研究生的信息。
    • 计算平均成绩calculate_and_display_average_scores 函数计算并输出所有学生的平均成绩。
  4. 菜单系统
    • 使用 while True 循环显示菜单,提供 7 个操作选项。
    • 根据用户输入调用相应功能函数,输入 7 则退出系统,输入无效会提示重新输入。

觉得有帮助就给博主点个关注叭~~

有问题的可以私信或者在评论区一起交流

友友们一起加油叭QAQ

http://www.lryc.cn/news/536616.html

相关文章:

  • 网络安全RSA加密
  • Vue学习笔记4
  • mariadb数据库的安装与部署
  • 单调队列与栈
  • Matlab 多项式曲线拟合(三维)
  • 机器翻译同样的文本,是从英语翻译成日语更准确还是中文翻译成日语更准确
  • MAC 系统关屏幕后电量消耗极快 Wake Requests
  • golangAPI调用deepseek
  • 提供可传递的易受攻击的依赖项
  • 2.14学习记录
  • xpath定位--鼠标悬停显示的按钮
  • 鸿蒙Harmony打包脚本使用整理
  • 【C语言】C语言 停车场管理系统的设计与实现(源码)【独一无二】
  • 在Autonomous DB中创建训练数据集
  • Adapting to Length Shift: FlexiLength Network for Trajectory Prediction
  • 张量循环运算:内存溢出原因及解决
  • 【Qt】:概述(下载安装、认识 QT Creator)
  • 11、《Web开发性能优化:静态资源处理与缓存控制深度解析》
  • 【Linux】多线程 -> 从线程概念到线程控制
  • 用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。
  • java处理pgsql的text[]类型数据问题
  • LeetCode 热门100题-字母异位词分组
  • 耐张线夹压接图片智能识别
  • ADC 的音频实验,无线收发模块( nRF24L01)
  • 企业SSL 证书管理指南
  • Python Pandas(7):Pandas 数据清洗
  • 南京观海微电子----整流滤波电路实用
  • 【python】向Jira测试计划下,附件中增加html测试报告
  • 探索ChatGPT背后的前端黑科技
  • Agents Go Deep 智能体深入探索