Si deve preparare un sistema per gestire la compagnia di autonoleggio Avis. A tale scopo si consideri la
class Auto {
string marca;
string modello;
unsigned cilindrata;
unsigned nPorte;
string alimentazione;
string targa;
public:
Auto();
La compagnia ha una serie di filiali dislocate sul territorio nazionale. Ciascuna di esse gestisce una serie di automobili,
le quali possono essere affidate in noleggio ai clienti della compagnia. Si noti che, per semplicità, ciascuna auto presa in
noleggio da un cliente in una certa filiale può essere riconsegnata solo nella filiale dove è stata ritirata. Ciascuna filiale
deve sapere in ogni momento quali sono le auto disponibili e quali, invece, sono fuori in noleggio. Inoltre, il sistema
deve prevedere la possibilità che la compagnia decida di assegnare delle nuove auto ad una filiale. A tale scopo, si
implementino tutti i metodi della classe FILIALE, la cui interfaccia è riportata di seguito:
class Filiale{
private:
Auto* elencoAuto;
bool* autoDisponibili;
unsigned nMaxAuto;
public:
Filiale();
~Filiale();
bool riconsegnaAuto(unsigned);
};
Infine, si dia una possibile interfaccia di una classe AUTONOLEGGIO che contiene un elenco di 10 filiali. La classe
deve contenere necessariamente un metodo operator[] che dato un indice i consente di accedere direttamente alla
filiale in posizione i,
e un metodo cercaAuto che, data una stringa t, e ifica e di nibile nell a n leggi (ci nelle a ie filiali)
na che abbia na a ga i c i 3 ca a e i cen ali ian a i i a t. N.B. I metodi operator[] e cercaAuto devono
essere implementati.
CLASSE AUTO
return i
0 a marca a modello
return o i
CLASSE FILIALE
autoDisponibili ti call
f
return o
Auto
fecit i o in i a
elena detti E li
auto DisponibiliCi D i
fa int i o in Auto i tt
Filiale
i Filiale operator coattadelf
f this f 1
delete E elencoAuto
delete autoDisponibili
Auto
f in inAuto
n MaxAnto
nMaxAuto
elencoAuto
f Auto Grattato
new
auto Disponibili li li
f autoDisponibili
return this
f nato n RexAuto
else ritrattato 2
templi elencoAuto li
tempDID auto Disponibili È
delete I elencoAuto
delete E auto Disponibili
elencoAuto temp E
elenco AutoInAuto a
CLASSE AUTONOLEGGIO
class Autonoleggio
private
Filiale elencati balli o
public
Filiale operator CIhaled unsigned
baal cercaAuto stung
g
Filiale Autonoleggio Autonoleggio operator
Rf
Filiale
una
gradi
return elencoFiliali i
int
fa i o i cio itt
carattericentrali t
targa Di
f stampa carattericentrali D
return bene
else carattericentrali
i
return false