1. Reklam


    1. joysro
      ledas
      jungler
      keasro
      zeus
      karantina

Bankalar icin Numaramatik(Kuyruk Ornegi)


  1. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Bir bankanin musterilerini urettigi numaraya gore kuyruga atan program. Iki cesit musteri var. Siradan ve oncelikli musteri diye programda uc oncelikli bir siradan musteriyi kuyruktan aliyo.

    EKRAN CIKTISI
    Kod:
    /*
    /-----------------------------------------------------------\
    |****************** OSMAN KARABULUT ***************************|
    |*** Bir banka için müsterilere sıra numarası üreten bir ***|
    |** program yazınız. Bu programa göre öncelikli ve sıradan *|
    |** müşterileri tutan iki kuyruk yapısı uygulayın. *********|
    |** 3 öncelikli ve 1 sıradan müşteri işleme alınsın. *******|
    |** Programda müşteri geldiğinde 1 seçeneği seçilsin ve ****|
    |** gelen muşteri türü belirtilsin. 2. seçeneği ile banka **|
    |** görevlisinin sıradaki müşteriyi çağırdığını düşünün ve *|
    |** çağırılan müşterinin bekleme numarası ekrana yazılsın. *|
    |** 3. seçenekte kuyrukların durumları rapor edilsin. ******|
    |***********************************************************|
    \-----------------------------------------------------------/
    */
    
    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    class Dugum
    {
    private:
        int bilgi;
    public:
        Dugum *sonraki;
        Dugum(){bilgi = 0;}
        Dugum(int a){ bilgi = a;}
        int deger(){return bilgi;}
        ~Dugum(){}
    };
    
    class Kuyruk
    {
        public:
            Dugum *bas;
            Dugum *son;
            Kuyruk(int a)
            {
                Dugum *tut = new Dugum(a);
                bas = tut;
                son = tut;
    
            }
            Kuyruk()
            {
                bas = 0;
                son = 0;
            }
            void push(int );
            int pop();
            void yazdir();
            bool bosMu();
        
    };
    bool Kuyruk::bosMu()
    {
        if(bas == 0)
            return true;
        else
            return false;
    }
    void Kuyruk::push(int a)
    {
        Dugum *tut = new Dugum(a);
        if( bas == 0 && son == 0 )
        {
            bas = tut;
            son = tut;
            son->sonraki = 0;
            cout<<"Kuyrugun Sonuna "<<a <<" eklendi.\n";    
        }    
        else
        {
            son->sonraki = tut;
            son = tut;
            tut->sonraki = 0;
            cout<<"Kuyrugun Sonuna "<<a <<" eklendi.else\n";
        }
    }
    
    int Kuyruk::pop()
    {
        Dugum *tut = new Dugum(0);
        int a = bas->deger();
        if(bas->deger() == 0 && son->deger() == 0)
        {
            cout<<"Kuyruk Bos!Herhangi Bir Deger Cikaramazsiniz...\n";
        }
        else if(bas == son)
        {
            tut = bas;
            cout<<"Basdaki "<<tut->deger()<<" ilk sayi cikarildi...\n";
            delete bas;
            son = tut;
        }
        else
        {
            tut = bas;
            cout<<"Basdaki "<<tut->deger()<<" ilk sayi cikarildi...\n";
            tut = bas->sonraki;
            delete bas;
            bas = tut;
        }
        return a;
    }
    
    void Kuyruk::yazdir()
    {
        Dugum *tut = new Dugum();
        if(bas->deger() == 0)
        {
            cout<<"Kuyruk Bos!Yazdirilacak Deger Bulunmamaktadir...\n";
        }
        else{
            for(tut = bas; tut != 0; tut = tut->sonraki)
              cout<<tut->deger()<<"  ";
              cout<<endl;
        }
    }
    int menu()
    {
        int secim;
        printf("\n\t\t\t%c",201);
        for(int i = 0 ; i < 26 ; i++)
        printf("%c",205);
        printf("%c\n",187);
        printf("\t\t\t%c 1. Kuyruga Musteri Ekle  %c\n"
               "\t\t\t%c 2. Kuyruktan Mesteri Al  %c\n"
               "\t\t\t%c 3. Kuyrugu yazdir        %c\n"
               "\t\t\t%c 4. CIKIS                 %c\n"
               ,186,186,186,186,186,186,186,186);
        printf("\t\t\t%c",204);
        for(int i = 0 ; i < 26 ; i++)
        printf("%c",205);
        printf("%c\n",185);
        printf("\t\t\t%c       Seciminiz ?        %c \n"
               ,186,186);
        printf("\t\t\t%c",200);
        for(int i = 0 ; i < 26 ; i++)
        printf("%c",205);
        printf("%c\n\t\t\t",188);
        scanf_s("%d",&secim);
        return secim;
    }
    int menu2()
    {
        int secim;
        printf("\n\t\t%c",201);
        for(int i = 0 ; i < 49 ; i++)
        printf("%c",205);
        printf("%c\n",187);
        printf("\t\t%c\tOncelikli Musteri Eklemek icin --> 1      %c\n"
               "\t\t%c\t Siradan  Musteri Eklemek icin --> 2      %c\n"
               ,186,186,186,186);
        printf("\t\t%c",204);
        for(int i = 0 ; i < 49 ; i++)
        printf("%c",205);
        printf("%c\n",185);
        printf("\t\t%c\t          Seciminiz ?                     %c \n"
               ,186,186);
        printf("\t\t%c",200);
        for(int i = 0 ; i < 49 ; i++)
        printf("%c",205);
        printf("%c\n\t\t",188);
        scanf_s("%d",&secim);
        return secim;    
    }
    int main()
    {
        Kuyruk *oncelikli = new Kuyruk();
        Kuyruk *siradan = new Kuyruk();
        int secim , siraNo , secim1 , sayac = 0 , cikar;
        system("color 1e");
        srand(time(NULL));
        secim = menu();
        while(secim != 4)
        {
            system("cls");
            if(secim == 1)
            {
                secim1 = menu2();
                if(secim1 == 1)
                {
                    siraNo = rand()%200+100;
                    printf("\t\t");
                    oncelikli->push(siraNo);
                }
                else if(secim1 == 2)
                {
                    printf("\t\t");
                    siraNo = rand()%500+300;
                    siradan->push(siraNo);
                }
            }
            else if(secim == 2)
            {
                bool kontrol = siradan->bosMu();
                bool kontrol1 = oncelikli->bosMu();
                if(!(sayac % 4) && kontrol == false)
                {
                    printf("\n\n\t\t");
                    cikar = siradan -> pop();
                    printf("\n\n\t\t");
                    printf("%d Numarali Siradan Musteri Islem yapti\n",cikar);
                    sayac++;
                }
                else if(kontrol1 == false)
                {
                    printf("\n\n\t\t");
                    cikar = oncelikli ->pop();
                    printf("\n\n\t\t");
                    printf("%d Numarali Oncelikli Musteri Islem yapti\n",cikar);
                    sayac++;
                }
                else
                    printf("\n\n\t\tKUYRUKTA MUSTERI YOK!!!\n");
            }
            else if(secim == 3)
            {    
                if(oncelikli->bosMu() != true)
                {
                    printf("\n\n\t\t");
                    printf("Oncelikli Musteriler \n");
                    printf("\n\n\t\t");
                    oncelikli->yazdir();
                }
                else
                    printf("\n\n\t\t\tOncelikli Musteriler BOS \n");
                if(siradan->bosMu() != true)
                {
                    printf("\t\t");
                    printf("Siradan Musteriler \n");
                    printf("\t\t");
                    siradan->yazdir();
                }
                else
                    printf("\t\t\tSiradan Musteriler BOS \n");
            }
            secim = menu();
        }
        printf("\t\t\t");    
        return 0;
    }