Menu
CoddyTech

Итог и среднее значение

Часть раздела Основы путешествия по Ruby на Coddy. Урок 83 из 88.

challenge icon

Задание

Легко

Расширь свой трекер расходов, добавив функцию «Итого и среднее».

Твоя программа должна:

  1. Создать пустой массив с именем expenses
  2. Создать loop do, который отображает меню и считывает ввод пользователя
  3. Когда пользователь вводит "1", запросить название и сумму расхода, создать хеш с ключами :name и :amount, добавить его в массив expenses и вывести Expense added!
  4. Когда пользователь вводит "2", отобразить все расходы, как и раньше: если расходов нет, вывести No expenses recorded yet.; в противном случае вывести пустую строку, за которой следует --- Your Expenses ---, а затем каждый расход в формате Name: $Amount
  5. Когда пользователь вводит "3", вычислить и отобразить общую сумму и среднее значение расходов или вывести сообщение, если расходов нет
  6. Когда пользователь вводит "5", вывести Goodbye! и выйти из цикла

Меню должно отображаться точно так же, как раньше:


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

Когда выбран пункт "3":

  • Если расходов нет, выведи: No expenses to calculate.
  • Если расходы есть, выведи общую сумму и среднее значение в таком формате:
    Total: $X
    Average: $Y

Вычисли общую сумму, сложив все значения :amount. Вычисли среднее значение, разделив общую сумму на количество расходов.

Например, если введены 3, затем 5 (вычисление при отсутствии расходов), результат должен быть таким:


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

Если введены 1, Coffee, 5.0, 1, Lunch, 15.0, 3, затем 5, результат должен быть таким:


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

Попробуйте сами

# Инициализируйте массив expenses
expenses = []

# TODO: Напишите свой код ниже
# Создайте цикл, который:
# - Отображает меню
# - Считывает ввод пользователя
# - Обрабатывает варианты 1, 2, 3 и 5
# 
# Для варианта "1": запросите название и сумму, создайте хеш и добавьте его в expenses
# Для варианта "2": выведите все расходы или сообщение, если их нет
# Для варианта "3": вычислите и выведите общую сумму и среднее значение или сообщение, если расходов нет
# Для варианта "5": выведите "Goodbye!" и завершите работу

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby