Hospede.cs
public class Hospede
{
public string Nome { get; set; }
public Hospede(string nome)
{
this.Nome = nome;
}
}
Quarto.cs
public class Quarto
{
public int Numero { get; set; }
private double valorDiaria;
public double ValorDiaria
{
get { return valorDiaria; }
set
{
if (value > 0)
valorDiaria = value;
else
Console.WriteLine("Erro: O valor da diária deve ser maior que zero.");
}
}
public Quarto(int numero)
{
this.Numero = numero;
}
}
Reserva.cs
public class Reserva
{
private int diarias;
public Hospede Hospede { get; }
public Quarto Quarto { get; }
public Reserva(Hospede hospede, Quarto quarto, int diarias)
{
if (diarias <= 0)
{
throw new ArgumentException("O número de diárias deve ser maior que zero.");
}
Hospede = hospede;
Quarto = quarto;
this.diarias = diarias;
}
public double ValorTotal
{
get { return Quarto.ValorDiaria * diarias; }
}
}
Program.cs
Hospede hospede = new Hospede("Matheus Oliveira");
Quarto quarto = new Quarto(65);
quarto.ValorDiaria = 365;
Reserva reserva = new Reserva(hospede, quarto, 3);
Console.WriteLine("Reserva para: " + reserva.Hospede.Nome);
Console.WriteLine("Quarto: " + reserva.Quarto.Numero);
Console.WriteLine("Valor total: R$ " + reserva.ValorTotal.ToString("F2"));