Posted By

ighojdani on 11/22/10


Tagged

zad3


Versions (?)

Z3_ighojdani


 / Published in: C++
 

  1. #include<iostream>
  2. #include<cstring>
  3. //#include "red_polje.h"
  4. #include "red_pokazivaci.h"
  5. using namespace std;
  6.  
  7. int k=0;
  8.  
  9. void ispis(red *A){
  10. tbanka b;
  11. int broj=k;
  12. while(broj){
  13. b=FrontQ(A);
  14. DeQueueQ(A);
  15. cout<<"\n Ime i prezime: "<<b.ime<<endl;
  16. cout<<" Godine rodenja: "<<b.god<<endl;
  17. cout<<" Bankovno stanje: "<<b.racun<<endl;
  18. cout<<" Transakcija: "<<b.tran<<endl;
  19. EnQueueQ(b,A);
  20. broj--;
  21. }
  22. }
  23.  
  24. void upis(red *A){
  25. char jos = 'd';
  26. tbanka b;
  27. int u;
  28. while (jos == 'd'){
  29. cout<<"\n Ime i prezime klijenta : ";
  30. cin.ignore();
  31. cin.getline(b.ime, 50);
  32. cout<<" Godina rodenja : ";
  33. cin>>b.god;
  34. cout<<" Bankovno stanje: ";
  35. cin>>b.racun;
  36. cout<<" Transakcija: "<<endl;
  37. cout<<" 1. Uplata/isplata "<<endl;
  38. cout<<" 2. Placanje racuna "<<endl;
  39. cout<<" 3. Kredit "<<endl;
  40. cout<<" Vas odabir : ";
  41. cin>>u;
  42. if(u==1) strcpy(b.tran, "Uplata/isplata");
  43. if(u==2) strcpy(b.tran, "Placanje racuna");
  44. if(u==3) strcpy(b.tran, "Kredit");
  45. EnQueueQ(b,A);
  46. k++;
  47. cout << "\Daljnji unos: (d/n) ? ";
  48. cin >> jos;
  49. }
  50. }
  51.  
  52.  
  53. void premjestaj(red *A){
  54. red *pom = InitQ(pom);
  55. tbanka b;
  56. int broj=k;
  57. while(broj){
  58. b=FrontQ(A);
  59. DeQueueQ(A);
  60. if(b.god >1945)
  61. EnQueueQ(b,pom);
  62. else{
  63. EnQueueQ(b,A);
  64. }
  65. broj--;
  66. }
  67. while(!IsEmptyQ(pom)){
  68. b=FrontQ(pom);
  69. DeQueueQ(pom);
  70. EnQueueQ(b,A);
  71. }
  72. ispis(A);
  73. }
  74.  
  75. void izbaci(red *A){
  76. if(IsEmptyQ(A)==0){
  77. red *pom=InitQ(pom);
  78. tbanka b;
  79. int broj=k;
  80. while(broj){
  81. b=FrontQ(A);
  82. DeQueueQ(A);
  83. if(b.racun<100 && strcmp(b.tran, "Kredit")==0 )
  84. k--;
  85. else
  86. EnQueueQ(b,A);
  87. broj--;
  88. }
  89. ispis(A);
  90. }
  91. else
  92. cout<<"Red je prazan"<<endl;
  93. }
  94.  
  95. void simulacija(red *A){
  96. if(IsEmptyQ(A)==0){
  97. tbanka b;
  98. b=FrontQ(A);
  99. DeQueueQ(A);
  100. if(!IsEmptyQ(A))
  101. simulacija(A);
  102. EnQueueQ(b,A);
  103. }
  104. else
  105. cout<<"Red je prazan"<<endl;
  106. }
  107.  
  108. int main(){
  109. int izbor;
  110. red *A = InitQ(A);
  111. do{
  112. cout<<"IZBORNIK"<<endl;
  113. cout<<"\n1. Upis klijenta "<<endl;
  114. cout<<"2. Izbacivanje klijenata koji ne zadovoljava uvjet kreditiranja "<<endl;
  115. cout<<"3. Simulacija zatvaranja saltera "<<endl;
  116. cout<<"9. Izlaz "<<endl;
  117. cout<<" Vas izbor: ";
  118. cin>>izbor;
  119. cout<<endl;
  120. switch(izbor){
  121. case 1: {
  122. upis(A);
  123. premjestaj(A);
  124. break;
  125. }
  126. case 2: {
  127. izbaci(A);
  128. break;
  129. }
  130. case 3: {
  131. simulacija(A);
  132. ispis(A);
  133. break;
  134. }
  135. case 9:
  136. break;
  137. default:
  138. cout<<" Pogresan unos ! "<<endl;
  139. break;
  140. }
  141. }while(izbor!=9);
  142. system("pause");
  143. return 0;
  144. }
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. //red_polje.h
  152.  
  153. #include <iostream>
  154. using namespace std;
  155.  
  156. struct tbanka{
  157. char ime[50];
  158. int god;
  159. int racun;
  160. char tran[50];
  161. };
  162.  
  163. tbanka ban;
  164.  
  165. struct red{
  166. tbanka elem[50];
  167. int prvi, zadnji;
  168. } *A;
  169.  
  170. int AddOne(int n){
  171. return((n+1)%50);
  172. }
  173.  
  174. red* InitQ(red *A){
  175. A= new red;
  176. A->prvi=0;
  177. A->zadnji=49;
  178. return A;
  179. }
  180.  
  181.  
  182. tbanka FrontQ(red *A){
  183. if (AddOne(A->zadnji)==(A->prvi)) {
  184. cout<<"Red je prazan "<<endl;
  185. }
  186. else{ int p;
  187. p=A->prvi;
  188. ban.god=A->elem[p].god;
  189. ban.racun=A->elem[p].racun;
  190. strcpy(ban.ime, A->elem[p].ime);
  191. strcpy(ban.tran, A->elem[p].tran);
  192. return ban;
  193. }
  194. }
  195.  
  196. void DeQueueQ(red *A){
  197. if (AddOne(A->zadnji) == (A->prvi)){
  198. cout<<"Red je prazan "<<endl;
  199. }
  200. else{
  201. A->prvi = AddOne(A->prvi);
  202. }
  203. }
  204.  
  205. void EnQueueQ(tbanka x,red *A) {
  206. if (AddOne(AddOne(A->zadnji)) == (A->prvi))
  207. cout<<"Red je pun "<<endl;
  208. else {
  209. A->zadnji=AddOne(A->zadnji);
  210. A->elem[A->zadnji]= x;
  211. }
  212. }
  213.  
  214. int IsEmptyQ(red *A){
  215. if (AddOne(A->zadnji) == (A->prvi)){
  216. return 1;
  217. }
  218. else{
  219. return 0;
  220. }
  221. }
  222.  
  223.  
  224.  
  225. //red.pokazivaci.h
  226.  
  227. #include<iostream>
  228. using namespace std;
  229.  
  230. struct tbanka{
  231. char ime[50];
  232. char tran[50];
  233. int god;
  234. int racun;
  235. };
  236.  
  237. struct tred{
  238. tbanka elem;
  239. tred *iduci;
  240. };
  241.  
  242. struct red{
  243. tred *prvi,*zadnji;
  244. };
  245. typedef struct tbanka element;
  246. typedef struct red Queue;
  247.  
  248. red* InitQ(red *A){
  249. tred *novi=new tred;
  250. A = new red;
  251. A->prvi=novi;
  252. A->zadnji=novi;
  253. novi->iduci=NULL;
  254. return A;
  255. }
  256.  
  257. tbanka FrontQ(red *A){
  258. if(A->prvi==A->zadnji){
  259. cout<<"Red je prazan "<<endl;
  260. }
  261. else
  262. return A->prvi->iduci->elem;
  263. }
  264.  
  265. void DeQueueQ(red *A){
  266. if(A->prvi==A->zadnji){
  267. cout<<"Red je prazan "<<endl;
  268. }
  269. else{
  270. tred *brisi = A->prvi;
  271. A->prvi = A->prvi->iduci;
  272. delete brisi;}
  273. }
  274.  
  275. void EnQueueQ(tbanka x, red *A){
  276. tred *novi=new tred;
  277. novi->elem = x;
  278. novi->iduci=NULL;
  279. A->zadnji->iduci=novi;
  280. A->zadnji=novi;
  281. }
  282.  
  283.  
  284. int IsEmptyQ(red *A){
  285. if(A->prvi==A->zadnji){
  286. return 1;}
  287. else{
  288. return 0;}
  289. }

Report this snippet  

You need to login to post a comment.