Menu
Coddy logo textTech

Alles löschen

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 84 von 88.

challenge icon

Aufgabe

Einfach

Erweitere deinen Ausgaben-Tracker, indem du die Funktionalität "Clear All" hinzufügst.

Dein Programm sollte:

  1. Ein leeres Array namens expenses initialisieren
  2. Einen loop do erstellen, der das Menü anzeigt und Benutzereingaben liest
  3. Wenn der Benutzer "1" eingibt, frage nach dem Namen der Ausgabe und dem Betrag, erstelle einen Hash mit den Schlüsseln :name und :amount, füge ihn dem expenses Array hinzu und gib Expense added! aus
  4. Wenn der Benutzer "2" eingibt, zeige alle Ausgaben an oder eine Nachricht, falls keine vorhanden sind
  5. Wenn der Benutzer "3" eingibt, berechne und zeige die Summe und den Durchschnitt aller Ausgaben an, oder eine Nachricht, falls keine vorhanden sind
  6. Wenn der Benutzer "4" eingibt, lösche alle Ausgaben aus dem Array und gib eine Bestätigungsnachricht aus
  7. Wenn der Benutzer "5" eingibt, gib Goodbye! aus und beende die Schleife

Das Menü sollte genau wie zuvor angezeigt werden:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 

Wenn die Option "4" ausgewählt wird, verwende die clear Methode auf dem expenses Array und gib aus: All expenses cleared!

Wenn die Eingaben zum Beispiel 1, Coffee, 5.0, 4, 2, dann 5 sind (eine Ausgabe hinzufügen, alles löschen, dann anzeigen), sollte die Ausgabe wie folgt aussehen:


--- 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!

Wenn die Eingaben 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, dann 5 sind (zwei Ausgaben hinzufügen, Summe prüfen, löschen, Summe erneut prüfen), sollte die Ausgabe wie folgt aussehen:


--- 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!

Probier es selbst

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

Alle Lektionen in Grundlagen