Resolução:
var banco = new Dictionary<string, double>()
{
{"Sunny", -26.75 }
};
void ExibirTitulo (string titulo)
{
int quantidadeLetras = titulo.Length;
string asterisco = string.Empty.PadLeft(quantidadeLetras, '*');
Console.WriteLine(asterisco);
Console.WriteLine(titulo);
Console.WriteLine(asterisco);
}
void VoltarAoMenu()
{
Console.WriteLine("\nAperte qualquer tecla para voltar ao menu");
Console.ReadKey();
Console.Clear();
Menu();
}
void Menu()
{
ExibirTitulo("Bem vindo ao banco A!!!");
Console.WriteLine("\nSelecione uma das opções abaixo: \n");
Console.WriteLine("Digite 1 para Ver o saldo atual");
Console.WriteLine("Digite 2 para Depositar");
Console.WriteLine("Digite 3 para Sacar");
Console.WriteLine("Digite 4 para se Cadastrar");
Console.WriteLine("Digite -1 para sair");
Console.Write("\nDigite a opção que deseja navegar: ");
int resposta = int.Parse(Console.ReadLine()!);
switch (resposta)
{
case 1:
SituacaoSaldo();
break;
case 2:
Depositar();
break;
case 3:
Sacar();
break;
case 4:
Cadastrar();
break;
case -1:
break;
default:
Console.Clear();
Console.WriteLine("Opção inválida!");
Thread.Sleep(4000);
Console.Clear();
Menu();
break;
}
}
void Depositar()
{
Console.Clear();
ExibirTitulo("Depositar");
Console.Write("\nDigite o nome da conta: ");
string nome = Console.ReadLine()!;
if (banco.ContainsKey(nome))
{
Console.Write("Digite o valor que deseja depositar: ");
double valor = double.Parse(Console.ReadLine()!);
if (valor > 0)
{
banco[nome] += valor;
Console.WriteLine($"\nDepósito realizado com sucesso!");
Console.WriteLine($"Novo saldo de {nome}: R$ {banco[nome]:F2}");
}
else
{
Console.WriteLine("\nO valor precisa ser maior que zero.");
}
}
else
{
Console.WriteLine($"\nA conta {nome} não foi encontrada.");
}
VoltarAoMenu();
}
void Sacar()
{
Console.Clear();
ExibirTitulo("Sacar");
Console.Write("\nDigite o nome da conta: ");
string nome = Console.ReadLine()!;
if (banco.ContainsKey(nome))
{
Console.Write("Digite o valor que deseja sacar: ");
double valor = double.Parse(Console.ReadLine()!);
if (valor > 0)
{
if (banco[nome] >= valor)
{
banco[nome] -= valor;
Console.WriteLine($"\nSaque realizado com sucesso!");
Console.WriteLine($"Novo saldo de {nome}: R$ {banco[nome]:F2}");
}
else
{
Console.WriteLine("\nSaldo insuficiente para esse saque.");
}
}
else
{
Console.WriteLine("\nO valor precisa ser maior que zero.");
}
}
else
{
Console.WriteLine($"\nA conta {nome} não foi encontrada.");
}
VoltarAoMenu();
}
void SituacaoSaldo()
{
Console.Clear();
ExibirTitulo("Ver o saldo atual");
Console.Write("\nDigite o seu nome: ");
string nome = Console.ReadLine()!;
if (banco.ContainsKey(nome))
{
Console.WriteLine($"\nSeu saldo atual é: {banco[nome]}");
if (banco[nome] > 0)
{
Console.WriteLine("O saldo esta positivo!");
}
else if (banco[nome] == 0)
{
Console.WriteLine("O saldo esta zerado!");
}
else
{
Console.WriteLine("O saldo está negativo!");
}
}
else
{
Console.WriteLine($"{nome} não foi encontrado nos registros!!");
}
VoltarAoMenu();
}
void Cadastrar()
{
Console.Clear();
ExibirTitulo("Cadastrar");
Console.Write("\nInsira o nome para efetuar o cadastro: ");
string nome = Console.ReadLine()!;
Console.Write("\nDeposite no minimo R$50,00 para criar a conta: ");
double dinheiro = double.Parse(Console.ReadLine()!);
if (banco.ContainsKey(nome))
{
Console.WriteLine($"Já existe alguém com o nome {nome} cadastrado");
Console.WriteLine("Aperte qualquer tecla para voltar ao menu");
Console.ReadKey();
Console.Clear();
Menu();
}
else if (dinheiro > 50.00)
{
banco.Add(nome, dinheiro);
Console.WriteLine("Conta Cadastrada com sucesso!!");
VoltarAoMenu();
}
else
{
Console.WriteLine("Erro!! Quantidade insuficiente!!!");
return;
}
}
Menu();