设计一个CStudent(学生)类,并使CStudent类具有以下特点: 1)该类有学生姓名、学号、C++程序设计、高等数学、数据结构三门课程的成绩; 2)学生全部信息由键盘输入,以提高程序的适应性; 3)通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可以求取平均成绩; 4)输出学生的基本信息、各科成绩与平均成绩; 5)学生对象的定义采用对象数组实现; 6)统计不及格学生人数。
时间: 2023-05-19 09:07:13 浏览: 107
好的,我可以回答这个问题。以下是一个CStudent类的设计,满足您的要求:
```c++
#include <iostream>
#include <string>
using namespace std;
class CStudent {
private:
string name; // 学生姓名
string id; // 学号
float c_score; // C程序设计成绩
float math_score; // 高等数学成绩
float ds_score; // 数据结构成绩
public:
// 构造函数
CStudent(string n, string i, float c, float m, float ds) {
name = n;
id = i;
c_score = c;
math_score = m;
ds_score = ds;
}
// 默认构造函数
CStudent() {}
// 成员函数,计算平均成绩
float average() {
return (c_score + math_score + ds_score) / 3;
}
// 成员函数,输出学生信息
void print() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "C程序设计成绩:" << c_score << endl;
cout << "高等数学成绩:" << math_score << endl;
cout << "数据结构成绩:" << ds_score << endl;
cout << "平均成绩:" << average() << endl;
}
// 成员函数,判断是否不及格
bool is_fail() {
return (c_score < 60 || math_score < 60 || ds_score < 60);
}
};
int main() {
const int N = 3; // 学生数量
CStudent students[N]; // 学生对象数组
// 从键盘输入学生信息
for (int i = 0; i < N; i++) {
string name, id;
float c_score, math_score, ds_score;
cout << "请输入第" << i+1 << "个学生的姓名:";
cin >> name;
cout << "请输入第" << i+1 << "个学生的学号:";
cin >> id;
cout << "请输入第" << i+1 << "个学生的C程序设计成绩:";
cin >> c_score;
cout << "请输入第" << i+1 << "个学生的高等数学成绩:";
cin >> math_score;
cout << "请输入第" << i+1 << "个学生的数据结构成绩:";
cin >> ds_score;
students[i] = CStudent(name, id, c_score, math_score, ds_score);
}
// 输出学生信息
for (int i = 0; i < N; i++) {
students[i].print();
}
// 统计不及格学生人数
int fail_count = 0;
for (int i = 0; i < N; i++) {
if (students[i].is_fail()) {
fail_count++;
}
}
cout << "不及格学生人数:" << fail_count << endl;
return 0;
}
```
希望这个回答能够帮助您!