Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مسح الكل

جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 84 من 88.

challenge icon

التحدي

سهل

قم بتطوير متتبع النفقات الخاص بك عن طريق إضافة وظيفة "Clear All".

يجب أن يقوم برنامجك بما يلي:

  1. تهيئة مصفوفة فارغة تسمى expenses
  2. إنشاء loop do يعرض القائمة ويقرأ مدخلات المستخدم
  3. عندما يدخل المستخدم "1"، اطلب اسم النفقة ومبلغها، وأنشئ hash بمفاتيح :name و :amount، وأضفه إلى مصفوفة expenses، واطبع Expense added!
  4. عندما يدخل المستخدم "2"، اعرض جميع النفقات أو رسالة في حال عدم وجود أي منها
  5. عندما يدخل المستخدم "3"، احسب واعرض المجموع والمتوسط لجميع النفقات، أو رسالة في حال عدم وجود أي منها
  6. عندما يدخل المستخدم "4"، امسح جميع النفقات من المصفوفة واطبع رسالة تأكيد
  7. عندما يدخل المستخدم "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

جميع دروس الأساسيات