#include class Student { private: std::string name; int studentNumber; int grade; public: Student(); Student(std::string& newName, int newNumber, int newGrade); Student(Student &otherStu); ~Student(); std::string getName(); int getGrade(); int getStudentNumber(); void displayInfo(); }; Student::Student() { name = "Undefined"; studentNumber = 0; grade = 0; } Student::Student(std::string& newName, int newNumber, int newGrade) { name = newName; this->studentNumber = newNumber; this->grade = newGrade; } Student::Student(Student &otherStu) { name = otherStu.getName(); studentNumber = otherStu.studentNumber; grade = otherStu.grade; } Student::~Student() { } std::string Student::getName() { return this->name; } int Student::getGrade() { return this->grade; } int Student::getStudentNumber() { return this->studentNumber; } void Student::displayInfo() { std::cout << "Name: " << this->name << std::endl << "Student Number: " << this->studentNumber << std::endl << "Grade: " << this->grade << std::endl; } int max(Student* students[]) { int max_studnum = 0; int max = 0; for (int i = 0; i < 10; i++) { if (students[i]->getGrade() > max) { max = students[i]->getGrade(); max_studnum = students[i]->getStudentNumber(); } } return max_studnum; } int main() { Student* students[10]; for (int i = 0; i < 10; i++) { std::string name; int studnum; int grade; std::cout << "Name: "; std::cin >> name; std::cout << "Student No.: "; std::cin >> studnum; std::cout << "Grade: "; std::cin >> grade; students[i] = new Student(name, studnum, grade); } int maxStudNum = max(students); Student maxStud; for (int i = 0; i < 10; i++) { if (students[i]->getStudentNumber() == maxStudNum) { maxStud = *(students[i]); break; } } std::cout << "The max is: " << std::endl; maxStud.displayInfo(); return 0; }