允许用0保留原值。

This commit is contained in:
unlockable
2023-06-25 12:05:10 +08:00
parent 39b3cec221
commit c81338a152
3 changed files with 17 additions and 17 deletions

View File

@@ -284,21 +284,21 @@ void ListDisplay::promptForFromDate() {
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_year = (tempInput == 0 ? curDate.tm_year : tempInput - 1900);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Month: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_mon = (tempInput == 0 ? curDate.tm_mon : tempInput - 1);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Day: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_mday = (tempInput == 0 ? curDate.tm_mday : tempInput);
}
else {
@@ -354,21 +354,21 @@ void ListDisplay::promptForToDate() {
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_year = (tempInput == 0 ? curDate.tm_year : tempInput - 1900);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Month: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_mon = (tempInput == 0 ? curDate.tm_mon : tempInput - 1);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Day: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
curDate.tm_mday = (tempInput == 0 ? curDate.tm_mday : tempInput);
}
else {
@@ -419,7 +419,7 @@ void ListDisplay::promptForSearchStuID() {
// std::cin >> tempStuID;
// std::cin.ignore();
tempStuID = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
this->searchForStu.setNumber(tempStuID == 0 ? this->searchForStu.getNumber()
: tempStuID);
this->reapplyFilter();

View File

@@ -10,7 +10,7 @@ private:
int getIndexInRange(int index) const;
void quickSort(
int leftBound, int rightBound,
std::function<bool(const E &, const E &)> const &isCorrentOrderFunc);
std::function<bool(const E &, const E &)> const &isCorrectOrderFunc);
public:
List();
@@ -77,7 +77,7 @@ template <class E> int List<E>::getIndexInRange(int index) const {
template <class E>
void List<E>::quickSort(
int leftBound, int rightBound,
std::function<bool(const E &, const E &)> const &isCorrentOrderFunc) {
std::function<bool(const E &, const E &)> const &isCorrectOrderFunc) {
if (leftBound >= rightBound) {
return;
}
@@ -87,14 +87,14 @@ void List<E>::quickSort(
int right = rightBound;
while (left < right) {
while (isCorrentOrderFunc((*this)[pivot], (*this)[right]) &&
while (isCorrectOrderFunc((*this)[pivot], (*this)[right]) &&
right > left) {
right--;
}
this->swap(pivot, right);
pivot = right;
while (isCorrentOrderFunc((*this)[left], (*this)[pivot]) &&
while (isCorrectOrderFunc((*this)[left], (*this)[pivot]) &&
right > left) {
left++;
}
@@ -102,8 +102,8 @@ void List<E>::quickSort(
pivot = left;
}
quickSort(leftBound, pivot - 1, isCorrentOrderFunc);
quickSort(pivot + 1, rightBound, isCorrentOrderFunc);
quickSort(leftBound, pivot - 1, isCorrectOrderFunc);
quickSort(pivot + 1, rightBound, isCorrectOrderFunc);
}
template <class E> List<E>::List() : head(NULL), _length(0){};

View File

@@ -71,21 +71,21 @@ void BaseRecord::promptForNewDate(bool showOriginal) {
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
newDate.tm_year = (tempInput == 0 ? curDate.tm_year : tempInput - 1900);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Month: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
newDate.tm_mon = (tempInput == 0 ? curDate.tm_mon : tempInput - 1);
std::cout << setoutputcolor(ConsoleColorTool::blue)
<< "Day: " << resetOutputColor << std::flush;
// std::cin >> tempInput;
// std::cin.ignore();
tempInput = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
newDate.tm_mday = (tempInput == 0 ? curDate.tm_mday : tempInput);
}
else {
@@ -157,7 +157,7 @@ void BaseRecord::promptForNewStudentInfo(bool showOriginal) {
// std::cin >> tempStuID;
// std::cin.ignore();
tempStuID = safeInputNum<int>("Please input a positive integer.\n",
[](const int &num) { return num > 0; });
[](const int &num) { return num >= 0; });
this->student.setNumber(tempStuID == 0 ? this->student.getNumber()
: tempStuID);
std::cout << setoutputcolor(ConsoleColorTool::blue)