#include #include #include #include #include // dla rand() i srand() #include // dla time() using namespace std; // Struktura do przechowywania pytania i odpowiedzi struct Pytanie { string pytanie; string odpowiedz; }; // Funkcja do wczytywania pytań z pliku vector wczytajPytania() { vector listaPytan; ifstream plik("pytania.txt"); if (plik.is_open()) { string linia1, linia2; // Czytamy plik linia po linii while (getline(plik, linia1)) { if (getline(plik, linia2)) { Pytanie nowePytanie; nowePytanie.pytanie = linia1; nowePytanie.odpowiedz = linia2; listaPytan.push_back(nowePytanie); } } plik.close(); } else { cout << "Nie moge otworzyc pliku z pytaniami!" << endl; } return listaPytan; } // Funkcja do zapisywania pytań do pliku void zapiszPytania(vector listaPytan) { ofstream plik("pytania.txt"); if (plik.is_open()) { for (int i = 0; i < listaPytan.size(); i++) { plik << listaPytan[i].pytanie << endl; plik << listaPytan[i].odpowiedz << endl; } plik.close(); } else { cout << "Nie moge zapisac do pliku!" << endl; } } // Funkcja do losowego wyboru pytania void losowePytanie(vector listaPytan) { if (listaPytan.empty()) { cout << "Brak pytan w bazie!" << endl; return; } // Losujemy numer pytania int losowyIndex = rand() % listaPytan.size(); cout << "Pytanie: " << listaPytan[losowyIndex].pytanie << endl; cout << "Twoja odpowiedz: "; string odpowiedz; cin.ignore(); // Czyścimy bufor getline(cin, odpowiedz); if (odpowiedz == listaPytan[losowyIndex].odpowiedz) { cout << "Dobra odpowiedz!" << endl; } else { cout << "Zla odpowiedz. Poprawna to: " << listaPytan[losowyIndex].odpowiedz << endl; } } // Funkcja do dodawania nowego pytania void dodajPytanie(vector &listaPytan) { Pytanie nowe; cout << "Podaj pytanie: "; cin.ignore(); // Czyścimy bufor getline(cin, nowe.pytanie); cout << "Podaj odpowiedz: "; getline(cin, nowe.odpowiedz); listaPytan.push_back(nowe); zapiszPytania(listaPytan); cout << "Pytanie dodane!" << endl; } // Funkcja wyświetlająca menu void pokazMenu() { cout << "\n==== MENU ====" << endl; cout << "1. Losowe pytanie" << endl; cout << "2. Dodaj pytanie" << endl; cout << "3. Wyjdz" << endl; cout << "Wybierz: "; } int main() { vector pytania = wczytajPytania(); int wybor; // Inicjalizacja generatora liczb losowych srand(time(0)); do { pokazMenu(); cin >> wybor; switch (wybor) { case 1: losowePytanie(pytania); break; case 2: dodajPytanie(pytania); break; case 3: cout << "Koniec programu." << endl; break; default: cout << "Zly wybor!" << endl; } } while (wybor != 3); return 0; }