Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <cstdio>
- #include <cstring>
- #include <stdio.h>
- #include <stdlib.h>
- #include <iostream>
- #include<math.h>
- using namespace std;
- class silnik_samochodowy
- {
- protected:
- double moc;
- double wymiary;
- public:
- silnik_samochodowy *nast;
- silnik_samochodowy *pierwsza;
- silnik_samochodowy()
- {
- }
- ~silnik_samochodowy()
- {
- }
- silnik_samochodowy(const silnik_samochodowy &silnik_samochodowy)
- {
- moc = silnik_samochodowy.moc;
- wymiary = silnik_samochodowy.wymiary;
- }
- silnik_samochodowy(double power,double size)
- {
- moc = power;
- wymiary = size;
- }
- void setMoc(double power)
- {
- moc = power;
- }
- void setWymiary(double size)
- {
- wymiary = size;
- }
- double getMoc()
- {
- return moc;
- }
- double getWymiary()
- {
- return wymiary;
- }
- void wypisz(silnik_samochodowy *first)
- {
- silnik_samochodowy *tmp = first;
- while (tmp->nast != NULL)
- {
- cout << "Moc wynosi : " << tmp->moc << " Wymiary to: " << tmp->wymiary << endl;
- tmp = tmp->nast;
- }
- cout << "Moc wynosi : " << tmp->moc << " Wymiary to: " << tmp->wymiary << endl;
- }
- void dodaj_silnik(double size, double power)
- {
- silnik_samochodowy *nowa = new silnik_samochodowy();
- nowa->setMoc(power);
- nowa->setWymiary(size);
- if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
- {
- // jeżeli tak to nowy element jest teraz początkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wędrujemy na koniec listy
- silnik_samochodowy *temp = pierwsza;
- while (temp->nast)
- {
- // znajdujemy wskaźnik na ostatni element
- temp = temp->nast;
- }
- temp->nast = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nast = NULL; // ostatni nie wskazuje na nic
- }
- }
- };
- class samochod
- {
- protected:
- double cena;
- char *rodzaj;
- public:
- samochod *nast;
- samochod *pierwsza;
- samochod()
- {
- }
- ~samochod()
- {
- }
- samochod(const samochod &samochod)
- {
- rodzaj = new char[1000];
- strcpy(rodzaj, samochod.rodzaj);
- cena = samochod.cena;
- }
- samochod(double cost, char *type)
- {
- rodzaj = new char[1000];
- strcpy(rodzaj, type);
- cena = cost;
- }
- void setCena(double price)
- {
- cena = price;
- }
- void setRodzaj(char *type)
- {
- rodzaj = new char[1000];
- strcpy(rodzaj, type);
- }
- double getCena()
- {
- return cena;
- }
- char *getRodzaj()
- {
- return rodzaj;
- }
- void wypisz(samochod *first)
- {
- samochod *tmp = first;
- while (tmp->nast != NULL)
- {
- cout << "Cena wynosi : " << tmp->cena << " Rodzaj to: " << tmp->rodzaj << endl;
- tmp = tmp->nast;
- }
- cout << "Cena wynosi : " << tmp->cena << " Rodzaj to: " << tmp->rodzaj << endl;
- }
- void dodaj_samochod(char *powiekszenie, double weight)
- {
- samochod *nowa = new samochod();
- nowa->setCena(weight);
- nowa->setRodzaj(powiekszenie);
- if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
- {
- // jeżeli tak to nowy element jest teraz początkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wędrujemy na koniec listy
- samochod *temp = pierwsza;
- while (temp->nast)
- {
- // znajdujemy wskaźnik na ostatni element
- temp = temp->nast;
- }
- temp->nast = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nast = NULL; // ostatni nie wskazuje na nic
- }
- }
- };
- class urządzenie_optyczne
- {
- protected:
- double zoom;
- double waga;
- public:
- urządzenie_optyczne *nast;
- urządzenie_optyczne *pierwsza;
- ~urządzenie_optyczne()
- {
- }
- urządzenie_optyczne()
- {
- }
- urządzenie_optyczne(const urządzenie_optyczne &urządzenie_optyczne)
- {
- waga = urządzenie_optyczne.waga;
- zoom = urządzenie_optyczne.zoom;
- }
- urządzenie_optyczne(double zblizenie, double weight)
- {
- zoom = zblizenie;
- waga = weight;
- }
- void setZoom(double zblizenie)
- {
- zoom = zblizenie;
- }
- void setWaga(double weight)
- {
- waga = weight;
- }
- double setZoom()
- {
- return zoom;
- }
- double setWaga()
- {
- return waga;
- }
- void wypisz(urządzenie_optyczne *first)
- {
- urządzenie_optyczne *tmp = first;
- while (tmp->nast != NULL)
- {
- cout << "Zoom wynosi : " << tmp->zoom << " Waga to: " << tmp->waga << endl;
- tmp = tmp->nast;
- }
- cout << "Zoom wynosi : " << tmp->zoom << " Waga to: " << tmp->waga << endl;
- }
- void dodaj_optyka(double powiekszenie,double weight)
- {
- urządzenie_optyczne *nowa = new urządzenie_optyczne();
- nowa->setWaga(weight);
- nowa->setZoom(powiekszenie);
- if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
- {
- // jeżeli tak to nowy element jest teraz początkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wędrujemy na koniec listy
- urządzenie_optyczne *temp = pierwsza;
- while (temp->nast)
- {
- // znajdujemy wskaźnik na ostatni element
- temp = temp->nast;
- }
- temp->nast = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nast = NULL; // ostatni nie wskazuje na nic
- }
- }
- };
- class osoba_na_uczelni
- {
- protected:
- char *imie;
- char *naziwsko;
- char *email;
- public:
- osoba_na_uczelni *nast;
- osoba_na_uczelni *pierwsza;
- osoba_na_uczelni()
- {
- //cout << "Domyslny onu" << endl;
- }
- ~osoba_na_uczelni()
- {
- }
- osoba_na_uczelni(osoba_na_uczelni &osoba_na_uczelni)
- {
- email = new char[1000];
- strcpy(email, osoba_na_uczelni.email);
- naziwsko = new char[1000];
- strcpy(naziwsko, osoba_na_uczelni.naziwsko);
- imie = new char[1000];
- strcpy(imie, osoba_na_uczelni.imie);
- }
- osoba_na_uczelni(char *name, char *surname, char *mail)
- {
- imie = new char[1000];
- strcpy(imie, name);
- naziwsko = new char[1000];
- strcpy(naziwsko, surname);
- email = new char[1000];
- strcpy(email, mail);
- }
- void setImie(char *type)
- {
- imie = new char[1000];
- strcpy(imie, type);
- }
- void setNazwisko(char *type)
- {
- naziwsko = new char[1000];
- strcpy(naziwsko, type);
- }
- void setEmail(char *type)
- {
- email = new char[1000];
- strcpy(email, type);
- }
- char *getImie()
- {
- return imie;
- }
- char *getNazwisko()
- {
- return naziwsko;
- }
- char *getEmail()
- {
- return email;
- }
- void wypisz(osoba_na_uczelni *first)
- {
- osoba_na_uczelni *tmp = first;
- while (tmp->nast != NULL)
- {
- cout << "Imie wynosi : " << tmp->imie << " Nazwisko to: " << tmp->naziwsko << " email : " << tmp->email << endl;
- tmp = tmp->nast;
- }
- cout << "Imie wynosi : " << tmp->imie << " Nazwisko to: " << tmp->naziwsko << " email : " << tmp->email << endl;
- }
- void dodaj_ucznia(char *name,char *surname,char *mail)
- {
- osoba_na_uczelni *nowa = new osoba_na_uczelni();
- nowa->setImie(name);
- nowa->setNazwisko(surname);
- nowa->setEmail(mail);
- if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
- {
- // jeżeli tak to nowy element jest teraz początkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wędrujemy na koniec listy
- osoba_na_uczelni *temp = pierwsza;
- while (temp->nast)
- {
- // znajdujemy wskaźnik na ostatni element
- temp = temp->nast;
- }
- temp->nast = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nast = NULL; // ostatni nie wskazuje na nic
- }
- }
- };
- class pochodna_silnika : public silnik_samochodowy
- {
- public:
- pochodna_silnika()
- {
- }
- ~pochodna_silnika()
- {
- }
- };
- class pochodna_samochodu : public samochod
- {
- public:
- pochodna_samochodu()
- {
- }
- ~pochodna_samochodu()
- {
- }
- void wypisz(samochod *first)
- {
- samochod *tmp = first;
- while (tmp->nast != NULL)
- {
- double cena_tu = tmp->getCena();
- cout << cena_tu << endl;
- tmp = tmp->nast;
- }
- double cena_tu = tmp->getCena();
- cout << cena_tu << endl;
- }
- };
- class pochodna_urzadzenia : public urządzenie_optyczne
- {
- public:
- pochodna_urzadzenia()
- {
- }
- ~pochodna_urzadzenia()
- {
- }
- };
- class pochodna_osoby : public osoba_na_uczelni
- {
- public:
- pochodna_osoby()
- {
- }
- ~pochodna_osoby()
- {
- }
- };
- int main()
- {
- silnik_samochodowy *ss = new silnik_samochodowy;
- samochod *s = new samochod;
- urządzenie_optyczne *uo = new urządzenie_optyczne;
- osoba_na_uczelni *onu = new osoba_na_uczelni;
- char imie[1000] = "Jasiek";
- char nazwisko[1000] = "Kowalski";
- char email[1000] = "kowalski@gmail.com";
- onu->dodaj_ucznia(imie, nazwisko, email);
- char imie2[1000] = "Staszek";
- char nazwisko2[1000] = "Kowalski";
- char email2[1000] = "Staszek@gmail.com";
- onu->dodaj_ucznia(imie2, nazwisko2, email2);
- char imie3[1000] = "Bartej";
- char nazwisko3[1000] = "Kowalski";
- char email3[1000] = "Bartej@gmail.com";
- onu->dodaj_ucznia(imie3, nazwisko3, email3);
- char imie4[1000] = "Maciek";
- char nazwisko4[1000] = "Kowalski";
- char email4[1000] = "Maciek@gmail.com";
- onu->dodaj_ucznia(imie4, nazwisko4, email4);
- char imie5[1000] = "Zdzisiek";
- char nazwisko5[1000] = "Kowalski";
- char email5[1000] = "Zdzisiek@gmail.com";
- onu->dodaj_ucznia(imie5, nazwisko5, email5);
- onu = onu->pierwsza;
- onu->wypisz(onu);
- uo->dodaj_optyka(1, 2);
- uo->dodaj_optyka(3, 4);
- uo->dodaj_optyka(5, 6);
- uo->dodaj_optyka(7, 8);
- uo->dodaj_optyka(9, 10);
- uo = uo->pierwsza;
- uo->wypisz(uo);
- char sam[1000] = "Polonez";
- s->dodaj_samochod(sam,1);
- char sam1[1000] = "Audi";
- s->dodaj_samochod(sam1, 2);
- char sam2[1000] = "BMW";
- s->dodaj_samochod(sam2, 3);
- char sam3[1000] = "Skoda";
- s->dodaj_samochod(sam3, 4);
- char sam4[1000] = "Citroen";
- s->dodaj_samochod(sam4, 5);
- s = s->pierwsza;
- s->wypisz(s);
- ss->dodaj_silnik(1, 2);
- ss->dodaj_silnik(7, 3);
- ss->dodaj_silnik(8, 4);
- ss->dodaj_silnik(9, 5);
- ss->dodaj_silnik(10, 6);
- ss = ss->pierwsza;
- ss->wypisz(ss);
- pochodna_samochodu *ps = new pochodna_samochodu;
- ps->wypisz(s);
- delete ss;
- delete s;
- delete uo;
- delete onu;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement