Menu
CoddyTech

Xóa tất cả

Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 84 trên 88.

challenge icon

Thử thách

Dễ

Mở rộng trình theo dõi chi tiêu bằng cách thêm chức năng "Clear All".

Chương trình của bạn cần:

  1. Khởi tạo một mảng trống có tên expenses
  2. Tạo một loop do để hiển thị menu và đọc đầu vào của người dùng
  3. Khi người dùng nhập "1", yêu cầu nhập tên và số tiền của khoản chi tiêu, tạo một hash với các khóa :name và :amount, thêm hash đó vào mảng expenses và in ra Expense added!
  4. Khi người dùng nhập "2", hiển thị tất cả khoản chi tiêu hoặc một thông báo nếu chưa có khoản nào
  5. Khi người dùng nhập "3", tính và hiển thị tổng và mức trung bình của tất cả khoản chi tiêu, hoặc một thông báo nếu chưa có khoản nào
  6. Khi người dùng nhập "4", xóa tất cả khoản chi tiêu khỏi mảng và in ra thông báo xác nhận
  7. Khi người dùng nhập "5", in ra Goodbye! và thoát khỏi vòng lặp

Menu cần hiển thị chính xác như trước:


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

Khi chọn tùy chọn "4", hãy dùng phương thức clear trên mảng expenses và in ra: All expenses cleared!

Ví dụ, nếu đầu vào là 1, Coffee, 5.0, 4, 2, rồi đến 5 (thêm một khoản chi tiêu, xóa tất cả, rồi xem), đầu ra sẽ là:


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

Nếu đầu vào là 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, rồi đến 5 (thêm hai khoản chi tiêu, kiểm tra tổng, xóa tất cả, rồi kiểm tra tổng lần nữa), đầu ra sẽ là:


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

Tự làm thử

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

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Ruby online