- Kayıt
- 22 Nisan 2007
- Mesajlar
- 1.361
- Beğeniler
- 0
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
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;
}