Posted By

ivandokuzovic on 11/12/12


Tagged

polje pokazivaciimplementacijastrukturepodataka


Versions (?)

main ivan


 / Published in: C++
 

main funkcija

  1. #include <iostream>
  2. #include <cstring>
  3. //#include "lista_polje.h"
  4. #include "lista_pokazivaci.h"
  5. using namespace std;
  6.  
  7. int izbornik(){
  8. int izbor;
  9. cout << endl << "------------ I Z B O R N I K --------------" << endl;
  10. cout << "1. Dodaj zapis u listu" << endl;
  11. cout << "2. Ispisi listu" << endl;
  12. cout << "3. Ispis dodanih nakon 23. rujna 2012" << endl;
  13. cout << "4. Brisanje po nazivu (pojedinacno)" << endl;
  14. cout << "5. Brisanje po vrsti" << endl;
  15. cout << "9. Izlaz" << endl << endl;
  16. cout << "Odaberite jednu od mogucnosti: ";
  17. cin >> izbor;
  18. cout << endl;
  19. return izbor;
  20. }
  21.  
  22. void unos(char *znakovi){
  23. cin.getline(znakovi,50);
  24. if(cin.gcount()==1)
  25. cin.getline(znakovi,50);
  26. };
  27.  
  28. int dodaj() {
  29. tZivotinja novi;
  30. novi.sifra=sifra++;
  31. cout << "Unos novih zivotinja: " << endl;
  32.  
  33. cout << "Sifra (Auto Number): " << novi.sifra << endl;
  34. cout<<"Vrsta: ";
  35. unos(novi.vrsta);
  36.  
  37. cout<<"Naziv: ";
  38. unos(novi.naziv);
  39.  
  40. cout<<"Cijena: ";
  41. cin>>novi.cijena;
  42. if(novi.cijena<=0){
  43. sifra--;
  44. return 0;
  45. }
  46.  
  47. cout<<"Unesite datum dostave: " << endl;
  48.  
  49. cout<<"Dan: ";
  50. cin>>novi.datum.dan;
  51. if(novi.datum.dan <=0 || novi.datum.dan >31){
  52. sifra--;
  53. return 0;
  54. }
  55.  
  56. cout<<"Mjesec (npr. listopad): ";
  57. unos(novi.datum.mjesec);
  58.  
  59. cout<<"Godina: ";
  60. cin>>novi.datum.godina;
  61. if(novi.datum.godina <1900 || novi.datum.godina >2012){
  62. sifra--;
  63. return 0;
  64. }
  65.  
  66. InsertL(novi,br_elem,lista);
  67. br_elem++;
  68. return 1;
  69. }
  70.  
  71.  
  72. void ispis1() {
  73. tZivotinja a;
  74. int brojac=0;
  75. int p = PreviousL(EndL(lista),lista);
  76. while(brojac < br_elem){
  77. a = RetrieveL(p,lista);
  78. cout << "Sifra: ";
  79. cout << a.sifra << endl;
  80. cout << "Vrsta: ";
  81. cout << a.vrsta << endl;
  82. cout << "Naziv: ";
  83. cout << a.naziv << endl;
  84. cout << "Cijena: ";
  85. cout << a.cijena << endl;
  86. cout << "Datum: ";
  87. cout << a.datum.dan << ". ";
  88. cout << a.datum.mjesec << " ";
  89. cout << a.datum.godina <<"." << endl;
  90. cout<<"-------------------------------" << endl;
  91. p = PreviousL(p,lista);
  92. brojac++;
  93. }
  94. cout << "Broj upisanih zivotinja: " << brojac << endl << endl;
  95. }
  96.  
  97. void ispis2() {
  98. int brojac=0;
  99. tZivotinja a;
  100. int p = FirstL(lista);
  101. while(p!=EndL(lista)) {
  102. a = RetrieveL(p,lista);
  103. if(a.datum.godina>=2012)
  104. if((!strcmp(a.datum.mjesec,"rujan") && a.datum.dan > 23) || !strcmp(a.datum.mjesec,"listopad") ||
  105. !strcmp(a.datum.mjesec,"studeni") || !strcmp(a.datum.mjesec,"prosinac")) {
  106. cout << "Sifra: ";
  107. cout << a.sifra << endl;
  108. cout << "Vrsta: ";
  109. cout << a.vrsta << endl;
  110. cout << "Naziv: ";
  111. cout << a.naziv << endl;
  112. cout << "Cijena: ";
  113. cout << a.cijena << endl;
  114. cout << "Datum: ";
  115. cout << a.datum.dan << ". ";
  116. cout << a.datum.mjesec << " ";
  117. cout << a.datum.godina <<"." << endl;
  118. cout<<"-------------------------------" << endl;
  119. brojac++;
  120. }
  121. p = NextL(p,lista);
  122. }
  123. cout<<"Broj pronadjenih zivotinja: " << brojac << endl << endl;
  124. }
  125.  
  126. int brisanje_naziva() {
  127. char naziv[50];
  128. tZivotinja a;
  129. cout<<"Unesite naziv zivotinje: ";
  130. unos(naziv);
  131. int p = LocateL(naziv,lista);
  132. if(p == EndL(lista))
  133. return 0;
  134. else {
  135. DeleteL(p,lista);
  136. br_elem--;
  137. return 1;
  138. }
  139. }
  140.  
  141. int brisanje_vrsta() {
  142. char vrsta[35];
  143. tZivotinja a;
  144. int p;
  145. bool obrisan=0;
  146. br=1;
  147. cout<<"Unesite vrstu zivotinje: ";
  148. unos(vrsta);
  149. while (LocateL(vrsta,lista)!=EndL(lista)) {
  150. p = LocateL(vrsta,lista);
  151. DeleteL(p,lista);
  152. br_elem--;
  153. obrisan=1;
  154. }
  155. br=0;
  156. if(!obrisan) return 0;
  157. else return 1;
  158. }
  159.  
  160. int main() {
  161. int izbor=0;
  162. InitL(lista);
  163. do {
  164. izbor = izbornik();
  165.  
  166. switch(izbor) {
  167. case 1:
  168. if(dodaj()) cout<<"Zapis je uspjesno dodan." << endl;
  169. else cout<<"Pogresan unos" << endl;
  170. break;
  171.  
  172. case 2: ispis1();break;
  173. case 3: ispis2();break;
  174. case 4: if(brisanje_naziva())
  175. cout << "Zivotinja je obrisana" << endl;
  176. else
  177. cout << "Unijeli ste krivi naziv zivotinje!!";
  178. break;
  179. case 5: if(brisanje_vrsta())
  180. cout << "Vrsta je obrisana" << endl;
  181. else
  182. cout << "Unijeli ste krivu vrstu zivotinje!!" << endl;
  183. break;
  184. case 9: break;
  185. default: cout << "Pogresan unos" << endl;
  186.  
  187. }
  188. }while(izbor!=9);
  189. DeleteAll(lista);
  190.  
  191. system("pause");
  192. return 0;
  193. }

Report this snippet  

You need to login to post a comment.