concessionaria/Program.cs

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;
}
}
while(scelta != 0);
}
static void Pausa() {
Console.WriteLine("Premere un tasto per continuare. . .");
Console.ReadKey();
Console.Clear();
}
static Auto CreaAuto() {
string targa, marca, modello;
int cavalli, bollo, 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.ToInt32(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;
}
}