Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: hora da prática - Atividade 03

Program.cs

using Startup.Modelos;

Servico servico = new Servico();
Produto produto = new Produto();

decimal servicoTotal = servico.CalcularPagamento();
decimal produtoTotal = produto.CalcularPagamento();

Console.Clear();
Console.WriteLine($"O valor total do serviço foi: R${servicoTotal}");
Console.WriteLine($"O valor total do produto foi: R${produtoTotal}");

IPagavel.cs

namespace Startup.Modelos;
public interface IPagavel {
    public decimal CalcularPagamento();
}

Servico.cs

namespace Startup.Modelos;

public class Servico : IPagavel {
    public decimal valorTotal;
    public decimal CalcularPagamento() {
        Console.Clear();
        Console.WriteLine("1. Desenvolvimento de Aplicativo");
        Console.WriteLine("2. Desenvolvimento de Site");
        Console.WriteLine("3. Teste de Segurança");
        Console.Write("Selecione o tipo de serviço que foi realizado: ");
        int tipoServico; int.TryParse(Console.ReadLine()!, out tipoServico);
        Console.Write("Em quanto tempo esse servico foi realizado (Horas): ");
        int cargaHoraria; int.TryParse(Console.ReadLine()!, out cargaHoraria);
        
        switch (tipoServico) {
            case 1: valorTotal = cargaHoraria * 70; break;
            case 2: valorTotal = cargaHoraria * 50; break;
            case 3: valorTotal = cargaHoraria * 80; break;
        }
        return valorTotal;
    }
}

Produto.cs

namespace Startup.Modelos;

public class Produto : IPagavel {
    public decimal valorTotal;
    public decimal CalcularPagamento() {
        Console.Clear();
        Console.WriteLine("1. Mouse");
        Console.WriteLine("2. Teclado");
        Console.WriteLine("3. Monitor");
        Console.Write("Selecione o produto que foi comprado: ");
        int tipoProduto; int.TryParse(Console.ReadLine()!, out tipoProduto);
        Console.Write("Selecione a quantia de produtos que foi comprada: ");
        int quantiaProdutos; int.TryParse(Console.ReadLine()!, out quantiaProdutos);
        
        switch (tipoProduto) {
            case 1: valorTotal = quantiaProdutos * 100; break;
            case 2: valorTotal = quantiaProdutos * 200; break;
            case 3: valorTotal = quantiaProdutos * 500; break;
        }
        return valorTotal;
    }
}
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar.

Gostei da forma como você aplicou a interface IPagavel pra organizar o cálculo em Servico e Produto, porque isso mostra uma boa compreensão de Orientação a Objetos e da ideia de contrato entre classes. Também ficou bem clara a separação das responsabilidades, já que cada classe cuida do próprio CalcularPagamento().

Se quiser, pode testar usar default no switch pra tratar opções inválidas e deixar o programa mais seguro.


int tipoServico;
int.TryParse(Console.ReadLine(), out tipoServico);

switch (tipoServico)
{
    case 1:
        Console.WriteLine("Aplicativo");
        break;
    case 2:
        Console.WriteLine("Site");
        break;
    default:
        Console.WriteLine("Opcao invalida");
        break;
}

Esse código verifica a opção informada e mostra uma mensagem caso o valor não esteja entre as alternativas esperadas.

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