2
respostas

[Projeto] Desafio: Hora da prática

1.Modelar uma classe Conta, que tenha como atributos uma classe Titular, além de
informações da conta, como agência, número da conta, saldo e limite, bem como um
método que devolva as informações da conta de forma detalhada.


class Titular1
{
    public string Nome {get; set;}
    public string Cpf {get; set;}
    public string Endereco {get; set;}
}

class Conta1
{
    public Titular1 Titular {get; set;}
    public int Agencia {get; set;}
    public int NumeroDaConta {get; set;}
    public double Saldo {get; set;}
    public double Limite {get; set;}

    public string DetalhesInformacoes => 
        $"Conta nº {this.NumeroDaConta}, Agência {this.Agencia}, Titular: {this.Titular.Nome} - Saldo: {this.Saldo}";

    public void AdicionarTitularConta (Titular1 titular)
    {
        Titular = titular;
        Console.WriteLine($"Titular {titular} Adicionado com Êxito!!");
    }

    public void ExibirDetalhes ()
    {
        Console.WriteLine($"Nome Titular: {Titular.Nome}");
        Console.WriteLine($"CFP do Titular: {Titular.Cpf}");
        Console.WriteLine($"Endereço do Titular: {Titular.Endereco}");
        Console.WriteLine($"Agência: {Agencia}");
        Console.WriteLine($"Número Da Conta: {NumeroDaConta}");
        Console.WriteLine($"Saldo: {Saldo}");
        Console.WriteLine($"Limite: {Limite}");
    }
}

2.Instanciar um objeto do tipo Conta e um do tipo Titular e mostrar as
informações de Titular, a partir da Conta.

Titular1 titular1 = new Titular1();
titular1.Nome = "Sunny";
titular1.Cpf = "777.540.123-90";
titular1.Endereco = "Rua Palmeiras de Coco";

Conta1 conta1 = new();
conta1.Titular = titular1;
conta1.Agencia = 777;
conta1.NumeroDaConta = 001;
conta1.Saldo = 1000.0;
conta1.Limite = 2000.0;

//ou 
Titular1 titular2 = new Titular1();
titular2.Nome = "Cassia";
titular2.Cpf = "000.000.000-00";
titular2.Endereco = "Rua Palmeiras de Coco";

Conta1 conta2 = new();
conta2.Agencia = 777;
conta2.NumeroDaConta = 002;
conta2.Saldo = 1000.0;
conta2.Limite = 3000.0;


conta2.AdicionarTitularConta(titular1);
conta2.ExibirDetalhes();

3.Desenvolver uma classe que represente um estoque de produtos, e que tenha
as funcionalidades de adicionar novos produtos, e exibir todos os produtos no
estoque.

class Produtos
{
    private int estoque;
    private double preco;
    public string Nome { get; set; }
    public int Estoque
    {
        get => estoque;
        set
        {
            if (value > 0)
            {
                estoque = value;
            }
            else
            {
                estoque = 0;
            }
        }
    }
    public double Preco
    {
        get => preco;
        set
        {
            if (value > 0)
            {
                preco = value;
            }
            else
            {
                preco = 10;
            }
        }
    }
    public string Detalhes => $"Produto: {this.Nome}\n" +
        $"Preço: R${this.Preco}\n" +
        $"Quantidade {this.Estoque}\n";

}

class EstoqueProdutos
{
    private List<Produtos> ListaProdutos = new List<Produtos>();

    public void Adicionar (Produtos produto)
    {
        ListaProdutos.Add(produto);
        Console.WriteLine($"Produto {produto.Nome} adicionado com sucesso!\n");
    }

    public void ExibirProdutos ()
    {
        if (ListaProdutos.Count == 0)
        {
            Console.WriteLine("Estoque vazio.");
        }
        else
        {
                Console.WriteLine("Lista de produtos no estoque:\n");

            foreach (Produtos produto in ListaProdutos)
            {
                Console.WriteLine($"{produto.Detalhes}");
            }
        }
    }
}

4.Modelar o sistema de uma escola. Crie classes para Aluno, Professor e
Disciplina. A classe Aluno deve ter informações como nome, idade e notas.
A classe Professor deve ter informações sobre nome e disciplinas lecionadas.
A classe Disciplina deve armazenar o nome da disciplina e a lista de alunos
matriculados.

class Aluno
{
    public string NomeAluno { get; set; }
    public int Idade { get; set; }
    public List<double> Notas { get; set; } = new List<double>();
}


class Professor
{
    public string NomeProf { get; set; }
    public List<string> DisciplinasLecionadas { get; set; } = new List<string>();
}


class Disciplina
{
    public List<Aluno> ListaAlunos = new List<Aluno>();
    public Professor Professor { get; set; }
    public string NomeDisciplina { get; set; }
}
2 respostas

5.Modelar um sistema para um restaurante com classes como Restaurante, Mesa,
Pedido e Cardapio. A classe Restaurante deve ter mesas que podem ser reservadas
e um cardápio com itens que podem ser pedidos. Os pedidos podem estar associados
a uma mesa.

class ProdutoRestaurante
{
    public string Nome { get; set; }
    public double Preco { get; set; }
}

class Mesa
{
    public int NumeroMesa { get; set; }
    public List<Pedido> Pedidos { get; set; } = new List<Pedido>();
}

class Pedido
{
    public ProdutoRestaurante Produto { get; set; }
    public int Quantidade { get; set; }
}

class Cardapio
{
    public List<ProdutoRestaurante> Itens { get; set; }
}

class Restaurante
{
    public List<Mesa> Mesas { get; set; }
    public Cardapio Cardapio { get; set; } = new Cardapio();
}

Oi, Christopher, como vai?

Seu projeto ficou bem organizado e mostra uma boa aplicação de relacionamento entre classes em C#, como em Conta1 usando Titular1, além do uso de List<Produtos> para controlar o estoque.

Um ponto legal é que você também criou validações nos setters de Estoque e Preco, o que ajuda a proteger os dados do objeto. Uma dica interessante para o futuro é sobrescrever o método ToString() na classe Titular1, porque hoje o trecho Console.WriteLine($"Titular {titular} Adicionado com Êxito!!"); pode mostrar apenas o nome da classe, e não os dados do titular. Veja este exemplo:

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