复制
收藏
提问
简洁
二、任务要求 (一)设计一个"学生"类: 此类应包含以下属性: 1.姓名:字符串类型 2.学号:字符串类型 3.各科成绩:字典类型,键是科目名称,值是该科目的分数 此类应包含以下方法: 1.add_grade(subject, grade):添加一门新的科目成绩 2.modify_grade(subject, grade):修改已有科目的成绩 3.__str__():返回学生信息的字符串形式,方便打印 (二)设计一个"班级"类: 此类应包含以下属性: 1.学生列表:元素是"学生"类的实例 此类应包含以下方法: 1.add_student(student):向班级中添加一个新的学生 2.remove_student(name):从班级中删除一个学生,根据名字 3.find_student(name):在班级中查找一个学生,根据名字 4.display_students():打印所有学生的信息 5.save_to_file(filename):将班级中的学生信息保存到文件中,文件格式为JSON 6.load_from_file(filename):从文件中读取学生信息,并创建学生实例添加到班级中
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
根据您的任务要求,我将为您设计两个类:Student
和 Classroom
。以下是这两个类的 Python 代码实现:
import json
class Student:
def __init__(self, name, student_id):
self.name = name
self.student_id = student_id
self.grades = {} # 各科成绩,字典类型
def add_grade(self, subject, grade):
self.grades[subject] = grade
def modify_grade(self, subject, grade):
if subject in self.grades:
self.grades[subject] = grade
else:
print(f"No such subject '{subject}' to modify.")
def __str__(self):
return f"Student Name: {self.name}, Student ID: {self.student_id}, Grades: {self.grades}"
class Classroom:
def __init__(self):
self.students = [] # 学生列表
def add_student(self, student):
self.students.append(student)
def remove_student(self, name):
self.students = [student for student in self.students if student.name != name]
def find_student(self, name):
for student in self.students:
if student.name == name:
return student
return None
def display_students(self):
for student in self.students:
print(student)
def save_to_file(self, filename):
with open(filename, 'w', encoding='utf-8') as f:
json.dump([student.__dict__ for student in self.students], f, ensure_ascii=False, indent=4)
def load_from_file(self, filename):
with open(filename, 'r', encoding='utf-8') as f:
students_data = json.load(f)
for student_data in students_data:
new_student = Student(student_data['name'], student_data['student_id'])
new_student.grades = student_data['grades']
self.add_student(new_student)
# 示例使用
classroom = Classroom()
student1 = Student("Alice", "S001")
student1.add_grade("Math", 95)
student1.add_grade("English", 88)
classroom.add_student(student1)
classroom.display_students()
# 保存到文件
classroom.save_to_file("students.json")
# 从文件加载
classroom.load_from_file("students.json")
classroom.display_students()
这段代码定义了两个类,Student
类用于表示单个学生,包含姓名、学号和成绩字典。Classroom
类用于表示一个班级,包含学生列表,并提供了添加、删除、查找学生以及显示所有学生信息的方法。此外,Classroom
类还提供了将学生信息保存到 JSON 文件和从 JSON 文件加载学生信息的方法。
请注意,这段代码是一个简单的示例,实际使用时可能需要根据具体需求进行调整和扩展。
你觉得结果怎么样?