Menu
Coddy logo textTech

Cancellare tutto

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 84 di 88.

challenge icon

Sfida

Facile

Completa il tuo programma per tenere traccia delle spese aggiungendo la funzionalità "Clear All".

Il tuo programma dovrebbe:

  1. Inizializzare un array vuoto chiamato expenses
  2. Creare un loop do che visualizzi il menu e legga l'input dell'utente
  3. Quando l'utente inserisce "1", chiedere il nome e l'importo della spesa, creare un hash con le chiavi :name e :amount, aggiungerlo all'array expenses e stampare Expense added!
  4. Quando l'utente inserisce "2", visualizzare tutte le spese oppure un messaggio se non ce ne sono
  5. 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
  6. Quando l'utente inserisce "4", cancellare tutte le spese dall'array e stampare un messaggio di conferma
  7. Quando l'utente inserisce "5", stampare Goodbye! 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 ""
end

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online