修复了不能在15格以外放置的bug。

This commit is contained in:
unlockable
2023-03-07 23:41:27 +08:00
parent 3c604f48ad
commit d4c9f154db
3 changed files with 103 additions and 6 deletions

97
OOP/03/Exercise02.cpp Normal file
View File

@@ -0,0 +1,97 @@
#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;
}

View File

@@ -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<std::streamsize>::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<std::streamsize>::max(),

View File

@@ -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 {