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

Odczyt danych z tablic

Ostatnio zmodyfikowano 2010-11-29 11:58
Autor Wiadomość
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

C/C++
#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 ); //zamiana na duza litere
                if( litera == 'T' )
                {
                    continue;
                }
                else
                {
                    break;
                }
               
            }
            system( "cls" );
            break;

Odczytuje je za pomocą for

C/C++
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
P-24655
F90M
» 2010-11-29 11:58:24
Umieszczaj kod między znacznikami
[cpp][/cpp]
.

Możesz zrobić taki myk
C/C++
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.
P-24656
« 1 »
  Strona 1 z 1