学生成绩管理系统 设计一个学生成绩管理程序,实现按班级完成对学生成绩信息的录入和修改,并用文件保存。 实现按班级输出学生的成绩单;实现按学号和姓名进行查询,按平均成绩进行排序功能。
时间: 2024-03-14 10:42:44 浏览: 70
好的,我可以帮您解答这个问题。
首先,您需要设计一个学生类,该类包含学号、姓名、班级、成绩等属性和方法。然后,您需要设计一个班级类,该类包含班级名称、学生列表等属性和方法。
接着,您可以设计一个成绩管理系统类,该类包含添加学生信息、修改学生信息、保存学生信息到文件、按班级输出学生成绩单、按学号和姓名查询学生信息、按平均成绩进行排序等功能。
以下是一个简单的 Python 代码示例:
```python
class Student:
def __init__(self, id, name, grade):
self.id = id
self.name = name
self.grade = grade
class Class:
def __init__(self, name):
self.name = name
self.students = []
def add_student(self, student):
self.students.append(student)
class GradeManager:
def __init__(self):
self.classes = []
def add_student(self, class_name, student):
for c in self.classes:
if c.name == class_name:
c.add_student(student)
return
new_class = Class(class_name)
new_class.add_student(student)
self.classes.append(new_class)
def save_to_file(self, filename):
with open(filename, 'w') as f:
for c in self.classes:
f.write(c.name + '\n')
for s in c.students:
f.write(s.id + ' ' + s.name + ' ' + str(s.grade) + '\n')
def print_class_grades(self, class_name):
for c in self.classes:
if c.name == class_name:
print(c.name)
for s in c.students:
print(s.id + ' ' + s.name + ' ' + str(s.grade))
return
def search_student(self, search_key):
for c in self.classes:
for s in c.students:
if s.id == search_key or s.name == search_key:
print(c.name + ' ' + s.id + ' ' + s.name + ' ' + str(s.grade))
def sort_by_average_grade(self):
for c in self.classes:
average_grade = sum([s.grade for s in c.students]) / len(c.students)
print(c.name + ' ' + str(average_grade))
# 使用示例
gm = GradeManager()
# 添加学生信息
gm.add_student('class1', Student('001', '张三', 80))
gm.add_student('class1', Student('002', '李四', 90))
gm.add_student('class2', Student('003', '王五', 70))
# 保存学生信息到文件
gm.save_to_file('grades.txt')
# 按班级输出学生成绩单
gm.print_class_grades('class1')
# 按学号和姓名查询学生信息
gm.search_student('001')
gm.search_student('李四')
# 按平均成绩进行排序
gm.sort_by_average_grade()
```
当然,这只是一个简单的示例代码,您可以根据自己的需求进行修改和完善。
阅读全文