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

Desafio: hora da prática

Desenvolvi 3 arquivos, um para a classe do Carro.cs, outro para a ContaBancaria.cs e outro como programa principal.

Primeiro, o ContaBancaria.cs

public class ContaBancaria {
    public int id = 0;
    public string titular = "";
    public decimal saldo = 0m;
    public string senha = "";

    public void ExibirInformacoes() {
        Console.WriteLine($"ID da conta: {id}");
        Console.WriteLine($"Nome do Titular: {titular}");
        Console.WriteLine($"Saldo do Titular: R${saldo}");
        Console.WriteLine ($"Senha do titular: {senha}");
    }
}

Segundo, o Carro.cs

public class Carro {
    public void Acelerar() {
        Console.WriteLine ("Acelerando...");
        Console.ReadKey();
    }
    public void Frear() {
        Console.WriteLine ("Freando...");
        Console.ReadKey();
    }
    public void Buzinar() {
        Console.WriteLine ("BEEEEEEEEEEP!!!");
        Console.ReadKey();
    }
}

Terceiro, e o principal: em um programa normal, eu faria duas versões separadas para cada case. Porém, como o objetivo era mais um estudo específico, implementei as duas classes no mesmo arquivo.

// Atividade 1 a 3

Console.Clear();
var conta = new ContaBancaria();
conta.id = 1;

Console.Write ("Digite seu nome: ");
conta.titular = Console.ReadLine()!;

Console.Write("Digite seu saldo: R$");
decimal.TryParse(Console.ReadLine()!, out conta.saldo);

Console.Write("Digite sua senha: ");
conta.senha = Console.ReadLine()!;

Console.WriteLine ($"O nome do titular é {conta.titular}");
Console.WriteLine($"O saldo do titular é: {conta.saldo}");
Console.ReadKey();

Console.Clear();
conta.ExibirInformacoes();
Console.ReadKey();

// Atividade 04

var carro = new Carro();
int acaoCarro;

do {
    Console.Clear();
    Console.WriteLine ("===============");
    Console.WriteLine ("     CARRO     ");
    Console.WriteLine ("===============");
    Console.WriteLine ("1. Acelerar");
    Console.WriteLine ("2. Frear");
    Console.WriteLine ("3. Buzinar");
    Console.WriteLine ("4. Parar");
    Console.Write ("Selecione sua ação: ");
    int.TryParse(Console.ReadLine()!, out acaoCarro);

    switch (acaoCarro) {
        case 1: carro.Acelerar(); break;
        case 2: carro.Frear(); break;
        case 3: carro.Buzinar(); break;
        case 4: break;
        default: Console.WriteLine("Ação inválida."); Console.ReadKey(); break;
    }
} while (acaoCarro != 4);

Console.WriteLine("Programa encerrado.");
1 resposta
solução!

Olá, Diego, como vai?

Seu código demonstra um excelente domínio dos conceitos de orientação a objetos e manipulação de entrada de dados em C#. Você aplicou corretamente a criação das classes, a estruturação dos métodos e o uso de interpolação de strings para exibir as informações. É muito interessante observar como você utilizou estruturas de repetição e tratamento de entrada com TryParse para tornar o programa mais robusto e interativo.

Como uma sugestão de melhoria futura, você pode explorar o uso de propriedades com modificadores de acesso, como o private set, para garantir o encapsulamento dos dados da sua classe. Isso impede que valores sensíveis sejam alterados diretamente de fora da classe sem passar por uma validação.

Parabéns pelo empenho em organizar as atividades em arquivos distintos. Continue praticando e compartilhando sua evolução com a comunidade. O fórum está à disposição para qualquer dúvida que surgir em seus estudos.

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