//Fil : Main.cc
//Beskrivning : Huvudprogram
//Senast ändrad : 1998-03-01 Tor-Åke Fransson
#include <unistd.h>
#include <stdio.h>
#include "Def.hh"
#include "PHus.hh"
#include "Person.hh"
#ifdef _gnu_cc
#endif
#include "Bil.hh"
#include "Cykel.hh"
#include "Motorcykel.hh"
#define true 1
#define false 0
PHus *phus;
// denna behövs för att läsa bort skräp efter att strängklassen
// tagit input
void cin_flush(void);
void infart(Fordon *fordon);
void utfart();
int main (int argc, char *argv[])
{
char choice;
//skapa parkeringshuset
phus = new PHus;
while(true)
{
cout << "Ge kommando: bil cykel motorcykel utfart avsluta\n";
choice = cin.get();
cin_flush();
switch (choice)
{
case 'b':
infart(new Bil);
break;
case 'c':
infart(new Cykel);
break;
case 'm':
infart(new Motorcykel);
break;
case 'u':
utfart();
break;
case 'a':
cout << "Thankyou for using Parking House v1.0\n";
exit(false);
default:
cout << "Okänt kommando\n";
}
}
}
void infart(Fordon *fordon)
{
Person kund;
if (phus->ledigplats() < 0)
{
cout << " Fullt!\n";
return;
}
cout << "Vad heter kunden? : ";
cin >> kund.Namn;
kund.Fordon = fordon;
phus->parkera(kund);
}
void utfart(void)
{
String namn;
Person kund;
cout << "Vem vill åka ut? : ";
cin >> namn;
if (phus->avparkera(namn, kund))
{
cout << "Kunden som åkte var " << kund.Namn << endl;
cout << "Fordonet var en " << kund.Fordon->Typ() << "\n\n";
}
else
cout << namn << " har inget fordon parkerat här.\n";
}
void cin_flush(void)
{
char crap[256];
cin.getline(crap, 255, '\n');
}