#include <conio.h>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <fstream>
#include <ctime>
using namespace std;
class pytania //----------------- PYTANIA Z KATEGORII SPORT
{
public:
int nr_pytania;
string a,b,c,d;
string tresc;
string poprawna,odpowiedz;
int punkt;
void wczytaj_historia() //-------------- WCZYTYWANIE PLIKU
{
fstream plik;
plik.open("quiz1.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
cout<<"--------------------------------------------------------------"<<endl;
int aktualny_nr=1;
string linia;
#define ARR_SIZE 20
int arr[ARR_SIZE] = {1,7,13,19,25,31,37,43,49,55,61,67,73,79,85,91,97,103,109,115}; ////LOSOWANIE PYTAŃ Z KATEGORII
int nr_linii = arr[rand()%ARR_SIZE];
while(getline(plik,linia))
{
if(aktualny_nr==nr_linii) tresc=linia;
if(aktualny_nr==nr_linii+1) a=linia;
if(aktualny_nr==nr_linii+2) b=linia;
if(aktualny_nr==nr_linii+3) c=linia;
if(aktualny_nr==nr_linii+4) d=linia;
if(aktualny_nr==nr_linii+5) poprawna=linia;
if(aktualny_nr==nr_linii+6) tresc=linia;
aktualny_nr++;
}
plik.close();
}
void wczytaj() //-------------- WCZYTYWANIE PLIKU
{
fstream plik;
plik.open("quiz.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
cout<<"--------------------------------------------------------------"<<endl;
int aktualny_nr=1;
string linia;
#define ARR_SIZE 20
int arr[ARR_SIZE] = {1,7,13,19,25,31,37,43,49,55,61,67,73,79,85,91,97,103,109,115}; ////LOSOWANIE PYTAŃ Z KATEGORII
int nr_linii = arr[rand()%ARR_SIZE];
while(getline(plik,linia))
{
if(aktualny_nr==nr_linii) tresc=linia;
if(aktualny_nr==nr_linii+1) a=linia;
if(aktualny_nr==nr_linii+2) b=linia;
if(aktualny_nr==nr_linii+3) c=linia;
if(aktualny_nr==nr_linii+4) d=linia;
if(aktualny_nr==nr_linii+5) poprawna=linia;
if(aktualny_nr==nr_linii+6) tresc=linia;
aktualny_nr++;
}
plik.close();
}
void zadaj()
{
cout<<endl<<tresc<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<"--------------------------------------------------------------"<<endl;
cout<<endl<<"Odpowiedz [a,b,c,d] ";
cin>>odpowiedz;
}
void sprawdz()
{
if(odpowiedz==poprawna)
{
punkt=1;
cout<<"Brawo. To jest poprawna odpowiedz"<<endl;
}
if(odpowiedz!=poprawna)
{
punkt=0;
cout<< "Bledna odpowiedz. Poprawna odpowiedz to "<<poprawna<< endl;
}
};
};
;
main()
{ // WYWOŁANIE MENU GŁÓWNEGO
int numer_kategoria;
int liczba_pytan;
string gracz;
int nr_menu;
cout<<endl<<"----------------------MENU-------------------------"<<endl;
cout<<endl<<"---------------------------------------------------"<<endl;
cout<<"------------------1.Nowa gra--------------------------"<<endl;
cout<<"------------------2.Wyniki----------------------------"<<endl;
cout<<"------------------3.Wyjscie---------------------------"<<endl;
cout<<""<<endl;
cout<<"Podaj numer wyboru menu:<1,2,3>";
cin>>nr_menu;
system("cls");
if(nr_menu==2)
{ cout<<" "<<endl;
cout<<"---------------------------WYNIKI----------- "<<endl; //WYSWIETLANIE LISTY Z WYGRANYMI GRACZY
cout<<"-----------------------------"<<endl;
cout<<"Nr gry-------Nazwa gracza-----------Suma punktow"<<endl;
string wynik_uzytkownika1,wynik_uzytkownika2,wynik_uzytkownika3,wynik_uzytkownika4,wynik_uzytkownika5,wynik_uzytkownika6;
string linia;
int nr_linii=1;
fstream plik1;
plik1.open("wygrane.txt", ios::in);
if(plik1.good()==false) cout<<"Nie mozna otworzyc pliku!";
while (getline(plik1, linia))
{
switch (nr_linii)
{
case 1: wynik_uzytkownika1=linia; break;
case 2: wynik_uzytkownika2=linia; break;
case 3: wynik_uzytkownika3=linia; break;
case 4: wynik_uzytkownika4=linia; break;
case 5: atoi(linia.c_str()); break;
}
nr_linii++;
}
plik1.close();
cout<<"Gra nr 1:------ "<<wynik_uzytkownika1<<endl;
cout<<"Gra nr 2:------ "<<wynik_uzytkownika2<<endl;
cout<<"Gra nr 3:------ "<<wynik_uzytkownika3<<endl;
cout<<"Gra nr 4:------ "<<wynik_uzytkownika4<<endl;
cout<<"Gra nr 5:------ "<<wynik_uzytkownika5<<endl;
system("pause");
system("cls");
return main();
}
else if(nr_menu==1)
{
cout<<" "<<endl;
cout<<"------------NOWA GRA------------ "<<endl; //-------------------NOWA GRA
cout<<""<<endl;
cout<<"1:---Wybierz kategorie zagadnien:---"<<endl;
cout<<"1.Historia"<<endl;
cout<<"2.Programowanie"<<endl;
cout<<"3.Polityka"<<endl;
cout<<"4.Swiat"<<endl;
cout<<""<<endl;
cout<<"2:---Podaj numer kategorii:---";
cin>>numer_kategoria;
cout<<""<<endl;
cout<<"1:---Wpisz liczbe pytan na ktore chcesz odpowiedziec:---"<<endl;
cout<<""<<endl;
Sleep(1000);
cout<<"1:------Zestaw pytan do wyboru:--------"<<endl;
cout<<"10 pytan"<<endl;
cout<<"15 pytan"<<endl;
cout<<"20 pytan"<<endl;
cout<<""<<endl;
cout<<"2:----------Wpisz liczbe pytan-----------";
cin>>liczba_pytan;
Sleep(900);
if(numer_kategoria==1) cout<<gracz<<" Wybrales kategorie Historia"<<endl;
if(numer_kategoria==2) cout<<gracz<<" Wybrales kategorie Programowanie. "<<endl;
if(numer_kategoria==3) cout<<gracz<<" Wybrales kategorie Polityka. "<<endl;
if(numer_kategoria==4) cout<<gracz<<" Wybrales kategorie Swiat. "<<endl;
cout<<""<<endl;
if(liczba_pytan==10) cout<<gracz<<" Wybrales 10 pytan. Zaczynamy !"<<endl;
if(liczba_pytan==15) cout<<gracz<<" Wybrales 15 pytan. Zaczynamy !"<<endl;
if(liczba_pytan==20) cout<<gracz<<" Wybrales 20 pytan. Zaczynamy !"<<endl;
Sleep(2500);
system("cls");
}
//-------------------------------------------------------WYBÓR DANEJ KLASY DO WYWOŁANIA
//------------------------- WYBOR 10 PYTAN Z KATEGORII SPORT
switch(numer_kategoria)
{
case 2:
{
switch(liczba_pytan)
{
case 10:
pytania s1[10];
int suma=0;
for(int i=0; i<=9; i++)
{
s1[i].nr_pytania=i+1;
s1[i].wczytaj_historia();
s1[i].zadaj();
s1[i].sprawdz();
suma+=s1[i].punkt; // WYBOR 10 PYTAN Z KATEGORII SPORT
}{
cout<<"Suma punktow: "<<suma<<" na "<<liczba_pytan<<endl; //----------------DOPIS WYNIKU GRACZA DO PLIKU WYGRANE
cout<<"Nazwa gracza:"<<endl;
cin>>gracz;
cout<<"Twoj wynik zostal zapisany"<<endl;
system("pause");
string nowalinia="\n";
cin.ignore();
getline (cin,gracz); //zmienna tekstowa wielowyrazowa
gracz+=nowalinia;
fstream plik3;
plik3.open( "wygrane.txt", ios::out | ios::app);
if( plik3.good() == true )
{
plik3 <<gracz<<":"<<suma<<" na "<<liczba_pytan<<endl;
plik3.close();
}
else
{
cout << "Brak dostepu do pliku" << std::endl;
}
system("cls");
return main();
}
}
system("pause");
case 1:
{
switch(liczba_pytan)
{
case 10:
pytania s1[10];
int suma=0;
for(int i=0; i<=9; i++)
{
s1[i].nr_pytania=i+1;
s1[i].wczytaj();
s1[i].zadaj();
s1[i].sprawdz();
suma+=s1[i].punkt;
}{
cout<<"Suma punktow: "<<suma<<" na "<<liczba_pytan<<endl; //----------------DOPIS WYNIKU GRACZA DO PLIKU WYGRANE
cout<<"Nazwa gracza:"<<endl;
cin>>gracz;
cout<<"Twoj wynik zostal zapisany"<<endl;
system("pause");
string nowalinia="\n";
cin.ignore();
getline (cin,gracz); //zmienna tekstowa wielowyrazowa
gracz+=nowalinia;
fstream plik3;
plik3.open( "wygrane.txt", ios::out | ios::app);
if( plik3.good() == true )
{
plik3 <<gracz<<":"<<suma<<" na "<<liczba_pytan<<endl;
plik3.close();
}
else
{
cout << "Brak dostepu do pliku" << std::endl;
}
system("cls");
return main();
}
}
system("pause");
//------------------------------------------------------- WYBOR 15 PYTAN Z KATEGORII SPORT
case 15:
{
pytania s1[15];
int suma=0;
for(int i=0; i<=14; i++)
{
s1[i].nr_pytania=i+1;
s1[i].wczytaj();
s1[i].zadaj();
s1[i].sprawdz();
suma+=s1[i].punkt;
} {
cout<<"Suma punktow: "<<suma<<" na "<<liczba_pytan<<endl; //----------------DOPIS WYNIKU GRACZA DO PLIKU WYGRANE
cout<<"Nazwa gracza:"<<endl;
cin>>gracz;
cout<<"Twoj wynik zostal zapisany"<<endl;
system("pause");
string nowalinia="\n";
cin.ignore();
getline (cin,gracz); //zmienna tekstowa wielowyrazowa
gracz+=nowalinia;
fstream plik3;
plik3.open( "wygrane.txt", ios::out | ios::app);
if( plik3.good() == true )
{
plik3 <<gracz<<":"<<suma<<" na "<<liczba_pytan<<endl;
plik3.close();
}
else
{
cout << "Brak dostepu do pliku" << std::endl;
}
system("cls");
return main();
}
}
}
system("pause");
//------------------------------------------------------- WYBOR 20 PYTAN Z KATEGORII SPORT
case 20:
{
pytania s1[20];
int suma=0;
for(int i=0; i<=19; i++)
{
s1[i].nr_pytania=i+1;
s1[i].wczytaj();
s1[i].zadaj();
s1[i].sprawdz();
suma+=s1[i].punkt;
}{
cout<<"Suma punktow:"<<suma<<endl; //----------------DOPIS WYNIKU GRACZA DO PLIKU WYGRANE
cout<<"Nazwa gracza:"<<endl;
cin>>gracz;
cout<<"Twoj wynik zostal zapisany"<<endl;
string nowalinia="\n";
cin.ignore();
getline (cin,gracz); //zmienna tekstowa wielowyrazowa
gracz+=nowalinia;
fstream plik3;
plik3.open( "wygrane.txt", ios::out | ios::app);
if( plik3.good() == true )
{
plik3 <<gracz<<""<<suma<<" na "<<liczba_pytan<<endl;
plik3.close();
}
else
{
cout << "Brak dostepu do pliku" << std::endl;
}
system("pause");
}}
}
}};