输入两种数据,一种是学号和姓名的对应关系,每一行有两个字符串,一个是学号,另一个是姓名。另一种数据是学号、课程名称和分数的对应关系,每一行有三个字符串,依次是学号、课程和分数,最后如果一行只有一个单词END,表明所有的数据结束。输出按照学号顺序排列的表格,表的第一行是表头,有学号、姓名和所有学生选修的所有课程的名称,以及每门课的全部学生的平均分。学号按照顺序排序
时间: 2024-03-17 07:47:54 浏览: 83
字符串常量-vb编程语言精讲PPT
好,我理解了你的问题。你需要一个程序来处理两种不同的数据,生成一个表格,表格按学号顺序排列,包括学号、姓名、选修课程名称和每门课的平均分。我可以提供一个 Python 的示例代码,你可以参考它来实现你的程序。
```python
# 读取学生信息
students = {}
while True:
line = input().strip()
if line == "END":
break
student_id, name = line.split()
students[student_id] = name
# 读取选修课程信息
courses = {}
while True:
line = input().strip()
if line == "END":
break
student_id, course, score = line.split()
if course not in courses:
courses[course] = {}
courses[course][student_id] = int(score)
# 生成表格头部
header = ["Student ID", "Name"]
for course in sorted(courses.keys()):
header.append(course)
header.append(course + " Avg.")
print("\t".join(header))
# 生成表格内容
for student_id in sorted(students.keys()):
row = [student_id, students[student_id]]
for course in sorted(courses.keys()):
if student_id in courses[course]:
row.append(str(courses[course][student_id]))
else:
row.append("-")
avg = sum(courses[course].values()) / len(courses[course])
row.append("{:.2f}".format(avg))
print("\t".join(row))
```
这段代码首先读取学生信息和选修课程信息,然后根据这些信息生成表格的头部和内容。头部包括学号、姓名、选修课程名称和每门课的平均分。内容则按照学号顺序排列,包括学号、姓名、选修课程分数和平均分。
注意,这段代码假设输入的数据格式是正确的,因此没有进行错误处理。你需要根据实际情况进行调整。
阅读全文