Cancellare tutto
Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 84 di 88.
Sfida
FacileCompleta il tuo programma per tenere traccia delle spese aggiungendo la funzionalità "Clear All".
Il tuo programma dovrebbe:
- Inizializzare un array vuoto chiamato
expenses - Creare un
loop doche visualizzi il menu e legga l'input dell'utente - Quando l'utente inserisce
"1", chiedere il nome e l'importo della spesa, creare un hash con le chiavi:namee:amount, aggiungerlo all'arrayexpensese stampareExpense added! - Quando l'utente inserisce
"2", visualizzare tutte le spese oppure un messaggio se non ce ne sono - Quando l'utente inserisce
"3", calcolare e visualizzare il totale e la media di tutte le spese, oppure un messaggio se non ce ne sono - Quando l'utente inserisce
"4", cancellare tutte le spese dall'array e stampare un messaggio di conferma - Quando l'utente inserisce
"5", stampareGoodbye!e uscire dal ciclo
Il menu dovrebbe essere visualizzato esattamente come prima:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Quando viene selezionata l'opzione "4", usa il metodo clear sull'array expenses e stampa: All expenses cleared!
Per esempio, se gli input sono 1, Coffee, 5.0, 4, 2, poi 5 (aggiungi una spesa, cancella tutto, poi visualizza), l'output dovrebbe essere:
--- 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!Se gli input sono 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, poi 5 (aggiungi due spese, controlla il totale, cancella, controlla di nuovo il totale), l'output dovrebbe essere:
--- 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!Provalo tu
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 ""
endTutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falso9Metodi
Definire un metodoParametri del metodoValori restituitiRiepilogo - Metodo SigmaRiepilogo - Metodo di validazioneValori predefiniti dei parametri15Monitor delle spese giornaliere
Panoramica del progettoUscire dal programmaEsercitati da solo: Compilatore Ruby online