Odczyt danych z tablic
Ostatnio zmodyfikowano 2010-11-29 11:58
DarkDragon Temat założony przez niniejszego użytkownika |
Odczyt danych z tablic » 2010-11-29 11:32:53 Witajcie,
próbuje wykonać zadanie 7.6*, choć już zmodyfikowałem trochę mój program, ale nie mogę sobie poradzić z odczytem danych z tablicy w przypadku, gdy jej nie zapełnię do końca. Proszę o pomoc ;-)
Dane wprowadzam w ten sposób
#include<iostream> #include<conio.h> #include<ctype.h> #include<stdlib.h>
#define TAB '\t'
using namespace std;
int main() { const short rozmiar = 30; char menu, litera; char marka[ 20 ][ rozmiar ]; char model[ 20 ][ rozmiar ]; int pojemnosc[ MAX ], predkosc[ 20 ]; int licznik = 0; do { cout << endl << endl << endl << endl; cout << TAB << TAB << TAB << TAB << "Menu bazy danych" << endl << endl; cout << TAB << TAB << TAB << "1. Wprowadz dane samochodu" << endl; cout << TAB << TAB << TAB << "2. Wyswietl baze danych" << endl; cout << TAB << TAB << TAB << "3. Usun z bazy danych" << endl; cout << TAB << TAB << TAB << "4. Zlicz pojemnosc" << endl; cout << TAB << TAB << TAB << "5. Srednia predkosc" << endl; cout << TAB << TAB << TAB << "6. Wyjscie" << endl << endl; cout << TAB << TAB << TAB << "Co chcesz zrobic?" << " : " << " "; cin >> menu; cout << endl; system( "cls" ); switch( menu ) { case '1': for( licznik = 0; licznik < 20; licznik++ ) { cin.sync(); cout << " Podaj marke samochodu" << " " << licznik + 1 << " - "; cin.getline( marka[ licznik ], rozmiar ); cout << endl; cout << " Podaj model samochodu" << " " << licznik + 1 << " - "; cin.getline( model[ licznik ], rozmiar ); cout << endl; cout << " Podaj pojemnosc silnika" << " " << licznik + 1 << " - "; cin >> pojemnosc[ licznik ]; cout << endl; cout << " Podaj predkosc maksymalna" << " " << licznik + 1 << " - "; cin >> predkosc[ licznik ]; cout << endl; cout << " Czy chcesz dalej wprowadzac T/N?" << " : "; cin >> litera; litera = toupper( litera ); if( litera == 'T' ) { continue; } else { break; } } system( "cls" ); break;
Odczytuje je za pomocą for
case '4': for( licznik = 0; licznik < 20; licznik++ ) { cout << " Dane o pojemnosci" << licznik + 1 << pojemnosc[ licznik ] << endl; } break;
Chciałbym, aby z tablicy zostały wczytane tylko dane, które zostaną wprowadzone przez użytkownika. Tzn. jeżeli wprowadzę tylko 2 rekordy, to chciałbym tylko je wyświetlić, a w moim przykładzie zapełniana jest tablica do końca różnymi śmieciami. Jak ograniczyć wielkość tablicy do wprowadzonych rekordów?
Z góry dziękuję
Pozdrawiam |
|
F90M |
» 2010-11-29 11:58:24 Umieszczaj kod między znacznikami [cpp][/cpp] . Możesz zrobić taki myk if( litera == 'T' ) { continue; } else { tablica[ a + 1 ] = 0; break; } i wczytywać dane dopóki nie trafi na zero w tabeli. Bądź też, przed wprowadzaniem danych wypełnić tablicę zerami -> wprowadzić dane -> odczytywać aż trafi na zero. |
|
« 1 » |