Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Połączenie losowania z 2 tablic.

Ostatnio zmodyfikowano 2014-12-11 22:42
Autor Wiadomość
cecececezar
Temat założony przez niniejszego użytkownika
[C++] Połączenie losowania z 2 tablic.
» 2014-12-11 21:45:28
Witam, robię quiz w którym nie mogą powtarzać się pytania. Udało mi się zrobić losowanie bez powtórzeń, wypisanie pytań i odpowiedzi, jednak pytania i odpowiedzi nie pasują do siebie, tj. wyświetla się pytanie 2 a odpowiedzi do pytania 5...

 
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>
#include <stdio.h>
#include <conio.h>

using namespace std;
int menu;
char wybor;
int main()
{ int ile_pytan = 10; //z ilu pytan losujemy?
    int ile_wylosowac = 10; //ile pytan wylosowac?
    int ile_juz_wylosowano = 0; //zmienna pomocnicza
    int * wylosowane = new int[ ile_wylosowac + 1 ]; //rezerwacja tablicy
    bool losowanie_ok;
    int pkt;
    string kontynuowanie;
    pkt = 0;
    char menu;
    string imie;
    cout << "Podaj imie uczestnika testu: ";
    cin >> imie;
    cout << "WCISNIJ DOWOLNY KLAWISZ BY PRZEJSC DO QUIZU" << endl;
    getch();
   
   
   
    for( int i = 1; i <= ile_wylosowac; i++ )
    {
        do
        {
            int liczba = rand() % ile_pytan; //losowanie w C++
            losowanie_ok = true;
           
            for( int j = 1; j <= ile_juz_wylosowano; j++ )
            {
                //czy liczba nie zostala juz wczesniej wylosowana?
                if( liczba == wylosowane[ j ] ) losowanie_ok = false;
               
            }
           
            if( losowanie_ok == true )
            {
                //mamy unikatowa liczbe, zapiszmy ja do tablicy
                ile_juz_wylosowano++;
                wylosowane[ ile_juz_wylosowano ] = liczba;
            }
        } while( losowanie_ok != true );
       
    }
    //wylosowane liczby mamy w losowej kolejnosci tablicy wylosowane[liczba]
    string pytania[ 10 ] =
    { { "1pyt" }, { "2pyt" }, { "3pyt" }, { "4pyt" }, { "5pyt" },
        { "6pyt" }, { "7pyt" }, { "8pyt" }, { "9pyt" }, { "10pyt" } };
    string odp[ 10 ][ 3 ] =
    { { "A1", "B1", "C1" }, { "A2", "B2", "C2" }, { "A3", "B3", "C3" }, { "A4", "B4", "C4" }, { "A5", "B5", "C5" },
        { "A6", "B6", "C6" }, { "A7", "B7", "C7" }, { "A8", "B8", "C8" }, { "A9", "B9", "C9" }, { "A10", "B10", "C10" } };
   
   
    //¿eby wypisaæ pytania
    string odpGracza[ 10 ];
   
    do {
        system( "CLS" );
        for( int i = 0; i < 10; i++ )
        {
            swap( wylosowane[ i ], wylosowane[ i + 1 ] ); //zamienia miejsami nasza standardowa tablice z wylosowanymi liczbymi z kolejn¹ przez co mozemy odpalac pare razy
            int a = wylosowane[ i ]; //zmienna pomocnicza, switch sie wysypuje gdy zalezy od tablicy
           
            cout << a << endl;
            switch( a )
            {
            case 1:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 2:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 3:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 4:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 5:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 6:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 7:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 8:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 9:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            case 0:
                cout << pytania[ wylosowane[ i ] ] << endl;
                cout << odp[ i ][ 0 ] << " ";
                cout << odp[ i ][ 1 ] << " ";
                cout << odp[ i ][ 2 ] << " " << endl;
                cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM  :";
                cin >> odpGracza[ i ];
                break;
            default:
                break;
            }
           
        }
        cout << "CZY CHCESZ POWTORZYC TEST? [T\\N]: " << endl;
        cout << "PROSZE POTWIERDZIC ENTEREM" << endl;
       
        cin >> kontynuowanie;
    } while( kontynuowanie == "T" || kontynuowanie == "t" );
   
   
   
    return 0;
}

Z góry dziękuję :)
P-122719
michal11
» 2014-12-11 22:42:36
P-122724
« 1 »
  Strona 1 z 1