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: #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(); }
|
|
darko202 |
» 2015-12-09 13:02:42 |
|
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 |
|
carlosmay |
» 2015-12-09 17:53:15 tylko ciągle wyskakują mi błędy |
Jakie błędy? Pewnie mówią co jej nie tak. |
|
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)'
|
|
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). |
|
carlosmay |
» 2015-12-09 19:15:21 Jest tam o jeden przecinek za dużo void wyswietl( int cena[ 100 ], int rok,[ 100 ], string marka[ 100 ], int x )
Za dużo argumentów. |
|
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 #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(); } |
|
« 1 » 2 |