Posted By

Vanny9 on 11/21/10


Tagged


Versions (?)

Program i biblioteke


 / Published in: C++
 

  1. Banka.cpp
  2. ________________
  3. #include <iostream>
  4. #include <string>
  5. #include "red_polje.h"
  6. //#include "red_pokazivac.h"
  7. using namespace std;
  8.  
  9. struct banka{
  10. string ime;
  11. string prezime;
  12. int god_rodj;
  13. int stanje;
  14. int trans;
  15. };
  16.  
  17. void ispisi(banka *x){
  18. cout<<endl<<"---KORISNIK---"<<endl;
  19. cout<<"Ime: "<<x->ime<<endl;
  20. cout<<"Prezime: "<<x->prezime<<endl;
  21. cout<<"Godina rodjenja: "<<x->god_rodj<<endl;
  22. cout<<"Stanje na racunu: "<<x->stanje<<endl;
  23. cout<<"Zeljena transakcija: ";
  24. if(x->trans==1)cout<<"uplata/isplata"<<endl; else if(x->trans==2)cout<<"Placanje"<<endl; else cout<<"Kredit"<<endl;
  25. }
  26.  
  27.  
  28. Red <banka *> glavni;
  29.  
  30.  
  31. void dodaj_u_red(){
  32. glavni.InitQ();
  33. cout<<"---Unos novih korisnika u red---"<<endl;
  34. char jos;
  35. for(;;){
  36. cout<<endl<<"Zelite li unjeti novog korisnika u red? (d/n) ";
  37. cin>>jos;
  38. if(jos=='n')break; else if (jos!='n' && jos!='d')continue;
  39. banka *x=new banka;;
  40. cout<<endl<<"---Unos novog korisnika u red---"<<endl;
  41. cout<<endl<<"Unesi ime: ";
  42. cin>>x->ime;
  43. cout<<endl<<"Unesi prezime: ";
  44. cin>>x->prezime;
  45. cout<<endl<<"Unesi godinu rodjenja: ";
  46. cin>>x->god_rodj;
  47. cout<<endl<<"Unesi stanje klijenta na racunu: ";
  48. cin>>x->stanje;
  49. cout<<endl<<"Zeljena transakcija (1 za uplatu/isplatu, 2 za placanje, 3 za kredit): ";
  50. cin>>x->trans;
  51.  
  52. glavni.EnQueueQ(x);
  53. }
  54. cout<<endl<<"---Kraj unosa novih korisnika---"<<endl;
  55. }
  56.  
  57. void premjesti_starije(){
  58. Red<banka*> pom,stariji;
  59. pom.InitQ();
  60. stariji.InitQ();
  61. banka *tren;
  62.  
  63. while(!glavni.IsEmpty()){
  64. tren=glavni.DeQueueQ();
  65. if(tren->god_rodj<1945) stariji.EnQueueQ(tren);
  66. else pom.EnQueueQ(tren);
  67. }
  68.  
  69. while(!stariji.IsEmpty()){
  70. tren=stariji.DeQueueQ();
  71.  
  72. glavni.EnQueueQ(tren);}
  73.  
  74. while(!pom.IsEmpty()){
  75. tren=pom.DeQueueQ();
  76.  
  77. glavni.EnQueueQ(tren);}
  78. cout<<endl<<"---Stanje reda nakon premjestanja starijih korisnika---"<<endl;
  79. while(!glavni.IsEmpty())pom.EnQueueQ(glavni.DeQueueQ());
  80. while(!pom.IsEmpty()){tren=pom.DeQueueQ();
  81. ispisi(tren);
  82. glavni.EnQueueQ(tren);}
  83. }
  84.  
  85.  
  86. void izbaci_bezpare(){
  87. Red<banka*> pom;
  88. pom.InitQ();
  89. banka *tren;
  90. cout<<endl<<"-Izbacujem iz reda korisnike sa manje od 100kn na racunu koji zele kredit: "<<endl;
  91. while(!glavni.IsEmpty()){
  92. tren=glavni.DeQueueQ();
  93. if(!(tren->stanje<100&&tren->trans==3)) pom.EnQueueQ(tren);
  94. else{
  95. cout<<endl<<"-IZBACUJEM:"; ispisi(tren);}
  96. }
  97. cout<<endl<<"U redu ostaju: "<<endl;
  98. while(!pom.IsEmpty()){
  99. tren=pom.DeQueueQ();
  100. ispisi(tren);
  101. glavni.EnQueueQ(tren);}
  102.  
  103. }
  104.  
  105.  
  106. void rekurzija(){
  107. banka *tren;
  108. tren=glavni.DeQueueQ();
  109. if(!glavni.IsEmpty()) rekurzija();
  110. glavni.EnQueueQ(tren);
  111. ispisi(tren);
  112. return;
  113. }
  114.  
  115.  
  116. int main(){
  117. int izbor;
  118. do {
  119. system ("cls");
  120. cout << "Izbornik " << endl;
  121. cout << "1. Dodavanje klijenata u red " << endl;
  122. cout << "2. Premjestanje klijenata starijih od 65 na pocetak reda " << endl;
  123. cout << "3. Izbacivanje iz reda klijenata koji zele kredit a imaju manje od 100 kn " << endl;
  124. cout << "4. Stanje nakon pretrcavanja u novi red " << endl;
  125. cin >> izbor;
  126. switch (izbor) {
  127. case 1:
  128. dodaj_u_red();
  129. break;
  130. case 2:
  131. premjesti_starije();
  132. break;
  133. case 3:
  134. izbaci_bezpare();
  135. break;
  136. case 4:
  137. cout<<endl<<"Nakon pretrcavanja u novi red stanje je: "<<endl;
  138. rekurzija();
  139. cout<<endl<<"KRAJ"<<endl;
  140. break;
  141. }
  142. system("pause");
  143. }while (izbor!=9);
  144. return 0;
  145. }
  146.  
  147. Red_polje.h
  148. __________
  149. #include <string>
  150. #include <stdlib.h>
  151. #include <iostream>
  152.  
  153. using namespace std;
  154.  
  155. #define n 1000;
  156. template <typename mytype>
  157. class Red{
  158.  
  159. int in;
  160. int out;
  161. bool last_push;
  162. mytype *a;
  163. public:
  164. void InitQ(){
  165. in=0;
  166. out=1;
  167. last_push=false;
  168.  
  169. }
  170. mytype FrontQ(){
  171. if(IsEmpty()){ cout<<"Red je prazan"; return;}
  172. else return a[out];
  173. }
  174. bool IsEmpty(){
  175. if((in==out-1)&&(!last_push))
  176. return true;
  177. else return false;
  178. }
  179. void EnQueueQ(mytype x){
  180.  
  181. if((in==out-1)&&(last_push)){ //?
  182. cout<<"Red je prepunjen, prekid rada..."<<endl;
  183. system("pause");
  184. exit(0);}
  185.  
  186. last_push=true;
  187. in=(in+1)%n;
  188.  
  189. a[in]=x;
  190.  
  191. }
  192. mytype DeQueueQ(){
  193. if(IsEmpty()){cout<<"Nema vise clanova u redu,prekid..."<<endl; system("pause"); exit(0);}
  194. last_push=false;
  195. mytype x=a[out];
  196. out=(out+1)%n;
  197. return x;
  198. }
  199. Red(){
  200. a=new mytype [1000];
  201.  
  202. }
  203.  
  204. };
  205.  
  206. Red_pokazivac.h
  207. _________
  208. #include <string>
  209. #include <stdlib.h>
  210. #include <iostream>
  211.  
  212. using namespace std;
  213. template <typename type>
  214. struct OE{
  215. type data;
  216. OE<type> *next;
  217. };
  218. template <typename mytype>
  219. class Red{
  220.  
  221. OE<mytype> *zadnji;
  222.  
  223. OE<mytype> *prvi;
  224.  
  225. public:
  226. mytype FrontQ(){
  227. if(prvi==NULL){ cout<<"Red je prazan..."<<endl; return;}
  228. else
  229. return prvi->data;
  230. }
  231. void InitQ(){
  232. prvi=NULL;
  233. zadnji=NULL;
  234.  
  235. }
  236. bool IsEmpty(){
  237. if((zadnji==NULL)&&(prvi==NULL))
  238. return true;
  239. else return false;
  240. }
  241. void EnQueueQ(mytype x){
  242.  
  243.  
  244. OE<mytype> *novi=new struct OE<mytype>;
  245. novi->data=x;
  246. novi->next=NULL;
  247. if(IsEmpty()) {prvi=novi; zadnji=novi;}
  248. else{
  249. zadnji->next=novi;
  250. zadnji=novi;}
  251.  
  252. };
  253. mytype DeQueueQ(){
  254.  
  255. if(IsEmpty()){cout<<"Nema vise clanova u redu,prekid..."<<endl; system("pause"); exit(0);}
  256. OE<mytype> *tren=new OE<mytype>;
  257. tren->data=prvi->data;
  258. struct OE<mytype> *brisanje=new struct OE<mytype>;
  259. brisanje=prvi;
  260. prvi=prvi->next;
  261. if(prvi==NULL) zadnji=NULL;
  262. delete []brisanje;
  263.  
  264. return tren->data;
  265. }
  266. Red(){
  267. zadnji=NULL;
  268. prvi=NULL;
  269.  
  270. }
  271.  
  272. };

Report this snippet  

You need to login to post a comment.