/// <summary> /// A instância do cofre recebido estará zerada, e será devolvida com /// o valor atualizado. /// </summary> /// <param name="cofre"></param> /// <param name="nota"></param> /// <param name="quantidade"></param> /// <returns>O retorno será a instância "atual" do cofre</returns> public Cofre CarregaCaixa(Cofre cofre, int nota, int quantidade) { switch (nota) { case 10: cofre.totalNotas10 += quantidade; cofre.totalCofre += quantidade * 10; break; case 20: cofre.totalNotas20 += quantidade; cofre.totalCofre += quantidade * 20; break; case 50: cofre.totalNotas50 += quantidade; cofre.totalCofre += quantidade * 50; break; default: Console.Write("O valor é inaceitável;"); break; } return(cofre); }
public void sacarDinheiro(Cofre cofre, int valor) { //Lógica caso o valor solicitado exista no caixa: if ((valor <= cofre.totalCofre) && (valor % 10 == 0)) { //desconta o valor do total do caixa cofre.totalCofre -= valor; //desconta as maiores cédulas do caixa int valorTemporario = valor; if (valorTemporario >= 50) { //Descobrir quantas notas de 50 existem no valor solicitado int totalNotas50 = valorTemporario / 50; //Descontar do cofre o número de notas de 50 sacado cofre.totalNotas50 -= totalNotas50; //Descontar o VALOR do total de notas de 50 sacado da var temp valorTemporario -= totalNotas50 * 50; } if (valorTemporario >= 20) { int totalNotas20 = valorTemporario / 20; cofre.totalNotas20 -= totalNotas20; valorTemporario -= totalNotas20 * 20; } if (valorTemporario >= 10) { int totalNotas10 = valorTemporario / 10; cofre.totalNotas10 -= totalNotas10; valorTemporario -= totalNotas10 * 10; } //Retorno de sucesso para o usuário Console.WriteLine("R$ " + valor + ",00" + " sacado com sucesso!"); } else { Console.WriteLine("Valor indisponível"); } }