Visualizar Todas as Despesas
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 82 de 88.
Desafio
FácilAprimore seu rastreador de despesas adicionando a funcionalidade "View Expenses".
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
"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 "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
endTodas 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