1
resposta

Desafio: Resolucao, PetShop e Oficina

Petshop

namespace DesafioAlura06.PetShop
{
    class Pet
    {
        public Pet(string nome, string raca, string especie, string sexo)
        {
            Nome = nome;
            Raca = raca;
            Especie = especie;
            Sexo = sexo;
        }

        public string Nome { get; }
        public string Raca { get; }
        public string Especie { get; }
        public string Sexo { get; }
    }
}
class Medico
{
    public Medico(string nome, int idade, string especialidade)
    {
        Nome = nome;
        Idade = idade;
        Especialidade = especialidade;
    }

    public string Nome { get; }
    public int Idade { get; }
    public string Especialidade { get; set; }
}
class Dono
{
    public Dono(int idade, string nome, string contato)
    {
        Idade = idade;
        Nome = nome;
        Contato = contato;
    }
    public int Idade { get; }
    public string Nome { get; }
    public string Contato { get; }
}

class Consulta
{
    public Consulta(string nomePetShop, DateTime dataDaConsulta, Dono donoPet, Medico veterinario, Pet pets)
    {
        NomePetShop = nomePetShop;
        DataDaConsulta = dataDaConsulta;
        DonoPet = donoPet;
        Veterinario = veterinario;
        Pets = pets;
    }

    public string NomePetShop { get; set; }
    public DateTime DataDaConsulta { get; set; }
    public Dono DonoPet { get; set; }
    private double PrecoConsulta { get; set; }
    public Medico Veterinario { get; set; }
    public Pet Pets { get; set; }

    public void ExibirFicha()
    {
        Console.WriteLine($"Petshop {NomePetShop}\n------ Ficha Tecnica ------\n");
        Console.WriteLine($"\nInformacoes do Dono: \nNome: {DonoPet.Nome}\nContato: {DonoPet.Contato}");
        Console.WriteLine($"\nInformacoes do Pet: \nNome: {Pets.Nome}\nRaça: {Pets.Raca}\nEspecie: {Pets.Especie}\nSexo: {Pets.Sexo}");

        Console.WriteLine($"\nData da Consulta: {DataDaConsulta.ToString("dd/MM/yyyy - HH:mm")}\nCom o Médico: {Veterinario.Nome} ");
        Console.WriteLine($"O valor da consulta será de R${PrecoConsulta.ToString("F2")}, que deverá ser pago no dia da Consulta");
    }

    public void ValorConsulta(double valor)
    {
        PrecoConsulta = valor;
    }
}

Oficina

class Veiculo
{
    public Veiculo(string marca, string modelo, int ano, string placa)
    {
        Marca = marca;
        Modelo = modelo;
        Ano = ano;
        Placa = placa;
    }

    public string Marca { get; set; }
    public string Modelo { get; set; }
    public int Ano { get; set; }
    public string Placa { get; set; }
}
namespace DesafioAlura06.Oficina
{
    class Oficina
    {
        public Oficina()
        {
            List<FichaCliente> VeiculosNaOficina = new List<FichaCliente>();
        }

        public List<FichaCliente> VeiculosNaOficina = new();

        public void AdicionarFicha(FichaCliente ficha)
        {
            VeiculosNaOficina.Add(ficha);
        }

        public void ListarVeiculos()
        {
            foreach(FichaCliente f in VeiculosNaOficina)
            {
                Console.WriteLine($"Carro: {f.Carro.Modelo}\nModelo: {f.Carro.Modelo}\nPlaca: {f.Carro.Placa}");
            }
        }
    }
}
class Mecanico
{
    public Mecanico(string nome, string especialidade)
    {
        Nome = nome;
        Especialidade = especialidade;
    }

    public string Nome { get; set; }
    public string Especialidade { get; set; }

}
    class FichaCliente
{
    public FichaCliente(Veiculo carro, Cliente clienteInfo, Mecanico mecanicoAtribuido)
    {
        Carro = carro;
        ClienteInfo = clienteInfo;
        MecanicoAtribuido = mecanicoAtribuido;
    }

    public Veiculo Carro { get; set; }
    public Cliente ClienteInfo { get; set; }
    public Mecanico MecanicoAtribuido { get; set; }
    public DateTime DataAgendada { get; set; }

    public void AgendarServico(DateTime dataAgendada)
    {            
        DataAgendada = dataAgendada;
        Console.WriteLine($"Serviço para o carro {Carro.Modelo} com a Placa {Carro.Placa} do cliente {ClienteInfo.Nome} foi agendado para a data {dataAgendada.ToString("dd/MM/yyyy - HH:mm")}");
    }
    public void ExibirFicha()
    {
        Console.WriteLine("Ficha do Cliente: ");
        Console.WriteLine($"Cliente: {ClienteInfo.Nome}\nContato: {ClienteInfo.Contato}");
        Console.WriteLine("Infomacao Carro: ");
        Console.WriteLine($"Carro: {Carro.Modelo}\nPlaca: {Carro.Placa}");
        Console.WriteLine($"Mecanico Atribuido: \nNome: {MecanicoAtribuido.Nome}");
    }
}
class Cliente
{
    public Cliente(string nome, string contato)
    {
        Nome = nome;
        Contato = contato;
    }

    public string Nome { get; set; }
    public string Contato { get; set; }

}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Arielson! Como vai?

Agradeço por compartilhar.

Gostei da sua estrutura nas classes PetShop e Oficina, ficou bem organizada e demonstra um bom entendimento sobre Orientação a Objetos. A forma como você usou os construtores e as propriedades imutáveis mostra cuidado com o encapsulamento e clareza no design.

Continue praticando criando instâncias dessas classes e testando suas interações no método Main, isso ajuda muito a consolidar o aprendizado.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!