设计一个信息管理系统,实现对学生姓名出生年月学号数学语文英语三门课成绩的输入,同时实现对学生各科成绩的升序或者降序排列,输出学生个人总分和语文,数学,英语三门课的班级平均分
时间: 2023-11-27 14:03:26 浏览: 88
好的,我来设计一个信息管理系统。首先,我们需要定义一个学生类,包含姓名、出生年月、学号和数学、语文、英语三门课程的成绩。然后,我们需要定义一个学生列表,用于存储所有学生信息。接下来,我们需要实现以下功能:
1. 添加学生信息:可以逐一输入每个学生的信息,包括姓名、出生年月、学号和三门课程的成绩,然后将其添加到学生列表中。
2. 排序学生信息:可以按照学生的总分或者某一门课程的成绩进行升序或者降序排列,输出排好序的学生列表。
3. 输出班级平均分:可以计算出班级数学、语文、英语三门课程的平均分,并输出给用户。
以下是一个简单的Python代码实现:
```python
class Student:
def __init__(self, name, birth, id, math, chinese, english):
self.name = name
self.birth = birth
self.id = id
self.math = math
self.chinese = chinese
self.english = english
self.total = math + chinese + english
students = []
def add_student():
name = input("请输入学生姓名:")
birth = input("请输入学生出生年月:")
id = input("请输入学生学号:")
math = float(input("请输入学生数学成绩:"))
chinese = float(input("请输入学生语文成绩:"))
english = float(input("请输入学生英语成绩:"))
student = Student(name, birth, id, math, chinese, english)
students.append(student)
def sort_students(key, reverse):
sorted_students = sorted(students, key=lambda x: getattr(x, key), reverse=reverse)
for student in sorted_students:
print("{},{},{},{},{},{},总分:{}".format(student.name, student.birth, student.id, student.math, student.chinese, student.english, student.total))
def calculate_avg():
math_avg = sum([student.math for student in students]) / len(students)
chinese_avg = sum([student.chinese for student in students]) / len(students)
english_avg = sum([student.english for student in students]) / len(students)
print("数学平均分:{},语文平均分:{},英语平均分:{}".format(math_avg, chinese_avg, english_avg))
while True:
print("请选择操作:")
print("1. 添加学生信息")
print("2. 按总分排序")
print("3. 按数学成绩排序")
print("4. 按语文成绩排序")
print("5. 按英语成绩排序")
print("6. 计算班级平均分")
print("0. 退出")
choice = int(input("请输入操作编号:"))
if choice == 1:
add_student()
elif choice == 2:
sort_students("total", True)
elif choice == 3:
sort_students("math", True)
elif choice == 4:
sort_students("chinese", True)
elif choice == 5:
sort_students("english", True)
elif choice == 6:
calculate_avg()
elif choice == 0:
break
else:
print("请输入正确的操作编号!")
```
注意,在实际开发中,可能需要对输入的数据进行格式检查和异常处理,以保证程序的稳健性和可靠性。
阅读全文