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

Przydzielenie tablic do funkcji

Ostatnio zmodyfikowano 2015-12-10 13:02
Autor Wiadomość
newbie96
Temat założony przez niniejszego użytkownika
Przydzielenie tablic do funkcji
» 2015-12-09 12:35:06
Witam, muszę prostą bazę danych podzielić na funkcję i mam problem z przypisaniem tablic do funkcji mógłby mi ktoś wytłumaczyć na jakimś przykładzie jak to sie robi? Dokładniej chodzi o funkcję wyswietl, Oto kod:







C/C++
#include <iostream>
using namespace std;




void wyswietl( int cena[ 100 ], int rok,[ 100 ], string marka[ 100 ], int x )
{
    int y;
   
    y = 0;
   
    do
    {
        cout << "Marka" << marka[ y ] << endl << "Cena" << cena[ y ] << endl << "Rok produkcji" << rok[ y ] << endl;
        y++;
       
       
    } while( y <= x );
   
}


void dodawanie( int wyb )
{
    int x, c, cena[ 100 ], rok[ 100 ];
    string szukaj, marka[ 100 ];
    char q;
   
    x = 0;
    c = 0;
   
   
   
   
    if( wyb == 1 )
    {
       
       
       
        do
        {
            cout << "Podaj marke" << " ";
            cin >> marka[ x ];
           
            cout << "Podaj cene" << " ";
            cin >> cena[ x ];
           
            cout << "Podaj rok produkcji" << " ";
            cin >> rok[ x ];
           
           
           
            cout << "Chcesz dodac nastepny samochod t/n?" << endl;
            cin >> q;
           
            x++;
           
        } while( q == 't' );
       
       
       
    }
   
    if( wyb == 2 )
    {
       
        wyswietl( marka[ 100 ], cena[ 100 ], rok[ 100 ], x );
       
       
       
    }
   
    if( wyb == 3 )
    {
       
        cout << "Podaj szukana marke" << " " << endl;
        cin >> szukaj;
       
       
        do
        {
           
           
            if( szukaj == marka[ c ] )
            {
                cout << "Szukany samochod" << marka[ c ] << endl << cena[ c ] << endl << rok[ c ] << endl;
               
            }
            else
            {
                cout << "Brak wynikow" << endl;
            }
           
            c++;
           
           
           
           
        } while( c <= x );
       
    }
   
   
   
   
}


void menu()
{
   
   
    int wyb;
    do
    {
       
       
       
        cout << "1.Dodaj samochod 2.Wyswietl wszystkie samochody 3.Szukaj 4.Zakoncz ";
        cin >> wyb;
       
        dodawanie( wyb );
       
    } while(( wyb == 1 ) ||( wyb == 2 ) ||( wyb == 3 ) );
   
}

int main()
{
   
    menu();
   
}





P-141655
darko202
» 2015-12-09 13:02:42
P-141657
newbie96
Temat założony przez niniejszego użytkownika
» 2015-12-09 14:34:13
Tak chodzi mi o to próbowałem już robić tymi sposobami tylko ciągle wyskakują mi błędy
P-141660
carlosmay
» 2015-12-09 17:53:15
tylko ciągle wyskakują mi błędy
 Jakie błędy? Pewnie mówią co jej nie tak.
P-141670
newbie96
Temat założony przez niniejszego użytkownika
» 2015-12-09 18:19:55
In function 'void dodawanie(int)':
[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'int*' for argument '1' to 'void wyswietl(int*, int*, std::string*, int)'
P-141671
michal11
» 2015-12-09 19:08:31
wyswietl( marka[ 100 ], cena[ 100 ], rok[ 100 ], x );

Takie wywołanie funkcji powoduje, że przesyłasz do niej nie całe tablice a konkretne element, w tym przypadku setne. by przesłać tablice do funkcji wystarczy przekazać jej samą nazwę (pousuwaj [100] wszędzie).

Swoją drogą w tym przypadku wychodzisz poza zakres tablicy, ponieważ mają one tylko 100 elementów (czyli ostatni indeks ma numer 99).
P-141674
carlosmay
» 2015-12-09 19:15:21
Jest tam o jeden przecinek za dużo
C/C++
void wyswietl( int cena[ 100 ], int rok,[ 100 ], string marka[ 100 ], int x )
 Za dużo argumentów.
P-141676
newbie96
Temat założony przez niniejszego użytkownika
» 2015-12-09 22:36:54
Problem z tablicami w funkcji rozwiązany, teraz jest problem z wyswietlaniem tablic w funkcji void wyswietla tylko 1 pozycje z losowymi liczbami, ponizej poprawiony kod

C/C++
#include <iostream>
using namespace std;




void wyswietl( string marka[], int cena[], int rok[], int x )
{
    int y;
   
    y = 0;
   
    do
    {
        cout << "Marka" << " " << marka[ y ] << endl << "Cena" << " " << cena[ y ] << endl << "Rok produkcji" << " " << rok[ y ] << endl;
        y++;
       
    } while( y <= x );
   
}


void dodawanie( int wyb )
{
    int x, c, cena[ 100 ], rok[ 100 ];
    string szukaj, marka[ 100 ];
    char q;
   
    x = 0;
    c = 0;
   
   
   
   
    if( wyb == 1 )
    {
       
       
       
        do
        {
            cout << "Podaj marke" << " ";
            cin >> marka[ x ];
           
            cout << "Podaj cene" << " ";
            cin >> cena[ x ];
           
            cout << "Podaj rok produkcji" << " ";
            cin >> rok[ x ];
           
           
           
            cout << "Chcesz dodac nastepny samochod t/n?" << endl;
            cin >> q;
           
            x++;
           
        } while( q == 't' );
       
       
       
    }
   
    if( wyb == 2 )
    {
       
        wyswietl( marka, cena, rok, x );
       
       
       
    }
   
    if( wyb == 3 )
    {
       
        cout << "Podaj szukana marke" << " " << endl;
        cin >> szukaj;
       
       
        do
        {
           
           
            if( szukaj == marka[ c ] )
            {
                cout << "Szukany samochod" << marka[ c ] << endl << cena[ c ] << endl << rok[ c ] << endl;
               
            }
            else
            {
                cout << "Brak wynikow" << endl;
            }
           
            c++;
           
           
           
           
        } while( c <= x );
       
    }
   
   
   
   
}


void menu()
{
   
   
    int wyb;
    do
    {
       
       
       
        cout << "1.Dodaj samochod 2.Wyswietl wszystkie samochody 3.Szukaj 4.Zakoncz ";
        cin >> wyb;
       
        dodawanie( wyb );
       
    } while(( wyb == 1 ) ||( wyb == 2 ) ||( wyb == 3 ) );
   
}

int main()
{
   
    menu();
   
}
P-141686
« 1 » 2
  Strona 1 z 2 Następna strona