From a794d3b57d863c51d605d7f4b25b6a1d8c573a05 Mon Sep 17 00:00:00 2001 From: vaegq Date: Fri, 23 May 2025 09:13:12 +0000 Subject: [PATCH] Add main.cpp --- main.cpp | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 main.cpp diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..182f9f9 --- /dev/null +++ b/main.cpp @@ -0,0 +1,134 @@ +#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; +} \ No newline at end of file