Opzione 3 e 6

This commit is contained in:
La Programmatrice Verde 2025-05-29 11:00:31 +02:00
parent 389d4771ec
commit 25c50a4b8d
10 changed files with 82 additions and 11 deletions

View File

@ -1,6 +1,7 @@
namespace ordini_ristorante;
class Ordine {
public static int codiceOrdineProgressivo = -1;
int codiceOrdine;
DateTime dataOrdine;
string cliente;
@ -11,10 +12,8 @@ class Ordine {
this.codiceOrdine = p_codiceOrdine;
this.dataOrdine = p_dataOrdine;
this.cliente = p_cliente;
this.piatti = piatti;
this.stato = p_stato != "in preparazione" || p_stato != "pagato" || p_stato != "annullato"
? throw new FormatException("Stato non valido")
: p_stato;
this.piatti = p_piatti;
this.stato = p_stato;
}
public int GetCodiceOrdine() {

View File

@ -21,7 +21,7 @@ class Program {
case 0:
break;
case 1:
AggiungiPiatto(ristorante);
ristorante.AggiungiPiatto(CreaPiatto());
Console.WriteLine("Piatto aggiunto con successo");
Pausa();
break;
@ -30,6 +30,8 @@ class Program {
Pausa();
break;
case 3:
AggiungiOrdine(ristorante);
Console.WriteLine("Ordine aggiunto con successo");
Pausa();
break;
case 4:
@ -39,6 +41,7 @@ class Program {
Pausa();
break;
case 6:
StampaOrdini(ristorante);
Pausa();
break;
default:
@ -59,7 +62,7 @@ class Program {
Console.ReadKey();
}
static void AggiungiPiatto(Ristorante p_ristorante) {
static Piatto CreaPiatto() {
string nome;
string descrizione;
float prezzo = -1;
@ -86,9 +89,8 @@ class Program {
}
while (prezzo < 0);
p_ristorante.AggiungiPiatto(new Piatto(nome, descrizione, prezzo));
return new Piatto(nome, descrizione, prezzo);
}
static void StampaMenu(Ristorante p_ristorante) {
int i = 0;
foreach (Piatto p in p_ristorante.GetMenu()) {
@ -98,4 +100,74 @@ class Program {
i++;
}
}
static void AggiungiOrdine(Ristorante p_ristorante) {
int codiceOrdine;
//DateTime dataOrdine;
string cliente;
Piatto[] piatti;
int numeroPiatti = -1, scelta = -1;
string stato;
Console.Write("Nome del cliente: ");
cliente = Console.ReadLine();
//Console.Write("Descrizione del piatto: ");
//descrizione = Console.ReadLine();
do {
try {
Console.Write("Quanti piatti ordinare? ");
numeroPiatti = Convert.ToInt32(Console.ReadLine());
if (numeroPiatti < 0) {
Console.WriteLine("Numero di piatti non valido.");
Pausa();
}
}
catch (FormatException) {
Console.WriteLine("Numero di piatti non valido.");
Pausa();
}
}
while (numeroPiatti < 0);
piatti = new Piatto[numeroPiatti];
for (int i = 0; i < numeroPiatti; i++) {
Console.WriteLine($"Scelta del piatto n. {i + 1}\n");
Console.WriteLine("Quale piatto scegliere?");
StampaMenu(p_ristorante);
do {
try {
Console.Write("Scelta: ");
scelta = Convert.ToInt32(Console.ReadLine());
if (scelta <= 0 || scelta > p_ristorante.GetMenu().Length) {
Console.WriteLine("Scelta non valida.");
Pausa();
}
}
catch (FormatException) {
Console.WriteLine("Scelta non valida.");
Pausa();
}
}
while (scelta <= 0 || scelta > p_ristorante.GetMenu().Length);
piatti[i] = p_ristorante.GetMenu()[scelta - 1];
}
codiceOrdine = Ordine.codiceOrdineProgressivo + 1;
Ordine.codiceOrdineProgressivo = codiceOrdine;
p_ristorante.AggiungiOrdine(new Ordine(codiceOrdine, DateTime.Now, cliente, piatti, "in preparazione"));
}
static void StampaOrdini(Ristorante p_ristorante) {
int i = 0;
foreach (Ordine o in p_ristorante.GetOrdini()) {
Console.WriteLine($"Ordine n. {i + 1}:");
o.StampaOrdine();
Console.WriteLine();
i++;
}
}
}

View File

@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ordini_ristorante")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b548480f07aff0b16f63b907bd44b887976e89eb")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+389d4771ec0493bd4e269a94942e65bc5b2be348")]
[assembly: System.Reflection.AssemblyProductAttribute("ordini_ristorante")]
[assembly: System.Reflection.AssemblyTitleAttribute("ordini_ristorante")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generato dalla classe WriteCodeFragment di MSBuild.
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -1 +1 @@
d720b1271e49dc7c90fff3358be4316745aa45de2d86000c3c657a67e67a2db7
11d675b6b88938d237d510d4cd5a5d5d435c4050a48b7e13fa970f91acaeef88