Total e Média
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 83 de 88.
Desafio
FácilAprimore seu rastreador de despesas adicionando a funcionalidade "Total & Average".
Seu programa deve:
- Inicializar um array vazio chamado
expenses - Criar um
loop doque exibe o menu e lê a entrada do usuário - Quando o usuário inserir
"1", solicitar o nome e o valor da despesa, criar um hash com as chaves:namee:amount, adicioná-lo ao arrayexpensese imprimirExpense added! - Quando o usuário inserir
"2", exibir todas as despesas ou uma mensagem se nenhuma existir - Quando o usuário inserir
"3", calcular e exibir o total e a média de todas as despesas, ou uma mensagem se nenhuma existir - Quando o usuário inserir
"5", imprimirGoodbye!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, imprima:
No expenses to calculate. - Se houver despesas, imprima o total e a média neste formato:
Total: $XAverage: $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 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 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 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: 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
# Inicializar o array de despesas
expenses = []
# TODO: Escreva seu código abaixo
# Crie um loop que:
# - Exiba o menu
# - Leia a entrada do usuário
# - Manipule as opções 1, 2, 3 e 5
#
# Para a opção "1": solicite nome e valor, crie o hash, adicione às despesas
# Para a opção "2": exiba todas as despesas ou uma mensagem se não houver nenhuma
# Para a opção "3": calcule e exiba o total e a média, ou uma mensagem se não houver nenhuma
# Para a opção "5": imprima "Goodbye!" e saiaTodas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa