Menu
CoddyTech

Total y promedio

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

challenge icon

Desafío

Fácil

Mejora tu rastreador de gastos añadiendo la funcionalidad «Total y promedio».

Tu programa debe:

  1. Inicializar un arreglo vacío llamado expenses
  2. Crear un loop do que muestre el menú y lea la entrada del usuario
  3. Cuando el usuario ingrese "1", pedir el nombre y el monto del gasto, crear un hash con las claves :name y :amount, añadirlo al arreglo expenses e imprimir Expense added!
  4. Cuando el usuario ingrese "2", mostrar todos los gastos como antes: imprimir No expenses recorded yet. si no hay ninguno; de lo contrario, imprimir una línea en blanco seguida de --- Your Expenses --- y luego cada gasto en el formato Name: $Amount
  5. Cuando el usuario ingrese "3", calcular y mostrar el total y el promedio de todos los gastos, o un mensaje si no hay ninguno
  6. Cuando el usuario ingrese "5", imprimir 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 selecciona la opción "3":

  • Si no hay gastos, imprimir: No expenses to calculate.
  • Si hay gastos, imprimir el total y el promedio con este formato:
    Total: $X
    Average: $Y

Calcula el total sumando todos los valores de :amount. Calcula el promedio dividiendo el total por la cantidad de gastos.

Por ejemplo, si las entradas son 3 y después 5 (calcular cuando no hay gastos), la salida debe ser:


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

Si las entradas son 1, Coffee, 5.0, 1, Lunch, 15.0, 3 y después 5, la salida debe 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: 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!

Pruébalo tú mismo

# Inicializa el arreglo expenses
expenses = []

# TODO: Escribe tu código a continuación
# Crea un bucle que haga lo siguiente:
# - Muestre el menú
# - Lea la entrada del usuario
# - Maneje las opciones 1, 2, 3 y 5
# 
# Para la opción "1": solicita el nombre y el importe, crea un hash y añádelo a expenses
# Para la opción "2": muestra todos los gastos o un mensaje si no hay ninguno
# Para la opción "3": calcula y muestra el total y el promedio, o un mensaje si no hay gastos
# Para la opción "5": imprime "Goodbye!" y sal

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Ruby online