Menu
CoddyTech

Tổng và trung bình

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 83 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 "Total & Average".

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 loop do để hiển thị menu và đọc dữ liệu đầu vào của người dùng
  3. Khi người dùng nhập "1", yêu cầu tên và số tiề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, rồi 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 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 cùng mức trung bình của tất cả khoản chi tiêu hoặc thông báo nếu chưa có khoản nào
  6. Khi người dùng nhập "5", in ra Goodbye! rồi 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 "3":

  • Nếu chưa có khoản chi tiêu nào, in ra: No expenses to calculate.
  • Nếu đã có khoản chi tiêu, in tổng và mức trung bình theo định dạng sau:
    Total: $X
    Average: $Y

Tính tổng bằng cách cộng tất cả giá trị :amount. Tính mức trung bình bằng cách chia tổng cho số khoản chi tiêu.

Ví dụ, nếu dữ liệu đầu vào là 3, sau đó là 5 (tính khi chưa có khoản chi tiêu nào), đầu ra cần là:


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

Nếu dữ liệu đầu vào là 1, Coffee, 5.0, 1, Lunch, 15.0, 3, sau đó là 5, đầu ra cần 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: $20.0
Average: $10.0

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

Tự làm thử

# Khởi tạo mảng (array) expenses
expenses = []

# TODO: Viết code bên dưới
# Tạo vòng lặp (loop) để:
# - Hiển thị menu
# - Đọc đầu vào (input) của người dùng
# - Xử lý các lựa chọn 1, 2, 3 và 5
# 
# Với lựa chọn "1": yêu cầu nhập tên và số tiền, tạo hash rồi thêm vào expenses
# Với lựa chọn "2": hiển thị mọi khoản chi hoặc thông báo nếu không có khoản nào
# Với lựa chọn "3": tính và hiển thị tổng cùng giá trị trung bình, hoặc thông báo nếu không có khoản chi nào
# Với lựa chọn "5": in ra "Goodbye!" rồi thoát

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