yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY78>rubyの問題を解いてアプトプット

\ Follow me!! /

f:id:yujiro0320:20190415152250p:plain

学習状況

●学習日数 78日 

●学習時間(本日) 12時間

●累計学習時間 257.0時間

●一日あたりの平均学習時間 3.42時間 

ruby問題

少し成長を実感できた。

require 'pry'
def post_review(a_cart)

  line   = "---------------------------"
  item = {}

  puts "商品名を入力してください:"
  item[:name]  = gets.chomp  
  puts "値段を入力してください:"
  item[:price] = gets.to_i    
  puts "個数を入力してください:"
  item[:num]   = gets.to_i
  item[:sum_price] = (item[:price] * item[:num])
        puts "商品名 :#{item[:name]}"
        puts "値段 : #{item[:price]}"
        puts "個数 : #{item[:num]}"
        puts "合計金額: #{item[:sum_price]}"
        puts line
        a_cart << item
        return a_cart
end
  
  def check_reviews(a_cart)
    a_cart.each_with_index do |cart, i|
    puts "#{i}:#{cart[:name]}#{cart[:price]}#{cart[:num]}"
    end
    puts "[0]購入確定する"
    puts "[1]買い物を続ける"
    input = gets.to_i
  
    if input == 0
      buy_program(a_cart)

    elsif input == 1
      return
    else
      exception
    end
  end
  
  def buy_program(total_price)
    puts "何番の支払いをしますか?"

    sum_price = total_price[input=gets.to_i][:sum_price]
    
   
    puts "合計金額 :#{sum_price}円です"
    puts "支払う金額を入力してください:"
    input = gets.to_i
    change = sum_price - input
     
    if input >= sum_price
       puts change
    else
    puts "金額が足りません。"
    buy_program(total_price)
    end
  end
  
  def end_program
    exit
  end
  
  def exception
    puts "入力された値は無効な値です"
  end
  
  carts = []            
  
  while true do
    puts "商品数: #{carts.length}"
    puts "[0]商品をカートに入れる"
    unless carts.empty?      
      puts "[1]カートを確認する"
    end
    puts "[2]アプリを終了する"
    input = gets.to_i
    if input == 0 then
      carts = post_review(carts) 
    elsif input == 1 then
      check_reviews(carts)
    elsif input == 2 then
      end_program    
    else
      exception 
    end
  end