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.
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:
- Khởi tạo một mảng trống có tên
expenses - Tạo
loop dođể hiển thị menu và đọc dữ liệu đầu vào của người dùng - 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:namevà:amount, thêm hash đó vào mảngexpenses, rồi in raExpense added! - 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 - 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 - Khi người dùng nhập
"5", in raGoodbye!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: $XAverage: $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átTấ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