2. 某位同学修读了n门课程(n的取值至少为3),每门课程有不 同的学分,并获得了不同的成绩,请利用组合数据类型中的知识,输入各科目、成绩和学分后并输出显示,计算加权平均分后将结果输出;
时间: 2024-05-04 09:20:53 浏览: 90
好的,可以使用结构体来表示每门课程的信息,具体实现如下:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Course {
string name; // 课程名称
int score; // 成绩
int credit; // 学分
};
int main() {
int n;
cout << "请输入选修课程数量:";
cin >> n;
Course courses[n];
int total_credit = 0;
double weighted_sum = 0;
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "门课程的名称、成绩和学分(用空格隔开):";
cin >> courses[i].name >> courses[i].score >> courses[i].credit;
total_credit += courses[i].credit;
weighted_sum += courses[i].score * courses[i].credit;
}
cout << "您选修的课程如下:" << endl;
for (int i = 0; i < n; i++) {
cout << courses[i].name << " 成绩:" << courses[i].score << " 学分:" << courses[i].credit << endl;
}
double average = weighted_sum / total_credit;
cout << "加权平均分为:" << average << endl;
return 0;
}
```
示例输出:
```
请输入选修课程数量:3
请输入第1门课程的名称、成绩和学分(用空格隔开):数学 90 3
请输入第2门课程的名称、成绩和学分(用空格隔开):英语 85 2
请输入第3门课程的名称、成绩和学分(用空格隔开):计算机 95 4
您选修的课程如下:
数学 成绩:90 学分:3
英语 成绩:85 学分:2
计算机 成绩:95 学分:4
加权平均分为:91.6667
```
阅读全文