Posted By

anabel_lee on 11/12/12


Tagged

Liste zivotinje


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

anabel_lee


Glavni program


 / Published in: C++
 

evidencija zivotinja

  1. //Keckes Anabel Li
  2. // EVIDENCIJA ZIVOTINJA //
  3.  
  4. #include <iostream>
  5. #include <cstring>
  6.  
  7. //#include "pokazivac_lista.h"
  8. #include "polje_lista.h"
  9.  
  10. using namespace std;
  11.  
  12. int dodaj(LIST *L, int s){
  13. zivotinje zi;
  14. bool unos=0;
  15. zi.sifra = s;
  16. cout << "vrsta: ";
  17. cin.ignore();
  18. cin.getline(zi.vrsta, 20);
  19. cout << "naziv: ";
  20. cin.getline(zi.naziv, 40);
  21. cout << "cijena: ";
  22. cin >> zi.cijena;
  23. do {
  24. cout << "Dan: ";
  25. cin >> zi.d;
  26. } while (zi.d <= 0 || zi.d > 31);
  27. do {
  28. cout << "Mjesec: ";
  29. cin >> zi.m;
  30. } while (zi.m <= 0 || zi.m > 12);
  31. do {
  32. cout << "Godina: ";
  33. cin >> zi.g;
  34. } while (zi.g <= 1900 || zi.g > 2100);
  35.  
  36. if (INSERTL (zi, ENDL(L), L) != 0) {
  37. unos = 1;
  38. }
  39. if (unos == 1) return 1;
  40. else return 0;
  41. }
  42.  
  43. void ispisi_sadrzaj (LIST *L) {
  44. int br = 0;
  45. zivotinje z[1000];
  46. element position = FIRSTL(L);
  47. while (position != ENDL(L)) {
  48. z[br] = RETREIVEL (position, L);
  49. position = NEXTL (position, L);
  50. br++;
  51. }
  52.  
  53.  
  54. for(int j=0; j<br; j++) {
  55. cout << "sifra: " << z[j].sifra<< endl;
  56. cout << "vrsta: " << z[j].vrsta << endl;
  57. cout << "naziv: " << z[j].naziv << endl;
  58. cout << "Datum: " << z[j].d << "." << z[j].m << "." << z[j].g << "." << endl;
  59. cout << "cijena: " <<z[j].cijena << endl;
  60.  
  61. }
  62. }
  63.  
  64. void pretrazi_listu (LIST *L) {
  65. int br = 0;
  66. int brojac = 0;
  67. zivotinje z[1000];
  68. element position = FIRSTL(L);
  69. while (position != ENDL(L)) {
  70. z[br] = RETREIVEL (position, L);
  71. position = NEXTL (position, L);
  72. br++;
  73. }
  74. zivotinje polje[br];
  75. for (int i = 0; i <= br; i++) {
  76. if(z[i].g > 2012){
  77. polje[br] = z[i];
  78. br ++;
  79. }
  80. else if(z[i].g == 2012){
  81. if(z[i].m > 9){
  82. polje[br] = z[i];
  83. br ++;
  84. }
  85. }
  86. else if(z[i].g == 2012){
  87. if(z[i].m == 9){
  88. if(z[i].d > 23){
  89. polje[br] = z[i];
  90. br ++;}
  91. }
  92. }
  93. }
  94. for(int a=0; a<br; a++){
  95. cout << "Sifra: " << polje[a].sifra << endl;
  96. cout << "Naziv: " << polje[a].naziv << endl;
  97. cout << "Vrsta: " << polje[a].vrsta << endl;
  98. cout << "Datum: " << polje[a].d << "." << polje[a].m << "." << polje[a].g << "." << endl;
  99. cout << "Cijena: " << polje[a].cijena << endl;
  100. }
  101. cout << "Broj: " << br << endl;
  102.  
  103. }
  104.  
  105. int brisanje_naziva (LIST *L){
  106. char n[20];
  107. cout << "Unesi naziv zivotinje koju zelite izbrisati: ";
  108. cin.ignore();
  109. cin.getline (n, 20);
  110.  
  111. element position = FIRSTL(L);
  112.  
  113. zivotinje ziv;
  114.  
  115. while (position != ENDL(L)) {
  116. zi = RETREIVEL (position, L);
  117. if (strcmp(zi.naziv, n) != 0) {
  118. position = NEXTL (position, L);
  119. }
  120. else {
  121. DELETEL (position, L);
  122. return 1;
  123. }
  124. }
  125. return 0;
  126. }
  127.  
  128. int brisanje_vrste (LIST *L) {
  129. char v[20];
  130. cout << "Unesi vrstu zivotinje koju zelite izbrisati: ";
  131. cin.ignore();
  132. cin.getline (v, 20);
  133.  
  134. element position = FIRSTL(L);
  135. zivotinje zi;
  136.  
  137. while (position != ENDL(L)) {
  138. zi= RETREIVEL (position, L);
  139. if (strcmp(zi.vrsta, v) != 0) {
  140. position = NEXTL (position, L);
  141. }
  142. else {
  143. DELETEL (position, L);
  144. }
  145. }
  146. return 0;
  147. }
  148.  
  149.  
  150. int main () {
  151.  
  152. int izbor=100;
  153. int sifra = 100;
  154. LIST *L = INITL(L);
  155.  
  156. do {
  157. cout << "IZBORNIK" << endl;
  158. cout << "======================================================" << endl;
  159. cout << "1. Dodaj zapis o zivotinji." << endl;
  160. cout << "2. Ispis zivotinja" << endl;
  161. cout << "3. Pretrazivanje i ispis zivotinjs nakon 23.9.2012." << endl;
  162. cout << "4. Brisanje podataka po nazivu zivotinje." << endl;
  163. cout << "5. Brisanje podataka po vrsti zivotinje." << endl;
  164. cout << "0. IZLAZ" << endl;
  165. cout << "------------------------------------------------------" << endl;
  166. do {
  167. cout << "IZBOR: ";
  168. cin >> izbor;
  169. } while (izbor < 0 || izbor > 6);
  170.  
  171. cout << endl;
  172. switch (izbor) {
  173.  
  174. case 0: break;
  175.  
  176. case 1:
  177. dodaj(L, sifra);
  178. sifra ++;
  179. break;
  180.  
  181. case 2:
  182. ispisi_sadrzaj(L);
  183.  
  184. break;
  185.  
  186. case 3:
  187. pretrazi_listu(L);
  188.  
  189. break;
  190.  
  191. case 4:
  192. brisanje_naziva(L);
  193.  
  194. break;
  195.  
  196. case 5:
  197. brisanje_vrste(L);
  198. break;
  199.  
  200. }
  201. } while (izbor != 0);
  202.  
  203. return 0;
  204. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: dmacan23 on November 12, 2012

Vidim da nisi radila Merge sort, te da si zapisala datum u 3 zasebne varijable unutar strukture, dok sam ja napravio polje od 3 elementa u koje sam u 0. upisao godinu, u 1. mjesec, te u 2. dan :) Isto tako vidim da si sifru deklarirala unutar funkcije main, pa ju slala kao argument funkcije za unos, dok sam ja napravio deklaraciju globalne varijable sif, koja se inkrementirala svaki put kad je zapis bio uspjesan

You need to login to post a comment.