Menu
Coddy logo textTech

Visualizar Todas as Despesas

Parte da seção Fundamentos do Journey de Ruby da Coddy. Lição 82 de 88.

challenge icon

Desafio

Fácil

Amplie seu rastreador de despesas adicionando a funcionalidade "Visualizar despesas".

Seu programa deve:

  1. Inicializar um array vazio chamado expenses
  2. Criar um loop do que exiba o menu e leia a entrada do usuário
  3. Quando o usuário inserir "1", solicitar o nome e o valor da despesa, criar um hash com as chaves :name e :amount, adicioná-lo ao array expenses e imprimir Expense added!
  4. Quando o usuário inserir "2", exibir todas as despesas ou uma mensagem caso não exista nenhuma
  5. Quando o usuário inserir "5", imprimir Goodbye! e sair do loop

O menu deve ser exibido exatamente como antes:


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

Quando a opção "2" for selecionada:

  • Se não houver despesas, imprimir: No expenses recorded yet.
  • Se houver despesas, primeiro imprimir uma linha em branco seguida de --- Your Expenses --- e, então, imprimir cada despesa no formato: Name: $Amount

Por exemplo, se as entradas forem 2 e depois 5 (visualização quando vazio), a saída deverá ser:


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

Se as entradas forem 1, Coffee, 4.5, 1, Lunch, 12.0, 2 e, então, 5, a saída deverá ser:


--- 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: 
--- Your Expenses ---
Coffee: $4.5
Lunch: $12.0

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

Experimente você mesmo

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.push({name: name, amount: amount})
    puts "Expense added!"
    puts ""
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
end

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Ruby online