concessionaria/Program.cs
La Programmatrice Verde afb1ffd370 Creazione auto
2025-04-09 10:56:20 +02:00

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;
}
}