Files
BasicsOfComputerSoftwareEng…/OOP/03/Exercise02.cpp
2023-03-07 23:41:27 +08:00

97 lines
2.1 KiB
C++

#include <iostream>
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;
}