Witam,
mam program do napisania w którym muszę stworzyć samochód który przez clase fabryka go zmontuje i wrzuci do tablicy w klasie magazyn. I właśnie w ostatnim punkcie są schody gdyż wyrzuca mi błąd i w sumie nie bardzo wiem dlaczego. Przedstawię kod:
#include <iostream>
#include <string>
using namespace std;
class kolo{
private:
int rozmiar;
int wysokosc;
int szerokosc;
public:
void Wypelnij();
void Wyswietl(){
cout<<"rozmiar kola"<<rozmiar<<endl;
cout<<"wysokosc kola"<<wysokosc<<endl;
cout<<"szerokosc kola"<<szerokosc<<endl;
}
};
class rozmiar_auta{
private:
int wysokosc;
int szerokosc;
int dlugosc;
public:
void Wypelnij();
void Wyswietl(){
cout<<"wysokosc auta"<<wysokosc<<endl;
cout<<"szerokosc auta"<<szerokosc<<endl;
cout<<"dlugosc auta"<<dlugosc<<endl;
}
};
class wyposazenie{
private:
string kolor;
string klimatyzacja;
string el_szyby;
string rodzaj_tapicerki;
public:
void Wypelnij();
void Wyswietl(){
cout<<"Ma klimatyzacje:"<<klimatyzacja<<endl;
cout<<"Kolor: "<<kolor<<endl;
cout<<"Elektryczne szyby: "<<el_szyby<<endl;
cout<<"Rodzaj tapicerki: "<<rodzaj_tapicerki<<endl;
}
};
class info_producenta{
private:
string marka;
string model;
public:
void Wypelnij();
void Wyswietl(){
cout<<"Marka: "<<marka<<endl;
cout<<"Model: "<<model<<endl;
}
};
class info{
private:
string r_nadwozia;
string r_paliwa;
double pojemnosc;
int moc;
public:
void Wypelnij();
void Wyswietl(){
cout<<"Rodzaj nadwozia: "<<r_nadwozia<<endl;
cout<<"Rodzaj paliwa: "<<r_paliwa<<endl;
cout<<"Pojemnosc"<<pojemnosc<<endl;
cout<<"Moc: "<<moc<<endl;
}
};
class samochod:info_producenta,info, wyposazenie,kolo, rozmiar_auta
{
public:
void wyswietls(){
ip->Wyswietl();
in->Wyswietl();
wy->Wyswietl();
ra->Wyswietl();
ko->Wyswietl();
}
void ins(){
in = new info();
in->Wypelnij();
}
void ips(){
ip = new info_producenta();
ip->Wypelnij();
}
void wys(){
wy = new wyposazenie();
wy->Wypelnij();
}
void kos(){
ko = new kolo();
ko->Wypelnij();
}
void ras(){
ra = new rozmiar_auta();
ra->Wypelnij();
}
private:
info_producenta *ip;
info *in;
wyposazenie *wy;
kolo *ko;
rozmiar_auta *ra;
};
class magazyn
{
private:
samochod* tab;
public:
int x;
magazyn() {
tab = new samochod[10];
x=0;
}
void add(samochod *s){
tab[x]=s;// W tym miejscu się wykrzacza cos z operatorem przypisania
x++;
}
void wyswietlm(){
int i;
for(i=0;i<x;i++){
tab[i].wyswietls();
}
}
};
class fabryka
{
public:
magazyn m;
void addcar(samochod *s){
m.add(s);
}
};
void wyposazenie::Wypelnij()
{
cout << "Podaj kolor auta: ";
cin >> kolor;
cout << "Czy posiade klimatyzacje T/N?: ";
cin >> klimatyzacja;
cout << "Czy posiade elektryczne szyby T/N?: ";
cin >> el_szyby;
cout << "Rodzaj tapicerki: ";
cin >> rodzaj_tapicerki;
}
void rozmiar_auta::Wypelnij()
{
cout << "Podaj wysokosc auta: ";
cin >> wysokosc;
cout << "Podaj szerokosc auta: ";
cin >> szerokosc;
cout << "Podaj dlugosc auta: ";
cin >> dlugosc;
}
void info_producenta::Wypelnij()
{
cout << "Podaj marke auta: ";
cin >> marka;
cout << "Podaj model auta: ";
cin >> model;
}
void info::Wypelnij()
{
cout << "Podaj rodzaj nadwozia auta: ";
cin >> r_nadwozia;
cout << "Podaj rodzaj paliwa auta: ";
cin >> r_paliwa;
cout << "Podaj pojemnosc auta: ";
cin >> pojemnosc;
cout << "Podaj moc auta: ";
cin >> moc;
}
void kolo::Wypelnij()
{
cout << "Podaj rozmiar kola: ";
cin >> rozmiar;
cout << "Podaj wysokosc opony: ";
cin >> wysokosc;
cout << "Podaj szerokosc opony: ";
cin >> szerokosc;
}
int menu()
{
int z;
cout<<"MENU:\n"<<endl;
cout<<"1-Dodaj Marka/Model\n"<<endl;;
cout<<"2-Dodaj info silnik/nadwozie\n"<<endl;
cout<<"3-Dodaj wyposazenie\n"<<endl;
cout<<"4-Dodaj kola\n"<<endl;
cout<<"5-Dodaj wymiary auta\n"<<endl;
cout<<"6-Montuj auto\n"<<endl;
cout<<"7-Pokaz stan magazynu\n"<<endl;;
cout<<"8-koniec programu\n"<<endl;;
cout<<"Twoj wybor: "<<endl;;
cin>>z;
return z;
}
int main()
{
int z;
samochod samochod;
fabryka f;
magazyn m;
poczatek:
z=menu();
switch(z)
{
case 1:
samochod.ips();
goto poczatek;
case 2:
samochod.ins();
goto poczatek;
case 3:
samochod.wys();
goto poczatek;
case 4:
samochod.kos();
goto poczatek;
case 5:
samochod.ras();
goto poczatek;
case 6:
f.addcar(&samochod);
goto poczatek;
case 7:
m.wyswietlm();
goto poczatek;
}
return 0;
}