Posted By


alsobodic on 11/22/10

Tagged


Statistics


Viewed 48 times
Favorited by 0 user(s)

simulacija_reda_u_banci.cpp


/ Published in: C++
Save to your folder(s)



Copy this code and paste it in your HTML
  1. #include<iostream>
  2. #include "red_pokazivac.h"
  3. //#include "red_polje.h"
  4. using namespace std;
  5. int brojac=0;
  6. void dodaj_klijenta(tRed *Q) {
  7. tklijent novi;
  8. cout << "Ime: ";
  9. cin.ignore();
  10. cin.getline(novi.ime,50);
  11. cout << "Prezime: ";
  12. cin.getline(novi.prez,50);
  13. cout << "Godina rodjenja: ";
  14. cin >> novi.god;
  15. cout << "Stanje racuna: ";
  16. cin >> novi.stanje;
  17. cout << "Vrsta transakcije: "<<endl;
  18. cout << "('u' = uplate/isplate,'p' =placanje racuna,'k' = krediti): "<<endl;
  19. cout<< "Vas izbor je: ";
  20. do{
  21. cin >> novi.vrstatrans;
  22. if((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k'))
  23. cout<<"Pogresan unos\nVas izbor: ";
  24. }while((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k'));
  25. EnQueueQ(novi, Q);
  26. cout<<"--------------------"<<endl<<endl;
  27. brojac++;
  28. };
  29. void ispis_klijenata(tRed *Q) {
  30. cout<< "Ispis klijenata u redu:" <<endl;
  31. tklijent novi;
  32. int br=brojac;
  33. while (br) {
  34. novi = FrontQ(Q);
  35. DeQueueQ(Q);
  36. cout << "Ime: " << novi.ime << endl;
  37. cout << "Prezime: "<< novi.prez << endl;
  38. cout << "Godina rodjenja: " << novi.god << endl;
  39. cout << "Stanje na racunu: " << novi.stanje << endl;
  40. if(novi.vrstatrans == 'u') cout<<"Vrsta transakcije: Uplata/Isplata"<<endl;
  41. if(novi.vrstatrans == 'p') cout<<"Vrsta transakcije: Placanje racuna"<<endl;
  42. if(novi.vrstatrans == 'k') cout<<"Vrsta transakcije: Kreditiranje"<<endl;
  43. cout<<"-----------------"<<endl;
  44. EnQueueQ(novi,Q);
  45. br--;
  46. };
  47. };
  48. void starijiod(tRed *Q) { //pomocni red
  49. tRed *pomocni = InitQ(pomocni);
  50. tklijent novi;
  51. int br=brojac;
  52. while (br) {
  53. novi = FrontQ(Q);
  54. DeQueueQ(Q);
  55. if (novi.god > 1945)
  56. EnQueueQ(novi,pomocni);
  57. else
  58. EnQueueQ(novi,Q);
  59. br--;
  60. };
  61. while (!IsEmptyQ(pomocni)) {
  62. novi = FrontQ(pomocni);
  63. DeQueueQ(pomocni);
  64. EnQueueQ(novi,Q);
  65. };
  66. //ispis_klijenata(Q);
  67. };
  68. void izbaciti(tRed *Q) {
  69. tRed *pomocni = InitQ(pomocni);
  70. tklijent novi;
  71. int br=brojac;
  72. while (br) {
  73. novi = FrontQ(Q);
  74. DeQueueQ(Q);
  75. if (!(novi.stanje < 100 && novi.vrstatrans == 'k'))
  76. EnQueueQ(novi,Q);
  77. else brojac--;
  78. br--;
  79. };
  80. //ispis_klijenata(Q);
  81. };
  82. void otvaranje_saltera(tRed *Q) { //rekurzija
  83. tklijent novi;
  84. novi = FrontQ(Q);
  85. DeQueueQ(Q);
  86. if (!IsEmptyQ(Q)) otvaranje_saltera(Q);
  87. EnQueueQ(novi,Q);
  88. };
  89. int main(){
  90. bool ima = false;
  91. tRed *Q = InitQ(Q);
  92. int zapis, iz,br=1;
  93. do{
  94. cout<<"-----------------\nIZBRONIK\n-----------------"<<endl;
  95. cout<<"1. Dodavanje zapisa o klijentima banke u red."<<endl;
  96. cout<<"2. Premjestiti klijente starije od 65 godine na pocetak reda (pomocni red)."<<endl;
  97. cout<<"3. Izbaciti iz reda sve klijente koji imaju <100kn i zele transakciju kreditiranja."<<endl;
  98. cout<<"4. Zatvaranje jednog saltera i otvaranje drugog - Zamjena mjesta u redu (rekurzija)."<<endl;
  99. cout<<"5. Ispis stanja na redu."<<endl;
  100. cout<<"9. Izlaz iz programa"<<endl;
  101. cout<<"-----------------"<<endl;
  102. cout<<"Vas izbor je: ";
  103. cin>>iz;
  104. switch(iz){
  105. case 1:
  106. cout<<"Kolko klijenata zelite dodati: ";
  107. cin>>zapis;
  108. for (int i=0;i<zapis;i++){
  109. cout<<"Klijent broj "<<br<<". :"<<endl;
  110. dodaj_klijenta(Q);
  111. br++;
  112. }//for
  113. ima = true;
  114. break;
  115. case 2:
  116. if(!ima){
  117. cout<<"Nema podataka!"<<endl;
  118. break;
  119. }
  120. starijiod(Q);
  121. break;
  122. case 3:
  123. if(!ima){
  124. cout<<"Nema podataka!"<<endl;
  125. break;
  126. }
  127. izbaciti(Q);
  128. break;
  129. case 4:
  130. if(!ima){
  131. cout<<"Nema podataka!"<<endl;
  132. break;
  133. }
  134. otvaranje_saltera(Q);
  135. break;
  136. case 5:
  137. ispis_klijenata(Q);
  138. break;
  139.  
  140. }//switch
  141. }while(iz != 9);
  142. system("pause");
  143. return 0;
  144. };

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.