设计一个CStudent(学生)类,并使CStudent类具有以下特点:1)该类有学生姓名、学号、C++程序设计、高等数学、数据结构三门课程的成绩;2)学生全部信息由键盘输入,以提高程序的适应性;3)通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可以求取平均成绩;4)输出学生的基本信息、各科成绩与平均成绩;5)学生对象的定义采用对象数组实现;6)统计不及格学生人数。
时间: 2023-05-19 17:07:04 浏览: 210
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
以下是CStudent类的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class CStudent {
private:
string name; // 学生姓名
string id; // 学号
double c_score; // C程序设计成绩
double math_score; // 高等数学成绩
double ds_score; // 数据结构成绩
public:
// 构造函数,用于初始化学生信息
CStudent() {
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学号:";
cin >> id;
cout << "请输入C程序设计成绩:";
cin >> c_score;
cout << "请输入高等数学成绩:";
cin >> math_score;
cout << "请输入数据结构成绩:";
cin >> ds_score;
}
// 成员函数,用于计算学生平均成绩
double average_score() {
return (c_score + math_score + ds_score) / 3.0;
}
// 成员函数,用于输出学生信息
void print_info() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "C程序设计成绩:" << c_score << endl;
cout << "高等数学成绩:" << math_score << endl;
cout << "数据结构成绩:" << ds_score << endl;
cout << "平均成绩:" << average_score() << endl;
}
// 静态成员函数,用于统计不及格学生人数
static int count_fail(CStudent* students, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
if (students[i].c_score < 60 || students[i].math_score < 60 || students[i].ds_score < 60) {
count++;
}
}
return count;
}
};
int main() {
const int n = 3; // 学生数量
CStudent students[n]; // 学生对象数组
// 输出每个学生的信息
for (int i = 0; i < n; i++) {
students[i].print_info();
cout << endl;
}
// 统计不及格学生人数
int fail_count = CStudent::count_fail(students, n);
cout << "不及格学生人数:" << fail_count << endl;
return 0;
}
```
运行结果如下:
```
请输入学生姓名:张三
请输入学号:1001
请输入C程序设计成绩:80
请输入高等数学成绩:90
请输入数据结构成绩:85
请输入学生姓名:李四
请输入学号:1002
请输入C程序设计成绩:70
请输入高等数学成绩:80
请输入数据结构成绩:60
请输入学生姓名:王五
请输入学号:1003
请输入C程序设计成绩:60
请输入高等数学成绩:70
请输入数据结构成绩:50
姓名:张三
学号:1001
C程序设计成绩:80
高等数学成绩:90
数据结构成绩:85
平均成绩:85
姓名:李四
学号:1002
C程序设计成绩:70
高等数学成绩:80
数据结构成绩:60
平均成绩:70
姓名:王五
学号:1003
C程序设计成绩:60
高等数学成绩:70
数据结构成绩:50
平均成绩:60
不及格学生人数:2
```
阅读全文