Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdlib>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- //==========================================
- class silnik{
- protected:
- float moc;
- float dlug;
- float wys;
- float szer;
- public:
- silnik * nast;
- void wypisz();
- silnik();
- silnik(float, float, float, float);
- silnik(silnik& sil);
- ~silnik();
- friend class blejtram;
- };
- class samochod{
- protected:
- int cena;
- char *r_silnik;
- public:
- samochod *nast;
- virtual void wypisz();
- // metoda przeci¹¿ona operatora +=...
- samochod();
- samochod(int, const char*);
- samochod(samochod& sm);
- ~samochod();
- friend class blejtram;
- friend class lista;
- };
- class optyka{
- protected:
- float zoom;
- float waga;
- public:
- optyka *nast;
- void wypisz();
- optyka();
- optyka(float, float);
- optyka(optyka& op);
- ~optyka();
- friend class blejtram;
- };
- class osoba{
- protected:
- char *imie;
- char *nazwisko;
- char *email;
- public:
- osoba *nast;
- void wypisz();
- osoba();
- osoba(const char*, const char*, const char*);
- osoba(osoba& os);
- ~osoba();
- friend class blejtram;
- };
- class blejtram{
- public:
- silnik *glowa;
- samochod *glowa_S;
- optyka *glowa_O;
- osoba *glowa_os;
- blejtram();
- blejtram(float, float, float, float);
- blejtram(int c, char *n);
- blejtram(float, float);
- blejtram(char *i, char*n, char*e);
- void dodaj(float, float, float, float);
- void dodaj(int c, const char *n);
- void dodaj(float, float);
- void dodaj(const char *i, const char*n, const char*e);
- void wypisz();
- ~blejtram();
- };
- class osobowy:public samochod{
- protected:
- float poj;
- int l_drzwi;
- char typ;
- public:
- osobowy() :samochod(){
- poj = 0;
- l_drzwi = 0;
- typ = '0';
- nast = NULL;
- };
- osobowy(float a, int b, char c, int d, const char * e) : samochod(d, e){
- if (a < 0)
- {
- poj = a*(-1);
- }
- else poj = a;
- if (b < 0)
- {
- l_drzwi = b*(-1);
- }
- else if(b==0) l_drzwi = 2;
- else l_drzwi = b;
- typ = c;
- nast = NULL;
- };
- osobowy(osobowy& os) : samochod(os){
- poj = os.poj;
- l_drzwi = os.l_drzwi;
- typ = os.typ;
- nast = os.nast;
- };
- ~osobowy();
- void wypisz();
- };
- class ciezarowy : public samochod{
- protected:
- float max;
- int l_kol;
- public:
- ciezarowy() :samochod(){
- max = 0;
- l_kol = 4;
- nast = NULL;
- };
- ciezarowy(float m, int l, int c, const char *r):samochod(c, r){
- if (m < 0)
- {
- max = m*(-1);
- }
- else max = m;
- if (m < 0)
- {
- l_kol = l*(-1);
- }
- else if(m>0 && m<4 )l_kol =4;
- else l_kol = l;
- nast = NULL;
- };
- ciezarowy(ciezarowy& c) :samochod(c){
- max = c.max;
- l_kol = c.l_kol;
- nast = c.nast;
- };
- ~ciezarowy(){ delete nast; };
- void wypisz();
- };
- class lista{
- public:
- samochod *glowa;
- lista();
- lista(float a, int b, char c, int d, const char * e);
- //lista(float m, int l, int c, const char *r);
- ~lista(){ delete glowa; };
- void wypisz();
- void dodaj(float a, int b, char c, int d, const char * e);
- void dodaj(float m, int l, int c, const char *r);
- };
- //==========================================
- lista::lista()
- {
- glowa = NULL;
- }
- lista::lista(float a, int b, char c, int d, const char * e)
- {
- osobowy *os= new osobowy(a, b, c, d, e);
- glowa = os;
- glowa->nast = NULL;
- }
- void lista::dodaj(float a, int b, char c, int d, const char * e)
- {
- samochod *wsk = glowa;
- if (!glowa)
- {
- glowa = new osobowy(a,b,c,d,e);
- wsk = glowa;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new osobowy(a,b,c,d,e);
- wsk = wsk->nast;
- }
- }
- void lista::dodaj(float m, int l, int c, const char *r)
- {
- samochod *wsk = glowa;
- if (!glowa)
- {
- glowa = new ciezarowy(m,l,c,r);
- wsk = glowa;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new ciezarowy(m,l,c,r);
- wsk = wsk->nast;
- }
- }
- void lista::wypisz()
- {
- samochod *wsk = glowa;
- while (wsk != NULL)
- {
- wsk->wypisz();
- wsk = wsk->nast;
- }
- }
- //==========================================
- samochod::samochod()
- {
- cena = 0;
- r_silnik = new char[3];
- nast = NULL;
- }
- samochod::samochod(int c, const char *n)
- {
- if (c < 0)
- {
- cena = c*(-1);
- }
- else
- {
- cena = c;
- }
- r_silnik = new char[3];
- strcpy(r_silnik, n);
- nast = NULL;
- }
- samochod::samochod(samochod & sm){
- cena = sm.cena;
- r_silnik = new char[3];
- strcpy(r_silnik, sm.r_silnik);
- nast = sm.nast;
- }
- samochod::~samochod()
- {
- delete r_silnik;
- delete nast;
- }
- void samochod::wypisz()
- {
- cout << "cena: " << cena << " ";
- printf("rodzaj silnika: %s\n", r_silnik);
- }
- //==========================================
- osobowy::~osobowy()
- {
- }
- void osobowy::wypisz()
- {
- cout << "samochod osobowy \n";
- this->samochod::wypisz();
- cout << "pojemnosc: " << poj << endl;
- cout << "liczba drzwi: " << l_drzwi << endl;
- cout << "typ: " << typ << endl<<endl;
- }
- //==========================================
- void ciezarowy::wypisz()
- {
- cout << "samochod ciezarowy \n";
- this->samochod::wypisz();
- cout << "maksymalna ladownosc: " << max << endl;
- cout << "liczba kol: " << l_kol << endl << endl;
- }
- //==========================================
- void silnik::wypisz()
- {
- cout << "moc: " << moc << endl;
- cout << "dlugosc: " << dlug << endl;
- cout << "szerokosc: " << szer << endl;
- cout << "wysokosc: " << wys << endl;
- }
- silnik::silnik()
- {
- moc = 0;
- dlug = wys = szer = 0;
- nast = NULL;
- }
- silnik::silnik(float m, float d, float w, float s){
- moc = m;
- dlug = d;
- wys = w;
- szer = s;
- nast = NULL;
- }
- silnik::silnik(silnik& sil)
- {
- moc = sil.moc;
- dlug = sil.dlug;
- wys = sil.wys;
- szer = sil.szer;
- nast = sil.nast;
- }
- silnik::~silnik()
- {
- delete nast;
- }
- //==========================================
- void optyka::wypisz(){
- cout << "zoom: " << zoom << " waga: " << waga << endl;
- }
- optyka::optyka(){
- zoom = 0.0;
- waga = 0.0;
- nast = NULL;
- }
- optyka::optyka(float z, float w)
- {
- zoom = z;
- waga = w;
- nast = NULL;
- }
- optyka::optyka(optyka& op)
- {
- zoom = op.zoom;
- waga = op.waga;
- nast = op.nast;
- }
- optyka::~optyka()
- {
- delete nast;
- }
- //=========================================
- void osoba::wypisz()
- {
- cout << "imie i nazwisko: " << imie << " " << nazwisko << endl;
- cout << "e-mail: " << email << endl;
- }
- osoba::osoba()
- {
- imie = new char[55];
- nazwisko = new char[55];
- email = new char[55];
- nast = NULL;
- }
- osoba::osoba(const char *i, const char*n, const char*e)
- {
- imie = new char[55];
- strcpy(imie, i);
- nazwisko = new char[55];
- strcpy(nazwisko, n);
- email = new char[55];
- strcpy(email, e);
- nast = NULL;
- }
- osoba::osoba(osoba& os)
- {
- imie = new char[50];
- strcpy(imie, os.imie);
- nazwisko = new char[50];
- strcpy(nazwisko, os.nazwisko);
- email = new char[50];
- strcpy(email, os.email);
- nast = os.nast;
- }
- osoba::~osoba(){
- delete imie;
- delete nazwisko;
- delete email;
- delete nast;
- }
- //=========================================
- blejtram::blejtram(){
- glowa = NULL;
- glowa_S = NULL;
- glowa_O = NULL;
- glowa_os = NULL;
- }
- blejtram::blejtram(float m, float d, float w, float s){
- glowa->moc = m;
- glowa->dlug = d;
- glowa->wys = w;
- glowa->szer = s;
- glowa->nast = NULL;
- }
- blejtram::blejtram(int c, char *n){
- glowa_S->cena = c;
- strcpy(glowa_S->r_silnik, n);
- glowa_S->nast = NULL;
- }
- blejtram::blejtram(float z, float w){
- glowa_O->waga = w;
- glowa_O->zoom = z;
- glowa_O->nast = NULL;
- }
- blejtram::blejtram(char *i, char*n, char*e) {
- strcpy(glowa_os->imie, i);
- strcpy(glowa_os->nazwisko, n);
- strcpy(glowa_os->email, e);
- glowa_os->nast = NULL;
- }
- void blejtram::dodaj(float m, float d, float w, float s)
- {
- silnik *wsk = glowa;
- if (!glowa)
- {
- glowa = new silnik();
- wsk = glowa;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new silnik();
- wsk = wsk->nast;
- }
- wsk->dlug = d;
- wsk->moc = m;
- wsk->nast = NULL;
- wsk->szer = s;
- wsk->wys = w;
- }
- void blejtram::dodaj(int c, const char *n)
- {
- samochod *wsk = glowa_S;
- if (!glowa_S)
- {
- glowa_S = new samochod();
- wsk = glowa_S;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new samochod();
- wsk = wsk->nast;
- }
- wsk->cena = c;
- strcpy(wsk->r_silnik, n);
- wsk->nast = NULL;
- }
- void blejtram::dodaj(float z, float w)
- {
- optyka *wsk = glowa_O;
- if (!glowa_O)
- {
- glowa_O = new optyka();
- wsk = glowa_O;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new optyka();
- wsk = wsk->nast;
- }
- wsk->zoom = z;
- wsk->nast = NULL;
- wsk->waga = w;
- }
- void blejtram::dodaj(const char *i, const char*n,const char*e)
- {
- osoba *wsk = glowa_os;
- if (!glowa_os)
- {
- glowa_os = new osoba();
- wsk = glowa_os;
- }
- else
- {
- while (wsk->nast != NULL)
- {
- wsk = wsk->nast;
- }
- wsk->nast = new osoba();
- wsk = wsk->nast;
- }
- strcpy(wsk->imie, i);
- strcpy(wsk->nazwisko, n);
- strcpy(wsk->email, e);
- wsk->nast = NULL;
- }
- void blejtram::wypisz()
- {
- {
- silnik *wsk = glowa;
- while (wsk != NULL){
- wsk->wypisz();
- wsk = wsk->nast;
- }
- }
- cout << endl;
- {
- samochod *wsk = glowa_S;
- while (wsk != NULL){
- wsk->wypisz();
- wsk = wsk->nast;
- }
- }
- cout << endl;
- {
- optyka *wsk = glowa_O;
- while (wsk != NULL){
- wsk->wypisz();
- wsk = wsk->nast;
- }
- }
- cout << endl;
- {
- osoba *wsk = glowa_os;
- while (wsk != NULL){
- wsk->wypisz();
- wsk = wsk->nast;
- }
- }
- }
- blejtram::~blejtram()
- {
- delete glowa;
- delete glowa_S;
- delete glowa_O;
- delete glowa_os;
- }
- int main()
- {
- blejtram *blejt = new blejtram;
- blejt->dodaj(1, 1, 1, 1);
- blejt->dodaj(2, 2, 2, 2);
- blejt->dodaj(3, 3, 3, 3);
- blejt->dodaj(4, 4, 4, 4);
- blejt->dodaj(1, "V1");
- blejt->dodaj(2, "V2");
- blejt->dodaj(3, "V3");
- blejt->dodaj(4, "V4");
- blejt->dodaj(1, 1);
- blejt->dodaj(2, 2);
- blejt->dodaj(3, 3);
- blejt->dodaj(4, 4);
- blejt->dodaj("Adam", "Chabros", "adam.chabros006@gmail.com");
- blejt->dodaj("Edward", "Acki", "e.acki@fajny.mail");
- blejt->dodaj("Jan", "Kowalski", "j.kowalski@typowy.mail\0");
- blejt->dodaj("Janusz", "Nowak", "janusz_nowak@nowy.mail\0");
- blejt->wypisz();
- printf("\n");
- /*osobowy os(9.5, 5, 'K',20000,"V1");
- osobowy os2(20.9, 2, 'S', 35000, "V8");
- os.wypisz();
- os2.wypisz();
- ciezarowy c(200, 6, 200500, "V9");
- c.wypisz();*/
- lista *list = new lista;
- list->dodaj(9.5, 5, 'K', 20000, "V1");
- list->dodaj(350.5, 12, 350000, "V8");
- list->dodaj(20.9, 2, 'S', 35000, "V8");
- list->dodaj(200, 6, 200500, "V9");
- list->wypisz();
- delete list;
- delete blejt;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement