Ejemplo n.º 1
0
void Hotell::displayOkkupant()
{
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;
	bool funnetNr = false;
	bool funnetRes = false;

	int romNr;
	cout << "Ronmummer: ";
	cin >> romNr;

	//for alle typer rom
	for (int i = 0; i < 3; i++)
	{
		//for alle rom
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			
			tempRom = (Rom*)rom[i]->remove_no(j);
			rom[i]->add(tempRom);

			if (tempRom->getid() == romNr)
			{
				funnetNr = true;

				//henter listen over reservasjoner.
				tempList = (List*)tempRom->getlist();
				
				//alle reservasjonene til ett rom.
				for (int k = 1; k <= tempList->no_of_elements(); k++)
				{
					tempRes = (Reservasjon*)tempList->remove_no(k);
					tempList->add(tempRes);
					
					//hvis det er en reservasjon for dagens dato.
					if (timer.hent_dato() <= tempRes->getAvreise() && timer.hent_dato() >= tempRes->getAnkomst())
					{
						funnetRes = true;
						tempRes->display(true);
					}
				}
			}
		}
	}

	//hvis rommet eller reservasjonen ikke er funnet
	if (!funnetNr)
	{
		cout << "Romnummer ikke funnet" << endl;
	}
	else if (!funnetRes)
	{
		cout << "Ingen reservasjon i dag" << endl;
	}
}
Ejemplo n.º 2
0
void Hotell::ledigTidRom()
{
	int romNr;				//rommet du vil ha
	bool funnet = false;	//er rommet funnet
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	cout << "Hvilket romnummer?" << endl;
	cin >> romNr;

	//Alle romtypene
	for(int i = 0; i < 3; i++)
	{
		//Alle rommene
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			tempRom = (Rom*)rom[i]->remove_no(j);
			rom[i]->add(tempRom);

			//hvis rommet er riktig
			if (romNr == tempRom->getid())
			{
				tempList = tempRom->getlist();
				funnet = true;
				cout << "\nRommet er opptatt i perioden(e):\n";

				//hvis det ikke er noen reservasjoner
				if (tempList->no_of_elements() == 0)
				{
					cout << "Ingen reservasjoner" << endl;
				}
				else
				{
					//For alle reservasjonene
					for (int k = 1; k <= tempList->no_of_elements(); k++)
					{
						tempRes = (Reservasjon*)tempList->remove_no(k);
						tempList->add(tempRes);
						
						cout << '\t' << tempRes->getAnkomst() << "\t-\t" << tempRes->getAvreise() << endl;
					}
				}
			}
		}
	}

	//hvis rommet er funnet
	if (!funnet)
	{
		cout << "Romnummer ikke funnet." << endl;
	}
}
Ejemplo n.º 3
0
void Hotell::utskjekking()
{
	//filnavnet er egen variabel.
	ofstream fil;
	fil.open(filnavn+".HST");
	string navn;

	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	bool funnet = false;


	navn = les("\nUtskjekkers navn:");

	//for alle rom
	for (int x = 0; x < 3; x++)
	{
		for (int y = 1; y <= rom[x]->no_of_elements(); y++)
		{
			//henter ut rommet
			tempRom = (Rom*)rom[x]->remove_no(y);
			rom[x]->add(tempRom);

			tempList = tempRom->getlist();

			for (int z = 1; z <= tempList->no_of_elements(); z++)
			{
				tempRes = (Reservasjon*)tempList->remove_no(z);

				//hvis den er riktig
				if (navn == tempRes->getNavn() && timer.hent_dato() == tempRes->getAvreise())
				{
					funnet = true;

					tempRes->utskjekking(fil);
				}
				else
				{ //hvis det ikke er riktig reservasjon, sett den tilbake.
					tempList->add(tempRes);
				}
			}
		}
	}

	fil.close();
}
Ejemplo n.º 4
0
void Hotell::addRegning()
{
	int romNr;				//rommet du vil ha
	bool funnet = false;	//er rommet funnet
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	cout << "Hvilket romnummer?" << endl;
	cin >> romNr;

	//Alle romtypene
	for(int i = 0; i < 3; i++)
	{
		//Alle rommene
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			tempRom = (Rom*)rom[i]->remove_no(j);

			//hvis rommet er riktig
			if (romNr == tempRom->getid())
			{
				tempList = tempRom->getlist();
				//for alle reservasjoner
				for (int j = 0; j < tempList->no_of_elements(); j++)
				{
					tempRes = (Reservasjon*)tempList->remove_no(j);
					if (tempRes->getAnkomst() <= timer.hent_dato() && tempRes->getAvreise() >= timer.hent_dato())
					{
						funnet = true;
						//legg inn ting.
						tempRes->addRegning();
						tempList->add(tempRes);
						tempRom->replaceList(tempList);
					}
				}
			}
			rom[i]->add(tempRom);
		}
	}
}
Ejemplo n.º 5
0
void Hotell::ledigeRom(int nr)
{
	//midlertidlige variabler
	Rom* tempRom;
	List* tempResList;
	Reservasjon* tempRes;
	bool opptatt = false;

	//hvilket tidsrom vil du finne?
	int minDate = getdate("\nFra dato: ", timer.hent_dato());
	int maxDate = getdate("\nTil dato: ", minDate);

	//for alle rom av typen 'nr'
	for (int i = 1; i <= rom[nr]->no_of_elements(); i++)
	{
		tempRom = (Rom*)rom[nr]->remove_no(i);
		rom[nr]->add(tempRom);

		tempResList = (List*)tempRom->getlist();

		//for alle reservasjoner
		for (int j = 1; j <= tempResList->no_of_elements(); j++)
		{
			tempRes = (Reservasjon*)tempResList->remove_no(j);
			tempResList->add(tempRes);

			//hvis reservasjonen gjelder for 
			if (!(maxDate < tempRes->getAnkomst() || minDate > tempRes->getAvreise()))
			{
				opptatt = true;
			}
		}
		//hvis dette rommet ikke er opptatt
		if (!opptatt)
		{
			//skriv ut romnr
			cout << tempRom->getid() << ' ';
		}
	}
}