Prosta baza danych
Ostatnio zmodyfikowano 2016-10-31 18:48
wietrak11 Temat założony przez niniejszego użytkownika |
Prosta baza danych » 2016-10-31 18:19:43 Witam, mam problem z moim programem w prostej bazie danych. Nie mogę dodać do niej dwóch rekordów. Przykładowo po dodaniu osoby Jan Nowak 20 i wyświetleniu takiej bazy wszystko działa prawidłowo ale gdy dodam kolejną osobę np. Adam Kowalski 25 to w bazie danych zostanie wyświetlony tylko Adam. Oto kod programu. #include <iostream> #include <cstdlib> using namespace std;
void wyswietlanie( int id, string imie[], string nazwisko[], int wiek[] ) { system( "cls" ); cout << "ID. IMIE NAZWISKO WIEK" << endl; cout << "============================" << endl; for( int i = 0; i <= id; i++ ) { cout << id + 1 << "." << " " << imie[ id ] << " " << nazwisko[ id ] << " " << wiek[ id ] << endl; } cout << "\n" << endl; system( "pause" ); } void dodawanie( int id, string imie[], string nazwisko[], int wiek[] ) { system( "cls" ); id = id++; cout << "Podaj imie " << id + 1 << " osoby: "; cin >> imie[ id ]; cout << "Podaj nazwisko " << id + 1 << " osoby: "; cin >> nazwisko[ id ]; cout << "Podaj wiek " << id + 1 << " osoby: "; cin >> wiek[ id ]; cout << "\n" << endl; system( "pause" ); } int main() { int id = 0; string imie[ 20 ]; string nazwisko[ 20 ]; int wiek[ 20 ]; int wybor; do { system( "cls" ); cout << "Witam w mojej bazie danych." << endl; cout << "===========================\n" << endl; cout << "MENU GLOWNE" << endl; cout << "1.Wyswietl baze danych" << endl; cout << "2.Dodaj osobe do bazy danych." << endl; cout << "3.Wyjdz z programu.\n" << endl; cout << "Wybierz co chcesz zrobic: "; cin >> wybor; switch( wybor ) { case 1: wyswietlanie( id, imie, nazwisko, wiek ); break; case 2: dodawanie( id, imie, nazwisko, wiek ); break; case 3: return 0; break; default: { system( "cls" ); cout << "Wybierz cyfre z listy." << endl; system( "pause" ); } } } while( wybor != 4 ); return 0; }
Podejrzewam że problem leży w inkrementacji w funkcji dodawanie() ale nie mogę dojść jak powinno być prawidłowo. Może ktoś wytłumaczyć jak to powinno być? |
|
BadBullPL |
» 2016-10-31 18:31:34 Przekazujesz id przez wartość. Inkrementacja powinna być na końcu funkcji. id = id++; Nie rozumiesz inkrementacji. Poczytaj o niej. |
|
wietrak11 Temat założony przez niniejszego użytkownika |
» 2016-10-31 18:46:39 Możesz bardziej rozjaśnić jak to powinno być? Na końcu to znaczy tak? void dodawanie( int id, string imie[], string nazwisko[], int wiek[] ) { system( "cls" ); cout << "Podaj imie " << id + 1 << " osoby: "; cin >> imie[ id ]; cout << "Podaj nazwisko " << id + 1 << " osoby: "; cin >> nazwisko[ id ]; cout << "Podaj wiek " << id + 1 << " osoby: "; cin >> wiek[ id ]; cout << "\n" << endl; system( "pause" ); id = id++; }
|
|
BadBullPL |
» 2016-10-31 18:48:33 Może być. Ale wystarczy samo: id++; |
|
« 1 » |