Menu
Coddy logo textTech

Tümünü Temizle

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

challenge icon

Görev

Kolay

Gider takipçinize "Clear All" (Hepsini Temizle) işlevini ekleyerek geliştirmeye devam edin.

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ını içeren 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ç gider yoksa bir mesaj görüntüleyin
  5. Kullanıcı "3" girdiğinde, tüm giderlerin toplamını ve ortalamasını hesaplayıp görüntüleyin veya hiç gider yoksa bir mesaj görüntüleyin
  6. Kullanıcı "4" girdiğinde, dizideki tüm giderleri temizleyin ve bir onay mesajı yazdırın
  7. Kullanıcı "5" girdiğinde, Goodbye! yazdırın ve döngüden çıkın

Menü tam olarak eskisi gibi görünmelidir:


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

"4" seçeneği seçildiğinde, expenses dizisi üzerinde clear metodunu kullanın ve şunu yazdırın: All expenses cleared!

Örneğin, girişler 1, Coffee, 5.0, 4, 2, ardından 5 (bir gider ekle, hepsini temizle, sonra görüntüle) 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: All expenses cleared!

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

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

Girişler 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, ardından 5 (iki gider ekle, toplamı kontrol et, temizle, toplamı tekrar kontrol et) 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: Expense name: Amount: Expense added!

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

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

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

--- 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
    expense = { name: name, amount: amount }
    expenses << expense
    puts "Expense added!"
  elsif choice == "2"
    if expenses.empty?
      puts "No expenses recorded."
    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 = 0
      expenses.each do |expense|
        total += expense[:amount]
      end
      average = total / expenses.length
      puts "Total: $#{total}"
      puts "Average: $#{average}"
    end
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
  
  puts ""
end

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