fork(1) download
  1. #include <iostream>
  2. #include <array>
  3. #include <string>
  4. #include <sstream>
  5. using namespace std;
  6.  
  7. string prettify_index(size_t idx) {
  8. return { static_cast<char>('a'+idx) };
  9. }
  10.  
  11. struct quiz {
  12. string question;
  13. string proper_answer;
  14. array<string, 5> answers;
  15.  
  16.  
  17. quiz(string const &question, string const &proper_answer, decltype(answers) const &answers):
  18. question(question),
  19. answers(answers),
  20. proper_answer(proper_answer)
  21. {}
  22.  
  23. string pretty_string() const {
  24. stringstream out;
  25. out << "Pytanie:\n\t" << question << endl
  26. << "Możliwe odpowiedzi:" << endl;
  27.  
  28. for(auto i = 0u; i < answers.size(); ++i) {
  29. out << "\t" << prettify_index(i) << ". " << answers[i] << endl;
  30. }
  31.  
  32. return out.str();
  33. };
  34.  
  35. bool validate(string const &answer) const {
  36. return proper_answer == answer;
  37. }
  38. };
  39.  
  40. int main() {
  41. quiz q {
  42. "Stolica Polski?",
  43. "Warszawa",
  44. {
  45. "Warszawa",
  46. "Poznań",
  47. "Kraków",
  48. "Gdańsk",
  49. "Toruń"
  50. }
  51. };
  52.  
  53. cout << q.pretty_string();
  54.  
  55. cout << "Twoja odpowiedź:\n";
  56. string answer;
  57. cin >> answer;
  58. cout << "\t" << (q.validate(answer)? "Poprawna!" : "Niepoprawna.");
  59.  
  60. return 0;
  61. }
Success #stdin #stdout 0s 15248KB
stdin
Toruń
stdout
Pytanie:
	Stolica Polski?
Możliwe odpowiedzi:
	a. Warszawa
	b. Poznań
	c. Kraków
	d. Gdańsk
	e. Toruń
Twoja odpowiedź:
	Niepoprawna.