Menu
Coddy logo textTech

מחיקת הכול

חלק מהיחידה יסודות במסלול ה-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 על מערך ההוצאות ולהדפיס: 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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Ruby אונליין