Menu
CoddyTech

Total e Média

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

challenge icon

Desafio

Fácil

Amplie seu rastreador de despesas adicionando a funcionalidade "Total & Average".

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 digitar "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 digitar "2", exibir todas as despesas como antes: imprimir No expenses recorded yet. se não houver nenhuma; caso contrário, imprimir uma linha em branco seguida de --- Your Expenses --- e, então, cada despesa no formato Name: $Amount
  5. Quando o usuário digitar "3", calcular e exibir o total e a média de todas as despesas, ou uma mensagem se não houver nenhuma
  6. Quando o usuário digitar "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 "3" for selecionada:

  • Se não houver despesas, imprimir: No expenses to calculate.
  • Se houver despesas, imprimir o total e a média neste formato:
    Total: $X
    Average: $Y

Calcule o total somando todos os valores de :amount. Calcule a média dividindo o total pelo número de despesas.

Por exemplo, se as entradas forem 3 e, depois, 5 (calculando quando não há despesas), 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 to calculate.

--- 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, 5.0, 1, Lunch, 15.0, 3 e, depois, 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: Total: $20.0
Average: $10.0

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

Experimente você mesmo

# Inicialize o array expenses
expenses = []

# TODO: Escreva seu código abaixo
# Crie um loop do que:
# - Exiba o menu
# - Leia a entrada do usuário
# - Trate as opções 1, 2, 3 e 5
# 
# Para a opção "1": solicite o nome e o valor, crie um hash e adicione-o a expenses
# Para a opção "2": exiba todas as despesas ou uma mensagem caso não haja nenhuma
# Para a opção "3": calcule e exiba o total e a média, ou uma mensagem caso não haja nenhuma despesa
# Para a opção "5": imprima "Goodbye!" e encerre o programa

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Ruby online