It's algorythmical version of cafe project.
Владелец вашего любимого кафе обратился к вам с просьбой разработать программу для учета заказов. У него есть подозрения, что некоторые из нечистых на руку официантов часть заказов проводят мимо кассы.
В конце каждого дня он готов присылать вам следующую информацию в виде отдельных текстовых файлов:
1.в файле с кассы учитываются заказы с указанием блюд и количества заказанных порций каждым клиентом за день
Пример orders-20160201.txt:
2.В файле от доверенного менеджера с кухни указываются количество блюд, приготовленных за сутки, в том порядке, в котором передавали заказы официанты. Пример kitchen-20160201.txt:
шарлотка = 1 кофе американо = 3 вайли с джемом = 2 мороженое = 5 кофе латте = 1 лимон = 1 кофе латте = 1
3.В отдельном файле задано меню кафе с указанием цен за одну порцию. Пример menu-20160201.txt:
шарлотка = 150,00 вафли с джемом = 120,00 кофе американо = 80,00 кофе латте = 140,00 мороженое = 50,00 лимон = 30,00
Владелец кафе просит, чтобы ваша программа выдавала ему отчет о кражах за сутки со следующей информацией: •перечень блюд и количество порций, которые были проведены мимо кассы; •итоговая стоимость украденных блюд.
Задания: Этап I. Реализация на структурах и функциях 1.Определить структуры данных. 2.Разделить реализацию на ввод/вывод и логику (алгоритмы обработки). Согласовать интерфейсы функций (названия, входные/выходные параметры) и их взаимодействие. 3.Каждый из членов бригады (из 2-х человек) реализует свою часть функций. 4.Интегрировать решения и протестировать на различных входных данных.
Необходимо: •Установить и соблюдать соглашения по именованию и форматированию кода: корректное именование функций, переменных, структур данных. •Грамотно декомпозировать алгоритм на функции: одна функция решает только одну задачу. •Грамотная работа с динамической памятью new/delete (выделение/освобождение, отсутствие утечек) •Обрабатывать некорректные ситуации при работе программы (не найден файл, некорректное содержание входных файлов - ошибки форматирования (пропущено количество или название, символ = и т.д.), ошибки в данных (опечатки в названиях блюд), отсутствие краж и т.д.)
Затем, разбить на модули: один или несколько заголовочных файлов, плюс реализация в одном или нескольких cpp-файлах.