Posted By

Frenki on 11/22/10


Tagged

red 3 Strukture podataka zadatak


Versions (?)

red.cpp


 / Published in: C++
 

  1. #include<iostream>
  2. #include<cstring>
  3. #include "red_polje.h"
  4. //#include "red_pokazivac.h"
  5. using namespace std;
  6.  
  7. red klijenti, pom;
  8. data x;
  9.  
  10. void dodaj() {
  11. int izbor;
  12. char jos;
  13. do {
  14. cout << "________________________________________" << endl;
  15. cout << " Dodavanje klijenta u red" << endl;
  16. cout << "________________________________________" << endl;
  17. do {
  18. cout << "Vrsta transakcije koju klijent zeli obaviti:" << endl;
  19. cout << "\t1. uplate/isplate" << endl;
  20. cout << "\t2. placanje racuna" << endl;
  21. cout << "\t3. krediti" << endl;
  22. cin >> izbor;
  23. switch (izbor) {
  24. case 1:
  25. x.transakcija="uplate/isplate";
  26. break;
  27. case 2:
  28. x.transakcija="placanje racuna";
  29. break;
  30. case 3:
  31. x.transakcija="krediti";
  32. break;
  33. default:
  34. cout << "Pogresan izbor!" << endl;
  35. }
  36. } while (izbor!=1 && izbor!=2 && izbor!=3);
  37. cout << "Ime i prezime klijenta: ";
  38. cin.getline(x.ime_prezime, 50);
  39. if (cin.gcount()==1) cin.getline(x.ime_prezime, 50);
  40. cout << "Godina rodjenja: ";
  41. cin >> x.godina;
  42. cout << "Stanje na bankovnom racunu: ";
  43. cin >> x.racun;
  44. cout << endl;
  45. EnQueueQ(x,&klijenti);
  46. do {
  47. cout << "Jos unositi (d/n) ";
  48. cin >> jos;
  49. if (jos!='d' && jos!='D' && jos!='N' && jos!='n')
  50. cout << "Pogresan unos!" << endl;
  51. } while (jos!='d' && jos!='D' && jos!='N' && jos!='n');
  52. } while (jos!='N' && jos!='n');
  53. }
  54.  
  55. void penzici() {
  56. InitQ(&pom);
  57. int i=0;
  58. while (!IsEmptyQ(&klijenti)) {
  59. x=FrontQ(&klijenti);
  60. EnQueueQ(x,&pom);
  61. DeQueueQ(&klijenti);
  62. i++;
  63. }
  64. for (i;i>0;i--) {
  65. x=FrontQ(&pom);
  66. if (x.godina < 1945) {
  67. EnQueueQ(x,&klijenti);
  68. DeQueueQ(&pom);
  69. }
  70. else {
  71. EnQueueQ(x,&pom);
  72. DeQueueQ(&pom);
  73. }
  74. }
  75. while (!IsEmptyQ(&pom)) {
  76. x=FrontQ(&pom);
  77. EnQueueQ(x,&klijenti);
  78. DeQueueQ(&pom);
  79. }
  80. }
  81.  
  82. void ispis() {
  83. cout << "Ime i prezime\t\tGod. rodjenja\tStanje racuna\tVrsta transakcije" << endl;
  84. cout << "_____________\t\t_____________\t_____________\t_________________" << endl;
  85. InitQ(&pom);
  86. while (!IsEmptyQ(&klijenti)) {
  87. x=FrontQ(&klijenti);
  88. EnQueueQ(x,&pom);
  89. DeQueueQ(&klijenti);
  90. }
  91. while (!IsEmptyQ(&pom)) {
  92. x=FrontQ(&pom);
  93. cout << x.ime_prezime << "\t\t" << x.godina << "\t\t" << x.racun << "\t\t" << x.transakcija << endl;
  94. EnQueueQ(x,&klijenti);
  95. DeQueueQ(&pom);
  96. }
  97. }
  98.  
  99. void siromasi() {
  100. InitQ(&pom);
  101. while (!IsEmptyQ(&klijenti)) {
  102. x=FrontQ(&klijenti);
  103. if (x.racun>=100 || strcmp(x.transakcija,"krediti")) EnQueueQ(x,&pom);
  104. DeQueueQ(&klijenti);
  105. }
  106. while (!IsEmptyQ(&pom)) {
  107. x=FrontQ(&pom);
  108. EnQueueQ(x,&klijenti);
  109. DeQueueQ(&pom);
  110. }
  111. }
  112.  
  113. void kaos() {
  114. data y;
  115. y=FrontQ(&klijenti);
  116. DeQueueQ(&klijenti);
  117. if (!IsEmptyQ(&klijenti)) kaos();
  118. EnQueueQ(y,&klijenti);
  119. }
  120.  
  121. int main() {
  122. int izbor;
  123. InitQ(&klijenti);
  124. do {
  125. cout << endl << "_______________________________________________" << endl;
  126. cout << " IZBORNIK" << endl;
  127. cout << "_______________________________________________" << endl;
  128. cout << "1. Dodaj klijenta u red" << endl;
  129. cout << "2. Izbaci klijente bez novaca koji zele kredit" << endl;
  130. cout << "3. Zatvori salter i otvori drugi" << endl;
  131. cout << "0. Izlaz" << endl;
  132. cout << "_______________________________________________" << endl;
  133. cin >> izbor;
  134. cout << endl;
  135. switch (izbor) {
  136. case 1:
  137. dodaj();
  138. penzici();
  139. cout << endl;
  140. ispis();
  141. break;
  142. case 2:
  143. if (IsEmptyQ(&klijenti)) break;
  144. siromasi();
  145. ispis();
  146. break;
  147. case 3:
  148. if (IsEmptyQ(&klijenti)) break;
  149. kaos();
  150. ispis();
  151. break;
  152. case 0:
  153. break;
  154. default:
  155. cout << "Pogresan izbor!" << endl;
  156. }
  157. } while (izbor!=0);
  158. return 0;
  159. }

Report this snippet  

You need to login to post a comment.