Перейти к содержимому

Практика по моделированию простой задачи

В ассортименте есть 3 товара: напиток, первое и второе. У каждого из них разные цены (например: 10, 20, 30).

У клиента есть возможность заказать какое-либо количество каждого из этих товаров. Есть 2 клиента, каждый заказывает разные комбинации вещей.

  1. Представьте данную ситуацию в программе. Выведите на экран стоимость заказа каждого из клиентов.

    Затрудняюсь понять как это представить

    У вас есть 2 клиента. У каждого из них по количеству для каждого типа вещи. Это 6 переменных. Значения переменных задаются в зависимости от заказа. Например:

    int client1_drink = 100; // 100г напитка
    int client1_first = 0; // нет первого
    int client1_second = 250; // 250г второго
    int client2_drink = 0; // 0 напитка
    int client2_first = 300; // 300г первого
    int client2_second = 0; // 0 второго
    Получение стоимости
    int client1_total = client1_drink * 10 + client_first * 20 + client_second * 30;
  2. Отделите работу с отдельными клиентами блоками. Внутри блоков, используйте переменные с тем же именем.

  3. Создайте структуру цен. Упоминайте цены товаров не напрямую, а через переменную этого типа. Таким образом, все цены будут логически сгруппированы в одной переменной.

  4. Создайте структуру выбора клиента.

  5. Сделайте функцию выбора клиента, принимающую параметрами цены и выбор клиента.

    Зачем?

    Чтобы убрать повторяющийся код.

    Как?

    Найдите от чего зависит код выбора клиента просмотрев его. Зависимость идет от цен, цены и будут первым параметром.

    Далее, что изменяется в каждом повторении этого кода? Изменяется переменная выбора клиента — это и будут следующий параметр.

    Далее, какой результат ожидается от этого куска кода? Поиск стоимости. Поэтому, возвращаемый тип будет int.

    int customerTotal(Prices prices, Choices choices)
    {
    // ...
    }