Menu
Coddy logo textTech

Hata Yönetimi

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 85 / 88.

challenge icon

Görev

Kolay

Geçersiz menü seçenekleri için hata yönetimi ekleyerek Günlük Gider Takipçisini tamamlayın.

Programınız şunları yapmalıdır:

  1. expenses adında boş bir dizi başlatın
  2. Menüyü görüntüleyen ve kullanıcı girişini okuyan bir loop do oluşturun
  3. Kullanıcı "1" girdiğinde, gider adını ve tutarını isteyin, :name ve :amount anahtarlarına sahip bir hash oluşturun, bunu expenses dizisine ekleyin ve Expense added! yazdırın
  4. Kullanıcı "2" girdiğinde, tüm giderleri veya hiç yoksa bir mesaj görüntüleyin
  5. Kullanıcı "3" girdiğinde, tüm giderlerin toplamını ve ortalamasını veya hiç yoksa bir mesaj hesaplayın ve görüntüleyin
  6. Kullanıcı "4" girdiğinde, dizideki tüm giderleri temizleyin ve All expenses cleared! yazdırın
  7. Kullanıcı "5" girdiğinde, Goodbye! yazdırın ve döngüden çıkın
  8. Diğer tüm girişler için şunu yazdırın: Invalid option. Please try again.

Menü tam olarak eskisi gibi görüntülenmelidir:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 

Örneğin, girişler 7, abc, ardından 5 (iki geçersiz seçenek, sonra çıkış) ise, çıktı şöyle olmalıdır:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!

Girişler 1, Coffee, 4.5, 6, 2, ardından 5 (gider ekle, geçersiz seçenek, görüntüle, çıkış) ise, çıktı şöyle olmalıdır:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 
--- Your Expenses ---
Coffee: $4.5

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!

Kendin dene

expenses = []

loop do
  puts "--- Expense Tracker ---"
  puts "1. Add Expense"
  puts "2. View Expenses"
  puts "3. Total & Average"
  puts "4. Clear All"
  puts "5. Exit"
  print "Choose an option: "
  
  choice = gets.chomp
  
  if choice == "1"
    print "Expense name: "
    name = gets.chomp
    print "Amount: "
    amount = gets.chomp.to_f
    expenses << { name: name, amount: amount }
    puts "Expense added!"
  elsif choice == "2"
    if expenses.empty?
      puts "No expenses recorded yet."
    else
      expenses.each do |expense|
        puts "#{expense[:name]}: $#{expense[:amount]}"
      end
    end
  elsif choice == "3"
    if expenses.empty?
      puts "No expenses to calculate."
    else
      total = expenses.sum { |expense| expense[:amount] }
      average = total / expenses.length
      puts "Total: $#{total}"
      puts "Average: $#{average}"
    end
  elsif choice == "4"
    expenses.clear
    puts "All expenses cleared!"
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
  
  puts ""
end

Temeller bölümündeki tüm dersler