定义一个学生类Student,数据成员包括学号,成绩。 动态建立一个对象数组,内放n个学生的数据;设计一个函数max(,用指向对象的指针和学生数n做函数参数,在max()函数中找出n个学生中成绩最高者,并输出其学号和成绩。 在主函数中进行测试验证。
时间: 2024-10-23 11:21:03 浏览: 31
在C++中,你可以创建一个名为`Student`的类来定义学生的基本信息,包括学号和成绩。首先,我们来编写这个类:
```cpp
class Student {
private:
int studentID;
float grade;
public:
// 构造函数
Student(int id, float score) : studentID(id), grade(score) {}
// 获取学号和成绩的方法
void display() {
cout << "学号:" << studentID << ", 成绩:" << grade << endl;
}
// 比较成绩的辅助方法(这里为了简化例子,只比较分数)
bool operator>(const Student& other) const {
return grade > other.grade;
}
};
```
接下来,你需要定义一个动态数组来存储学生数据并实现`max`函数:
```cpp
#include <vector>
// 动态创建学生数组并找到最高分的学生
void findMax(std::vector<Student>& students, int n) {
if (n <= 0) {
std::cout << "无效的学生数量" << std::endl;
return;
}
if (students.empty()) {
std::cout << "数组为空" << std::endl;
return;
}
Student* maxStudent = &students[0];
for (int i = 1; i < n; ++i) {
if (students[i] > *maxStudent) {
maxStudent = &students[i];
}
}
maxStudent->display();
}
int main() {
// 示例:创建5个学生并添加到动态数组中
int numStudents = 5;
std::vector<Student> students;
for (int i = 0; i < numStudents; ++i) {
int id = i + 1;
float score = static_cast<float>(rand() % 100) + 60; // 生成60至100之间的随机分数
students.push_back(Student(id, score));
}
findMax(students, numStudents);
阅读全文