SHARE
TWEET

Untitled

a guest May 24th, 2019 123 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <iostream>
  7. #include<math.h>
  8. using namespace std;
  9.  
  10. class silnik_samochodowy
  11. {
  12. protected:
  13.     double moc;
  14.     double wymiary;
  15. public:
  16.     silnik_samochodowy *nast;
  17.     silnik_samochodowy *pierwsza;
  18.     silnik_samochodowy()
  19.     {
  20.  
  21.     }
  22.     ~silnik_samochodowy()
  23.     {
  24.  
  25.     }
  26.     silnik_samochodowy(const silnik_samochodowy &silnik_samochodowy)
  27.     {
  28.         moc = silnik_samochodowy.moc;
  29.         wymiary = silnik_samochodowy.wymiary;
  30.     }
  31.     silnik_samochodowy(double power,double size)
  32.     {
  33.         moc = power;
  34.         wymiary = size;
  35.     }
  36.     void setMoc(double power)
  37.     {
  38.         moc = power;
  39.     }
  40.     void setWymiary(double size)
  41.     {
  42.         wymiary = size;
  43.     }
  44.  
  45.     double getMoc()
  46.     {
  47.         return moc;
  48.     }
  49.     double getWymiary()
  50.     {
  51.         return wymiary;
  52.     }
  53.     void wypisz(silnik_samochodowy *first)
  54.     {
  55.         silnik_samochodowy *tmp = first;
  56.  
  57.         while (tmp->nast != NULL)
  58.         {
  59.             cout << "Moc wynosi : " << tmp->moc << " Wymiary to: " << tmp->wymiary << endl;
  60.             tmp = tmp->nast;
  61.         }
  62.         cout << "Moc wynosi : " << tmp->moc << " Wymiary to: " << tmp->wymiary << endl;
  63.  
  64.     }
  65.  
  66.     void dodaj_silnik(double size, double power)
  67.     {
  68.         silnik_samochodowy *nowa = new silnik_samochodowy();
  69.         nowa->setMoc(power);
  70.         nowa->setWymiary(size);
  71.         if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
  72.         {
  73.             // jeżeli tak to nowy element jest teraz początkiem listy
  74.             pierwsza = nowa;
  75.         }
  76.         else
  77.         {
  78.             // w przeciwnym wypadku wędrujemy na koniec listy
  79.             silnik_samochodowy *temp = pierwsza;
  80.  
  81.             while (temp->nast)
  82.             {
  83.                 // znajdujemy wskaźnik na ostatni element
  84.                 temp = temp->nast;
  85.             }
  86.  
  87.             temp->nast = nowa;  // ostatni element wskazuje na nasz nowy
  88.             nowa->nast = NULL;     // ostatni nie wskazuje na nic
  89.         }
  90.     }
  91.  
  92. };
  93.  
  94. class samochod
  95. {
  96. protected:
  97.     double cena;
  98.     char *rodzaj;
  99. public:
  100.     samochod *nast;
  101.     samochod *pierwsza;
  102.     samochod()
  103.     {
  104.  
  105.     }
  106.     ~samochod()
  107.     {
  108.  
  109.     }
  110.     samochod(const samochod &samochod)
  111.     {
  112.         rodzaj = new char[1000];
  113.         strcpy(rodzaj, samochod.rodzaj);
  114.         cena = samochod.cena;
  115.     }
  116.     samochod(double cost, char *type)
  117.     {
  118.         rodzaj = new char[1000];
  119.         strcpy(rodzaj, type);
  120.         cena = cost;
  121.     }
  122.     void setCena(double price)
  123.     {
  124.         cena = price;
  125.     }
  126.     void setRodzaj(char *type)
  127.     {
  128.         rodzaj = new char[1000];
  129.         strcpy(rodzaj, type);
  130.     }
  131.  
  132.     double getCena()
  133.     {
  134.         return cena;
  135.     }
  136.     char *getRodzaj()
  137.     {
  138.         return rodzaj;
  139.     }
  140.  
  141.     void wypisz(samochod *first)
  142.     {
  143.         samochod *tmp = first;
  144.  
  145.         while (tmp->nast != NULL)
  146.         {
  147.             cout << "Cena wynosi : " << tmp->cena << " Rodzaj to: " << tmp->rodzaj << endl;
  148.             tmp = tmp->nast;
  149.         }
  150.         cout << "Cena wynosi : " << tmp->cena << " Rodzaj to: " << tmp->rodzaj << endl;
  151.  
  152.     }
  153.  
  154.     void dodaj_samochod(char *powiekszenie, double weight)
  155.     {
  156.         samochod *nowa = new samochod();
  157.         nowa->setCena(weight);
  158.         nowa->setRodzaj(powiekszenie);
  159.         if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
  160.         {
  161.             // jeżeli tak to nowy element jest teraz początkiem listy
  162.             pierwsza = nowa;
  163.         }
  164.         else
  165.         {
  166.             // w przeciwnym wypadku wędrujemy na koniec listy
  167.             samochod *temp = pierwsza;
  168.  
  169.             while (temp->nast)
  170.             {
  171.                 // znajdujemy wskaźnik na ostatni element
  172.                 temp = temp->nast;
  173.             }
  174.  
  175.             temp->nast = nowa;  // ostatni element wskazuje na nasz nowy
  176.             nowa->nast = NULL;     // ostatni nie wskazuje na nic
  177.         }
  178.     }
  179.  
  180. };
  181.  
  182. class urządzenie_optyczne
  183. {
  184. protected:
  185.     double zoom;
  186.     double waga;
  187. public:
  188.     urządzenie_optyczne *nast;
  189.     urządzenie_optyczne *pierwsza;
  190.     ~urządzenie_optyczne()
  191.     {
  192.  
  193.     }
  194.     urządzenie_optyczne()
  195.     {
  196.  
  197.     }
  198.     urządzenie_optyczne(const urządzenie_optyczne &urządzenie_optyczne)
  199.     {
  200.         waga = urządzenie_optyczne.waga;
  201.         zoom = urządzenie_optyczne.zoom;
  202.     }
  203.     urządzenie_optyczne(double zblizenie, double weight)
  204.     {
  205.         zoom = zblizenie;
  206.         waga = weight;
  207.     }
  208.     void setZoom(double zblizenie)
  209.     {
  210.         zoom = zblizenie;
  211.     }
  212.     void setWaga(double weight)
  213.     {
  214.         waga = weight;
  215.     }
  216.  
  217.     double setZoom()
  218.     {
  219.         return zoom;
  220.     }
  221.     double setWaga()
  222.     {
  223.         return waga;
  224.  
  225.     }
  226.  
  227.     void wypisz(urządzenie_optyczne *first)
  228.     {
  229.         urządzenie_optyczne *tmp = first;
  230.  
  231.         while (tmp->nast != NULL)
  232.         {
  233.             cout << "Zoom wynosi : " << tmp->zoom << " Waga to: " << tmp->waga << endl;
  234.             tmp = tmp->nast;
  235.         }
  236.         cout << "Zoom wynosi : " << tmp->zoom << " Waga to: " << tmp->waga << endl;
  237.  
  238.     }
  239.  
  240.     void dodaj_optyka(double powiekszenie,double weight)
  241.     {
  242.         urządzenie_optyczne *nowa = new urządzenie_optyczne();
  243.         nowa->setWaga(weight);
  244.         nowa->setZoom(powiekszenie);
  245.         if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
  246.         {
  247.             // jeżeli tak to nowy element jest teraz początkiem listy
  248.             pierwsza = nowa;
  249.         }
  250.         else
  251.         {
  252.             // w przeciwnym wypadku wędrujemy na koniec listy
  253.             urządzenie_optyczne *temp = pierwsza;
  254.  
  255.             while (temp->nast)
  256.             {
  257.                 // znajdujemy wskaźnik na ostatni element
  258.                 temp = temp->nast;
  259.             }
  260.  
  261.             temp->nast = nowa;  // ostatni element wskazuje na nasz nowy
  262.             nowa->nast = NULL;     // ostatni nie wskazuje na nic
  263.         }
  264.     }
  265. };
  266.  
  267.  
  268. class osoba_na_uczelni
  269. {
  270. protected:
  271.     char *imie;
  272.     char *naziwsko;
  273.     char *email;
  274. public:
  275.  
  276.     osoba_na_uczelni *nast;
  277.     osoba_na_uczelni *pierwsza;
  278.     osoba_na_uczelni()
  279.     {
  280.         //cout << "Domyslny onu" << endl;
  281.     }
  282.     ~osoba_na_uczelni()
  283.     {
  284.  
  285.     }
  286.     osoba_na_uczelni(osoba_na_uczelni &osoba_na_uczelni)
  287.     {
  288.         email = new char[1000];
  289.         strcpy(email, osoba_na_uczelni.email);
  290.         naziwsko = new char[1000];
  291.         strcpy(naziwsko, osoba_na_uczelni.naziwsko);
  292.         imie = new char[1000];
  293.         strcpy(imie, osoba_na_uczelni.imie);
  294.     }
  295.     osoba_na_uczelni(char *name, char *surname, char *mail)
  296.     {
  297.         imie = new char[1000];
  298.         strcpy(imie, name);
  299.         naziwsko = new char[1000];
  300.         strcpy(naziwsko, surname);
  301.         email = new char[1000];
  302.         strcpy(email, mail);
  303.     }
  304.     void setImie(char *type)
  305.     {
  306.         imie = new char[1000];
  307.         strcpy(imie, type);
  308.     }
  309.     void setNazwisko(char *type)
  310.     {
  311.         naziwsko = new char[1000];
  312.         strcpy(naziwsko, type);
  313.     }
  314.     void setEmail(char *type)
  315.     {
  316.         email = new char[1000];
  317.         strcpy(email, type);
  318.     }
  319.  
  320.      char *getImie()
  321.     {
  322.         return imie;
  323.     }
  324.      char *getNazwisko()
  325.     {
  326.         return naziwsko;
  327.     }
  328.      char *getEmail()
  329.     {
  330.         return email;
  331.     }
  332.  
  333.     void wypisz(osoba_na_uczelni *first)
  334.     {
  335.         osoba_na_uczelni *tmp = first;
  336.  
  337.         while (tmp->nast != NULL)
  338.         {
  339.             cout << "Imie wynosi : " << tmp->imie << " Nazwisko to: " << tmp->naziwsko << " email : " << tmp->email << endl;
  340.             tmp = tmp->nast;
  341.         }
  342.         cout << "Imie wynosi : " << tmp->imie << " Nazwisko to: " << tmp->naziwsko << " email : " << tmp->email << endl;
  343.  
  344.     }
  345.  
  346.     void dodaj_ucznia(char *name,char *surname,char *mail)
  347.     {
  348.         osoba_na_uczelni *nowa = new osoba_na_uczelni();
  349.         nowa->setImie(name);
  350.         nowa->setNazwisko(surname);
  351.         nowa->setEmail(mail);
  352.         if (pierwsza == NULL) // sprawdzamy czy to pierwszy element listy
  353.         {
  354.             // jeżeli tak to nowy element jest teraz początkiem listy
  355.             pierwsza = nowa;
  356.         }
  357.         else
  358.         {
  359.             // w przeciwnym wypadku wędrujemy na koniec listy
  360.             osoba_na_uczelni *temp = pierwsza;
  361.  
  362.             while (temp->nast)
  363.             {
  364.                 // znajdujemy wskaźnik na ostatni element
  365.                 temp = temp->nast;
  366.             }
  367.  
  368.             temp->nast = nowa;  // ostatni element wskazuje na nasz nowy
  369.             nowa->nast = NULL;     // ostatni nie wskazuje na nic
  370.         }
  371.     }
  372.  
  373. };
  374.  
  375.  
  376. class pochodna_silnika : public silnik_samochodowy
  377. {
  378. public:
  379.  
  380.     pochodna_silnika()
  381.     {
  382.  
  383.     }
  384.     ~pochodna_silnika()
  385.     {
  386.  
  387.     }
  388.  
  389. };
  390.  
  391. class pochodna_samochodu : public samochod
  392. {
  393. public:
  394.     pochodna_samochodu()
  395.     {
  396.  
  397.     }
  398.     ~pochodna_samochodu()
  399.     {
  400.  
  401.     }
  402.     void wypisz(samochod *first)
  403.     {
  404.         samochod *tmp = first;
  405.         while (tmp->nast != NULL)
  406.         {
  407.             double cena_tu = tmp->getCena();
  408.             cout << cena_tu << endl;
  409.             tmp = tmp->nast;
  410.         }
  411.         double cena_tu = tmp->getCena();
  412.         cout << cena_tu << endl;
  413.  
  414.     }
  415. };
  416.  
  417. class pochodna_urzadzenia : public urządzenie_optyczne
  418. {
  419. public:
  420.  
  421.     pochodna_urzadzenia()
  422.     {
  423.  
  424.     }
  425.     ~pochodna_urzadzenia()
  426.     {
  427.  
  428.     }
  429. };
  430.  
  431. class pochodna_osoby : public osoba_na_uczelni
  432. {
  433. public:
  434.  
  435.     pochodna_osoby()
  436.     {
  437.  
  438.     }
  439.     ~pochodna_osoby()
  440.     {
  441.  
  442.     }
  443. };
  444.  
  445. int main()
  446. {
  447.  
  448.     silnik_samochodowy *ss = new silnik_samochodowy;
  449.     samochod *s = new samochod;
  450.     urządzenie_optyczne *uo = new urządzenie_optyczne;
  451.     osoba_na_uczelni *onu = new osoba_na_uczelni;
  452.    
  453.      char imie[1000] = "Jasiek";
  454.      char nazwisko[1000] = "Kowalski";
  455.      char email[1000] = "kowalski@gmail.com";
  456.     onu->dodaj_ucznia(imie, nazwisko, email);
  457.     char imie2[1000] = "Staszek";
  458.     char nazwisko2[1000] = "Kowalski";
  459.     char email2[1000] = "Staszek@gmail.com";
  460.     onu->dodaj_ucznia(imie2, nazwisko2, email2);
  461.     char imie3[1000] = "Bartej";
  462.     char nazwisko3[1000] = "Kowalski";
  463.     char email3[1000] = "Bartej@gmail.com";
  464.     onu->dodaj_ucznia(imie3, nazwisko3, email3);
  465.     char imie4[1000] = "Maciek";
  466.     char nazwisko4[1000] = "Kowalski";
  467.     char email4[1000] = "Maciek@gmail.com";
  468.     onu->dodaj_ucznia(imie4, nazwisko4, email4);
  469.     char imie5[1000] = "Zdzisiek";
  470.     char nazwisko5[1000] = "Kowalski";
  471.     char email5[1000] = "Zdzisiek@gmail.com";
  472.     onu->dodaj_ucznia(imie5, nazwisko5, email5);
  473.     onu = onu->pierwsza;
  474.     onu->wypisz(onu);
  475.  
  476.     uo->dodaj_optyka(1, 2);
  477.     uo->dodaj_optyka(3, 4);
  478.     uo->dodaj_optyka(5, 6);
  479.     uo->dodaj_optyka(7, 8);
  480.     uo->dodaj_optyka(9, 10);
  481.     uo = uo->pierwsza;
  482.     uo->wypisz(uo);
  483.    
  484.     char sam[1000] = "Polonez";
  485.     s->dodaj_samochod(sam,1);
  486.     char sam1[1000] = "Audi";
  487.     s->dodaj_samochod(sam1, 2);
  488.     char sam2[1000] = "BMW";
  489.     s->dodaj_samochod(sam2, 3);
  490.     char sam3[1000] = "Skoda";
  491.     s->dodaj_samochod(sam3, 4);
  492.     char sam4[1000] = "Citroen";
  493.     s->dodaj_samochod(sam4, 5);
  494.     s = s->pierwsza;
  495.     s->wypisz(s);
  496.    
  497.     ss->dodaj_silnik(1, 2);
  498.     ss->dodaj_silnik(7, 3);
  499.     ss->dodaj_silnik(8, 4);
  500.     ss->dodaj_silnik(9, 5);
  501.     ss->dodaj_silnik(10, 6);
  502.     ss = ss->pierwsza;
  503.     ss->wypisz(ss);
  504.  
  505.     pochodna_samochodu *ps = new pochodna_samochodu;
  506.     ps->wypisz(s);
  507.     delete ss;
  508.     delete s;
  509.     delete uo;
  510.     delete onu;
  511.  
  512.  
  513. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top