Posted By

TomislavCundic on 11/12/12


Tagged

lista Strukture podataka c++ progblamiranje


Versions (?)

main.cpp


 / Published in: C++
 

Moj je zadatak jedinstven jer sam operacije koje su mi potrebne stavio u funkcije u kojoj su mi potrebne, a ne u zasebne funkcije (inicijaliziranje, pomicanje u listi, brisanje elemenata)

  1. #include <iostream>
  2. #include <string>
  3. #include "lista_pokazivac.h"
  4. #include "lista_polje.h"
  5.  
  6. using namespace std;
  7.  
  8. int sifra=1;
  9. int provjera=3;
  10.  
  11. void upisi (ljubimci_pok *glv)
  12. {
  13.  
  14. int dan, mjesec, godina;
  15. string temp;
  16.  
  17. int ciena, iznimka;
  18. string naziv, vrsta, datum_dostave;
  19. cout << "\nUpisi vrstu stvorenja\n>>";
  20. cin >> vrsta;
  21. cout << "\nUpisi naziv stvorenja\n>>";
  22. cin >> naziv;
  23. cout << "\nUpisi koliko je potrebno novaca da bi se imalo to stvorenje\n>>";
  24. cin >> ciena;
  25. do{
  26. cout << "\n\nUpisi koji je datum dostave u formatu DD.MM.YYYY.\n>>";
  27. cin >> datum_dostave;
  28.  
  29. try {
  30. iznimka=0;
  31. temp=datum_dostave.substr(0,2);
  32. dan=atoi(temp.c_str());
  33. temp=datum_dostave.substr(3,2);
  34. mjesec=atoi(temp.c_str());
  35. temp=datum_dostave.substr(6,4);
  36. godina=atoi(temp.c_str());
  37. } catch(...) {
  38. cout << "\n\nNiste unijeli dobar datum, ponovite unos.";
  39. iznimka++;
  40. }
  41. }while (iznimka!=0);
  42.  
  43. provjera=unos(glv, sifra, ciena, datum_dostave, naziv, vrsta);
  44. }
  45.  
  46. void brisi_naz(ljubimci_pok *glv)
  47. {
  48. if (glv->slijedeci==NULL)
  49. {
  50. cout << "\nLista je prazna, prvo dodaj neke zapise.\n";
  51. return;
  52. }
  53. string nasiv;
  54. cout << "\nUpisi naziv zivotinje\n>>";
  55. cin >> nasiv;
  56. provjera=brisi_naziv(glv, nasiv);
  57. }
  58.  
  59. void brisi_sve(ljubimci_pok *glv)
  60. {
  61. if (glv->slijedeci==NULL)
  62. {
  63. cout << "\nListe je prazna, prvo dodaj neke zapise.\n";
  64. return;
  65. }
  66. string tip;
  67. cout << "\nUpisi vrstu zivotinja\n>>";
  68. cin >> tip;
  69. provjera=brisi_vrstu(glv, tip);
  70. }
  71.  
  72. ljubimci_pok *dealokacija_liste(ljubimci_pok *glv)
  73. {
  74. ljubimci_pok *trenutni, *prethodni;
  75. prethodni=glv;
  76. trenutni=glv->slijedeci;
  77.  
  78. while(trenutni->slijedeci!=NULL)
  79. {
  80. delete prethodni;
  81. prethodni=trenutni;
  82. trenutni=trenutni->slijedeci;
  83. }
  84. delete prethodni;
  85. glv=NULL;
  86.  
  87. return NULL;
  88. }
  89.  
  90. void upis_novog(ljubimci_polje *nova)
  91. {
  92. int ciena;
  93. string naziv, vrsta, datum_dostave;
  94.  
  95. int dan, mjesec, godina;
  96. string temp;
  97. int iznimka;
  98.  
  99. cout << "\nUpisi vrstu stvorenja\n>>";
  100. cin >> vrsta;
  101. cout << "\nUpisi naziv stvorenja\n>>";
  102. cin >> naziv;
  103. cout << "\nUpisi koliko je potrebno novaca da bi se imalo to stvorenje\n>>";
  104. cin >> ciena;
  105. do{
  106. cout << "\nUpisi koji je datum dostave u formatu DD.MM.YYYY.\n>>";
  107. cin >> datum_dostave;
  108.  
  109. try{
  110. iznimka=0;
  111. temp=datum_dostave.substr(0,2);
  112. dan=atoi(temp.c_str());
  113. temp=datum_dostave.substr(3,2);
  114. mjesec=atoi(temp.c_str());
  115. temp=datum_dostave.substr(6,4);
  116. godina=atoi(temp.c_str());
  117. } catch(...){
  118. cout << "\n\nNiste unijeli dobar datum, ponovite unos.";
  119. iznimka++;
  120. }
  121.  
  122. }while(iznimka!=0);
  123.  
  124. provjera=dkcf78(nova, sifra, ciena, datum_dostave, naziv, vrsta, nova->kursor);
  125. }
  126.  
  127. void zmaknuti_ljubimca_iz_liste_koja_je_implementirana_pomocu_polja(ljubimci_polje *nova)
  128. {
  129. if (nova->kursor==0)
  130. {
  131. cout << "\nNemate ni jedan zapis u listi koja je implementirana uz pomocu polja, dodajte neke, molim lijepo.\n";
  132. return;
  133. }
  134. string nasiv;
  135. cout << "\nUpisi naziv zivotinje\n>>";
  136. cin >> nasiv;
  137. provjera=zmakni(nova, nasiv);
  138. }
  139.  
  140. void dezintegriraj_iz_liste_koja_je_implementirana_pomocu_polja(ljubimci_polje *nova)
  141. {
  142. if (nova->kursor==0)
  143. {
  144. cout << "\nNemate ni jedan zapis u listi koja je implementirana uz pomocu polja, dodajte neke, molim lijepo.\n";
  145. return;
  146. }
  147. string vrsta;
  148. cout << "\nUpisi vrstu zivotinja\n>>";
  149. cin >> vrsta;
  150.  
  151. provjera=brisi_ga(nova, vrsta);
  152. }
  153.  
  154. int main()
  155. {
  156. ljubimci_pok *glava=new ljubimci_pok; //alokacija glave liste (pokazivaci)
  157.  
  158. ljubimci_polje *lista=new ljubimci_polje; //alogacija liste
  159.  
  160. glava->slijedeci=NULL;
  161.  
  162. lista->kursor=0;
  163.  
  164. int izbor;
  165. do{
  166. provjera=3;
  167. cout << "\n\n\t\tIZBORNIK\n\n\tImplementacija liste pomocu pokazivaca\n\n\t1) Dodaj zapis u listu\n\t2) Ispisi sadrzaj liste\n\t3) Ispis zivotinja koje su dostavljene poslije 23. rujna 2012.\n\t4) Brisanje unosa prema nazivu zivotinje\n\t5) Brisanje zivotinja odabrane vrste\n\t6) Sortiraj listu prema cijeni\n\n\tImplementacija liste pomocu polja\n\n\t7) Stavi novi zapis u listu koja je implementirana pomocu polja\n\t8) Ispis svih upisa iz liste koja je implementirana pomocu polja\n\t9) Ispis svih zivotinja koje su dostavljene u listu\n\timplementiranu sa poljem poslije 23. rujna 2012.\n\t10) Izbrisi ljubimca odredjenog naziva iz liste koja je\n\timplementirana poljem\n\t11) Izbrisi ljubimca odredjene vrste iz liste\n\n\t12) Izlaz iz programa\n>>";
  168. cin >> izbor;
  169. switch (izbor){
  170. case 1:
  171. {
  172. upisi(glava);
  173. if (provjera==1) {
  174. cout << "\nLjubimac je uspjesno utovaren.\n";
  175. sifra++;
  176. }
  177. else
  178. cout << "\nLjubimac nije uspjesno utovaren.\n"; break;}
  179.  
  180. case 2:
  181. {ispis(glava);
  182. break;}
  183.  
  184. case 4:
  185. {brisi_naz(glava);
  186. if (provjera==1) {
  187. cout << "\nLjubimac je uspjesno obrisan.\n";
  188. }
  189. else if(provjera==0)
  190. cout << "\nLjubimac nije obrisan.\n";
  191. break;}
  192.  
  193. case 3:
  194. {trazi(glava);
  195. break;}
  196.  
  197. case 5:
  198. {brisi_sve(glava);
  199. if (provjera==1) {
  200. cout << "\nZivotinje su uspjesno obrisane.\n";
  201. }
  202. else if(provjera==0)
  203. cout << "\nZivotinje nisu obrisane.\n";
  204. break;
  205. }
  206.  
  207. case 6:
  208. {glava=m_sort(glava);
  209.  
  210. cout << "\nSortirano.\n";
  211. break;
  212. }
  213.  
  214. case 7:
  215. {upis_novog(lista);
  216. if (provjera==1)
  217. {
  218. cout << "\nKucna zivotinjica je uspjesno ubacena u listu koja je\nimplementirana pomocu polja.\n";
  219. sifra++;
  220. }
  221. else if(provjera==0)
  222. cout << "\nKucno stvorenje nije uspjesno dodana u listu koja je\n implementirana pomocu polja.\n"; break;}
  223.  
  224. case 8:
  225. {vax_11_780(lista);
  226. break;}
  227.  
  228. case 9:
  229. {epe54b(lista);
  230. break;
  231. }
  232.  
  233. case 11:
  234. {dezintegriraj_iz_liste_koja_je_implementirana_pomocu_polja(lista);
  235. if (provjera==1)
  236. {
  237. cout << "\nKucna zivotinjica je uspjesno izbrisana iz liste koja je\nimplementirana pomocu polja.\n";
  238. }
  239. else if(provjera==0)
  240. cout << "\nKucno stvorenje nije uspjesno izbrisana iz liste koja je\nimplementirana pomocu polja.\n"; break;}
  241.  
  242. case 10:
  243. {zmaknuti_ljubimca_iz_liste_koja_je_implementirana_pomocu_polja(lista);
  244. if (provjera==1)
  245. {
  246. cout << "\nKucna zivotinjica je uspjesno izbrisana iz liste koja je\nimplementirana pomocu polja.\n";
  247. }
  248. else if(provjera==0)
  249. cout << "\nKucno stvorenje nije uspjesno izbrisana iz liste koja je\nimplementirana pomocu polja.\n"; break;}
  250.  
  251. case 12:
  252. {if (glava->slijedeci==NULL)
  253. {
  254. delete glava;
  255. }
  256. else
  257. {
  258. glava=dealokacija_liste(glava);
  259. }
  260. break;
  261. }
  262.  
  263. default:
  264. cout << "Nema toga.\n";
  265. }
  266. }while (izbor!=12);
  267. }

Report this snippet  

You need to login to post a comment.