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

Problem z zadaniem z książki, wyświetlanie tablic struktur.

Ostatnio zmodyfikowano 2017-06-12 16:18
Autor Wiadomość
Bercik97
Temat założony przez niniejszego użytkownika
Problem z zadaniem z książki, wyświetlanie tablic struktur.
» 2017-06-10 19:55:26
Witam, oto zdj zadania http://imgur.com/a/7cTgh
Mam problem z wyświetleniem tablicy struktury, gdy np nacisnę ' a ' to program wyświetla mi ostatnią literę struktury tablicy[0] czyli ' d '. W pozostałych opcjach też jest tak samo. Proszę o pomoc, oto kod :
C/C++
#include <iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;

const int strsize = 20;

struct zpdw
{
    char imie[ strsize ];
    char stanowisko[ strsize ];
    char pseudozpdw[ strsize ];
    int preferencje;
} tablica[ 4 ];

int main()
{
    cout << "Zakon Programist\242w Dobrej Woli\n";
    cout << "a. lista wg imion         b. lista wg stanowisk\n";
    cout << "c. lista wg pseudonim\242w   d. lista wg preferencji\n";
    cout << "q. koniec\n";
   
    tablica[ 0 ].imie[ strsize ] = 'Wimp Macho';
    tablica[ 0 ].imie[ strsize ] = 'Raki Rhodes';
    tablica[ 0 ].imie[ strsize ] = 'Celia Laiter';
    tablica[ 0 ].imie[ strsize ] = 'Hoppy Hipman';
    tablica[ 0 ].imie[ strsize ] = 'Pat Hand';
   
    tablica[ 1 ].stanowisko[ strsize ] = 'M\210odszy Programista';
    tablica[ 1 ].stanowisko[ strsize ] = '\230redni Programista';
    tablica[ 1 ].stanowisko[ strsize ] = 'Starszy Programista';
    tablica[ 1 ].stanowisko[ strsize ] = 'M\210odszy Programista';
    tablica[ 1 ].stanowisko[ strsize ] = '\230redni Programista';
   
    tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Jeden';
    tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Dwa';
    tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Trzy';
    tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Cztery';
    tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Pi/251/206';
   
    char wybor;
   
    while( wybor != 'q' )
    {
        cout << "Wybierz a, b, c, d lub q \n";
       
        wybor = getch();
        switch( wybor )
        {
        case 'a':
            cout << tablica[ 0 ].imie[ strsize ];
            break;
        case 'b':
            cout << tablica[ 1 ].stanowisko[ strsize ];
            break;
        case 'c':
            cout << tablica[ 2 ].pseudozpdw[ strsize ];
            break;
        case 'd':
           
            break;
        case 'q':
            cout << "Do zobaczenia!";
            exit( 0 );
            break;
            default: cout << "Niepoprawna warto\230\206!\n";
        }
    }
   
    return 0;
}
P-162345
kistel66
» 2017-06-10 21:31:57
Masz tablice znakową o indeksie nr strsize. I do tego jednego, biednego indeksu chcesz wprowadzać całe napisy.
Wartości dla struktur spróbuj tak zapisać:
C/C++
tablica[ 0 ] =
{
    "Wimp Macho",
    "Programista",
    "Maciek",
    3
};

Tak bez problemu dostaniesz się do jakieś wartości poprzez na przykład:
C/C++
cout << tablica[ 0 ].imie;
P-162352
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-06-11 12:47:09
Nie mogę tak zapisać, bo jeśli wybiorę opcje ' a ' to program ma wyświetlić mi imiona wszystkich programistów, a nie tylko jednego. Proszę o pomoc
P-162372
kistel66
» 2017-06-11 14:21:11
To użyj pętli:
C/C++
for( int i = 0; i < 4; i++ )
     cout << tablica[ i ].imie << endl;


P-162377
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-06-11 14:36:26
Jak wstawiam tą pętle to program wyświetla mi 4 puste linijki, nie ma tych imion
P-162378
Luq
» 2017-06-11 14:56:56
C/C++
//tablica[ 0 ].imie[ strsize ] = 'Wimp Macho'; // źle
strcpy( tablica[ 0 ].imie, "Wimp Macho" );

Do strcpy musisz dopisać #include <cstring>
P-162379
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-06-11 15:10:30
Hmm, zrobiłem tak i wyświetla mi tylko ostatnie imię " Pat Hand " które powinno być na ostatnim miejscu a jest na miejscu pierwszym i pod spodem są 3 puste linijki
P-162382
Luq
» 2017-06-11 15:12:30
Wklej kod
P-162383
« 1 » 2
  Strona 1 z 2 Następna strona