Tümünü Temizle
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası. Ders 84 / 88.
Görev
Kolay"Tümünü Temizle" işlevini ekleyerek gider takip uygulamanızı geliştirin.
Programınız şunları yapmalıdır:
expensesadlı boş bir dizi başlatın- Menüyü görüntüleyen ve kullanıcı girdisini okuyan bir
loop dooluşturun - Kullanıcı
"1"girdiğinde gider adını ve tutarını isteyin,:nameve:amountanahtarlarına sahip bir hash oluşturun, bunuexpensesdizisine ekleyin veExpense added!yazdırın - Kullanıcı
"2"girdiğinde tüm giderleri veya hiç gider yoksa bir mesaj görüntüleyin - Kullanıcı
"3"girdiğinde tüm giderlerin toplamını ve ortalamasını hesaplayıp görüntüleyin veya hiç gider yoksa bir mesaj görüntüleyin - Kullanıcı
"4"girdiğinde dizideki tüm giderleri temizleyin ve bir onay mesajı yazdırın - Kullanıcı
"5"girdiğindeGoodbye!yazdırın ve döngüden çıkın
Menü, daha önce olduğu gibi tam olarak görüntülenmelidir:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: "4" seçeneği belirlendiğinde, giderler dizisi üzerinde clear yöntemini kullanın ve şunu yazdırın: All expenses cleared!
Örneğin girdiler 1, Coffee, 5.0, 4, 2 ve ardından 5 ise (bir gider ekle, tümünü temizle, ardından görüntüle), çıktı şöyle olmalıdır:
--- 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!Girdiler 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3 ve ardından 5 ise (iki gider ekle, toplamı kontrol et, temizle, toplamı tekrar kontrol et), çıktı şöyle olmalıdır:
--- 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!Kendin dene
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 ""
endTemeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect15Günlük Gider Takipçisi
Projeye Genel BakışProgramdan ÇıkışKendi başına pratik yap: Online Ruby derleyicisi