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

Aprimore seu rastreador de despesas adicionando a funcionalidade "View Expenses".

Seu programa deve:

  1. Inicializar um array vazio chamado expenses
  2. Criar um loop do que exibe o menu e lê 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 se nenhuma existir
  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, imprima: No expenses recorded yet.
  • Se houver despesas, primeiro imprima uma linha em branco seguida por --- Your Expenses ---, depois imprima cada despesa no formato: Name: $Amount

Por exemplo, se as entradas forem 2, e depois 5 (visualizando quando vazio), a saída deve 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 depois 5, a saída deve 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