Posted By

tsteyska on 11/12/12


Tagged

Liste lista sp Strukture podataka implementacija ATP evidencija zivotinja


Versions (?)

Z1_Program_evidencije_zivotinja


 / Published in: C++
 

Program sluzi za evidenciju zivotinja(unosenje, ispis, sortiranje, brisanje)

  1. #include <iostream>
  2. #include "lista_pokazivaci.h"
  3. //#include "lista_polje.h"
  4. using namespace std;
  5.  
  6. int sifra=1,elementi=0;
  7. lista *L;
  8.  
  9. void novi_zapis(){
  10. podaci pod;
  11. pod.sifra=sifra;
  12. cout<<"UNESITE PODATKE"<<endl;
  13. cout <<"Sifra zivotinje: " << pod.sifra << endl;
  14. cout <<"Unesi vrstu zivotinje: ";
  15. cin.ignore();
  16. cin.getline(pod.vrsta,20);
  17. cout<<"Unesi naziv zivotinje: ";
  18. cin.getline(pod.naziv,20);
  19. cout<<"Cijena: ";
  20. cin>>pod.cijena;
  21. cout<<"Unesi datum dostave(GGGGMMDD): ";
  22. cin >> pod.datum;
  23. InsertL(pod,sifra,L);
  24. cout<<endl;
  25. }
  26.  
  27. void ispis(lista *L){
  28. if(elementi<=0)
  29. return;
  30. int poz = EndL(L);
  31. poz = PreviousL(poz,L);
  32. while (1){
  33. podaci novi = RetrieveL(poz,L);
  34. cout<<"Sifra: "<<novi.sifra<<endl;
  35. cout<<"Vrsta: "<<novi.vrsta<<endl;
  36. cout<<"Naziv: "<<novi.naziv<<endl;
  37. cout<<"Cjena: "<<novi.cijena<<endl;
  38. cout<<"Datum: "<<novi.datum<<endl;
  39. cout<<"---------------------"<<endl;
  40. if(poz== FirstL(L))
  41. break;
  42. poz=PreviousL(poz,L);
  43. }
  44. }
  45.  
  46. void ispis_datum(lista *L){
  47. int C=0;
  48. lista *a = L -> slijedeci;
  49. while(a){
  50. if(a -> pod.datum >20120923){
  51. cout<<"Sifra: "<<a->pod.sifra<<endl;
  52. cout<<"Vrsta: "<<a->pod.vrsta<<endl;
  53. cout<<"Naziv: "<<a->pod.naziv<<endl;
  54. cout<<"Cijena: "<<a->pod.cijena<<endl;
  55. cout<<"Datum: "<<a->pod.datum<<endl;
  56. C++;
  57. }
  58. a = a -> slijedeci;
  59. }
  60. cout<<"Broj zivotinja dostavljene nakon 23.rujna 2012: "<<C<<endl<<endl;
  61. }
  62.  
  63. void brisanje_naziv(lista *L){
  64.  
  65. char naziv[20];
  66. cin.ignore();
  67. cout<<"Upisite naziv: ";
  68. cin.getline(naziv,50);
  69. if(DeleteL(naziv,L))
  70. elementi--;
  71. cout<<"Uspjesno obrisano!"<<endl<<endl;
  72. }
  73.  
  74. void brisanje_vrsta(lista *L){
  75. char naziv[20];
  76. cin.ignore();
  77. cout<<"Upisite vrstu: ";
  78. cin.getline(naziv,20);
  79. for(int i=sifra;i>0;i--)
  80. if(DeleteL(naziv,L))
  81. elementi--;
  82. cout<<"Uspjesno obrisano!"<<endl<<endl;
  83. }
  84.  
  85. void sortiranje_cijena(lista *L){
  86. if(!L->slijedeci)
  87. return;
  88. lista *prije , *trenutni, *poslije;
  89. bool sort;
  90. do {
  91. sort = false;
  92. trenutni=L->slijedeci;
  93. prije=L;
  94. while (trenutni->slijedeci) {
  95. poslije=trenutni->slijedeci;
  96. if (int(trenutni->pod.cijena) < int(poslije->pod.cijena)) {
  97. prije->slijedeci=poslije;
  98. trenutni->slijedeci=poslije->slijedeci;
  99. poslije->slijedeci=trenutni;
  100. sort=true;
  101. }
  102. prije=prije->slijedeci;
  103. trenutni=prije->slijedeci;
  104. }
  105. } while (sort);
  106. lista *a = L->slijedeci;
  107. while (a){
  108. cout<<"Sifra: "<<a->pod.sifra<<endl;
  109. cout<<"Vrsta: "<<a->pod.vrsta<<endl;
  110. cout<<"Naziv: "<<a->pod.naziv<<endl;
  111. cout<<"Cijena: "<<a->pod.cijena<<endl;
  112. cout<<"Datum: "<<a->pod.datum<<endl;
  113. cout<<"---------------------"<<endl;
  114. a = a -> slijedeci;
  115. }
  116. return;
  117. }
  118.  
  119. void sortiranje_naziv(lista *L){
  120. if(!L->slijedeci)
  121. return;
  122. lista *prije , *trenutni, *poslije;
  123. bool sort;
  124. do {
  125. sort = false;
  126. trenutni=L->slijedeci;
  127. prije=L;
  128. while (trenutni->slijedeci) {
  129. poslije=trenutni->slijedeci;
  130. if (int(trenutni->pod.naziv[0]) < int(poslije->pod.naziv[0])) {
  131. prije->slijedeci=poslije;
  132. trenutni->slijedeci=poslije->slijedeci;
  133. poslije->slijedeci=trenutni;
  134. sort=true;
  135. }
  136. prije=prije->slijedeci;
  137. trenutni=prije->slijedeci;
  138. }
  139. } while (sort);
  140. lista *a = L->slijedeci;
  141. while (a){
  142. cout<<"Sifra: "<<a->pod.sifra<<endl;
  143. cout<<"Vrsta: "<<a->pod.vrsta<<endl;
  144. cout<<"Naziv: "<<a->pod.naziv<<endl;
  145. cout<<"Cijena: "<<a->pod.cijena<<endl;
  146. cout<<"Datum: "<<a->pod.datum<<endl;
  147. cout<<"---------------------"<<endl;
  148. a = a -> slijedeci;
  149. }
  150. return;
  151. }
  152.  
  153.  
  154. int main(){
  155. int izbor;
  156. L = new lista;
  157. InitL(L);
  158. do{
  159. cout << "Program za evidenciju zivotinja"<<endl;
  160. cout << "-----IZBORNIK-----"<<endl;
  161. cout << "1. Dodavanje zapisa u listu"<<endl;
  162. cout << "2. Ispis sadrzaja liste"<<endl;
  163. cout << "3. Ispis svih zivotinja koje su dostavljene nakon 23.rujna 2012. godine"<<endl;
  164. cout << "4. Brisanje pojedinacnih unosa prema nazivu zivotinje"<<endl;
  165. cout << "5. Brisanje svih zivotinja odabrane vrste"<<endl;
  166. cout << "6. Silazno sortiranje prema cijeni"<<endl;
  167. cout << "7. Silazno sortiranje prema nazivu"<<endl;
  168. cout << "9. Izlaz iz programa"<<endl;
  169. cout << "Vas izbor: ";
  170. cin >> izbor;
  171. cout << endl << endl;
  172.  
  173. switch(izbor){
  174. case 1: novi_zapis();
  175. sifra++;
  176. elementi++;
  177. break;
  178.  
  179. case 2: ispis(L);
  180. break;
  181.  
  182. case 3: ispis_datum(L);
  183. break;
  184.  
  185. case 4: brisanje_naziv(L);
  186. elementi--;
  187. break;
  188.  
  189. case 5: brisanje_vrsta(L);
  190. break;
  191.  
  192. case 6: sortiranje_cijena(L);
  193. break;
  194.  
  195. case 7: sortiranje_naziv(L);
  196. break;
  197.  
  198. case 9: break;
  199.  
  200. default: cout << "Pogresan unos! " << endl;
  201. }
  202.  
  203.  
  204. }while(izbor!=9);
  205.  
  206. system("pause");
  207. return 0;
  208. }

Report this snippet  

You need to login to post a comment.