建立一个至少4个学生的信息登记表,每个学生的信息包括:学号,姓名,和至少3门课程的成绩。程序运行时显示一个简单的菜单,例如:(1):信息输入(INPUT)(2):总分统计(COUNT)(3):总分排序(SORT)(4):查询(QUERY)其中:(1):对所有学生的信息进行输入;(2):对每个学生的各门课程统计总分;(3):对学生的总分按降序排序并显示出来;(4):查询输入一个学号后,显示出该学生的有关信息;
时间: 2024-01-09 10:04:16 浏览: 51
1_lower7y7_定义一个包含学生信息(学号_成绩)的顺序表和链表(二选一)_姓名_使其具有如下功能_
5星 · 资源好评率100%
好的,以下是Python代码实现:
```python
# 定义学生类
class Student:
def __init__(self, id, name, scores):
self.id = id
self.name = name
self.scores = scores
self.total_score = sum(scores)
def __str__(self):
return f"{self.id}\t{self.name}\t{self.scores[0]}\t{self.scores[1]}\t{self.scores[2]}\t{self.total_score}"
# 初始化学生列表
students = []
# 菜单
def menu():
print("(1): 信息输入(INPUT)")
print("(2): 总分统计(COUNT)")
print("(3): 总分排序(SORT)")
print("(4): 查询(QUERY)")
# 输入学生信息
def input_info():
n = int(input("请输入学生数量:"))
for i in range(n):
id = input(f"请输入第{i+1}个学生的学号:")
name = input(f"请输入第{i+1}个学生的姓名:")
scores = []
for j in range(3):
score = int(input(f"请输入第{i+1}个学生的第{j+1}门课程成绩:"))
scores.append(score)
s = Student(id, name, scores)
students.append(s)
# 统计每个学生的总分
def count_score():
for s in students:
print(s)
# 按总分降序排序
def sort_score():
students.sort(key=lambda x: x.total_score, reverse=True)
for s in students:
print(s)
# 查询学生信息
def query_info():
id = input("请输入要查询的学生学号:")
for s in students:
if s.id == id:
print(s)
return
print("未找到该学生信息!")
# 主程序
while True:
menu()
choice = input("请选择操作:")
if choice == "1":
input_info()
elif choice == "2":
count_score()
elif choice == "3":
sort_score()
elif choice == "4":
query_info()
else:
print("输入错误,请重新选择!")
```
运行程序后,你可以按照菜单提示进行操作,例如输入学生信息、统计总分、排序、查询学生信息等。注意学号需要唯一,否则会出现查询错误。
阅读全文