Menu
CoddyTech

Hapus Semua

Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 84 dari 88.

challenge icon

Tantangan

Mudah

Kembangkan pelacak pengeluaranmu dengan menambahkan fungsi "Clear All".

Programmu harus:

  1. Menginisialisasi array kosong bernama expenses
  2. Membuat loop do yang menampilkan menu dan membaca input pengguna
  3. Saat pengguna memasukkan "1", meminta nama dan jumlah pengeluaran, membuat hash dengan kunci :name dan :amount, menambahkannya ke array expenses, lalu mencetak Expense added!
  4. Saat pengguna memasukkan "2", menampilkan semua pengeluaran atau pesan jika belum ada
  5. Saat pengguna memasukkan "3", menghitung dan menampilkan total serta rata-rata semua pengeluaran, atau pesan jika belum ada
  6. Saat pengguna memasukkan "4", menghapus semua pengeluaran dari array dan mencetak pesan konfirmasi
  7. Saat pengguna memasukkan "5", mencetak Goodbye! dan keluar dari perulangan

Menu harus ditampilkan persis seperti sebelumnya:


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

Saat opsi "4" dipilih, gunakan method clear pada array expenses dan cetak: All expenses cleared!

Misalnya, jika inputnya adalah 1, Coffee, 5.0, 4, 2, lalu 5 (menambahkan pengeluaran, menghapus semua, lalu melihat daftar), outputnya harus:


--- 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!

Jika inputnya adalah 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, lalu 5 (menambahkan dua pengeluaran, memeriksa total, menghapus semua, lalu memeriksa total lagi), outputnya harus:


--- 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!

Coba sendiri

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Ruby online