某学生社团要收集新入社成员的成绩信息。每个成员的成绩有两种表示方式:等级制,用best、good、poor三种等级来表示;百分制,直接用分数来表示。输入成员的成绩信息,统计有多少人是用等级来表示成绩的,用分数来表示成绩的成员的平均分是多少(取整就行)。成绩用联合来表示,成绩信息用结构来表示。
时间: 2024-02-12 15:02:55 浏览: 15
好的,根据您的需求,我来为您提供 C++ 代码:
```c++
#include <iostream>
#include <string>
using namespace std;
union Score {
string grade; // 等级制成绩
double point; // 百分制成绩
};
struct Member {
Score score; // 成绩信息
bool isGrade; // 是否是等级制成绩
};
int main() {
int n;
cout << "请输入成员个数: ";
cin >> n;
Member* members = new Member[n]; // 动态分配数组
int gradeCount = 0; // 等级制成绩的人数
double pointSum = 0; // 百分制成绩的总分
for (int i = 0; i < n; i++) {
cout << "请输入第 " << i + 1 << " 个成员的成绩信息(等级或百分制): ";
cin >> members[i].score.grade; // 先输入等级制成绩
if (members[i].score.grade == "best" || members[i].score.grade == "good" || members[i].score.grade == "poor") {
members[i].isGrade = true; // 如果输入的是等级制成绩,则标记为 true
gradeCount++; // 等级制成绩的人数加 1
}
else {
members[i].isGrade = false; // 否则标记为 false
pointSum += members[i].score.point; // 百分制成绩的总分累加
}
}
double pointAverage = pointSum / (n - gradeCount); // 百分制成绩的平均分
int pointAverageInt = (int)pointAverage; // 取整
cout << "等级制成绩的人数: " << gradeCount << endl;
cout << "百分制成绩的平均分: " << pointAverageInt << endl;
delete[] members; // 释放内存
return 0;
}
```
代码中使用了联合和结构体来表示成员的成绩信息,使用动态分配数组来存储多个成员的信息。在输入成员的成绩信息时,先输入等级制成绩,如果输入的是等级制成绩,则标记为 true,否则标记为 false,并累加百分制成绩的总分。最后根据等级制成绩的人数和百分制成绩的总分计算出百分制成绩的平均分,并输出结果。注意,代码中没有进行输入检查,如果输入的成绩信息不符合要求会导致错误。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)