Menu
Coddy logo textTech

Ver todos los gastos

Parte de la sección Fundamentos del Journey de Ruby de Coddy. Lección 82 de 88.

challenge icon

Desafío

Fácil

Amplía tu rastreador de gastos añadiendo la funcionalidad "View Expenses".

Tu programa debe:

  1. Inicializar un array vacío llamado expenses
  2. Crear un loop do que muestre el menú y lea la entrada del usuario
  3. Cuando el usuario introduzca "1", solicitar el nombre y el monto del gasto, crear un hash con las llaves :name y :amount, añadirlo al array expenses y mostrar Expense added!
  4. Cuando el usuario introduzca "2", mostrar todos los gastos o un mensaje si no existe ninguno
  5. Cuando el usuario introduzca "5", mostrar Goodbye! y salir del bucle

El menú debe mostrarse exactamente como antes:


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

Cuando se seleccione la opción "2":

  • Si no hay gastos, imprime: No expenses recorded yet.
  • Si hay gastos, primero imprime una línea en blanco seguida de --- Your Expenses ---, luego imprime cada gasto en el formato: Name: $Amount

Por ejemplo, si las entradas son 2, luego 5 (visualizando cuando está vacío), la salida debería ser:


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

Si las entradas son 1, Coffee, 4.5, 1, Lunch, 12.0, 2, luego 5, la salida debería ser:


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

Pruébalo tú mismo

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
end

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Ruby online