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.
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:
- Khởi tạo một mảng trống có tên
expenses - Tạo một
loop dođể hiển thị menu và đọc đầu vào của người dùng - 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:namevà:amount, thêm hash đó vào mảngexpensesvà in raExpense added! - 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 - 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 - 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 - Khi người dùng nhập
"5", in raGoodbye!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 ""
endTất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online