Advertisement
Guest User

Untitled

a guest
May 24th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.80 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement