#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
const char AGGIUNGI = 'i';
const char ELIMINA = 'e';
const char FINE = 'f';
struct Auto // definisce i dati necessari per l'identificazione di un auto
{
string marca;
string modello;
string colore;
string targa;
int anno;
Auto *nextAuto;
};
struct Marca
{
string marca;
Marca *nextMarca;
Auto *ElencoAuto;
};
struct Rivenditore
{
Marca *ElencoMarche;
};
void creaLista (Rivenditore &rivenditore);
// void aggiungiAuto();
// void togliAuto();
// Marca *cercaMarca();
void elencoMarche(Rivenditore &nuovoRivenditore);
void elencoMarche(Rivenditore &nuovoRivenditore)
{
Marca *ptr;
Marca *lastptr;
ptr = nuovoRivenditore.ElencoMarche;
while (ptr != NULL)
{
cout >> nuovoRivenditore.ElencoMarche;
ptr = ptr->nextMarca;
}
}
void creaLista (Rivenditore &rivenditore)
{
string NuovaMarca;
char operazione;
cout << "Inserisci 'a' se vuoi aggiungere una nuova marca oppure 'f' se vuoi terminare l'inizializzazione" << endl;
cin >> operazione;
while (operazione == 'a')
{
Marca *ptr;
if (rivenditore.ElencoMarche == NULL)
{
ptr = new Marca;
cout << "Inserisci il nome della nuova marca di Auto da inserire" << endl;
cin >> NuovaMarca;
ptr->marca = NuovaMarca;
ptr->nextMarca = NULL;
rivenditore.ElencoMarche = ptr;
cout << "Inserisci 'a' se vuoi aggiungere una nuova marca oppure 'f' se vuoi terminare l'inizializzazione" << endl;
cin >> operazione;
}
else
{
Marca *ptrAux;
ptrAux = rivenditore.ElencoMarche;
while (ptrAux->nextMarca != NULL)
ptrAux = ptrAux->nextMarca;
ptr = new Marca;
cout << "Inserisci il nome della nuova marca di Auto da inserire" << endl;
cin >> NuovaMarca;
ptr->marca = NuovaMarca;
ptr->ElencoAuto = NULL;
ptr->nextMarca = NULL;
ptrAux->nextMarca = ptr;
cout << "Inserisci 'a' se vuoi aggiungere una nuova marca oppure 'f' se vuoi terminare l'inizializzazione" << endl;
cin >> operazione;
}
}
}
//Marca *cercaMarca( *lista, string nome_marca)
// {
// Marca *elementoCorrente = lista
// while (elementoCorrente != NULL)
// {
// if ((strmcp(elementoCorrente->nexMarca, nome_marca == 0)
// {
// return elementoCorrente;
// }
// elementoCorrente = elementoCorrente->nextMarca;
// elementoCorrente = lista;
// }
// return NULL;
// }
int main (int argc, const char * argv[])
{
Auto nuovaAuto;
Rivenditore NuovoRivenditore; // Crea una variabile di tipo rivenditore
NuovoRivenditore.ElencoMarche = NULL; // inizializzo la variabile NuovoRivenditore a 0 (non punta cioË a nessun elemento)
creaLista (NuovoRivenditore); // inizializzo la lista contenente tutte le marche
char operazione;
int FindMarca; // variabile che restituisce 0 nel caso in cui la marca non Ë presente nel DataBase oppure 1 se Ë presente.
cout << "Inserisci di seguito l'operazione che vuoi effettuare sul DataBase" << endl;
cout << "Per aggiungere un auto digita 'i', per eliminarla digita 'e' per terminare il sfw digita 'f' " << endl;
cin >> operazione;
while (operazione != FINE)
if (operazione == AGGIUNGI)
{
cout << "Inserire i seguenti dati per registrare la nuova auto" << endl;
cout << "Inserire la marca dell'auto" << endl;
cin >> nuovaAuto.marca;
cout << "Inserire il modello dell'auto" << endl;
cin >> nuovaAuto.modello;
cout << "Inserire il colore dell'auto" << endl;
cin >> nuovaAuto.colore;
cout << "Inserire il numero di targa dell'auto" << endl;
cin >> nuovaAuto.targa;
cout << "Inserire l'anno di immatricolazione dell'auto (AAAA) " << endl;
cin >> nuovaAuto.anno;
// FindMarca = cercaMarca( ,nuovaAuto.marca)
// if (FindMarca == 0)
// {
// aggiungiMarca();
// aggiungiAuto();
// }
// else if (FindMarca == 1)
// {
// aggiungiAuto();
// }
}
else if (operazione == ELIMINA)
{
return 0;
}
system("PAUSE");
}