C/C++

C++ , нужно написать программу с тестом.

Чтобы выводилась на экран фраза с вопросом , например "Когда началась Великая Отчественная война". А следом за ним появялись три варианта ответа( в столбик ) . И при правильном ответе писалось "Вы дали правльный ответ", если неправильный , то "вы дали неправильный ответ"
FK
Firuz Karimov
194
Оператор if или оператор switch case. Шаблоны все есть в интернете.
Александр Блаковский
Александр Блаковский
26 776
Лучший ответ
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <random>
#include <chrono>
using namespace std;
struct Question {
string question;
vector<string> answers;
private:
friend ostream& operator<<(ostream& out, const Question& q) {
out << '\t' << q.question << '\n';
const streamsize w = 3U;
auto n = 0U;
for (const auto& record : q.answers) {
cout << setw(w) << ++n << ". " << record << '\n';
}
return out;
}
};
struct Database : public vector<Question> {};
class Test {
public:
void load(const Database& db) {
this->db = db;
}
void start()const {
if (db.empty()) {
puts("Ошибка: база не содержит данных.");
return;
}
uniform_int_distribution<> uid(1, db.front().answers.size() - 1);
mt19937 gen{ random_device()() };
auto well = 0U;
for (const auto& record : db) {
auto tmp = record;
const auto seed = static_cast<unsigned>(chrono::system_clock::now().time_since_epoch().count());
shuffle(tmp.answers.begin(), tmp.answers.end(), default_random_engine(seed));
cout << tmp << '\n';
auto n = 0U;
while (true) {
cout << "Ваш вариант ответа: ";
cin >> n;
if (!n || n > tmp.answers.size()) {
puts("Ошибка: недопустимый вариант ответа!");
} else {
break;
}
}
if (tmp.answers[n - 1] == record.answers.front()) {
++well;
puts("Вы дали правльный ответ!\n");
} else {
puts("Вы дали неправльный ответ!\n");
}
}
cout << "Вопросов: " << db.size() << '\n';
cout << "Правильных ответов: " << well << '\n';
}
private:
Database db;
};
Database war() {
Database db;
db.push_back({
"Когда началась Великая Отечественная война?",
{ "22 июня 1941 года", "1 сентября 1939 года", "9 мая 1945 года" }
});
db.push_back({
"Когда закончилась Великая Отечественная война?",
{ "9 мая 1945 года", "22 июня 1941 года", "1 сентября 1939 года" }
});
db.push_back({
"Когда началась Вторая мировая война?",
{ "1 сентября 1939 года", "22 июня 1941 года", "9 мая 1945 года" }
});
return db;
}
int main() {
auto db = war();
Test test;
test.load(db);
test.start();
}
         static void Main(string[] args)

{

string answer = Console.ReadLine();



Console.WriteLine("Когда началась ВОВ?");

Console.WriteLine("a - 22 июня 1941 г.");

Console.WriteLine("б - 23 февраля 2022 г.");

Console.WriteLine("в - 1 июля 1941 г.");



if (answer == "a" || answer == "а") Console.WriteLine("Правильно!");

else Console.WriteLine("Неправильно");

}
Андрей Шибанов это конечно с# но я уверен в твоих способностях, ты сможешь перевести в плюсы
Firuz Karimov спасибо друг!!