From d4c9f154db469e8fecb37c50e668ae9e92e78aa0 Mon Sep 17 00:00:00 2001 From: unlockable Date: Tue, 7 Mar 2023 23:41:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E5=9C=A815=E6=A0=BC=E4=BB=A5=E5=A4=96=E6=94=BE=E7=BD=AE?= =?UTF-8?q?=E7=9A=84bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OOP/03/Exercise02.cpp | 97 +++++++++++++++++++++++++++++++++++++++ OOP/FiveInARow/main.cpp | 8 ++-- OOP/FiveInARow/player.cpp | 4 +- 3 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 OOP/03/Exercise02.cpp diff --git a/OOP/03/Exercise02.cpp b/OOP/03/Exercise02.cpp new file mode 100644 index 0000000..1dfac70 --- /dev/null +++ b/OOP/03/Exercise02.cpp @@ -0,0 +1,97 @@ +#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; +} \ No newline at end of file diff --git a/OOP/FiveInARow/main.cpp b/OOP/FiveInARow/main.cpp index 2479a78..336e4fe 100644 --- a/OOP/FiveInARow/main.cpp +++ b/OOP/FiveInARow/main.cpp @@ -53,8 +53,8 @@ int main() { std::cout << "Row No. "; std::cin >> row; if (std::cin.fail() || - (!(('1' <= row && row <= '9') || ('A' <= row && row <= 'F') || - ('a' <= row && row <= 'f')))) { + (!(('1' <= row && row <= '9') || ('A' <= row && row <= 'J') || + ('a' <= row && row <= 'j')))) { std::cout << "Invalid input, try again." << std::endl; std::cin.clear(); std::cin.ignore(std::numeric_limits::max(), @@ -71,8 +71,8 @@ int main() { std::cout << "Column No. "; std::cin >> column; if (std::cin.fail() || - (!(('1' <= row && row <= '9') || ('A' <= row && row <= 'F') || - ('a' <= row && row <= 'f')))) { + (!(('1' <= row && row <= '9') || ('A' <= row && row <= 'J') || + ('a' <= row && row <= 'j')))) { std::cout << "Invalid input, try again." << std::endl; std::cin.clear(); std::cin.ignore(std::numeric_limits::max(), diff --git a/OOP/FiveInARow/player.cpp b/OOP/FiveInARow/player.cpp index ad238ff..7a50c69 100644 --- a/OOP/FiveInARow/player.cpp +++ b/OOP/FiveInARow/player.cpp @@ -6,10 +6,10 @@ int Player::toInt(char input) { if ('1' <= input && input <= '9') { return input - '1'; } - else if ('A' <= input && input <= 'F') { + else if ('A' <= input && input <= 'J') { return input - 'A' + 9; } - else if ('a' <= input && input <= 'f') { + else if ('a' <= input && input <= 'j') { return input - 'a' + 9; } else {