Return to Snippet

Revision: 36284
at November 20, 2010 04:28 by redops28


Initial Code
#include <iostream>
struct tklijent {
  int godina, stanje_na_racunu;
  char ime_i_prezime[40], vrsta_transakcije[30];
  };
//#include "red_polje.h"
#include "red_pokazivac.h"
using namespace std;
tklijent klijent, klijent2;

void dodaj (red *Q){
  int izb;
  cin.ignore();
  cout << "Ime i prezime klijenta: ";
  cin.getline(klijent.ime_i_prezime, 40);

  cout << "Godina rodenja: ";
  cin >> klijent.godina;

  cout << "Stanje na bankovnom racunu: ";
  cin >> klijent.stanje_na_racunu;

 cout << "Vrsta transakcije koju klijent zeli obaviti" << endl;
  do{
    cout << "1. Uplate/isplate" << endl;
    cout << "2. Placanje racuna" << endl;
    cout << "3. Krediti" << endl;
    cout << "Vrsta transakcije (1/2/3): ";
    cin >> izb;
    if (izb == 1) strcpy (klijent.vrsta_transakcije, "Uplate/isplate");
    if (izb == 2) strcpy (klijent.vrsta_transakcije, "Placanje racuna");
    if (izb == 3) strcpy (klijent.vrsta_transakcije, "Krediti");
    }while(izb != 1 && izb !=2 && izb !=3);
    EnQueueQ(klijent, Q);
  };
  
void pusti (red *Q){
   red *pr = new red;
   red *pr2 = new red;
   InitQ (pr);
   InitQ (pr2);

   do{
   klijent = FrontQ(Q);
   if (klijent.godina < 1945) EnQueueQ(klijent, pr);
   else EnQueueQ(klijent, pr2);

   DeQueueQ(Q);
    }while(IsEmptyQ(Q) != -1);
    
   while (IsEmptyQ(pr) != -1){
        klijent = FrontQ(pr);
        EnQueueQ(klijent, Q);
        DeQueueQ(pr);
        }
    while (IsEmptyQ(pr2) != -1){
        klijent = FrontQ(pr2);
        EnQueueQ(klijent, Q);
        DeQueueQ(pr2);
        }

    InitQ(pr);
    cout << "Stanje na redu: " << endl;
    do{
       klijent = FrontQ(Q);
       cout << "---------------------------" << endl;
       cout << "Ime i prezime klijenta: " << klijent.ime_i_prezime << endl;
       cout << "Godina rodenja: " << klijent.godina << endl;
       cout << "Stanje na bankovnom racunu: " << klijent.stanje_na_racunu << " kn" << endl;
       cout << "Vrsta transakcije: " << klijent.vrsta_transakcije << endl;
       EnQueueQ(klijent, pr);
       DeQueueQ(Q);
      }while(IsEmptyQ(Q) != -1);
  
    while (IsEmptyQ(pr) != -1){
        klijent = FrontQ(pr);
        EnQueueQ(klijent, Q);
        DeQueueQ(pr);
        }
    
  delete pr, pr2;
  };


void izbaci (red *Q){
    red *pr = new red;
    InitQ(pr);
    do{
    klijent = FrontQ(Q);
    if (klijent.stanje_na_racunu < 100 && strcmp(klijent.vrsta_transakcije, "Krediti")==0) DeQueueQ(Q);
    else{
        EnQueueQ(klijent, pr);
        DeQueueQ(Q);
        }
      }while(IsEmptyQ(Q) != -1);

    cout << "Stanje na redu: " << endl;
    do{
       klijent = FrontQ(pr);
       cout << "---------------------------" << endl;
       cout << "Ime i prezime klijenta: " << klijent.ime_i_prezime << endl;
       cout << "Godina rodenja: " << klijent.godina << endl;
       cout << "Stanje na bankovnom racunu: " << klijent.stanje_na_racunu << " kn" << endl;
       cout << "Vrsta transakcije: " << klijent.vrsta_transakcije << endl;
       EnQueueQ(klijent, Q);
       DeQueueQ(pr);
      }while(IsEmptyQ(pr) != -1);
      delete pr;
  };

void zatvori(red *Q){
    tklijent klijent = FrontQ(Q);
    DeQueueQ(Q);
    if (IsEmptyQ(Q) != -1) zatvori (Q);
   EnQueueQ(klijent, Q);
  };
  
void stanje(red *Q){  
    red *pr = new red;
    InitQ(pr);
    cout << "Stanje na redu: " << endl;
        do{
           klijent = FrontQ(Q);
           cout << "---------------------------" << endl;
           cout << "Ime i prezime klijenta: " << klijent.ime_i_prezime << endl;
           cout << "Godina rodenja: " << klijent.godina << endl;
           cout << "Stanje na bankovnom racunu: " << klijent.stanje_na_racunu << " kn" << endl;
           cout << "Vrsta transakcije: " << klijent.vrsta_transakcije << endl;
           EnQueueQ(klijent, pr);
           DeQueueQ(Q);
          }while(IsEmptyQ(Q) != -1);
      
        while (IsEmptyQ(pr) != -1){
            klijent = FrontQ(pr);
            EnQueueQ(klijent, Q);
            DeQueueQ(pr);
            }

    delete pr;
  };

int main(){
    int izb;
    char jos;
    red *Q = new red;
    InitQ(Q);
    do{
       cout << endl << "--Izbornik--" << endl;
       cout << "1. Dodaj zapis o klijentu" << endl;
       cout << "2. Pusti klijente rodene prije 1945. godine na pocetak reda" << endl;
       cout << "3. Izbaci klijente iz reda koji na racunu imaju manje od 100 kn i zele kredit" << endl;
       cout << "4. Zatvori jedan salter i otvoriti drugi" << endl;
       cout << "9. Izlaz iz programa" << endl;
       cout << "Izbor: ";
       cin >> izb;
       switch(izb){
              case 1: do{
                      dodaj(Q);
                      cout << endl << "Novi zapis (d/n): ";
                      cin >> jos;
                      }while(jos == 'd');
                      break;
              case 2: pusti (Q); break;
              case 3: izbaci(Q);break;
              case 4: zatvori(Q);
                      stanje(Q);break;
          }
      }while(izb != 9);

}

Initial URL

                                

Initial Description
SP_Z3

Initial Title
SP_Z3_glavni_program_jz.cpp

Initial Tags

                                

Initial Language
C++