Ele possui um menu que pode ser acessado pelas chaves numéricas de 1 a 5, e usa do loop While para ficar num menu continuo ate que o cliente escolha sair. Usei 2 arquivos, um apenas para script, e outro para interagir com pessoa.
Baseado em apenas 1 cliente.
Interação:
# encoding: UTF-8
require_relative 'ClasseAccount.rb'
puts "Ola! Bem vindo ao nosso Banco Virtual!\n\n"
continue = true
while continue
puts"Acesse atraves das chaves 1..5"
puts "1 - Cadastro do cliente"
puts "2 - Visualizar Saldo"
puts "3 - Deposito"
puts "4 - Sacar"
puts "5 - Sair"
acesso = gets
case acesso.to_i
when 1
puts "\nPor favor digite seu nome: "
name = gets.chomp
puts "Por favor digite seu saldo inicial"
saldo = gets.chomp
client1 = Account.new(name, saldo.to_i)
puts "Cliente cadastrado com sucesso! Sua senha Voce ja sabe qual é."
puts "\nDigite <s> para voltar."
volta = gets.chomp
if volta == 's' || volta == 'S'
system "clear"
end
when 2
puts "\nDigite sua senha de 4 digitos: "
senha = gets.chomp
client1.display_balance(senha.to_i)
puts "\nDigite <s> para voltar."
volta = gets.chomp
if volta == 's' || volta == 'S'
system "clear"
end
when 3
puts "\nDigite o valor que irá depositar: "
valor = gets.chomp
client1.deposit(valor.to_i)
puts "\nDigite <s> para voltar."
volta = gets.chomp
if volta == 's' || volta == 'S'
system "clear"
end
when 4
puts "\nDigite sua senha: "
senha = gets.chomp
puts "Digite o valor do saque: "
valor = gets.chomp
client1.withdraw(senha.to_i, valor.to_i)
puts "\nDigite <s> para voltar."
volta = gets.chomp
if volta == 's' || volta == 'S'
system "clear"
end
when 5
puts "\nObrigado por usar nossos Serviços."
continue = false
else
puts "\nOpção invalida!"
puts "\nDigite <s> para voltar."
volta = gets.chomp
if volta == 's' || volta == 'S'
system "clear"
end
end
end
Script:
# encoding: UTF-8
class Account
attr_reader :name, :balance
def initialize(name, balance=100)
@name = name
@balance = balance
end
private
def pin
@pin = 1234
end
private
def pin_error
return "Acesso negado: PIN incorreto."
end
public
def display_balance(pin_number)
if pin_number == pin
puts "Saldo $#{@balance}"
else
puts pin_error
end
end
public
def withdraw(pin_number, amount)
if pin_number == pin
if amount > @balance
puts "Impossivel realizar operação, valor mais alto que saldo"
else
@balance -= amount
puts "Retirado $#{amount}. Novo saldo: $#{@balance}."
end
else
puts pin_error
end
end
public
def deposit(value)
@balance += value
puts "Deposito efetuado com Sucesso! Novo saldo: $#{@balance}"
end
end
Nenhum comentário:
Postar um comentário