Borrar todo
Parte de la sección Fundamentos del Journey de Ruby de Coddy. Lección 84 de 88.
Desafío
FácilAmplía tu rastreador de gastos añadiendo la funcionalidad "Clear All".
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 arrayexpensese imprimirExpense 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
"4", eliminar todos los gastos del array e imprimir un mensaje de confirmación - Cuando el usuario introduzca
"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 seleccione la opción "4", utiliza el método clear en el array de gastos e imprime: All expenses cleared!
Por ejemplo, si las entradas son 1, Coffee, 5.0, 4, 2, y luego 5 (añadir un gasto, borrar todo, luego ver), 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: All expenses cleared!
--- 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, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, y luego 5 (añadir dos gastos, verificar el total, borrar, verificar el total de nuevo), 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: $37.0
Average: $18.5
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: All expenses cleared!
--- 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!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
expense = { name: name, amount: amount }
expenses << expense
puts "Expense added!"
elsif choice == "2"
if expenses.empty?
puts "No expenses recorded."
else
expenses.each do |expense|
puts "#{expense[:name]}: $#{expense[:amount]}"
end
end
elsif choice == "3"
if expenses.empty?
puts "No expenses to calculate."
else
total = 0
expenses.each do |expense|
total += expense[:amount]
end
average = total / expenses.length
puts "Total: $#{total}"
puts "Average: $#{average}"
end
elsif choice == "5"
puts "Goodbye!"
break
end
puts ""
endTodas 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