Etiketler

,

#include<iostream>
#include <string>

using namespace std;

class Hasta
{
public:
	string		Ad;
	string		SoyAd;
	int		Oncelik;
};

int kBas=-1; // kuyruk basi
int kSon=-1; //kuyruk sonu
int n = 10; //hasta kapasitesi
int HastaDizi[10];
string HastaIsimDizi[10];
int i,j;
string durum;
int es = 0;

void HastaYaz()
{
     for(int i=0; i<n; i++)
     {
             if(HastaIsimDizi[i]=="")
				cout<<" - ";           

             else
                 cout<<HastaIsimDizi[i] + ",";
     }
     cout<<endl;
}

void HastaSirala(int es, int diziOncelik[], string diziIsim[])
{
	int tempOncelik;
	string tempIsim;
	for(i = 1; i<es; i++)
	{
		for (j=0; j<es-i; j++)
		{
		   if(diziOncelik[j] > diziOncelik[j+1])
		    {

		     tempOncelik = diziOncelik [j];
		     tempIsim = diziIsim[j];

		     diziOncelik [j] = diziOncelik [j+1];
		     diziIsim[j] = diziIsim[j+1];

		     diziOncelik [j+1] = tempOncelik;
		     diziIsim[j+1] = tempIsim;
			 }
		}
	}
}

void HastaEkle(Hasta hasta)
{
	if(kSon == n-1)
		kSon = 0;
	else
		kSon++;

	if(kBas == kSon)
	{
		cout<<"===================\n";
		cout<<"| Hastane Doldu :( |\n";
		cout<<"===================\n";
		if(kSon == 0)
			kSon = n-1;
		else
			kSon--;
	}

	else
	{
	  HastaIsimDizi[kSon] = hasta.Ad + " " + hasta.SoyAd;
	  HastaDizi[kSon] = hasta.Oncelik;		

		if(kBas == -1)
			kBas = 0;		

		HastaSirala(kSon+1,HastaDizi,HastaIsimDizi);
		HastaYaz();

	}

}

void HastaSil()
{
	HastaSirala(kSon+1,HastaDizi,HastaIsimDizi);

	string silinenHasta;
	if(kBas == -1)
	{
		cout<<"===================\n";
		cout<<"| Hastane Bos :) |\n";
		cout<<"===================\n";
	}
	else
	{
		silinenHasta = HastaIsimDizi[kBas];
		HastaIsimDizi[kBas] = " ";
		HastaDizi[kBas] = NULL;

		if (kBas == kSon)
             kBas = kSon = -1;

        else
        {
			if (kBas == n - 1)
				kBas = 0;
			else
				kBas++;
        }
	}
	cout<<"Silinen Hasta:"<<silinenHasta<<endl;
	HastaSirala(kSon+1,HastaDizi,HastaIsimDizi);
	HastaYaz();
}

void HastaGirisi(Hasta hasta)
{
 cout<<"Hasta Eklemek Icin E, Silmek Icin S, CIkmak Icin X"
 <<endl;
 cin>>durum;

	switch(toupper(durum[0]))
	{
	case 'E':
		cout<<"Hasta Adi : ";
		cin>>hasta.Ad;
		cout<<endl;
		cout<<"Hasta Soyadi : ";
		cin>>hasta.SoyAd;
		cout<<endl;
		cout<<"Hasta Önceligi [0 - 7] : ";
		cin>>hasta.Oncelik;
		cout<<endl;
		if(hasta.Oncelik >= 0 && hasta.Oncelik <= 7 )
		{
			HastaEkle(hasta);
            break;
		}
		else
		{
			cout<<"Hatalý Oncelik Girdiniz.\n";
			return;
		}

     case 'S':
		 HastaSil();
		 break;
     case 'X':
		 durum="X";
         break;
     default :
		 cout<<"Yanlis bir tusa bastiniz\n";
		 durum="X";
         break;

	}
}

int main()
{
	Hasta hasta;
	while (durum!="X")
    {
    HastaGirisi(hasta);
    }
    system("PAUSE");
    return 0;
}
Reklamlar