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

Losowe wybieranie z funkcji string

Ostatnio zmodyfikowano 2015-03-06 09:02
Autor Wiadomość
michal11
» 2015-03-05 19:02:25
Stwórz sobie tablice miast i tablicę krajów, do każdego kraju przypisz sobie numer odpowiadający jego stolicy z tablicy 1(najlepiej pasowała by do tego mapa).

przykład:
C/C++
string miasta[] { /*...*/ };
string kraje[] { /*...*/ };
int solice[] { };

Ale zdecydowanie jest to brzydkie rozwiązanie i najlepiej było by właśnie stworzyć sobie co najmniej strukturę:
C/C++
struct Kraj
{
    string nazwa;
    string stolica;
    //ew. int stolica;
};

I wtedy musisz sobie zrobić tablice tych struktur
Kraj tab[];
 i wypełnić każdą z nich(a najlepiej zrobić sobie konstruktor ale skoro jesteś początkujący to lepiej sobie na razie nie zawracać tym głowy). Do elementu struktury odwołujesz się przez kropkę np.:
C/C++
tab[ 0 ].nazwa = "Polska";
tab[ 0 ].stolica = "Warszawa";
P-127760
aksen
» 2015-03-05 19:55:35
poprawiony program (w takim stylu jak chciałeś :)

C/C++
#include <iostream>
#include <string>
#include <conio.h>
#include <cstdlib>
//#include <time.h>
using namespace std;

inline int losuj( int a, int b )
{
    return a + rand() %( b - a + 1 );
}

bool powtarza_sie( int tab_wylosowanych_pyt[], int i )
{
    for( int n = 0; n < i; n++ )
    if( tab_wylosowanych_pyt[ n ] == tab_wylosowanych_pyt[ i ] )
         return true;
   
    return false;
}

int main()
{
    const int ilosc_pytan = 41;
    const int zadaj_pytan = 10;
    int tab_wylosowanych_pyt[ zadaj_pytan ];
   
    srand( time( NULL ) );
   
    cout << "Sprawdz swoja wiedze, czy wiesz jaka to stolica ?\n\n";
   
    string pytania[ ilosc_pytan ] = {
        "Islandii?\n 1) Rejkiawik,\n 2) Oslo,\n 3) Sztokholm,\n",
        "Norwegii?\n 1) Berlin,\n 2) Oslo,\n 3) Bukareszt,\n",
        "Szwecji?\n 1) Madryt,\n 2) Kopenhaga,\n 3) Sztokholm,\n",
        "Finlandii?\n 1) Helsinki,\n 2) Rzym,\n 3) Dublin,\n",
        "Danii?\n 1) Bruksela,\n 2) Luksemburg,\n 3) Kopenhaga,\n",
        "Belgii?\n 1) Bruksela,\n 2) Skopie,\n 3) Tirana,\n",
        "Niemiec?\n 1) Praga,\n 2) Bratyslawa,\n 3) Berlin,\n",
        "Luksemburgu?\n 1) Londyn,\n 2) Luksemburg,\n 3) Oslo,\n",
        "Francji?\n 1) Berno,\n 2) Paryż,\n 3) Kiszyniow,\n",
        "W.Brytanii?\n 1) Mancherster,\n 2) Oslo,\n 3) Londyn,\n",
        "Irladnii?\n 1) Liverpool,\n 2) Dublin,\n 3) Sztokholm,\n",
        "Portugalii?\n 1) Lizbona,\n 2) Oslo,\n 3) Andora,\n",
        "Hiszpanii?\n 1) Rejkiawik,\n 2) Madryt,\n 3) Zagrzeb,\n",
        "Monako?\n 1) Sarajewo,\n 2) Skopie,\n 3) Monako,\n",
        "Wloch?\n 1) Madryt,\n 2) Rzym,\n 3) Andora,\n",
        "San Marino?\n 1) San Marino,\n 2) Oslo,\n 3) Ateny,\n",
        "Malty?\n 1) Moskwa,\n 2) Ryga,\n 3) Valletta,\n",
        "Slowenii?\n 1) Helsinki,\n 2) Lublana,\n 3) Slowacja,\n",
        "Chorwacj?\n 1) Lizbona,\n 2) Zagrzeb,\n 3) Albena,\n",
        "Bosni i Hercegowiny?\n 1) Amsterdam,\n 2) Sarajewo,\n 3) Ankara,\n",
        "Andory?\n 1) Biel,\n 2) Berno,\n 3) Andora,\n",
        "Serbii?\n 1) Belgrad,\n 2) Bilbao,\n 3) Bielce,\n",
        "Czarnogory?\n 1) Evora,\n 2) Galacz,\n 3) Podgorica,\n",
        "Albanii?\n 1) Tirana,\n 2) Erd,\n 3) Ferrara,\n",
        "Grecji?\n 1) Foggia,\n 2) Ateny,\n 3) Jassy,\n",
        "Poski?\n 1) Warszawa,\n 2) Krakwó,\n 3) Szczecin,\n",
        "Czech?\n 1) Logrono,\n 2) Oslo,\n 3) Praga,\n",
        "Słowacji?\n 1) Bratyslawa,\n 2) Decin,\n 3) Dermstadt,\n",
        "Wegier?\n 1) Baku,\n 2) Czadca,\n 3) Budapeszt,\n",
        "Rumunii?\n 1) Barreiro,\n 2) Bari,\n 3) Bukareszt,\n",
        "Bulgarii?\n 1) Sofia,\n 2) Braga,\n 3) Breda,\n",
        "Rosji?\n 1) Kijow,\n 2) Moskwa,\n 3) Krym,\n",
        "Litwy?\n 1) Wilno,\n 2) Bled,\n 3) Bovec,\n",
        "Lotwy?\n 1) Dubrownik,\n 2) Ryga,\n 3) Divaca,\n",
        "Estonii?\n 1) Drammen,\n 2) Dover,\n 3) Tallin,\n",
        "Bialorusi?\n 1) Edynburg,\n 2) Minsk,\n 3) Elbsan,\n",
        "Ukrainy?\n 1) Kijow,\n 2) Guarda,\n 3) Gori,\n",
        "Moldawii?\n 1) Rejkiawik,\n 2) Gliwice,\n 3) Kiszyniow,\n",
        "Szwajcarii?\n 1) Kolonia,\n 2) Berno,\n 3) Komrat,\n",
        "Austrii?\n 1) Wieden,\n 2) Leira,\n 3) Liberec,\n",
        "Lichtensteinu?\n 1) Veduz,\n 2) Oslo,\n 3) Lichtenstein,\n",
       
       
    };
   
    int odpowiedzi[ ilosc_pytan ] = { 1, 2, 3, 1, 3, 1, 3, 2, 2, 3, 2, 1, 2, 3, 2, 1, 2, 2, 2, 2, 3,
        1, 3, 1, 2, 1, 3, 1, 3, 3, 1, 2, 1, 2, 3, 2, 1, 3, 2, 1, 1 };
    int wynik = 0;
    int odpowiedz;
    int wylosowane;
   
    for( int i = 0; i < zadaj_pytan; i++ )
    {
       
        do
        {
            wylosowane = losuj( 0, ilosc_pytan - 1 );
            tab_wylosowanych_pyt[ i ] = wylosowane;
        } while( powtarza_sie( tab_wylosowanych_pyt, i ) );
       
        cout << "Ktore z wymienionych miast jest stolica  " << pytania[ wylosowane ] << " Odpowiedz: ";
        cin >> odpowiedz;
        if( odpowiedz == odpowiedzi[ wylosowane ] )
        {
            wynik++;
            cout << "\n\nBrawo ! Prawidlowa odpowiedz! Otrzymujesz +1 pkt,\n";
        }
        else
        {
            wynik--;
            cout << "\n\nNiestety, nie udalo ci sie otrzymujesz -1 pkt,\n";
        }
        cout << " teraz masz: " << wynik << " punktow\n" << endl;
    }
    cout << "Na koniec masz " << wynik << " punktow" << endl;
   
   
    getch();
    return 0;
}
P-127763
eryqs
Temat założony przez niniejszego użytkownika
» 2015-03-06 09:02:58
Dziękuje Panowie za pomoc, w szczególności Tobie aksnet , działa tak jak chciałem i spokojnie mogę sobie przeanalizować co i jak i wszystko rozumiem .
P-127801
1 « 2 »
Poprzednia strona Strona 2 z 2