建立一个对象数组,内放5个学生的数据(学号、姓名、课程名称、成绩),一个学生对象只包含一门课程成绩,定义一个对象指针,指向学生数组,通过该指针调用函数输出最高分的学号、姓名、课程名称、成绩。用C++
时间: 2024-10-10 08:07:31 浏览: 24
在C++中,首先你需要定义一个学生结构体或者类来存储学号、姓名、课程名称和成绩,然后创建一个动态数组(vector)来保存这五个学生的数据。接着,你可以定义一个指向学生对象的指针,用于遍历这个数组并找到最高分的学生。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
// 定义学生类
class Student {
public:
int student_id;
std::string name;
std::string course_name;
float score;
// 构造函数
Student(int id, std::string n, std::string c, float s) : student_id(id), name(n), course_name(c), score(s) {}
// 比较分数的辅助函数
bool operator>(const Student& other) const {
return score > other.score;
}
};
int main() {
// 创建学生数组
std::vector<Student> students = {
{1, "张三", "数学", 90},
{2, "李四", "英语", 85},
{3, "王五", "物理", 95},
{4, "赵六", "化学", 88},
{5, "孙七", "历史", 92}
};
// 定义指向学生对象的指针
Student* ptr = &students[0]; // 使用数组的第一个元素作为起点
// 找到最高分的学生
for (Student* current = ptr; current != students.end(); ++current) {
if (*current > *ptr) {
ptr = current; // 更新最高分学生的位置
}
}
// 输出最高分学生的数据
std::cout << "最高分学生信息:" << std::endl;
std::cout << "学号: " << ptr->student_id << ", 姓名: " << ptr->name << ", 课程名称: " << ptr->course_name << ", 成绩: " << ptr->score << std::endl;
return 0;
}
阅读全文