Total y promedio
Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 83 de 88.
Desafío
FácilSigue desarrollando tu rastreador de gastos añadiendo la funcionalidad "Total & Average".
Tu programa debe:
- Inicializar un array vacío llamado
expenses - Crear un
loop doque muestre el menú y lea la entrada del usuario - Cuando el usuario introduzca
"1", solicitar el nombre y el monto del gasto, crear un hash con las llaves:namey:amount, añadirlo al arrayexpensesy mostrarExpense added! - Cuando el usuario introduzca
"2", mostrar todos los gastos o un mensaje si no existe ninguno - Cuando el usuario introduzca
"3", calcular y mostrar el total y el promedio de todos los gastos, o un mensaje si no existe ninguno - Cuando el usuario introduzca
"5", mostrarGoodbye!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 "3":
- Si no hay gastos, mostrar:
No expenses to calculate. - Si hay gastos, mostrar el total y el promedio en este formato:
Total: $XAverage: $Y
Calcula el total sumando todos los valores de :amount. Calcula el promedio dividiendo el total por el número de gastos.
Por ejemplo, si las entradas son 3, y luego 5 (calculando 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 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 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: 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
# Inicializar el arreglo de gastos
expenses = []
# TODO: Escribe tu código a continuación
# Crear un bucle que:
# - Muestre el menú
# - Lea la entrada del usuario
# - Maneje las opciones 1, 2, 3 y 5
#
# Para la opción "1": solicitar nombre y monto, crear hash, agregar a expenses
# Para la opción "2": mostrar todos los gastos o un mensaje si no hay ninguno
# Para la opción "3": calcular y mostrar el total y el promedio, o un mensaje si no hay ninguno
# Para la opción "5": imprimir "Goodbye!" y salirTodas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Métodos
Definir un métodoParámetros de un métodoValores de retornoRepaso - Método SigmaRepaso - Método de validaciónValores de parámetros por defecto15Seguimiento de gastos diarios
Descripción general del proyectoSalir del programa