W7 Q1
This commit is contained in:
parent
57864ba51d
commit
672289a9cf
125
main.cpp
125
main.cpp
@ -2,100 +2,41 @@
|
|||||||
#include <random>
|
#include <random>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
||||||
using string = std::string;
|
class A {
|
||||||
void ignoreTillLineEnd();
|
public:
|
||||||
string promptfs(string);
|
A() {
|
||||||
int promptfi(string);
|
std::cout << "Class A Created\n";
|
||||||
string guessRank(int);
|
}
|
||||||
|
~A() {
|
||||||
|
std::cout << "Class A Destroyed\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class B {
|
||||||
|
public:
|
||||||
|
B() {
|
||||||
|
std::cout << "Class B Created\n";
|
||||||
|
}
|
||||||
|
~B() {
|
||||||
|
std::cout << "Class B Destroyed\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class C : public A {
|
||||||
|
B b{};
|
||||||
|
public:
|
||||||
|
C() {
|
||||||
|
std::cout << "Class C Created\n";
|
||||||
|
}
|
||||||
|
~C() {
|
||||||
|
std::cout << "Class C Destroyed\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
std::mt19937 rand {std::random_device{}()};
|
A v{};
|
||||||
std::uniform_int_distribution clamp {1, 100};
|
B w{};
|
||||||
string name {promptfs("Enter your name:")};
|
C x{};
|
||||||
std::cout << "Hello " << name << ", welcome to guess the number.\n";
|
|
||||||
int guesses {};
|
|
||||||
int num {clamp(rand)}, ent {};
|
|
||||||
do {
|
|
||||||
if (guesses++ > 0) {
|
|
||||||
if (ent > num)
|
|
||||||
std::cout << "You Guessed Too High!\n";
|
|
||||||
else
|
|
||||||
std::cout << "You Guessed Too Low!\n";
|
|
||||||
}
|
|
||||||
ent = promptfi("Enter your guess:");
|
|
||||||
}
|
|
||||||
while (num != ent);
|
|
||||||
std::cout << "Well done " << name << ", you guessed correctly!\n";
|
|
||||||
std::cout << "You took " << guesses << " guesses, rank " << guessRank(guesses) << " .\n";
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ignoreTillLineEnd() {
|
|
||||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
string promptfs(string msg) {
|
|
||||||
bool once {};
|
|
||||||
string toret {};
|
|
||||||
do {
|
|
||||||
if (once) {
|
|
||||||
std::cin.clear();
|
|
||||||
ignoreTillLineEnd();
|
|
||||||
std::cout << "Input Failure!\n";
|
|
||||||
}
|
|
||||||
std::cout << msg << "\n";
|
|
||||||
std::cin >> toret;
|
|
||||||
once = true;
|
|
||||||
}
|
|
||||||
while (std::cin.fail());
|
|
||||||
ignoreTillLineEnd();
|
|
||||||
return toret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int promptfi(string msg) {
|
|
||||||
bool once {};
|
|
||||||
int toret {};
|
|
||||||
do {
|
|
||||||
if (once) {
|
|
||||||
std::cin.clear();
|
|
||||||
ignoreTillLineEnd();
|
|
||||||
std::cout << "Input Failure!\n";
|
|
||||||
}
|
|
||||||
std::cout << msg << "\n";
|
|
||||||
std::cin >> toret;
|
|
||||||
once = true;
|
|
||||||
}
|
|
||||||
while (std::cin.fail());
|
|
||||||
ignoreTillLineEnd();
|
|
||||||
return toret;
|
|
||||||
}
|
|
||||||
|
|
||||||
string guessRank(int g) {
|
|
||||||
switch (g) {
|
|
||||||
case 0:
|
|
||||||
return "U";
|
|
||||||
case 1:
|
|
||||||
return "A^";
|
|
||||||
case 2:
|
|
||||||
return "A*";
|
|
||||||
case 3:
|
|
||||||
return "A";
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
return "B";
|
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
return "C";
|
|
||||||
case 8:
|
|
||||||
case 9:
|
|
||||||
case 10:
|
|
||||||
return "D";
|
|
||||||
case 11:
|
|
||||||
case 12:
|
|
||||||
case 13:
|
|
||||||
return "E";
|
|
||||||
default:
|
|
||||||
return "F";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user