Menu
Coddy logo textTech

Tout effacer

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 84 sur 88.

challenge icon

Défi

Facile

Développez votre gestionnaire de dépenses en ajoutant la fonctionnalité "Clear All".

Votre programme doit :

  1. Initialiser un tableau vide nommé expenses
  2. Créer une boucle loop do qui affiche le menu et lit l'entrée de l'utilisateur
  3. Lorsque l'utilisateur saisit "1", demander le nom et le montant de la dépense, créer un hash avec les clés :name et :amount, l'ajouter au tableau expenses, et afficher Expense added!
  4. Lorsque l'utilisateur saisit "2", afficher toutes les dépenses ou un message si aucune n'existe
  5. Lorsque l'utilisateur saisit "3", calculer et afficher le total et la moyenne de toutes les dépenses, ou un message si aucune n'existe
  6. Lorsque l'utilisateur saisit "4", vider toutes les dépenses du tableau et afficher un message de confirmation
  7. Lorsque l'utilisateur saisit "5", afficher Goodbye! et sortir de la boucle

Le menu doit s'afficher exactement comme auparavant :


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

Lorsque l'option "4" est sélectionnée, utilisez la méthode clear sur le tableau expenses et affichez : All expenses cleared!

Par exemple, si les entrées sont 1, Coffee, 5.0, 4, 2, puis 5 (ajouter une dépense, tout effacer, puis afficher), la sortie devrait être :


--- 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!

Si les entrées sont 1, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 3, puis 5 (ajouter deux dépenses, vérifier le total, effacer, vérifier à nouveau le total), la sortie devrait être :


--- 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!

Essayez vous-même

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

Toutes les leçons de Fondamentaux