Posted By

vlsekovan on 11/22/10

Statistics

Viewed 144 times
Favorited by 0 user(s)

Related snippets

/ Published in: C++
`//pomocu pokazivaca//struct dio{       element value;       dio* next;       };//dio struct red_t{       dio *front, *rear;      };//red_t typedef red_t red; void InitQ(red* Q){     Q->front=new dio;     Q->rear=Q->front;     }//InitQ bool IsEmptyQ(red* Q){     if(Q->rear==Q->front) return 1;     return 0;     }//IsEmptyQ element FrontQ(red* Q){     if(!IsEmptyQ(Q)) return Q->front->next->value;        }//FrontQ void EnQueueQ(element dodaj, red* Q){      Q->rear->next=new dio;      Q->rear=Q->rear->next;      Q->rear->value=dodaj;    }//EnQueueQ void DeQueueQ(red* Q){     dio* pomoc=Q->front;     Q->front=Q->front->next;      delete pomoc;    }//DeQueueQ void obrisi(red* Q){     while(!IsEmptyQ(Q)) DeQueueQ(Q);     delete Q->front;     }//obrisi  //pomocu polja//struct red_t{        element elements[10000];        int front,rear;      };//red_t typedef red_t red; void InitQ(red* Q){         Q->front=0;         Q->rear=9999;     }//InitQ bool IsEmptyQ(red* Q){         if( Q->front == (Q->rear+1)%10000 ) return 1;         return 0;    }//IsEmptyQ element FrontQ(red* Q){         if(!IsEmptyQ(Q)) return Q->elements[Q->front];       }//FrontQ void DeQueueQ(red* Q){         if(!IsEmptyQ(Q)) Q->front++;      }//DeQueueQ void EnQueueQ(element dodaj, red* Q){         Q->rear=(Q->rear+1)%10000;         Q->elements[Q->rear]=dodaj;     }//EnQueueQ void obrisi(red* Q){}  //PROGRAM//#include <iostream>#include <cstring>using namespace std; struct klijent_t{       string ime;       int godina;       double stanje;       int transakcija;       };//klijent_t typedef klijent_t element; #include "pomocu_pokazivaca.h"//include "pomocu_polja.h" void dodajKlijenta(red*);void pustiStarije(red*);void ispisiStanje(red*);void rekurzija(red*);void makniNesposobne(red*);void otvoriSalter(red*); int main(){    int izbor=1;    red mojred;    InitQ(&mojred);     while(izbor){                 system("cls");                  cout<<"1. Dodaj klijenta"<<endl                     <<"2. Pusti starije osobe na pocetak reda"<<endl                     <<"3. Makni iz reda kreditno nesposobne osobe"<<endl                     <<"4. Zatvaranje otvorenog i otvaranje novog saltera"<<endl                     <<"0. Izlaz iz programa"<<endl<<endl;                  cout<<"Izbor: ";                 cin>>izbor;                  switch(izbor){                               case 0: break;                                case 1: system("cls");                                       dodajKlijenta(&mojred);                                       system("pause");                                       break;                                case 2: system("cls");                                       pustiStarije(&mojred);                                       cout<<"Svi klijenti stariji od 65 godina su pusteni na pocetak reda"<<endl<<endl;                                       system("pause");                                        system("cls");                                       ispisiStanje(&mojred);                                       system("pause");                                        break;                                case 3: system("cls");                                       makniNesposobne(&mojred);                                       cout<<"Svi kreditno nesposobni klijenti su izasli iz reda."<<endl<<endl;                                       system("pause");                                        system("cls");                                       ispisiStanje(&mojred);                                       system("pause");                                        break;                                case 4: system("cls");                                        if(IsEmptyQ(&mojred)) break;                                        otvoriSalter(&mojred);                                       cout<<"Svi klijenti su u redu za novootvoreni salter."<<endl<<endl;                                       system("pause");                                        system("cls");                                       ispisiStanje(&mojred);                                       system("pause");                                        break;                                case 5: system("cls");                                       ispisiStanje(&mojred);                                       system("pause");                                       break;                                default: system("cls");                                        cout<<"Neispravan unos."<<endl<<endl;                                        system("pause");                                        break;                               }//switch                 }//while     obrisi(&mojred);    return 0;}//main void dodajKlijenta(red* Q){                 element klijent;                  cout<<"Unesi ime i prezime klijenta: ";                 cin.ignore();                 getline(cin,klijent.ime);                  cout<<"Unesi godinu rodjenja klijenta: ";                 cin>>klijent.godina;                  cout<<"Unesi stanje racuna klijenta: ";                 cin>>klijent.stanje;                  cout<<"\nUnesi transakciju koju klijent zeli obaviti:"<<endl                     <<"1. uplata"<<endl                     <<"2. isplata"<<endl                     <<"3. placanje racuna"<<endl                     <<"4. dizanje kredita"<<endl<<endl;                  cout<<"Transakcija: ";                 cin>>klijent.transakcija;                  EnQueueQ(klijent,Q);   }//dodajKlijenta void pustiStarije(red* Q){                 if(IsEmptyQ(Q)) return;                        red pomoc,stariji;                  InitQ(&pomoc);                 InitQ(&stariji);                  while(!IsEmptyQ(Q)){                                     element provjeri=FrontQ(Q);                                      if(provjeri.godina>1945) EnQueueQ(provjeri,&pomoc);                                     else EnQueueQ(provjeri,&stariji);                                      DeQueueQ(Q);                                     }//while                  while(!IsEmptyQ(&stariji)){                                           EnQueueQ(FrontQ(&stariji),Q);                                           DeQueueQ(&stariji);                                           }//while                  while(!IsEmptyQ(&pomoc)){                                          EnQueueQ(FrontQ(&pomoc),Q);                                          DeQueueQ(&pomoc);                                           }//while   }//pustiStarije void ispisiStanje(red* Q){                 if(IsEmptyQ(Q)) return;                  cout<<"Ime\t\tGodina\tStanje\tTransakcija"<<endl                     <<"============================================="<<endl;                  rekurzija(Q);                 otvoriSalter(Q);     }//ispisiStanje void rekurzija(red* Q){                 element ispisi=FrontQ(Q);                  cout<<ispisi.ime<<"\t"<<ispisi.godina<<"\t"<<ispisi.stanje<<"\t"<<ispisi.transakcija<<endl;                  DeQueueQ(Q);                 if(!IsEmptyQ(Q)) rekurzija(Q);                 EnQueueQ(ispisi,Q);        }//rekurzija void makniNesposobne(red* Q){                 if(IsEmptyQ(Q)) return;                  red pomoc;                 InitQ(&pomoc);                  while(!IsEmptyQ(Q)){                                     element citaj=FrontQ(Q);                                     DeQueueQ(Q);                                      if(citaj.stanje<100 && citaj.transakcija==4) continue;                                      EnQueueQ(citaj,&pomoc);                                     }//while                  while(!IsEmptyQ(&pomoc)){                                          EnQueueQ(FrontQ(&pomoc),Q);                                          DeQueueQ(&pomoc);                                          }//while}//makniNesposobne void otvoriSalter(red* Q){                 element zapamti=FrontQ(Q);                 DeQueueQ(Q);                 if(!IsEmptyQ(Q)) otvoriSalter(Q);                 EnQueueQ(zapamti,Q);        }//otvoriSalter`