#include <iostream>
#include <fstream>
#include <cstdlib>
#include <windows.h>
#include <string>
#include <algorithm>
using namespace std;
int nr_poziomu=1,ile_linii=0;
int pyt_pierwsze(int z); // z jest to numer poziomu
int main()
{
for (int i=0; i<=2; i++)
{
pyt_pierwsze(nr_poziomu);
nr_poziomu++;
}
return 0;
}
int pyt_pierwsze(int z)
{
string odp_j[3],odp_d[3],odp_t[3],odp_c[3],odp_p[3],poprawne[3],pytanie[3],odpowiedz; //odp_j = odpowiedz jeden, odp_d = odpowiedz dwa itd.
int punkty=0,nr_poprawnej=0,nr_pytania=0;
fstream plik;
plik.open("quiz.txt", ios::in);
string linia;
while (getline(plik,linia))
{switch (ile_linii)
{
case 1: pytanie[nr_pytania]= linia; break;
case 2: odp_j[nr_pytania] = linia; break;
case 3: odp_d[nr_pytania] = linia; break;
case 4: odp_t[nr_pytania] = linia; break;
case 5: odp_c[nr_pytania] = linia; break;
case 6: odp_p[nr_pytania] = linia; break;
}
ile_linii++;
if (ile_linii==7)
{
ile_linii=1;
nr_pytania++;
}
}
plik.close();
for(;;)
{
cout<<odp_p[z-1]<<endl;//zmienna mimo ze jest widoczna, to po jej wpisaniu wyswietla sie "nie ma takiej odpowiedzi"
//i po wpisaniu czterech poprawnych odpowiedzi przyjmuje wartosc ostatniej wpisanej
cout<<"Poziom "<<z<<endl;
cout<<"--------------"<<endl;
if(punkty==1)
{
cout<<poprawne[0]<<endl;
cout<<"--------------"<<endl;
}
if(punkty==2)
{
cout<<poprawne[0]<<endl;
cout<<poprawne[1]<<endl;
cout<<"--------------"<<endl;
}
if (punkty==3)
{
cout<<poprawne[0]<<endl;
cout<<poprawne[1]<<endl;
cout<<poprawne[2]<<endl;
cout<<"--------------"<<endl;
}
if (punkty==4)
{
cout<<poprawne[0]<<endl;
cout<<poprawne[1]<<endl;
cout<<poprawne[2]<<endl;
cout<<poprawne[3]<<endl;
cout<<"--------------"<<endl;
}
cout<<pytanie[z-1];
getline(cin,odpowiedz);
transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::toupper);
if(((odpowiedz==odp_j[z-1])||(odpowiedz==odp_d[z-1])||(odpowiedz==odp_t[z-1])||(odpowiedz==odp_c[z-1])||(odpowiedz==odp_p[z-1]))&&(odpowiedz!=poprawne[0])&&(odpowiedz!=poprawne[1])&&(odpowiedz!=poprawne[2])&&(odpowiedz!=poprawne[3]))
{
cout<<"Poprawna odpowiedz!"<<endl;
poprawne[nr_poprawnej]=odpowiedz;
nr_poprawnej++;
Sleep(3000);
punkty++;
system("cls");
}
else
{cout<<"Nie ma takiej odpowiedzi!"<<endl;
Sleep (3000);
system("cls");
}
if (punkty==5)
{
cout<<"Gratulacje, przeszedles ten poziom!"<<endl;
Sleep (5000);
system("cls");
return 0;
}
}
}
- Powyzej przedstawiam kod progamu który zadaj pytanie i wymaga 5 konkretnych odpowiedzi. Po to żeby dodawanie nowych poziomów było proste użyłem funkcji zamknietej w petli.
Pytanie i odpowiedz są pobierane z dołączonego pliku tekstowego. Pierwsze pytanie brzmi:
Podaj śląskie kluby piłkarskie:
a) Polonia Bytom, b) Ruch chorzow, c) Piast gliwice, d) Gornik Zabrze i e) Ruch Radzionkow.
Pierwsze 4 odpowiedzi dzialaja bardzo dobrze jednak po wpisaniu: Ruch Radzionkow program twierdzi ze takiej zmiennej nie ma.
2. Czy ktoś mógłby mi pomów rozgryść dlaczego tak sie dzieje?
3. Mysle ze program znajduje sie w dolnej czesci kodu (od poziomej linii) ale dla pewnosci wstawiam cały kod.
4. Jest to mój pierwszy taki program i jestem bardzo początkujący więc w kodzie mogą być dziwne rozwiązania.
5. Z góry dziękuje za pomoc.