Posted By

Bozidar on 11/11/12


Tagged

header c++ implementacija strukturepodataka


Versions (?)

Glavni program


 / Published in: C++
 

Glavni program koji poziva datoteke zaglavlja "Implementacijalistepomocupokazivaca.h" ili "Implemantacijalistepomocupolja.h" te "biblioteka_vrijeme.h".

  1. #include <iostream>
  2. #include "biblioteka_vrijeme.h"
  3. #include "Implementacija_liste_pomocu_pokazivaca.h"
  4. //#include "Implemantacija_liste_pomocu_polja.h"
  5.  
  6. using namespace std;
  7. list *glava = new list;
  8.  
  9. int sifra = 0;
  10.  
  11.  
  12. int unos(){
  13. int dan, mjesec, godina;
  14. float cijena;
  15. char vrsta[20], naziv[20], jos;
  16. do{
  17. cout<<"Datum dostave (mm/dd/yyyy)"<<endl;
  18. do{
  19. cout<<"Mjesec: "; cin>>mjesec;
  20. }while(mjesec<1 || mjesec>12);
  21. if(mjesec==1 || mjesec==3|| mjesec==5|| mjesec==7|| mjesec==8|| mjesec==10|| mjesec==12){
  22. do{
  23. cout<<"Dan: "; cin>>dan;
  24. if(dan<1 || dan>31)
  25. cout<<"Krivi unos! "<<mjesec<<". mjesec ima 31 dan!"<<endl;
  26. }while(dan<1 || dan>31);
  27. }
  28. if(mjesec==4 || mjesec==6|| mjesec==9|| mjesec==11){
  29. do{
  30. cout<<"Dan: "; cin>>dan;
  31. if(dan<1 || dan>30)
  32. cout<<"Krivi unos! "<<mjesec<<". mjesec ima 30 dana!"<<endl;
  33. }while(dan<1 || dan>30);
  34. }
  35. if(mjesec==2){
  36. do{
  37. cout<<"Dan: "; cin>>dan;
  38. if(dan<1 || dan>29)
  39. cout<<"Krivi unos! "<<mjesec<<". mjesec ima 29 dana!"<<endl;
  40. }while(dan<1 || dan>29);
  41. }
  42. do{
  43. cout<<"Godina: "; cin>>godina;
  44. }while(godina < 1990 || godina > 2013);
  45. cout<<"Vrsta zivotinje: "; unos(vrsta);
  46. cout<<"Naziv zivotinje: "; unos(naziv);
  47. cout<<"Cijena: "; cin>>cijena;
  48. sifra+=1;
  49. cout<<"sifra: "<<sifra<<endl;
  50. InsertL(dan, mjesec, godina, sifra, vrsta, naziv, cijena, EndL(glava), glava);
  51. cout<<"Novi unos? (d/n)"; cin>>jos;
  52. }while(jos=='d');
  53. return 1;
  54. }
  55. void ispis(){
  56. if(br_unesenih_el(glava)!=0){
  57. int *polje = new int[br_unesenih_el(glava)];
  58. od_zadnje_sifre(glava, polje, br_unesenih_el(glava));
  59. for(int i = br_unesenih_el(glava)-1; i>=0; i--)
  60. RetriveL(LocateL(polje[i],glava),glava);
  61. }
  62. }
  63. void ispis_naziv_vrsta(bool naziv_ili_vrsta){
  64. if(br_unesenih_el(glava)!=0){
  65. int *polje = new int[br_unesenih_el(glava)];
  66. od_zadnje_sifre(glava, polje, br_unesenih_el(glava));
  67. if(naziv_ili_vrsta==true)
  68. cout<<"Sifra\tNaziv\n";
  69. else cout<<"Sifra\tVrsta\n";
  70. for(int i = 0; i<br_unesenih_el(glava); i++)
  71. RetriveL_Naziv(LocateL(polje[i],glava),glava, naziv_ili_vrsta);
  72. }
  73. }
  74. int brisanje(){
  75. int odabir;
  76.  
  77. bool naziv_ili_vrsta = true;
  78. do{
  79. cout<<"1. Brisanje pojedinacnog unosa prema nazivu zivotinje\n";
  80. cout<<"2. Brisanje svih zivotinja odabrane vrste\n";
  81. cout<<"3. Povratak u glavni izbornik\n";
  82. cout<<"Vas odabir: ";
  83. cin>>odabir;
  84. int izlaz = 0;
  85. switch(odabir){
  86. case 1:{
  87. naziv_ili_vrsta = true;
  88. cout<<"\nUneseni nazivi zivotinja\n";
  89. cout<<"------------------------\n";
  90. ispis_naziv_vrsta(naziv_ili_vrsta);
  91. brisi_naziv(glava, naziv_ili_vrsta, izlaz);
  92. break;}
  93. case 2:
  94. naziv_ili_vrsta = false;
  95. cout<<"\nUnesene vrste zivotinja\n";
  96. cout<<"------------------------\n";
  97. ispis_naziv_vrsta(naziv_ili_vrsta);
  98. brisi_vrstu(glava, naziv_ili_vrsta, izlaz);
  99. break;
  100. }
  101. }while(odabir!=3);
  102. return 1;
  103. }
  104.  
  105. void merge(float numbers[], float temp[],float polje_sifra[],float temp2[], int left, int mid, int right)
  106. {
  107.  
  108. int i, left_end, num_elements, tmp_pos;
  109.  
  110. left_end = mid - 1;
  111. tmp_pos = left;
  112. num_elements = right - left + 1;
  113.  
  114. while ((left <= left_end) && (mid <= right))
  115. {
  116. if (numbers[left] <= numbers[mid])
  117. {
  118. temp[tmp_pos] = numbers[left];
  119. temp2[tmp_pos] = polje_sifra[left]; //to
  120. tmp_pos = tmp_pos + 1;
  121. left = left +1;
  122. }
  123. else
  124. {
  125. temp[tmp_pos] = numbers[mid];
  126. temp2[tmp_pos] = polje_sifra[mid];
  127. tmp_pos = tmp_pos + 1;
  128. mid = mid + 1;
  129. }
  130. }
  131.  
  132. while (left <= left_end)
  133. {
  134. temp[tmp_pos] = numbers[left];
  135. temp2[tmp_pos] = polje_sifra[left];
  136. left = left + 1;
  137. tmp_pos = tmp_pos + 1;
  138. }
  139. while (mid <= right)
  140. {
  141. temp[tmp_pos] = numbers[mid];
  142. temp2[tmp_pos] = polje_sifra[mid];
  143. mid = mid + 1;
  144. tmp_pos = tmp_pos + 1;
  145. }
  146.  
  147. for (i=0; i <= num_elements; i++)
  148. {
  149. numbers[right] = temp[right];
  150. polje_sifra[right] = temp2[right];
  151. right = right - 1;
  152. }
  153. }
  154. void m_sort(float numbers[], float temp[],float polje_sifra[],float temp2[], int left, int right)
  155. {
  156. int mid;
  157.  
  158. if (right > left)
  159. {
  160. mid = (right + left) / 2;
  161. m_sort(numbers, temp, polje_sifra,temp2, left, mid);
  162. m_sort(numbers, temp,polje_sifra,temp2, mid+1, right);
  163.  
  164. merge(numbers, temp, polje_sifra,temp2, left, mid+1, right);
  165. }
  166. }
  167. void mergeSort(float numbers[], float temp[], float polje_sifra[], float temp2[], int array_size)
  168. {
  169. m_sort(numbers, temp, polje_sifra,temp2, 0, array_size - 1);
  170. }
  171.  
  172. int main(){
  173. InitL(glava);
  174. int odabir;
  175. cout<<"\n Evidencija zivotinja u trgovini sa kucnim ljubimcima\n";
  176. do{
  177. cout<<"---------------------------------------------------------\n";
  178. cout<<"1. Dodaj kucnog ljubimca |\n";
  179. cout<<"2. Ispisi sve kucne ljubimce (od zadnjeg dodanog) |\n";
  180. cout<<"3. Ispis zivotnja dostavljenih nakon 23.9. 2012. godine |\n";
  181. cout<<"4. Brisanje unosa |\n";
  182. cout<<"5. Silazno sortiranje (prema cijeni zivotinje i nazivu) |\n";
  183. cout<<"6. Izlaz |\n";
  184. cout<<"---------------------------------------------------------\n";
  185. cout<<"Vas odabir: ";
  186. cin>>odabir;
  187. switch(odabir){
  188. case 1:
  189. unos();
  190. break;
  191. case 2:
  192. ispis();
  193. break;
  194. case 3:
  195. RetriveL_datum(glava);
  196. break;
  197. case 4:
  198. brisanje();
  199. break;
  200. case 5:
  201. int i;
  202. int brojac = 1;
  203. if(br_unesenih_el(glava)!=0){
  204. float *polje_cijena = new float[br_unesenih_el(glava)];
  205. float *polje_sifra = new float[br_unesenih_el(glava)];
  206. float *pomocno_polje = new float[br_unesenih_el(glava)];
  207. float *temp2 = new float[br_unesenih_el(glava)];
  208. char nazivi[1000][20];
  209.  
  210. cijena_u_polje(glava, polje_cijena, polje_sifra,nazivi, br_unesenih_el(glava));
  211.  
  212.  
  213. mergeSort(polje_cijena, pomocno_polje, polje_sifra, temp2,br_unesenih_el(glava));
  214. for(i = br_unesenih_el(glava)-1; i>=0; i--)
  215. RetriveL(LocateL_cijena(polje_cijena[i], polje_sifra[i], glava),glava);
  216. }
  217. break;
  218. }
  219.  
  220. }while(odabir!=6);
  221. system("pause");
  222. return 0;
  223. }

Report this snippet  

You need to login to post a comment.