View All Expenses
Part of the Fundamentals section of Coddy's Ruby journey. Lesson 82 of 88.
Challenge
EasyBuild upon your expense tracker by adding the "View Expenses" functionality.
Your program should:
- Initialize an empty array called
expenses - Create a
loop dothat displays the menu and reads user input - When the user enters
"1", prompt for the expense name and amount, create a hash with:nameand:amountkeys, add it to theexpensesarray, and printExpense added! - When the user enters
"2", display all expenses or a message if none exist - When the user enters
"5", printGoodbye!and exit the loop
The menu should display exactly as before:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: When option "2" is selected:
- If there are no expenses, print:
No expenses recorded yet. - If there are expenses, first print a blank line followed by
--- Your Expenses ---, then print each expense in the format:Name: $Amount
For example, if the inputs are 2, then 5 (viewing when empty), the output should be:
--- 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!If the inputs are 1, Coffee, 4.5, 1, Lunch, 12.0, 2, then 5, the output should be:
--- 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:
--- Your Expenses ---
Coffee: $4.5
Lunch: $12.0
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!Try it yourself
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
expenses.push({name: name, amount: amount})
puts "Expense added!"
puts ""
elsif choice == "5"
puts "Goodbye!"
break
end
endAll lessons in Fundamentals
4Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 42Variables and Data Types
Numbers and VariablesString Data TypeBoolean Data TypeSymbol Data TypeChecking Data TypesNaming ConventionsRecap - Variable Creation8Loops
For Loop with RangesWhile LoopBreakNextRecap - FactorialTimes LoopUntil LoopNested LoopsRecap - Dynamic Input3Operators Part 1
Arithmetic OperatorsModulo OperatorArithmetic ShortcutsRecap - Simple MathComparison Operators6Basic IO
Output with putsOutput with print and pOutput With VariablesInput with getsChomp MethodType ConversionRecap - Age CalculatorRecap - True or False9Methods
Defining a MethodMethod ParametersReturn ValuesRecap - Sigma MethodRecap - Validation MethodDefault Parameter Values15Daily Expense Tracker
Project OverviewExit The ProgramPractice on your own: Online Ruby compiler