Реализовать программу расчета заказа в кафетерии при условии, что заказ может быть на несколько человек и каждый клиент формирует
свою часть заказа. Необходимо спросить у пользователя на сколько человек заказ. Далее каждому человеку выводиться меню
(названия напитков, кондитерских изделий и их цена) и он выбирает. Предусмотреть возможность выбора нескольких элементов меню для
клиента, если он желает добавить еще что-то в свой заказ. Результат работы программы — итоговая сумма общего заказа всей компании.
Написать код на языке С++ ( ГЕНЕРАТОР СЛУЧАЙНЫХ ЧИСЕЛ)
Ответы
Ответ:
#include <iostream>
#include <string>
#include <vector>
#include <random>
int main() {
std::vector<std::string> menu = {"Кофе", "Чай", "Круассан", "Пирожное", "Кекс"};
std::vector<int> prices = {50, 30, 70, 40, 20};
std::random_device rd; // инициализация генератора случайных чисел
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(1, 5);
std::cout << "Сколько человек в вашей компании? ";
int num_people;
std::cin >> num_people;
int total_price = 0;
for (int i = 0; i < num_people; i++) {
std::cout << "Меню для человека " << i+1 << ":\n";
for (int j = 0; j < menu.size(); j++) {
std::cout << j+1 << ". " << menu[j] << " - " << prices[j] << " руб.\n";
}
std::vector<int> order(menu.size(), 0); // создаем пустой заказ
while (true) {
std::cout << "Введите номер пункта меню для добавления в заказ (или 0 для завершения): ";
int choice;
std::cin >> choice;
if (choice == 0) {
break;
}
order[choice-1]++; // добавляем выбранный пункт меню в заказ
}
int person_price = 0;
for (int j = 0; j < order.size(); j++) {
person_price += order[j] * prices[j]; // считаем стоимость заказа одного человека
}
std::cout << "Стоимость заказа человека " << i+1 << ": " << person_price << " руб.\n";
total_price += person_price; // добавляем стоимость заказа одного человека к общей стоимости заказа
}
std::cout << "Общая стоимость заказа: " << total_price << " руб.\n";
return 0;
}
Объяснение:
В данном примере создается вектор с названиями пунктов меню menu и соответствующими им ценами prices. Затем с помощью генератора случайных чисел запрашивается у пользователя количество людей в компании и для каждого человека выводится меню, из которого он может выбрать нужные ему пункты. Заказ каждого человека записывается в вектор order, который после этого используется для подсчета стоимости заказа одного человека. Общая стоимость заказа рассчитывается путем суммирования стоимостей заказов каждого человека.