// Fil : PHus.cc
// Beskrivning : En parkeringhusklass
// Version : 1
// Senast ändrad : 1998-03-01 Tor-Åke Fransson
#include "PHus.hh"
PHus::PHus()
{
cout << "Skapar nytt PHus med 10 platser...\n";
// fixa 10 lediga platser
for (int i=0;i<10;i++)
pplats[i].ockupant=NULL;
}
int PHus::ledigplats()
{
// sök reda på en tom plats
for (int i=0;i<10;i++)
{
if (pplats[i].ockupant==NULL)
{
return i;
}
}
return -1;
}
void PHus::visastatus()
{
char typ[64];
cout << "|";
for (int i=0;i<10;i++)
{
if (pplats[i].ockupant==NULL)
{ // Inget fordon på denna plats
cout << " |";
}
else
{ // markera med första bokstaven i fordonstypens namn
strcpy(typ, pplats[i].ockupant->Typ());
cout << typ[0] << "|";
}
}
cout << endl;
}
bool PHus::parkera(Person &kund)
{
int lp;
// vi hade inte släppt in någon i p-huset om det inte fanns nån ledig plats
lp = ledigplats();
pplats[lp].ockupant = kund.Fordon;
kund.PPlats = lp;
kund.Biljett = automat.TaBiljett();
databas.Add(kund);
visastatus();
return (true);
}
bool PHus::avparkera(String namn, Person &kund)
{
if (databas.Find(namn, kund))
{
pplats[kund.PPlats].ockupant= NULL;
automat.BetalaBiljett(kund.Biljett);
visastatus();
databas.Delete(namn);
return true;
}
else
return false;
}