Połączenie losowania z 2 tablic.

Odpowiedz Nowy wątek
2014-12-11 21:59
cecececezar
0

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...

 #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;
}

Pozostało 580 znaków

2014-12-11 22:21
0

A mógłbyś to troszeczkę zmodyfikować? Tak żeby pytań było milion a potencjalnych odpowiedzi dla każego tysiąc? Pisałbyś to tak samo? Nie? No właśnie. Skasuj to i napisz od nowa, tym razem z głową.


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0