Menu
Coddy logo textTech

טיפול בשגיאות

חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 85 מתוך 88.

challenge icon

אתגר

קל

השלימו את מעקב ההוצאות היומי על ידי הוספת טיפול בשגיאות עבור אפשרויות לא תקינות בתפריט.

התוכנית שלכם צריכה:

  1. לאתחל מערך ריק בשם expenses
  2. ליצור loop do שמציג את התפריט וקורא את קלט המשתמש
  3. כשהמשתמש מזין "1", לבקש את שם ההוצאה ואת הסכום, ליצור hash עם המפתחות :name ו־:amount, להוסיף אותו למערך expenses, ולהדפיס Expense added!
  4. כשהמשתמש מזין "2", להציג את כל ההוצאות או הודעה אם אין הוצאות
  5. כשהמשתמש מזין "3", לחשב ולהציג את הסכום הכולל ואת הממוצע של כל ההוצאות, או הודעה אם אין הוצאות
  6. כשהמשתמש מזין "4", למחוק את כל ההוצאות מהמערך ולהדפיס All expenses cleared!
  7. כשהמשתמש מזין "5", להדפיס Goodbye! ולצאת מהלולאה
  8. עבור כל קלט אחר, להדפיס: Invalid option. Please try again.

התפריט צריך להופיע בדיוק כמו קודם:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 

לדוגמה, אם הקלטים הם 7, abc, ואז 5 (שתי אפשרויות לא תקינות, ואז יציאה), הפלט צריך להיות:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!

אם הקלטים הם 1, Coffee, 4.5, 6, 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: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 
--- Your Expenses ---
Coffee: $4.5

--- 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
    expenses << { name: name, amount: amount }
    puts "Expense added!"
  elsif choice == "2"
    if expenses.empty?
      puts "No expenses recorded yet."
    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 = expenses.sum { |expense| expense[:amount] }
      average = total / expenses.length
      puts "Total: $#{total}"
      puts "Average: $#{average}"
    end
  elsif choice == "4"
    expenses.clear
    puts "All expenses cleared!"
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
  
  puts ""
end

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

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