学生成绩处理问题。假定“生物医学工程”和“生物工程”两个专业的学生分别上以下课程: (1) 生物医学工程:数学、英语、物理、电子、机械 (2) 生物工程: 数学、英语、物理、分子、生化 假定“生物医学工程”班有4名学生,“生物工程”班有5名学生,分别计算并输出两个班级各门课程的平均分、最高分、最低分、……。 要求: 采用派生关系建立以下类:abstractClass(抽象类)类、BMEclass(生物医学工程班)类和BEclass(生物工程班)类: (1) 对数据而言, class类:包含两个班级的共同课程; BMEclass类和Beclass类:分别包含各自的课程; (2) 对数据(成绩)的处理函数(含输入输出),请放置在合适的类中。

时间: 2023-11-27 21:54:25 浏览: 21
以下是使用派生关系建立的类: ```python from abc import ABC, abstractmethod class AbstractClass(ABC): def __init__(self, name, courses): self.name = name self.courses = courses self.scores = {} @abstractmethod def calculate_scores(self): pass def get_avg_score(self, course): return sum(self.scores[course])/len(self.scores[course]) def get_max_score(self, course): return max(self.scores[course]) def get_min_score(self, course): return min(self.scores[course]) class BMEclass(AbstractClass): def __init__(self): super().__init__("生物医学工程", ["数学", "英语", "物理", "电子", "机械"]) def calculate_scores(self): for course in self.courses: self.scores[course] = [] for i in range(4): score = float(input(f"请输入{self.name}班{i+1}号学生的{course}成绩:")) self.scores[course].append(score) class BEclass(AbstractClass): def __init__(self): super().__init__("生物工程", ["数学", "英语", "物理", "分子", "生化"]) def calculate_scores(self): for course in self.courses: self.scores[course] = [] for i in range(5): score = float(input(f"请输入{self.name}班{i+1}号学生的{course}成绩:")) self.scores[course].append(score) ``` 使用方法: ```python bme = BMEclass() bme.calculate_scores() print(f"{bme.name}班各门课程的平均分、最高分、最低分:") for course in bme.courses: print(f"{course}平均分:{bme.get_avg_score(course):.2f},最高分:{bme.get_max_score(course)},最低分:{bme.get_min_score(course)}") be = BEclass() be.calculate_scores() print(f"{be.name}班各门课程的平均分、最高分、最低分:") for course in be.courses: print(f"{course}平均分:{be.get_avg_score(course):.2f},最高分:{be.get_max_score(course)},最低分:{be.get_min_score(course)}") ```

相关推荐

最新推荐

recommend-type

《软件工程综合课程设计》报告模版

6 条件、假定和限制 7 系统设计与原型UI(或系统设计与实现) 7.1 数据库表设计 7.2 关键算法与实现技术 7.3 主要原型UI(或主要功能实现) 7.4 测试方案与测试用例 7.5 安装与运行情况 7.5.1 安装与配置 ...
recommend-type

期末学生选修课程系统设计

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能: ...
recommend-type

学生成绩管理总体设计说明书.doc

【摘要】 1 绪 论 问题的提出 2 需求分析 系统设计思想 4 系统设计分析 4 系统功能分析 5 学生学籍系统的目标 6 学生成绩管理系统概要设计 系统设计图例说明 13 系统设计业务目标(业务逻辑层) 13 系统设计目标概述 ...
recommend-type

python自学教程-04-自定义JavaScript.ev4.rar

python自学教程-04-自定义JavaScript.ev4.rar
recommend-type

严蔚敏数据结构全套C语言实现

严蔚敏数据结构全套C语言实现
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】增量式PID的simulink仿真实现

# 2.1 Simulink仿真环境简介 Simulink是MATLAB中用于建模、仿真和分析动态系统的图形化环境。它提供了一个直观的用户界面,允许用户使用块和连接线来创建系统模型。Simulink模型由以下元素组成: - **子系统:**将复杂系统分解成更小的、可管理的模块。 - **块:**代表系统中的组件,如传感器、执行器和控制器。 - **连接线:**表示信号在块之间的流动。 Simulink仿真环境提供了广泛的块库,涵盖了各种工程学科,包括控制系统、电子和机械工程。它还支持用户自定义块的创建,以满足特定仿真需求。 # 2. Simulink仿真环境的搭建和建模 ### 2.
recommend-type

训练集和测试集的准确率都99%,但是预测效果不好

即使训练集和测试集的准确率都很高,但是在实际的预测中表现不佳,可能会有以下几个原因: 1. 数据质量问题:模型训练和测试的数据可能存在问题,比如数据标签错误、数据集采样不均衡、数据集中存在异常值等问题,这些问题可能会导致模型在实际预测中表现不佳。 2. 特征工程问题:模型的特征工程可能存在问题,导致模型无法很好地捕捉数据的特征,从而影响预测效果。 3. 模型选择问题:模型的选择可能不合适,比如选择的模型太简单,无法很好地拟合数据,或者选择的模型太复杂,导致过拟合等问题。 4. 超参数调整问题:模型的超参数可能没有调整到最佳状态,需要进行调整。 针对以上可能的原因,可以采取相应的措施进
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。