Posted By

Wrajzen on 11/20/10


Tagged

red Queue adt ATP


Versions (?)

red_glavni.cpp


 / Published in: C++
 

  1. #include<iostream>
  2. #include<cstring>
  3. #include "red_pokazivaci.h"
  4.  
  5. using namespace std;
  6. int brojac=0;
  7.  
  8. void dodaj(){
  9. char vrsta_transakcije;
  10. klijent x;
  11. cout << endl << "Ime i prezime: ";
  12. cin.ignore();
  13. cin.getline(x.prez_ime, 50);
  14. cout << "Starost: ";
  15. cin >> x.god;
  16. do{
  17. cout << "Vrsta transakcije: ";
  18. cout << endl << "1. uplate/isplate";
  19. cout << endl << "2. Placanje racuna";
  20. cout << endl << "3. Krediti" << endl;
  21. cout << "Vas izbor: "; cin >> vrsta_transakcije;
  22. }while(vrsta_transakcije<'1' || vrsta_transakcije >'3');
  23. switch(vrsta_transakcije){
  24. case '1':
  25. strcpy(x.transakcija, "Uplate/isplate");
  26. break;
  27. case '2':
  28. strcpy(x.transakcija, "Placanje racuna");
  29. break;
  30. case '3':
  31. strcpy(x.transakcija, "Krediti");
  32. break;
  33. }
  34. cout <<"Stanje na racunu: ";
  35. cin >> x.stanje;
  36. EnQueueQ(x, Q);
  37. brojac ++;
  38. }
  39.  
  40. void stanje(){
  41. klijent x;
  42. for(int i=0; i<brojac; i++){
  43. x = FrontQ(Q);
  44. DeQueueQ(Q);
  45. EnQueueQ(x, Q);
  46. cout << endl << "Ime i prezime: " << x.prez_ime;
  47. cout << endl << "Starosr: " <<x.god;
  48. cout << endl << "Vrsta transakcije: " <<x.transakcija;
  49. cout << endl << "Stanje na racunu: " << x.stanje<< endl;
  50. cout << endl;
  51. }
  52. }
  53.  
  54. void stari(){
  55. InitQ(P);
  56. klijent x;
  57. for(int i=0;i<brojac; i++){
  58. x = FrontQ(Q);
  59. DeQueueQ(Q);
  60. if(x.god > 65) EnQueueQ(x, Q);
  61. else EnQueueQ(x, P);
  62. }
  63. while(!IsEmptyQ(P)){
  64. x = FrontQ(P);
  65. DeQueueQ(P);
  66. EnQueueQ(x, Q);
  67. }
  68. cout << endl << "Stanje u redu: " << endl;
  69. stanje();
  70. }
  71.  
  72. void izbaciga(){
  73. klijent x;
  74. int prije_izbacivanja = brojac;
  75. for(int i=0;i<prije_izbacivanja; i++){
  76. x = FrontQ(Q);
  77. DeQueueQ(Q);
  78. if(x.stanje < 100 && !strcmp(x.transakcija, "Krediti")) --brojac;
  79. else EnQueueQ(x, Q);
  80. }
  81. cout << endl << "Stanje u redu: " << endl;
  82. stanje();
  83. }
  84.  
  85. void zamjena_saltera(){
  86. klijent x = FrontQ(Q);
  87. DeQueueQ(Q);
  88. if(!IsEmptyQ(Q)) zamjena_saltera();
  89. EnQueueQ(x, Q);
  90. }
  91.  
  92. int main(){
  93. int izbor;
  94. InitQ(Q);
  95.  
  96.  
  97.  
  98. do{
  99. cout << endl << "1. Dodavanje zapisa o klijentima u red ";
  100. cout << endl << "2. Pustanje starijih od 65 godina na pocetak reda ";
  101. cout << endl << "3. Izbacivanje klijenata s manje od 100 kn na racunu ";
  102. cout << endl << "4. Zatvaranje jednog, i otvaranje drugog saltera (obracanje reda)";
  103. cout << endl << "Vas izbor: ";
  104. cin >> izbor;
  105. switch(izbor){
  106. case 1:
  107. system("cls");
  108. dodaj();
  109. break;
  110. case 2:
  111. system("cls");
  112. if(brojac == 0) cout << endl << "Red je prazan! " << endl;
  113. else stari();
  114. break;
  115. case 3:
  116. system("cls");
  117. if(brojac == 0) cout << endl << "Red je prazan! " << endl;
  118. else izbaciga();
  119. break;
  120.  
  121. case 4:
  122. system("cls");
  123. if(brojac == 0) cout << endl << "Red je prazan! " << endl;
  124. else{
  125. zamjena_saltera();
  126. cout << endl << "Stanje u redu: " << endl;
  127. stanje();
  128. }
  129. break;
  130. }
  131. }while(izbor != 9);
  132. return 0;
  133. }

Report this snippet  

You need to login to post a comment.