3
respostas

Minha resolução

Eu até pensei em inserir uma tabela auxiliar para N:N, mas não vem ao caso no momento, então fiz o mais simples possível:

namespace PedidosOnline
{
    public class Cliente
    {
        public string nome;
        public string cpf;
        public string celular;
        public string email;
    }
    public class Produto
    {
        public string nome;
        public string descricao;
        public int quantidade;
        public double valor;
    }
    {
        public string rua;
        public string numero;
        public string bairro;
        public string cep;
        public string cidade;
        public string estado;
    }
    public class TipoPagamento
    {
        public string formaPagamento;
    }
     public class Pedidos
    {
        public int numPedido;
        public TipoPagamento? formaPagamento;
        public Produto produto;
        public Cliente cliente;
        public Endereco endereco;
        public double valorTotal;       
    }
    using PedidosOnline;

Pedidos pedido1 = new Pedidos();
pedido1.formaPagamento = new TipoPagamento();
pedido1.cliente = new Cliente();
pedido1.endereco = new Endereco();
pedido1.produto = new Produto();

pedido1.numPedido = 10001;

pedido1.formaPagamento.formaPagamento = "Cartão de Crédito";
pedido1.cliente.nome = "Eduardo Carvalho";
pedido1.endereco.rua = "Rua da Cascata";
pedido1.endereco.numero = "4";
pedido1.endereco.cep = "40313-140";
pedido1.endereco.bairro = "Cidade Nova";
pedido1.endereco.cidade = "Salvador";
pedido1.endereco.estado = "Bahia";
pedido1.produto.nome = "Bauru com salada";
pedido1.produto.descricao = "Pão com queijo, presunto e salada";
pedido1.produto.quantidade = 2;
pedido1.produto.valor = 8.00;

Console.WriteLine();
Console.WriteLine("================== Pedido número.....: " +pedido1.numPedido+ " ============================");
Console.WriteLine();
Console.WriteLine("------> Dados do Cliente: ");
Console.WriteLine();
Console.WriteLine("Forma de pagamento......: "+pedido1.formaPagamento.formaPagamento);
Console.WriteLine("Nome do Cliente.........: "+pedido1.cliente.nome);
Console.WriteLine("Local de entrega........: "+pedido1.endereco.rua);
Console.WriteLine("Número..................: "+pedido1.endereco.numero);
Console.WriteLine("CEP.....................: "+pedido1.endereco.cep);
Console.WriteLine("Bairro..................: "+pedido1.endereco.bairro);
Console.WriteLine("Estado..................: "+pedido1.endereco.estado);
Console.WriteLine();
Console.WriteLine("================= PRODUTO =================================================");
Console.WriteLine();
Console.WriteLine("Nome....................: "+pedido1.produto.nome);
Console.WriteLine("Descrição...............: "+pedido1.produto.descricao);
Console.WriteLine("Quantidade..............: "+pedido1.produto.quantidade);
Console.WriteLine("Valor:..................: "+pedido1.produto.valor);
Console.WriteLine();
Console.WriteLine("Valor total do pedido R$: "+pedido1.produto.valor * pedido1.produto.quantidade);
Console.WriteLine();
Console.WriteLine("================== Final do Pedido número: " + pedido1.numPedido + " ======================");
Console.WriteLine();
}
3 respostas

Fala Carlos, tudo certo?

Show de bola! Parabéns pela dedicação, é esse o caminho! Praticar é muito importante para fixar os conhecimentos adquiridos!

Como uma sugestão, que tal encapsular essa lógica dentro de um método da classe Pedidos? Algo como mostrarPedido(), que mostre as informações de um pedido na tela! Esse tipo de estratégia pode ser interessante para que o nosso main() não fique grande demais e seja maios legível. Do mais, a lógica está correta, o funcionamento será o mesmo das duas formas, no entanto encapsular essa lógica no método ajuda a legibilidade, manutenção do código e a evitar repetição de código!

Novamente, parabéns pela dedicação, é esse o caminho!

Um grande abraço e bons estudos!

Olá, Artur Fernandes,

Obrigado pelo retorno, de fato, encapsular é o melhor caminho, assim o farei e postarei em breve aqui!

Gratidão!

Conforme se pediu por Artur Fernandes,

public class Pedidos { public int numPedido;

    public TipoPagamento? formaPagamento;
    public Produto produto;

    public Cliente cliente;
    public Endereco endereco;

    public double valorTotal;

    public void MostrarPedido()
    {
        Console.WriteLine();
        Console.WriteLine("================== Pedido número.....: " + numPedido + " ============================");
        Console.WriteLine();
        Console.WriteLine("------> Dados do Cliente: ");
        Console.WriteLine();
        Console.WriteLine("Forma de pagamento......: " + formaPagamento);
        Console.WriteLine("Nome do Cliente.........: " + cliente.nome);
        Console.WriteLine("Local de entrega........: " + endereco.rua);
        Console.WriteLine("Número..................: " + endereco.numero);
        Console.WriteLine("CEP.....................: " + endereco.cep);
        Console.WriteLine("Bairro..................: " + endereco.bairro);
        Console.WriteLine("Estado..................: " + endereco.estado);
        Console.WriteLine();
        Console.WriteLine("================= PRODUTO =================================================");
        Console.WriteLine();
        Console.WriteLine("Nome....................: " + produto.nome);
        Console.WriteLine("Descrição...............: " + produto.descricao);
        Console.WriteLine("Quantidade..............: " + produto.quantidade);
        Console.WriteLine("Valor:..................: " + produto.valor);
        Console.WriteLine();
        Console.WriteLine("Valor total do pedido R$: " + produto.valor * produto.quantidade);
        Console.WriteLine();
        Console.WriteLine("================== Final do Pedido número: " + numPedido + " ======================");
        Console.WriteLine();
        }
    }

using PedidosOnline;

Pedidos pedido1 = new Pedidos(); pedido1.formaPagamento = new TipoPagamento(); pedido1.cliente = new Cliente(); pedido1.endereco = new Endereco(); pedido1.produto = new Produto();

pedido1.numPedido = 10001;

pedido1.formaPagamento.formaPagamento = "Cartão de Crédito"; pedido1.cliente.nome = "Eduardo Carvalho"; pedido1.endereco.rua = "Rua da Cascata"; pedido1.endereco.numero = "4"; pedido1.endereco.cep = "40313-140"; pedido1.endereco.bairro = "Cidade Nova"; pedido1.endereco.cidade = "Salvador"; pedido1.endereco.estado = "Bahia"; pedido1.produto.nome = "Bauru com salada"; pedido1.produto.descricao = "Pão com queijo, presunto e salada"; pedido1.produto.quantidade = 2; pedido1.produto.valor = 8.00;

pedido1.MostrarPedido(); //Conforme solicitado, segue encapsulamento

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software