Total y promedio
Parte de la sección Fundamentos del Journey de Ruby de Coddy. Lección 83 de 88.
Desafío
FácilMejora tu rastreador de gastos añadiendo la funcionalidad «Total y promedio».
Tu programa debe:
- Inicializar un arreglo vacío llamado
expenses - Crear un
loop doque muestre el menú y lea la entrada del usuario - Cuando el usuario ingrese
"1", pedir el nombre y el monto del gasto, crear un hash con las claves:namey:amount, añadirlo al arregloexpensese imprimirExpense added! - Cuando el usuario ingrese
"2", mostrar todos los gastos como antes: imprimirNo 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 formatoName: $Amount - Cuando el usuario ingrese
"3", calcular y mostrar el total y el promedio de todos los gastos, o un mensaje si no hay ninguno - Cuando el usuario ingrese
"5", imprimirGoodbye!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: $XAverage: $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 salTodas 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 programaPractica por tu cuenta: Compilador de Ruby online