2014-12-06 3 views
0

Я пользователь newb Ruby с использованием Ruby версии 2.1.5p273 и ниже. Я создал программу Simulator Atm, которая принимает пользовательский ввод депозитов и снятий, а затем отображает баланс после. Я борюсь с ifs, elses и loops. Я хочу в начале сделать заявление о принятии решения, которое спрашивает, хочет ли пользователь снять, внести депозит, проверить баланс или завершить сеанс. Я также хочу в конце сделать заявление о принятии решения, которое спрашивает, хочет ли пользователь продолжить (который вернется к началу или завершит сеанс). Мое общее представление о том, как я хочу выглядеть, будет ниже, общая программа ниже кода идеи. Я знаю, что это неправильно, но это именно то, что я хочу, чтобы он выглядел так, поэтому была бы очень благодарна любая помощь в его правильном и рабочем коде.Справка по программе Ruby (программа ATM)

print "Would you like to (w)ithdraw, (d)eposit, or (c)heck your balance or (e)nd your session? 
if "(w)ithdraw" # i'd like to make this do a "press w for withdraw"   
    bank_account.withdraw 
elsif "(d)eposit" # i'd like to make this do a "press d for deposit" 
    bank_account.deposit 
elsif "(c)heck your balance" # i'd like to make this do a "press c to check your balance" 
bank_account.show_balance 
elseif "(e)nd your session" # i'd like to make this do a "press e to end your session" 
end 




#This program is an ATM simulator, it takes user input of deposits and withdrawals, and then  displays the balance after. 

class BankAccount 

    def initialize(name) 
    @transations = [] 
    @balance = 0 
    end 

    def deposit 
    print "How much would you like to deposit? " 
    amount = gets.chomp 
    @balance += amount.to_f 
    puts "$#{amount} deposited." 
    end 

    def withdraw 
    print "How much would you like to withdraw?" 
    amount = gets.chomp 
    @balance -= amount.to_f 
    puts "#{amount} withdrawn" 
    end 

    def show_balance 
    puts "Your balance is #{@balance}" 
    end 


end 

bank_account = BankAccount.new("Justin G") 
bank_account.class # => BankAccount 

print "Welcome to Jay's ATM!\n" 
bank_account.deposit 
bank_account.show_balance 
bank_account.withdraw 
`enter code here`bank_account.show_balance 
puts "Thank you" 

ответ

0

Это довольно рудиментарный, но вы должны начать. Пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы о том, что я делаю в коде. По большей части он должен быть достаточно понятным, если вы знакомы с другими объектно-ориентированными языками программирования.

Вот ваш банкомат:

# atm.rb 

require './bank_account.rb' 

cmd = "" 
account = BankAccount.new("Justin G") 

puts "***Welcome to #{account.name}'s ATM***\n\n" 

while cmd != "e" do 
    puts "Would you like to (w)ithdraw, (d)eposit or (c)heck your balance?" 
    puts "You can also (e)nd your session." 
    cmd = gets.chomp 

    case cmd 
    when "w" 
    puts "How much would you like to withdraw?" 
    amount = gets.chomp # expect this to be a float 

    # handle incorrect input somehow, either here or 
    # preferably in the BankAccount#withdraw method 
    account.withdraw(amount) 
    when "d" 
    puts "How much would you like to deposit?" 
    amount = gets.chomp # expect this to be a float 

    # handle incorrect input somehow, either here or 
    # preferably in the BankAccount#deposit method 
    account.deposit(amount) 
    when "c" 
    puts "Your balance is $%.2f\n" % account.balance 
    else 
    # didn't understand the command 
    puts "Didn't understand your command. Try again." unless cmd == "e" 
    end 
end 

Вот код банковского счета:

# bank_account.rb 
class BankAccount 
    attr_reader :name, :balance 

    def initialize(name) 
    @name = name 
    @transactions = [] 
    @balance = 0.0 
    end 

    def withdraw(amount) 
    # TODO: check that amount is valid, else error 
    @balance -= amount.to_f 
    # TODO: check if sufficient funds available 
    puts "$%.2f successfully withdrawn.\n" % amount 
    end 

    def deposit(amount) 
    # TODO: check that amount is valid, else error 
    @balance += amount.to_f 
    puts "$%.2f successfully deposited.\n" % amount 
    end 
end 
+0

Спасибо так много! Это прекрасно, я сохранил оба файла .rb, atm.rb и bank_account.rb, запустил его в CMD и все функции работали правильно, депозит вывести баланс проверки и завершить. Ключевые ярлыки, которые я просил, также были там. Следующее, что я хочу сделать, это добавить выходной файл квитанции. Я сам поработаю над этим, и если у меня возникнут проблемы, я надеюсь, что вы снова будете рядом. Еще раз спасибо! – jmgeronimo

+0

@jmgeronimo добро пожаловать. Спасибо, что приняли ответ. Надеюсь, вам понравится изучать Руби. –

Смежные вопросы