Alle löschen
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 84 von 88.
Aufgabe
EinfachBaue deinen Ausgaben-Tracker aus, indem du die Funktionalität „Alle löschen“ hinzufügst.
Dein Programm sollte:
- Ein leeres Array namens
expensesinitialisieren - Eine
loop do-Schleife erstellen, die das Menü anzeigt und die Benutzereingabe liest - Wenn der Benutzer
"1"eingibt, nach dem Namen und dem Betrag der Ausgabe fragen, einen Hash mit den Schlüsseln:nameund:amounterstellen, ihn zum Arrayexpenseshinzufügen undExpense added!ausgeben - Wenn der Benutzer
"2"eingibt, alle Ausgaben anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind - Wenn der Benutzer
"3"eingibt, die Gesamtsumme und den Durchschnitt aller Ausgaben berechnen und anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind - Wenn der Benutzer
"4"eingibt, alle Ausgaben aus dem Array löschen und eine Bestätigungsnachricht ausgeben - 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 ""
endAlle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechner zum Aufteilen der Rechnung
WillkommensnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array-Slicing mit BereichenArray-Slicing mit IndizesArray-OperatorenInclude?-Methode2Variablen und Datentypen
Zahlen und VariablenString-DatentypBoolean-DatentypSymbol-DatentypDatentypen überprüfenNamenskonventionenWiederholung – Variablen erstellen5Entscheidungsfindung
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerVerschachteltes If - ElseUnless-Anweisung8Schleifen
For-Schleife mit BereichenWhile-SchleifeBreakNextRückblick – FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische KurzschreibweisenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsDie chomp-MethodeTypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Methoden
Eine Methode definierenMethodenparameterRückgabewerteWiederholung – Sigma-MethodeWiederholung – ValidierungsmethodeStandardparameterwerte15Täglicher Ausgaben-Tracker
ProjektübersichtProgramm beendenÜbe selbstständig: Online-Ruby-Compiler