Update main.cpp
This commit is contained in:
parent
a794d3b57d
commit
e9b3580b59
1 changed files with 41 additions and 105 deletions
146
main.cpp
146
main.cpp
|
@ -1,134 +1,70 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <windows.h>
|
||||||
#include <cstdlib> // dla rand() i srand()
|
|
||||||
#include <ctime> // dla time()
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Struktura do przechowywania pytania i odpowiedzi
|
void zapiszDane() {
|
||||||
struct Pytanie {
|
string dane;
|
||||||
string pytanie;
|
cout << "Podaj dane do zapisania: ";
|
||||||
string odpowiedz;
|
cin.ignore();
|
||||||
};
|
getline(cin, dane);
|
||||||
|
|
||||||
// Funkcja do wczytywania pytań z pliku
|
ofstream plik("dane.txt", ios::app);
|
||||||
vector<Pytanie> wczytajPytania() {
|
|
||||||
vector<Pytanie> listaPytan;
|
|
||||||
ifstream plik("pytania.txt");
|
|
||||||
|
|
||||||
if (plik.is_open()) {
|
if (plik.is_open()) {
|
||||||
string linia1, linia2;
|
plik << dane << "\n";
|
||||||
|
plik.close();
|
||||||
// Czytamy plik linia po linii
|
cout << "Dane dopisane do pliku.\n";
|
||||||
while (getline(plik, linia1)) {
|
Sleep(2000);
|
||||||
if (getline(plik, linia2)) {
|
system("cls");
|
||||||
Pytanie nowePytanie;
|
} else {
|
||||||
nowePytanie.pytanie = linia1;
|
cout << "Nie mozna otworzyc pliku do zapisu.\n";
|
||||||
nowePytanie.odpowiedz = linia2;
|
}
|
||||||
listaPytan.push_back(nowePytanie);
|
}
|
||||||
}
|
|
||||||
|
void wyswietlDane() {
|
||||||
|
ifstream plik("dane.txt");
|
||||||
|
if (plik.is_open()) {
|
||||||
|
string linia;
|
||||||
|
cout << "Zawartosc pliku:\n";
|
||||||
|
while (getline(plik, linia)) {
|
||||||
|
cout << linia << "\n";
|
||||||
}
|
}
|
||||||
plik.close();
|
plik.close();
|
||||||
} else {
|
} else {
|
||||||
cout << "Nie moge otworzyc pliku z pytaniami!" << endl;
|
cout << "Nie mozna otworzyc pliku do odczytu.\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
return listaPytan;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Funkcja do zapisywania pytań do pliku
|
|
||||||
void zapiszPytania(vector<Pytanie> 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<Pytanie> 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<Pytanie> &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() {
|
int main() {
|
||||||
vector<Pytanie> pytania = wczytajPytania();
|
|
||||||
int wybor;
|
int wybor;
|
||||||
|
|
||||||
// Inicjalizacja generatora liczb losowych
|
|
||||||
srand(time(0));
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
pokazMenu();
|
cout << "\nMENU:\n";
|
||||||
|
cout << "1. Wpisz i zapisz dane\n";
|
||||||
|
cout << "2. Wyswietl dane\n";
|
||||||
|
cout << "3. Wyjdz\n";
|
||||||
|
cout << "Wybor: ";
|
||||||
cin >> wybor;
|
cin >> wybor;
|
||||||
|
|
||||||
switch (wybor) {
|
switch (wybor) {
|
||||||
case 1:
|
case 1:
|
||||||
losowePytanie(pytania);
|
system("cls");
|
||||||
|
zapiszDane();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
dodajPytanie(pytania);
|
system("cls");
|
||||||
|
wyswietlDane();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
cout << "Koniec programu." << endl;
|
cout << "Wyjscie z programu.\n";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
cout << "Zly wybor!" << endl;
|
cout << "Niepoprawny wybor.\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (wybor != 3);
|
} while (wybor != 3);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue