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

Struktura z tablicą dynamiczną

Ostatnio zmodyfikowano 2016-03-15 16:40
Autor Wiadomość
TheD3luxed
Temat założony przez niniejszego użytkownika
Struktura z tablicą dynamiczną
» 2016-03-15 16:22:47
Witam. Uczę się programować i nie potrafię napisać zadanego mi programu. Do rzeczy: Zadanie jest bardziej rozbudowane, natomiast już na początku nie potrafię sobie poradzić.
C/C++
struct Towary {
    string towar;
    string cena;
    int id;
    string rodzaj;
};


int * Towar, ile;



int uzupelnij( int & ile ) {
    cout << "Podaj ile Towarow";
    cin >> ile;
    Towary * Towar = new Towary[ ile ];
    //probowalem tutaj jeszcze w stylu "Towary Towar[ile]"... Dawalem argumenty do funkcji ale nic mi z tego nie wychodzilo
   
   
   
   
    for( int i = 0; i < ile; i++ ) {
        cout << "Podaj rodzaj towaru" << endl;
        cin >> Towar[ i ].rodzaj;
        cout << "Podaj nazwe towaru" << endl;
        cin >> Towar[ i ].towar;
        cout << "Podaj cene towaru" << endl;
        cin >> Towar[ i ].cena;
        Towar[ i ].id = i + 1;
    }
}

int wyswietl() {
    for( int i = 0; i < ile; i++ ) {
        cout << Towar[ i ].rodzaj;
    }
}
Problem w tym, że nie wiem jak zadeklarować tablicę dynamiczną w strukturze. Przy obecnej konstrukcji wyskakuje blad: "[Error] request for member 'rodzaj' in '*(Towar + ((sizetype)(((long long unsigned int)i) * 4ull)))', which is of non-class type 'int'
Problem pewnie leży w tym, że *Towar jest intem. Niestety nie wiem jak inaczej to zrobić... Ktoś pomoże początkującemu programiście? :)
PS. W tresci zadania jest m.in taki zapisek:
Program powinien być napisany zgodnie z paradygmatem proceduralnym, a więc
w ramach realizacji programu należy utworzyć:
1) Strukturę ”Towary” składającą się z pól: towar, cena, id, rodzaj
2) Dynamiczną tablicę typu zdefiniowanego przez użytkownika
3) funkcję „uzupełnij” przeciążoną wskaźnikiem na tablicę struktur
P-146037
Pokropow
» 2016-03-15 16:28:34
Towar nie jest zmienną globalną. Przekazuj zmienną towar przez referencę, albo zrób zmienną Towar typu Towary globalną (a nie typu int) i wyrzuć jej deklarację z wnętrza funkcji
np.:
C/C++
#include <iostream>
using namespace std;
#include <cstring>

struct Towary {
    string towar;
    string cena;
    int id;
    string rodzaj;
};

Towary * Towar;
int ile;

int uzupelnij() {
    cout << "Podaj ile Towarow";
    cin >> ile;
    Towar = new Towary[ ile ];
   
    for( int i = 0; i < ile; i++ ) {
        cout << "Podaj rodzaj towaru" << endl;
        cin >> Towar[ i ].rodzaj;
        cout << "Podaj nazwe towaru" << endl;
        cin >> Towar[ i ].towar;
        cout << "Podaj cene towaru" << endl;
        cin >> Towar[ i ].cena;
        Towar[ i ].id = i + 1;
    }
}

int wyswietl() {
    for( int i = 0; i < ile; i++ ) {
        cout << Towar[ i ].rodzaj;
    }
}

int main()
{
    uzupelnij();
    wyswietl();
}
P-146038
TheD3luxed
Temat założony przez niniejszego użytkownika
» 2016-03-15 16:40:26
Działa ;) O to mi chodziło. Dzięki za pomoc :)
P-146039
« 1 »
  Strona 1 z 1