Python中能够根据输入的某个学生姓名查询出该生的成绩信息,然后能按专业班级输出某门课程的最高分的学生信息,最后能输出某班某门成绩的平均成绩,已经按照专业班级对某门课程的成绩从高到低排序
时间: 2024-05-16 20:17:31 浏览: 4
这个问题需要通过一个数据结构来实现,例如使用字典来存储学生的信息。每个学生的信息可以包括姓名、专业、班级和成绩等内容。假设有以下数据:
```python
students = {
"Tom": {"major": "Computer Science", "class": "CS101", "score": {"Math": 80, "English": 90, "Programming": 85}},
"Jerry": {"major": "Computer Science", "class": "CS102", "score": {"Math": 75, "English": 85, "Programming": 90}},
"Bob": {"major": "Electrical Engineering", "class": "EE101", "score": {"Math": 85, "Physics": 80, "Circuit": 90}}
}
```
根据输入的学生姓名查询该生的成绩信息,可以使用以下代码实现:
```python
name = input("Please enter student's name: ")
if name in students:
print("Name: ", name)
print("Major: ", students[name]["major"])
print("Class: ", students[name]["class"])
print("Score: ", students[name]["score"])
else:
print("Student not found.")
```
按专业班级输出某门课程的最高分的学生信息,可以使用以下代码实现:
```python
course = input("Please enter course name: ")
max_score = 0
max_student = ""
for name in students:
if course in students[name]["score"]:
if students[name]["score"][course] > max_score:
max_score = students[name]["score"][course]
max_student = name
if max_student != "":
print("Course: ", course)
print("Max score: ", max_score)
print("Student: ", max_student)
else:
print("Course not found.")
```
输出某班某门成绩的平均成绩,并按专业班级对某门课程的成绩从高到低排序,可以使用以下代码实现:
```python
course = input("Please enter course name: ")
class_name = input("Please enter class name: ")
total_score = 0
count = 0
class_scores = {}
for name in students:
if students[name]["class"] == class_name and course in students[name]["score"]:
score = students[name]["score"][course]
total_score += score
count += 1
if students[name]["major"] not in class_scores:
class_scores[students[name]["major"]] = {}
class_scores[students[name]["major"]][name] = score
if count > 0:
avg_score = total_score / count
print("Course: ", course)
print("Class: ", class_name)
print("Average score: ", avg_score)
print("Scores:")
for major in class_scores:
print(major)
sorted_scores = sorted(class_scores[major].items(), key=lambda x: x[1], reverse=True)
for item in sorted_scores:
print(item[0], item[1])
else:
print("No record found.")
```