Peça Agora!

quinta-feira, 10 de março de 2016

Banco Virtual em Ruby

Trazendo aqui um "Banco Virtual" escrito na linguagem Ruby.
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