144 lines
4.3 KiB
C#
144 lines
4.3 KiB
C#
namespace concessionaria;
|
|
|
|
class Program {
|
|
static void Main(string[] args) {
|
|
Console.Clear();
|
|
int scelta, dimensione;
|
|
Auto[] listaAuto;
|
|
do {
|
|
Console.WriteLine("Inserire una scelta");
|
|
Console.WriteLine("1. Crea concessionaria");
|
|
Console.WriteLine("2. Stampa dati auto");
|
|
Console.WriteLine("3. Promozione primavera");
|
|
Console.WriteLine("0. Esci");
|
|
Console.Write("Scelta: "):
|
|
scelta = Convert.ToInt32(Console.ReadLine());
|
|
|
|
switch (scelta) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
Console.Clear();
|
|
do {
|
|
Console.Write("Quante auto sono presenti? ");
|
|
dimensione = Convert.ToInt32(Console.ReadLine());
|
|
if (dimensione <= 0) {
|
|
Console.WriteLine("Non è possibile considerare un numero di auto minore o uguale a zero");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (dimensione <= 0);
|
|
|
|
listaAuto = new Auto[dimensione];
|
|
|
|
for (int i = 0; i < dimensione; i++) {
|
|
Console.WriteLine($"Inserimento dati auto n. {i + 1}");
|
|
listaAuto[i] = CreaAuto();
|
|
}
|
|
Pausa();
|
|
break;
|
|
case 2:
|
|
Console.Clear();
|
|
Pausa();
|
|
break;
|
|
case 3:
|
|
Console.Clear();
|
|
Pausa();
|
|
break;
|
|
default:
|
|
Console.WriteLine("Opzione non valida.");
|
|
Pausa();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void Pausa() {
|
|
Console.WriteLine("Premere un tasto per continuare. . .");
|
|
Console.ReadKey();
|
|
Console.Clear();
|
|
}
|
|
static Auto CreaAuto() {
|
|
string targa, marca, modello;
|
|
int cavalli, bollo;
|
|
double prezzo;
|
|
bool controlloTarga;
|
|
Auto auto;
|
|
|
|
do {
|
|
Console.Write("Inserire la targa: ");
|
|
targa = Console.ReadLine();
|
|
controlloTarga = ControlloTarga(targa)
|
|
if (!controlloTarga) {
|
|
Console.WriteLine("Targa non valida.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (!controlloTarga);
|
|
|
|
Console.Write("Inserire la marca: ");
|
|
marca = Console.ReadLine();
|
|
|
|
Console.Write("Inserire il modello: ");
|
|
modello = Console.ReadLine();
|
|
|
|
do {
|
|
Console.Write("Inserire i cavalli: ");
|
|
cavalli = Convert.ToInt32(Console.ReadLine());
|
|
if (cavalli <= 0) {
|
|
Console.WriteLine("Numero di cavalli non valido.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (cavalli <= 0);
|
|
|
|
do {
|
|
Console.Write("Inserire il prezzo: ");
|
|
prezzo = Convert.ToDouble(Console.ReadLine());
|
|
if (prezzo <= 0) {
|
|
Console.WriteLine("Prezzo non valido.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (prezzo <= 0);
|
|
|
|
auto = new Auto(targa, marca, modello, cavalli, prezzo);
|
|
auto.SetBollo();
|
|
|
|
return auto;
|
|
}
|
|
|
|
static bool ControlloTarga(string targa) {
|
|
//Formato targa accettato: AB123CD
|
|
|
|
bool ritorno = true;
|
|
const int LUNGHEZZA = 7;
|
|
|
|
if (targa.length != LUNGHEZZA) {
|
|
ritorno = false; //la targa non è della lunghezza corretta
|
|
}
|
|
if (ritorno) {
|
|
for (int i = 0; i < 2 && ritorno; i++) {
|
|
if (!(char.IsLetter(targa[i]))) {
|
|
ritorno = false
|
|
}
|
|
}
|
|
if (ritorno) {
|
|
for (int i = 2; i < 5 && ritorno; i++) {
|
|
if (!(char.IsNumber(targa[i]))) {
|
|
ritorno = false
|
|
}
|
|
}
|
|
if (ritorno) {
|
|
for (int i = 5; i < 7 && ritorno; i++) {
|
|
if (!(char.IsLetter(targa[i]))) {
|
|
ritorno = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return ritorno;
|
|
}
|
|
} |