1
resposta

Faça como eu fiz: sistema de reservas em hotel

internal class Hospede
{
    public string Nome { get; set; }

    public Hospede(string nome)
    {
        Nome = nome;
    }
}
internal class Quarto
{
    public int Numero { get; set; }

    private double valorDiaria;
    public double ValorDiaria
    {
        get => 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)
    {
        Numero = numero;
    }
}
internal class Reserva
{
    private int diarias;

    public int Diarias
    {
        get => diarias;
        set
        {
            if (value > 0)
                diarias = value;
            else
                Console.WriteLine("O número de diárias deve ser maior que zero.");
        }
    }

    public Hospede HospedeReserva {  get; }

    public Quarto QuartoReserva { get; }

    public double ValorTotal
    {
        get
        {
            return QuartoReserva.ValorDiaria * diarias;
        }
    }

    public Reserva(Hospede hospedeReserva, Quarto quartoReserva, int diarias)
    {
        HospedeReserva = hospedeReserva;
        QuartoReserva = quartoReserva;
        Diarias = diarias;
    }

    public void ExibirInformacoesDaReserva()
    {
        Console.WriteLine($"Reserva para: {HospedeReserva.Nome}");
        Console.WriteLine($"Quarto: {QuartoReserva.Numero}");
        Console.WriteLine($"Valor total: {ValorTotal}");
    }
}
1 resposta

Olá, Pedro! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso das propriedades automáticas para simplificar o acesso aos dados com C#, utilizou muito bem o encapsulamento para validar informações e ainda compreendeu a importância do método de exibição para apresentar resultados de forma clara.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o override ToString() para personalizar a saída dos objetos. Assim:

public override string ToString()
{
    return $"Reserva para: {HospedeReserva.Nome}, Quarto: {QuartoReserva.Numero}, Valor total: {ValorTotal}";
}

Isso faz com que a exibição das informações seja mais prática e reutilizável em diferentes contextos.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!