【Python入门与进阶】综合练习题:学生成绩管理系统

embedded/2024/10/24 12:31:38/

综合练习题:学生成绩管理系统

题目描述:

请你设计一个简单的学生成绩管理系统,要求能够进行以下操作:

  1. 添加学生信息(包括姓名和学号)
  2. 添加学生的成绩(包括科目和成绩)
  3. 查询学生的平均成绩
  4. 打印所有学生的成绩单

解题思路:

  1. 定义类

    • 创建一个 Student 类,包含以下属性:
      • name: 学生姓名
      • id: 学生学号
      • grades: 存储学生成绩的字典,键为科目,值为成绩
    • 创建一个 StudentManagementSystem 类,包含学生列表,并实现以下方法:
      • add_student(name, id): 添加学生
      • add_grade(student_id, subject, grade): 添加成绩
      • get_average_grade(student_id): 计算并返回学生的平均成绩
      • print_report(): 打印所有学生的成绩单
  2. 实现函数

    • 实现各个方法,确保它们能够正确操作和访问类的属性。
  3. 测试系统

    • 创建几个学生,添加他们的成绩,查询他们的平均成绩,最后打印所有学生的成绩单。

参考代码:

python">class Student:def __init__(self, name, student_id):self.name = nameself.student_id = student_idself.grades = {}def add_grade(self, subject, grade):self.grades[subject] = gradedef get_average_grade(self):if not self.grades:return 0return sum(self.grades.values()) / len(self.grades)class StudentManagementSystem:def __init__(self):self.students = {}def add_student(self, name, student_id):if student_id in self.students:print(f"学生ID {student_id} 已存在。")else:self.students[student_id] = Student(name, student_id)print(f"添加学生:{name} (ID: {student_id})")def add_grade(self, student_id, subject, grade):if student_id not in self.students:print(f"学生ID {student_id} 不存在。")else:self.students[student_id].add_grade(subject, grade)print(f"为学生ID {student_id} 添加成绩:{subject} - {grade}")def get_average_grade(self, student_id):if student_id not in self.students:print(f"学生ID {student_id} 不存在。")return Noneelse:average_grade = self.students[student_id].get_average_grade()print(f"学生ID {student_id} 的平均成绩是: {average_grade:.2f}")return average_gradedef print_report(self):for student_id, student in self.students.items():print(f"学生: {student.name} (ID: {student_id})")for subject, grade in student.grades.items():print(f"  {subject}: {grade}")print(f"  平均成绩: {student.get_average_grade():.2f}")print("-" * 20)# 测试代码
system = StudentManagementSystem()
system.add_student("Alice", 1)
system.add_student("Bob", 2)system.add_grade(1, "Math", 90)
system.add_grade(1, "English", 85)
system.add_grade(2, "Math", 78)
system.add_grade(2, "English", 82)system.get_average_grade(1)
system.get_average_grade(2)system.print_report()

总结:

  1. 通过定义 StudentStudentManagementSystem 类,封装了学生信息和管理系统的功能。
  2. 使用类的方法来添加学生和成绩、计算平均成绩以及打印成绩单。
  3. 通过测试代码验证系统的功能。

http://www.ppmy.cn/embedded/50232.html

相关文章

kafka如何保证消息不丢失

Kafka发送消息是异步发送的,所以我们不知道消息是否发送成功,所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失,那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…

Python归并排序

归并排序是一种分治算法,它将数组分成两半,分别对这两半进行排序,然后将排序后的两半合并在一起。归并排序是一种稳定的排序算法,时间复杂度为O(n log n),其中n是数组中元素的数量。 以下是Python实现归并排序的一个例…

Java项目:基于SSM框架实现的新华学院实验室管理系统【ssm+B/S架构+源码+数据库+开题报告+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的新华学院实验室管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单…

【Python】深入了解聚类:从原理到实践

听说你 为她做的 件件是我 曾经求而不得 我够不着的烟火 偏偏降落 在别人窗口 那晚的风 吹到今天都还未凉透 才松开手 你却已握紧别的温柔 🎵 杨宗纬/于文文《听说你》 在数据科学和机器学习领域,聚类(Clustering&#…

Android CTS环境搭建

CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。 搭建CTS测试环境需…

深度学习 --- stanford cs231学习笔记四(神经网络的几大重要组成部分)

训练神经网络1 1,激活函数(activation functions) 激活函数是神经网络之于线性分类器的最大进步,最大贡献,即,引入了非线性。 1,1 Sigmoid sigmoid函数的性质: 结合指数函数的图像可…

Zig标准库:最全数据结构深度解析(1)

最近新闻看到17岁中专女生拿下阿里全球数学竞赛第12名。咱们学习标准库中的数据结构是和学习数学是一脉相承的,结构体很多,也非常枯燥,但是不能全面解读过一遍,你很难写出合理的代码。所以,这一章节我们开始深度解析Zi…

【云计算】Docker部署Nextcloud网盘并实现随地公网远程访问

配置文件 切换root权限,新建一个nextcloud的文件夹,进入该目录,创建docker-compose.yml [cpslocalhost ~]$ su root Password: 666666 [rootlocalhost cps]# ls Desktop Documents Downloads Music Pictures Public Templates Vide…