Posted By

mesec on 11/22/10


Tagged

main red


Versions (?)

red_main.cpp


 / Published in: C++
 

URL: red_main

red_main.cpp

  1. #include <iostream>
  2. #include "red_polje.h"
  3. //#include "red_pokazivac.h"
  4. using namespace std;
  5.  
  6. qu red;
  7.  
  8. void unos(){
  9. klijent k;
  10. cout << "\nime: ";
  11. cin.ignore();
  12. cin.getline(k.ime, 35);
  13. cout << "godina rodjenja: ";
  14. cin >> k.god;
  15. cout << "stanje na racunu: ";
  16. cin >> k.stanje;
  17. do{
  18. cout << "vrsta transakcije:\n\n 1. uplata/isplata\n 2. placanje racuna\n 3. kreditiranje\n : ";
  19. cin >> k.transakcija;
  20. }while(k.transakcija < 1 || k.transakcija > 3);
  21. EnQueueQ (k, red);
  22. }
  23.  
  24. void next(bool print){
  25. if (!IsEmptyQ(red)){
  26. klijent k = FrontQ(red);
  27. DeQueueQ(red); // front++;
  28.  
  29. if(print){
  30. cout << "\nime: " << k.ime << endl;
  31. cout << "godina rodjenja: " << k.god << endl;
  32. cout << "stanje racuna: " << k.stanje << endl;
  33. cout << "vrsta transakcije: ";
  34. switch (k.transakcija){
  35. case 1: cout << "uplata/isplata" << endl; break;
  36. case 2: cout << "placanje racuna" << endl; break;
  37. case 3: cout << "kreditiranje" << endl;
  38. } // switch
  39. } // if
  40. next(print);
  41. EnQueueQ(k, red);
  42. } // if
  43. }
  44.  
  45. void stariji(){
  46. qu pom1 = (qu)malloc(sizeof(struct queue));
  47. InitQ(pom1);
  48. qu pom2 = (qu)malloc(sizeof(struct queue));
  49. InitQ(pom2);
  50. while(!IsEmptyQ(red)){
  51. klijent k = FrontQ(red);
  52. DeQueueQ(red);
  53. if(k.god < 1945) EnQueueQ(k, pom1); //spremanje starih u pom1
  54. else EnQueueQ(k, pom2); // mladi idu u pom2
  55. }
  56. while(!IsEmptyQ(pom1)){
  57. klijent k = FrontQ(pom1);
  58. DeQueueQ(pom1);
  59. EnQueueQ(k, red); // vracanje starih ljudi natrag u red
  60. }
  61. while(!IsEmptyQ(pom2)){
  62. klijent k = FrontQ(pom2);
  63. DeQueueQ(pom2);
  64. EnQueueQ(k, red); // vracanje mladih u red
  65. }
  66. }
  67.  
  68. void ispis(){
  69. cout << "\n Ispis reda:\n";
  70. next(true);
  71. next(false);
  72. }
  73.  
  74. void move_element(){
  75. if(!IsEmptyQ(red)){
  76. klijent k = FrontQ(red);
  77. DeQueueQ(red);
  78. move_element();
  79. EnQueueQ(k, red);
  80. }
  81. }
  82. void move(){
  83. cout << "\n Mjenjanje saltera\n\n";
  84. move_element();
  85. }
  86.  
  87. void izbaci_element(){
  88. bool izbaci = false;
  89. if(!IsEmptyQ(red)){
  90. klijent k = FrontQ(red);
  91. DeQueueQ(red);
  92. if(k.stanje < 100 and k.transakcija == 3){
  93. cout << "\nime: " << k.ime << endl;
  94. cout << "godina rodjenja: " << k.god << endl;
  95. cout << "stanje racuna: " << k.stanje << endl;
  96. cout << "vrsta transakcije: ";
  97. switch (k.transakcija){
  98. case 1: cout << "uplata/isplata" << endl; break;
  99. case 2: cout << "placanje racuna" << endl; break;
  100. case 3: cout << "kreditiranje" << endl;
  101. } // switch
  102. izbaci = 1;
  103. } // if
  104. izbaci_element();
  105. if(!izbaci) EnQueueQ(k, red);
  106. } // if
  107. }
  108.  
  109. void izbaci(){
  110. cout << "\n Izbacivanje...\n";
  111. izbaci_element();
  112. move_element();
  113. }
  114.  
  115.  
  116.  
  117. int main(){
  118. int izbor;
  119. red = (qu)malloc(sizeof(struct queue));
  120. InitQ(red);
  121. do{
  122. cout << "\n1. Unos" << endl;
  123. cout << "2. Propustanje starijih" << endl;
  124. cout << "3. Izbacivanje iz reda" << endl;
  125. cout << "4. Otvaranje drugog saltera" << endl;
  126. cout << "9. Izlaz" << endl;
  127. cout << ": ";
  128. cin >> izbor;
  129. switch(izbor){
  130. case 1:
  131. unos(); break;
  132. case 2:
  133. stariji();
  134. ispis(); break;
  135. case 3:
  136. izbaci();
  137. ispis(); break;
  138. case 4:
  139. move();
  140. ispis();
  141.  
  142. }//switch
  143. }while(izbor != 9);
  144. return 0;
  145. }

Report this snippet  

You need to login to post a comment.