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