Posted By

Lovro_P on 11/12/12


Tagged

main Strukture podataka


Versions (?)

Main funkcija


 / Published in: C++
 

Main funkcija s izbornikom i funkcijama

  1. /*U programskom jeziku C++ napi���¡ite program koji ���e evidentirati ���¾ivotinje u trgovini sa ku���nim ljubimcima.
  2.   Zapis treba sadrÃ��Ã�¾avati sljedeÃ���e podatke: Ã��Ã�¡ifru, vrstu, naziv, cijenu i datum dostave.
  3.   Na poÃ���etku testiranja programa potrebno je pohraniti minimalno pet razliÃ���itih zapisa
  4.   u listu pri Ã���emu naziv i vrstu Ã��Ã�¾ivotinja odabirete samostalno.
  5.   Program treba raditi neovisno o implementaciji liste.
  6. a. Napi���¡ite funkciju koja ���e dodavati zapise u listu prema rastu���oj ���¡ifri ���¾ivotinje i
  7.   funkciju koja Ã���e ispisati sadrÃ��Ã�¾aj liste poÃ���evÃ��Ã�¡i od Ã��Ã�¡ifre Ã��Ã�¾ivotinje koja je posljednja dodana.
  8.   Funkcija za dodavanje zapisa u listu vraÃ���a 1 ako je zapis uspjeÃ��Ã�¡no dodan, a 0 u sluÃ���aju neuspjeha.
  9. b. Napi���¡ite funkciju koja ���e pretra���¾iti listu te ispisati sve ���¾ivotinje koje su dostavljene nakon 23. rujna 2012. godine te njihov ukupan broj.
  10. c. Napi���¡ite funkciju koja ���e brisati pojedina���ne unose prema nazivu ���¾ivotinje
  11.   (npr. engleski koker Ã��Ã�¡panijel) te funkciju koja Ã���e obrisati sve Ã��Ã�¾ivotinje odabrane vrste (npr. sve pse). Obje funkcije vraÃ���aju 1 ako je zapis uspjeÃ��Ã�¡no izbrisan, a 0 u sluÃ���aju neuspjeha.
  12. d. Napi���¡ite funkciju koja ���e prema cijeni i nazivu ���¾ivotinje silazno sortirati sadr���¾aj liste.
  13.   Potrebno je koristiti algoritam sortiranja spajanjem (merge sort).
  14. */
  15.  
  16. #include <iostream>
  17. //#include "lista_pokazivac.h"
  18. #include "lista_polja.h"
  19.  
  20.  
  21. using namespace std;
  22.  
  23. int a=1;
  24. pzivotinja *provjera=new pzivotinja;
  25. tzivotinja *zadnji2=new tzivotinja;
  26.  
  27. void sadrzaj(pzivotinja *sadrzaj){
  28. cout<<"Sifra: "<<sadrzaj->sifra<<endl;
  29. cout<<"Naziv: "<<sadrzaj->naziv<<endl;
  30. cout<<"Vrsta: "<<sadrzaj->vrsta<<endl;
  31. cout<<"Cijena: "<<sadrzaj->cijena<<endl;
  32. cout<<"Datum: "<<sadrzaj->dan<<" . " << sadrzaj->mjesec <<"." << sadrzaj->godina <<endl;
  33. cout<<"-----------------------------\n";
  34. }//sadrzaj
  35.  
  36. int dodavanje(int a,tzivotinja *glava){
  37. bool uspjesno=false;
  38. pzivotinja *novi=new pzivotinja;
  39. zadnji2=glava;
  40. UnosL(a,novi);
  41. int brojac=NumberL(zadnji2);
  42. zadnji2=glava;
  43. cout<<brojac<<endl;
  44. while(brojac>=0){
  45. if(brojac==0){
  46. InsertL(novi,0,zadnji2);
  47. uspjesno=true;
  48. break;
  49. }
  50. provjera=RetrieveL(brojac,zadnji2);
  51. zadnji2=glava;
  52. if(novi->sifra>provjera->sifra){
  53. InsertL(novi,brojac,zadnji2);
  54. uspjesno=true;
  55. break;
  56. }
  57. else{
  58. brojac--;
  59. }
  60. }
  61. if(!uspjesno)return 0;
  62. else return 1;
  63. }
  64. void ispis(tzivotinja *glava){
  65. pzivotinja *trenutno;
  66. zadnji2=glava;
  67. int brojac= NumberL(zadnji2);
  68. for(int i=brojac;i>0;i--){
  69. zadnji2=glava;
  70. trenutno=RetrieveL(i,zadnji2);
  71. cout<<"Sifra: "<<trenutno->sifra<<endl;
  72. cout<<"Naziv: "<<trenutno->naziv<<endl;
  73. cout<<"Vrsta: "<<trenutno->vrsta<<endl;
  74. cout<<"Cijena: "<<trenutno->cijena<<endl;
  75. cout<<"Datum: "<<trenutno->dan<<" . " << trenutno->mjesec <<"." << trenutno->godina <<endl;
  76.  
  77. cout<<"-----------------------------\n";
  78. }
  79. }
  80.  
  81. void pretrazi_datum (tzivotinja *glava){
  82. pzivotinja *trenutno;
  83. int brojac2=0;
  84. int brojac=NumberL(zadnji2);
  85. for(int i=brojac;i>0;i--){
  86. trenutno=RetrieveL(i,zadnji2);
  87. if(trenutno->godina>2012){
  88. sadrzaj(trenutno);
  89. brojac2++;}
  90. else if(trenutno->godina==2012 && trenutno->mjesec>9){
  91. sadrzaj(trenutno);
  92. brojac2++;}
  93. else if(trenutno->godina==2012 && trenutno->mjesec==9 && trenutno->dan>23){
  94. sadrzaj(trenutno);
  95. brojac2++;}
  96.  
  97. ;
  98. }//for
  99.  
  100. cout<<"Ukupno zivotinja otpremljeno nakon 23.9.2012: "<< brojac2 <<endl;
  101. }
  102.  
  103. int brisanje(tzivotinja *glava){
  104.  
  105.  
  106.  
  107. bool izbrisan;
  108. pzivotinja *trenutno;
  109. int n;
  110. int brojac=NumberL(zadnji2);
  111. for(int i=brojac;i>0;i--){
  112. cout<<endl<<endl;
  113. cout<<"ELEMENT BROJ: "<<i<<endl<<endl;
  114. trenutno=RetrieveL(i,zadnji2);
  115. cout<<"Sifra: "<<trenutno->sifra<<endl;
  116. cout<<"Naziv: "<<trenutno->naziv<<endl;
  117. cout<<"Vrsta: "<<trenutno->vrsta<<endl;
  118. cout<<"Cijena: "<<trenutno->cijena<<endl;
  119. cout<<"Datum: "<<trenutno->dan<<" . " << trenutno->mjesec <<"." << trenutno->godina <<endl;
  120.  
  121. cout<<"-----------------------------\n";
  122. }
  123.  
  124. cout<<"Unesite pojedina���ne unose prema nazivu ���¾ivotinje koju zelite pobrisati: \n";
  125. char l[10];
  126. cin >> l;
  127. int h;
  128. if(strcmp(trenutno->naziv,l)==0)
  129. h=trenutno->sifra;
  130.  
  131.  
  132. zadnji2=glava;
  133. if(brojac>0){
  134. if(DeleteL(h,zadnji2)==0)return 1;
  135. else return 0;
  136. }
  137. cout<<"Nema niti jednog elementa\n";
  138. return 0;
  139. }
  140.  
  141. int brisanje(int n,tzivotinja *glava){
  142. cout<<"Unesite vrstu zivotinje cije sve predstavnike zelite pobrisati:\n";
  143. char l[10];
  144. cin >> l ;
  145.  
  146. bool izbrisan;
  147. pzivotinja *trenutno;
  148. int brojac=NumberL(zadnji2);
  149. for(int i=brojac;i>0;i--){
  150. trenutno=RetrieveL(i,zadnji2);
  151. if(strcmp(trenutno->vrsta,l)==0){
  152. DeleteL(i,zadnji2);
  153. izbrisan=true;
  154. i=0;
  155. }
  156. }
  157. if(izbrisan)return 1;
  158. if(brojac==0)cout<<"Nema niti jednog elementa\n";
  159. return 0;
  160. }
  161.  
  162.  
  163. /*void merge(pzivotinja a[],int low,int sredina,int high){
  164.   int i=low;
  165.   int k=low;
  166.   int j=sredina+1;
  167.   pzivotinja b[1000];
  168.   while((i<=sredina)&&(j<=high)){
  169.   if(a[i].cijena>a[j].cijena){
  170.   b[k]=a[i];
  171.   k++;
  172.   i++;
  173.   }
  174.   else{
  175.   b[k]=a[j];
  176.   k++;
  177.   j++;
  178.   }
  179.   }//while
  180.   if(i>sredina){
  181.   for(int z=j;z<=high;z++){
  182.   b[k]=a[z];
  183.   k++;
  184.   }
  185.   }}
  186.  
  187.  
  188. void mergesort(int low,int high){
  189.   cout<< " Zadnji 2 " << *&(zadnji2) << endl;
  190.   system("pause");
  191.   if(low<high){
  192.   int k=(high+low)/2;
  193.   mergesort(low,k);
  194.   mergesort(k+1,high);
  195.   //merge(low,k,high);
  196.   }
  197.   }//merge
  198.  
  199.  
  200. void sort(){
  201.  
  202.   int high=NumberL(zadnji2);
  203.   int low=0;
  204.  
  205.   cout<<" High: " << high;
  206.   cout<<" Low: " << low;
  207.   mergesort(0,high);
  208.   }
  209. */
  210.  
  211. int main(){
  212. tzivotinja *glava;
  213. glava=InitL(glava);
  214.  
  215. int izbor;
  216. cout << "*******************************************" <<endl;
  217. cout << "*******************************************" <<endl;
  218. cout << "|| PET SHOP FOI ||" <<endl;
  219. cout << "|| ||" <<endl;
  220. cout << "|| ||" <<endl;
  221. cout << "|| Welcome !!! ||" <<endl;
  222. cout << "|| ||" <<endl;
  223. cout << "*******************************************" <<endl;
  224. cout << "*******************************************" <<endl;
  225.  
  226. do{
  227. cout<<"-------------------------------------\n";
  228. cout<<" GLAVNI IZBORNIK\n";
  229. cout<<"-------------------------------------\n";
  230. cout<<"1) Alociraj/Dodaj novi element u listu"<<endl;
  231. cout<<"2) Silazni ispis svih elemenata iz liste"<<endl;
  232. cout<<"3) Ispis svih zivotinja otpremljenih nakon 23.9.2012"<<endl;
  233. cout<<"4) Brisanje podataka po nazivu zivotinje pojedinacno" <<endl;
  234. cout<<"5) Brisanje podataka po vrsti zivotinje za sve"<<endl;
  235. cout<<"6) Merge sort " <<endl;
  236. cout<<"-------------------------------------\n";
  237. cout<<"9) IZLAZ"<<endl;
  238. cin>>izbor;
  239. switch(izbor){
  240. case 1:{
  241.  
  242. zadnji2=glava;
  243. int test=dodavanje(a,zadnji2);
  244. a++;
  245. break;
  246. }
  247. case 2:{
  248. zadnji2=glava;
  249. ispis(zadnji2);
  250. break;
  251. }
  252. case 3:{
  253. zadnji2=glava;
  254. pretrazi_datum(zadnji2);
  255. break;
  256. }
  257. case 4:{
  258.  
  259. zadnji2=glava;
  260. brisanje(zadnji2);
  261. break;
  262. }
  263. case 5:{
  264. int n=0;
  265. zadnji2=glava;
  266. brisanje(n,zadnji2);
  267. }
  268. case 6:{
  269. // sort(); MERGE SORT NE RADI, NISAM GA USPIO IMPLEMENTIRATI DO KRAJA
  270. break;
  271. }
  272. }
  273. }
  274. while(izbor!=9);
  275. return 0;
  276. }

Report this snippet  

You need to login to post a comment.