Posted By

nail9762 on 11/21/10


Tagged


Versions (?)

Main.cpp


 / Published in: C++
 

  1. #include <iostream>
  2. #include <conio.h>
  3. //#include "rpolj.h"
  4. #include "rpok.h"
  5. using namespace std;
  6.  
  7. bool dodaj(red *Q){ //dodavanje novih elemenata u red
  8. char jos;
  9. bool deda = false;
  10. do{
  11. klijent x;
  12. cout << "Ime: ";
  13. cin.ignore();
  14. cin.getline(x.ime,30);
  15. cout << "Godina rodjenja: ";
  16. cin >> x.god;
  17. if (x.god < 1945) deda = true;
  18. cout << "Stanje na racunu: ";
  19. cin >> x.st;
  20. do{
  21. cout << "Vrsta transakcije(1-3)?: ";
  22. cin >> x.tip;
  23. if (x.tip <1 || x.tip >3) cout << "\n1) Uplata/isplata\n2) Placanje racuna\n3) krediti\nIzbor: ";
  24. }while(x.tip <1 || x.tip >3);
  25. EnQueueQ(x,Q);
  26. cout << "Zelite li upisati jos?(d/n)?";
  27. cin >> jos;
  28. }while(jos!='n' && jos !='N');
  29. return deda; // vraca true ako ima starijih od 1945. godista
  30. }
  31.  
  32. void stanje(red *Q){ //Ispisuje trenutacno stanje reda pomocu dodatnog reda
  33. red *der = InitQ(der);//inicira se pomocni red
  34. klijent x; //pomocni
  35. char vrsta[3][20] = {"Uplata/Isplata","Placanje racuna","Krediti"};
  36. cout << "\n......................."
  37. << "\nTrenutno stanje u redu:"
  38. << "\n.......................";
  39. while(!IsEmptyQ(Q)){
  40. x = FrontQ(Q);
  41. DeQueueQ(Q);
  42. EnQueueQ(x,der);
  43. cout << "\nIme: " << x.ime
  44. << "\nGodiste: " << x.god
  45. << "\nStanje: " << x.st
  46. << "\nVrsta transakcije: " << vrsta[x.tip-1]
  47. << "\n.......................\n";
  48. getch();
  49. }
  50. while(!IsEmptyQ(der)){
  51. x = FrontQ(der);
  52. DeQueueQ(der);
  53. EnQueueQ(x,Q);
  54. }
  55. }
  56.  
  57. void filtar(red *Q,bool schmool){ // Premjestanje starkelja na početak reda/izbacivanje siromaha (ako je parametar schmool 1 = penzici, ako je 0 = siromahi)
  58. red *der = InitQ(der);
  59. bool uvjet, zapis;
  60. klijent x;
  61. int i,b = SizeQ(Q);
  62. for (i=0;i<b;i++){
  63. x = FrontQ(Q);
  64. DeQueueQ(Q);
  65. if (schmool) uvjet = (x.god < 1945);
  66. else uvjet = (x.st <100 && x.tip == 3);
  67. if(uvjet){
  68. if(schmool)
  69. EnQueueQ(x,Q);
  70. }
  71. else EnQueueQ(x,der);
  72. }
  73. b = SizeQ(der);
  74. for (i=0;i<b;i++){
  75. x = FrontQ(der);
  76. DeQueueQ(der);
  77. EnQueueQ(x,Q);
  78. }
  79. }
  80.  
  81. void muvanje(red *Q){
  82. klijent x;
  83. if (!IsEmptyQ(Q)){
  84. x = FrontQ(Q);
  85. DeQueueQ(Q);
  86. muvanje(Q);
  87. EnQueueQ(x,Q);
  88. }
  89. }
  90.  
  91. int main(){
  92. int iz;
  93. red *der = InitQ(der); //iniciranje glavnog reda
  94. do{ //izbornik
  95. cout << endl
  96. << "-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+" << endl
  97. << "+-+-+-+-+-+-+ Izbornik -+-+-+-+-+-+-" << endl
  98. << "-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+" << endl
  99. << "+- 1. Dodavanje klijenata u red +-" << endl
  100. << "+- 2. Izbacivanje siromasnih +-" << endl
  101. << "-+ 3. Muvanje na novi salter -+" << endl
  102. << "+- 0. Izlaz +-" << endl
  103. << "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-" << endl;
  104. cin >> iz;
  105. switch(iz){
  106. case 1:
  107. if (dodaj(der)) filtar(der,1); //Ako ima penzica filtriraj
  108. stanje(der); //Ispis stanja
  109. break;
  110. case 2:
  111. filtar(der,0); //izbacivanje siromaha
  112. stanje(der);
  113. break;
  114. case 3:
  115. muvanje(der); //premjestanje u novi red
  116. stanje(der);
  117. break;
  118. case 0:
  119. break;
  120. case 5: //tajna mogucnost za provjeru stanja
  121. stanje(der);
  122. break;
  123. default:
  124. cout << "\nOdaberite jednu od ponudjenih mogucnosti! (Ne postoji tajna mogućnost)" << endl; //Tajna mogucnost je 5.
  125. break;
  126. }
  127. }while(iz);
  128. cout << "Pristisnite bilo kaj...";
  129. getch();
  130. return 0;
  131. }

Report this snippet  

You need to login to post a comment.