某位同学修读了n门课程(n的取值至少为3),每门课程有不同的学分,并获得了不同的成绩,请利用组合数据类型中的知识,输入各科目、成绩和学分后并输出显示,计算加权平均分后将结果输出;
时间: 2024-05-04 09:20:55 浏览: 54
好的,我可以为您提供一个Python程序来实现这个功能。请看以下代码:
```python
class Course:
def __init__(self, name, credit, grade):
self.name = name
self.credit = credit
self.grade = grade
n = int(input("请输入课程数:"))
courses = []
for i in range(n):
name = input("请输入第%d门课程名称:" % (i+1))
credit = float(input("请输入第%d门课程学分:" % (i+1)))
grade = float(input("请输入第%d门课程成绩:" % (i+1)))
courses.append(Course(name, credit, grade))
total_credit = 0
total_grade = 0
for course in courses:
total_credit += course.credit
total_grade += course.credit * course.grade
weighted_avg = total_grade / total_credit
print("各科目、成绩和学分:")
for course in courses:
print("%s:成绩%.2f,学分%.2f" % (course.name, course.grade, course.credit))
print("加权平均分为:%.2f" % weighted_avg)
```
这个程序先定义了一个名为`Course`的类,用于存储每门课程的信息。每个`Course`对象包含一个名称、学分和成绩。然后,程序通过循环输入每门课程的信息,并把它们存储在`courses`列表中。接下来,程序遍历`courses`列表,计算总学分和总成绩,最后计算出加权平均分并输出。同时,程序还会输出每门课程的详细信息。
阅读全文