Menu
Coddy logo textTech

Alle löschen

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

challenge icon

Aufgabe

Einfach

Baue deinen Ausgaben-Tracker aus, indem du die Funktionalität „Alle löschen“ hinzufügst.

Dein Programm sollte:

  1. Ein leeres Array namens expenses initialisieren
  2. Eine loop do-Schleife erstellen, die das Menü anzeigt und die Benutzereingabe liest
  3. Wenn der Benutzer "1" eingibt, nach dem Namen und dem Betrag der Ausgabe fragen, einen Hash mit den Schlüsseln :name und :amount erstellen, ihn zum Array expenses hinzufügen und Expense added! ausgeben
  4. Wenn der Benutzer "2" eingibt, alle Ausgaben anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind
  5. Wenn der Benutzer "3" eingibt, die Gesamtsumme und den Durchschnitt aller Ausgaben berechnen und anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind
  6. Wenn der Benutzer "4" eingibt, alle Ausgaben aus dem Array löschen und eine Bestätigungsnachricht ausgeben
  7. Wenn der Benutzer "5" eingibt, Goodbye! ausgeben und die Schleife verlassen

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 Methode clear für das Ausgaben-Array und gib Folgendes aus: All expenses cleared!

Wenn die Eingaben beispielsweise 1, Coffee, 5.0, 4, 2 und dann 5 sind (eine Ausgabe hinzufügen, alle löschen und dann anzeigen), sollte die Ausgabe folgendermaßen 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 und dann 5 sind (zwei Ausgaben hinzufügen, die Gesamtsumme prüfen, löschen und die Gesamtsumme erneut prüfen), sollte die Ausgabe folgendermaßen 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

Übe selbstständig: Online-Ruby-Compiler