rettangolo/Program.cs
La Programmatrice Verde 10d60f3b51 Caso default
2025-04-11 12:32:16 +02:00

153 lines
6.6 KiB
C#

namespace rettangolo;
class Program {
static void Main(string[] args) {
Console.Clear();
double altezza, segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura;
int scelta;
Rettangolo forma1 = null, forma2 = null;
do {
Console.WriteLine("Inserire un'opzione:");
Console.WriteLine("1. Crea 2 rettangoli");
Console.WriteLine("2. Mostra rettangoli");
Console.WriteLine("3. Mostra area e perimetro rettangoli");
Console.WriteLine("4. Modifica rettangoli"); ;
Console.WriteLine("0. Esci");
Console.Write("Scelta: ");
scelta = Convert.ToInt32(Console.ReadLine());
switch (scelta) {
case 0:
break;
case 1:
Console.Clear();
do {
Console.Write("Inserire la base del primo rettangolo: ");
segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine());
if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) {
Console.WriteLine("Errore: la base non può essere minore o uguale a zero");
}
}
while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0);
do {
Console.Write("Inserire l'altezza del primo rettangolo: ");
altezza = Convert.ToDouble(Console.ReadLine());
if (altezza <= 0) {
Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero");
}
}
while (altezza <= 0);
forma1 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza);
do {
Console.Write("Inserire la base del secondo rettangolo: ");
segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine());
if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) {
Console.WriteLine("Errore: la base non può essere minore o uguale a zero");
}
}
while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0);
do {
Console.Write("Inserire l'altezza del secondo rettangolo: ");
altezza = Convert.ToDouble(Console.ReadLine());
if (altezza <= 0) {
Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero");
}
}
while (altezza <= 0);
forma2 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza);
Pausa();
break;
case 2:
Console.Clear();
if (forma1 == null || forma2 == null) {
Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarli");
}
else {
StampaRettangoli(forma1, forma2);
}
Pausa();
break;
case 3:
Console.Clear();
if (forma1 == null || forma2 == null) {
Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarne area e perimetro");
}
else {
StampaAreaEPerimetro(forma1, forma2);
}
Pausa();
break;
case 4:
Console.Clear();
if (forma1 == null || forma2 == null) {
Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di modificarli");
}
else {
do {
Console.Write("Inserire l'altezza del primo rettangolo: ");
altezza = Convert.ToDouble(Console.ReadLine());
if (altezza <= 0) {
Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero");
}
}
while (altezza <= 0);
forma1.SetAltezza(altezza);
do {
Console.Write("Inserire la base del secondo rettangolo: ");
segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine());
if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) {
Console.WriteLine("Errore: la base non può essere minore o uguale a zero");
}
}
while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0);
forma2.setSegmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura);
StampaRettangoli(forma1, forma2);
StampaAreaEPerimetro(forma1, forma2);
}
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 void StampaRettangoli(Rettangolo p_forma1, Rettangolo p_forma2) {
Console.WriteLine("Rettangolo 1:");
p_forma1.StampaRettangolo();
Console.WriteLine("\nRettangolo 2");
p_forma2.StampaRettangolo();
}
static void StampaAreaEPerimetro(Rettangolo p_forma1, Rettangolo p_forma2) {
Console.WriteLine("Rettangolo 1:");
Console.WriteLine($"Area: {p_forma1.CalcolaArea()}");
Console.WriteLine($"Perimetro: {p_forma1.CalcolaPerimetro()}");
Console.WriteLine("\nRettangolo 2");
Console.WriteLine($"Area: {p_forma2.CalcolaArea()}");
Console.WriteLine($"Perimetro: {p_forma2.CalcolaPerimetro()}");
}
}