Na początku chcę zaznaczyć, że jestem totalnie początkująca!
Chcę napisać w C++ quiz, tylko zależy mi na tym, żeby za każdym razem, kiedy odpalimy program pytania wyświetlały się w różnej kolejności.
Napisałam już quiz i kod losujący liczby bez powtórzeń, jednak nie wiem jak połączyć te dwa kody, tak aby wylosowane liczby decydowały o kolejności pytań.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <windows.h>
#include <time.h>
using namespace std;
string temat, nick;
string tresc[5];
string odpA[5], odpB[5], odpC[5], odpD[5];
string poprawna[5];
string odpowiedz;
int punkty=0;
int main()
{
int nr_linii=1;
string linia;
int nr_pytania=0;
fstream plik;
plik.open("quiz.txt",ios::in);
if (plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: temat=linia; break;
case 2: nick=linia; break;
case 3: tresc[nr_pytania] = linia; break;
case 4: odpA[nr_pytania] = linia; break;
case 5: odpB[nr_pytania] = linia; break;
case 6: odpC[nr_pytania] = linia; break;
case 7: odpD[nr_pytania] = linia; break;
case 8: poprawna[nr_pytania] = linia; break;
}
if (nr_linii==8) {nr_linii=2; nr_pytania++;}
nr_linii++;
}
plik.close();
srand(time(NULL));
int ile_pytan = 5;
int ile_wylosowac = 5;
int ile_juz_wylosowano=0;
int *wylosowane = new int[ile_wylosowac+1];
bool losowanie_ok;
for (int i=1; i<=ile_wylosowac; i++)
{
do
{
int liczba=rand()%ile_pytan+1;
losowanie_ok=true;
for (int j=1; j<=ile_juz_wylosowano; j++)
{
if (liczba==wylosowane[j]) losowanie_ok=false;
}
if (losowanie_ok==true)
{
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=liczba;
}
} while(losowanie_ok!=true);
}
cout<<"Wylosowane numery: ";
for (int i=1; i<=ile_wylosowac; i++)
{
cout<<wylosowane[i]<<" ";
}
for (int i=0; i<=4; i++)
{
cout<<endl<<tresc[i]<<endl;
cout<<"A. "<<odpA[i]<<endl;
cout<<"B. "<<odpB[i]<<endl;
cout<<"C. "<<odpC[i]<<endl;
cout<<"D. "<<odpD[i]<<endl;
cout<<"Twoja odpowiedz: ";
cin>>odpowiedz;
transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower);
if (odpowiedz==poprawna[i])
{
cout<<"Dobrze! Zdobywasz punkt!"<<endl;
punkty++;
}
else cout<<"Zle! Brak punktu! Poprawna odpowiedz: "<<poprawna[i]<<endl;
}
cout<<"Koniec quizu. Zdobyte punkty: "<<punkty;
return 0;
}
Z góry dziękuje za pomoc i wszelkie podpowiedzi!