using System; using System.Collections.Generic; using System.Linq; using System.Text; public class Programa { public class Conta { public string nro_conta {get; set;} public double saldo { get; set; } public Conta() { this.saldo = 0; this.nro_conta = "000001-N"; } public void depositar(Conta conta) { double valordeposito; Console.Write("Digite o valor a ser depositado: "); valordeposito=Convert.ToDouble(Console.ReadLine()); conta.saldo += valordeposito; //conta.saldo = conta.saldo + valordeposito; } public virtual void sacar(Conta conta) { double valorsaque; Console.Write("Digite o valor a ser sacado: "); valorsaque = Convert.ToDouble(Console.ReadLine()); if (valorsaque > saldo) Console.WriteLine("Saldo insuficiente para o saque. Faltaram {0}",saldo-valorsaque); else conta.saldo -= valorsaque; } public void versaldo(Conta conta) { Console.WriteLine("Mostrar o saldo da conta {0}", conta.nro_conta); Console.WriteLine("Saldo disponível: {0}", conta.saldo); } } public class Especial : Conta { public double limite { get; set; } public Especial() { this.saldo = 0; this.limite = 400; this.nro_conta = "000002-E"; } public override void sacar(Conta conta) { double valorsaque; Console.Write("Digite o valor a ser sacado: "); valorsaque = Convert.ToDouble(Console.ReadLine()); if (valorsaque > saldo) if(valorsaque<=saldo+limite) conta.saldo -= valorsaque; else Console.WriteLine("Saldo insuficiente para o saque e ultrapassa o limite. Faltaram {0}", valorsaque - (saldo + limite)); else conta.saldo -= valorsaque; } } public static void Main() { string op=" "; Conta conta1 = new Conta(); Especial conta2 = new Especial(); while (op != "7") { Console.WriteLine("(1) - Realizar depósito na conta normal"); Console.WriteLine("(2) - Realizar depósito na conta especial"); Console.WriteLine("(3) - Realizar saque na conta normal"); Console.WriteLine("(4) - Realizar saque na conta especial"); Console.WriteLine("(5) - Mostrar saldo da conta normal"); Console.WriteLine("(6) - Mostrar saldo da conta especial"); Console.WriteLine("(7) - Sair"); Console.WriteLine("\nDigite sua opção: "); op=Convert.ToString(Console.ReadLine()); switch (op){ case "1": { conta1.depositar(conta1); break; } case "2": { conta2.depositar(conta2); break; } case "3": { conta1.sacar(conta1); break; } case "4": { conta2.sacar(conta2); break; } case "5": { conta1.versaldo(conta1); break; } case "6": { conta2.versaldo(conta2); break; } case "7": { Console.WriteLine("Obrigado por usar nosso software!"); break; } default: { Console.WriteLine("Opção Inválida"); break; } } } } }