用c++建立一个对象数组,内放5个学生的数据(学号、姓名、课程名称、成绩),一个学生对象只包含一门课程成绩,定义一个对象指针,指向学生数组,通过该指针调用函数输出最高分的学号、姓名、课程名称、成绩。
时间: 2024-10-29 08:13:23 浏览: 33
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
在C++中,你可以首先创建一个`Student`类,包含学号、姓名、课程名称以及成绩属性。然后定义一个对象数组`students`,每个元素都是`Student`类型的。接着,定义一个`Student*`类型的指针`ptr`,它将指向这个数组。
```cpp
#include <iostream>
#include <string>
class Student {
public:
int student_id;
std::string name;
std::string course_name;
float grade;
// 构造函数
Student(int id, const std::string& n, const std::string& c, float g) :
student_id(id), name(n), course_name(c), grade(g) {}
// 输出学生信息的成员函数
void display() {
std::cout << "学号:" << student_id << ", 姓名:" << name << ", 课程:" << course_name << ", 成绩:" << grade << std::endl;
}
};
// 函数模板用于找出最高分的学生信息
template<typename T>
T find_highest_score(T* students, int size) {
if (size == 0)
return students[0]; // 如果数组为空,返回第一个元素
T highest_student = students[0];
for (int i = 1; i < size; ++i) {
if (students[i].grade > highest_student.grade) {
highest_student = students[i];
}
}
return highest_student;
}
int main() {
Student students[] = {
{1, "张三", "数学", 95},
{2, "李四", "英语", 90},
{3, "王五", "物理", 98},
{4, "赵六", "化学", 92},
{5, "孙七", "生物", 96}
};
int num_students = sizeof(students) / sizeof(students[0]);
Student* ptr = students; // 指向学生数组
// 使用指针调用函数找到并输出最高分的学生信息
Student highest_student = find_highest_score(ptr, num_students);
highest_student.display();
阅读全文