مسح الكل
جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 84 من 88.
التحدي
سهلقم بتطوير متتبع النفقات الخاص بك عن طريق إضافة وظيفة "Clear All".
يجب أن يقوم برنامجك بما يلي:
- تهيئة مصفوفة فارغة تسمى
expenses - إنشاء
loop doيعرض القائمة ويقرأ مدخلات المستخدم - عندما يدخل المستخدم
"1"، اطلب اسم النفقة ومبلغها، وأنشئ hash بمفاتيح:nameو:amount، وأضفه إلى مصفوفةexpenses، واطبعExpense added! - عندما يدخل المستخدم
"2"، اعرض جميع النفقات أو رسالة في حال عدم وجود أي منها - عندما يدخل المستخدم
"3"، احسب واعرض المجموع والمتوسط لجميع النفقات، أو رسالة في حال عدم وجود أي منها - عندما يدخل المستخدم
"4"، امسح جميع النفقات من المصفوفة واطبع رسالة تأكيد - عندما يدخل المستخدم
"5"، اطبعGoodbye!واخرج من الحلقة
يجب أن تظهر القائمة تماماً كما كانت من قبل:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: عند اختيار الخيار "4"، استخدم طريقة clear على مصفوفة expenses واطبع: All expenses cleared!
على سبيل المثال، إذا كانت المدخلات هي 1، Coffee، 5.0، 4، 2، ثم 5 (إضافة نفقة، مسح الكل، ثم العرض)، يجب أن تكون النتيجة:
--- 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!إذا كانت المدخلات هي 1، Lunch، 12.0، 1، Dinner، 25.0، 3، 4، 3، ثم 5 (إضافة نفقتين، التحقق من المجموع، المسح، ثم التحقق من المجموع مرة أخرى)، يجب أن تكون النتيجة:
--- 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!جرّب بنفسك
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جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ9الدوال (Methods)
تعريف الدالةمعاملات الدالةقيم الإرجاعمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية للمعاملات15متتبع المصاريف اليومية
نظرة عامة على المشروعالخروج من البرنامجتدرّب بنفسك: مترجم Ruby عبر الإنترنت