634.64K
Category: programmingprogramming

Объектное-ориентированное программирование

1.

МИНИСТЕРСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ РЕСПУБЛИКИ БЕЛАРУСЬ
Обособленное подразделение
«КОЛЛЕДЖ ИНФОРМАЦИОННЫХ-КОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ»
Учреждение образования
«БЕЛОРУССКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ СВЯЗИ»
ФАКУЛЬТЕТ ЭЛЕКТРОСВЯЗИ
КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СЕТЕЙ ТЕЛЕКОММУНИКАЦИЙ
РАЗРАБОТКА ПРОГРАММЫ АВТОМАТИЗАЦИИ АПТЕКИ
Пояснительная записка
к курсовому проекту
по дисциплине
«ОБЪЕКТНОЕ-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»
Выполнил учащейся гр. ТО112
Руководитель
Ю.Д. Батинов
А.Б. Малолеткин

2.

Цели и задачи
Цели:
1. Упростить и автоматизировать процессы управления аптекой для повышения
эффективности работы и улучшения обслуживания пациентов.
2. Создать интуитивно понятное и простое в использовании программное обеспечение,
которое позволит быстро обрабатывать заказы, управлять запасами и отслеживать
продажи.
3. Усовершенствовать систему отчетности и аналитики для помощи в принятии решений
на основе данных о продажах, запасах и покупательском поведении.
Задачи:
1. Реализация функционала оформления заказов, включая покупку, управление
запасами и взаимодействие с поставщиками, оформление их отзывов.
2. Разработка механизма учета продаж и генерации отчетов о доходах, продажах по
категориям, популярных товарах и другой важной статистике.

3.

На первом этапе создания кода было реализовано меню. Для этого мне понадобились знания
циклов, классов, конструкторов и объектов.
Сразу после запуска программы в консоли выводится приветствие покупателя. Для этого мы
создаем объект класса «Pharmacy» с названием «Айболит»:
Pharmacy pharmacy("Айболит");
Это нужно для того, чтобы определить, с какой аптекой работает покупатель. В данном случае
аптека моей программы называется «Айболит». Класс «Pharmacy» предназначен для представления
аптеки и всех связанных с ней данных и действий.
Далее на консоль выводятся 7 пунктов для выбора с помощью цикла while. То есть пока у while
значение true, он выполняется.
Если пользователь введет цифру вне диапазона значений выбора, то будет выведена ошибка с
просьбой ввести цифру от 1 до 7.
if (cin.fail()) {
cout << "Error: Enter a numeric choice from 1 to 7." << endl; }
В зависимости от цифры, которую выбрал покупатель, вызываются соответствующие функции с
помощью цикла switch. В переменной choice хранится выбор пользователя.

4.

Данный код представляет собой консольное приложение для управления аптекой. В нем
программа здоровается с клиентом и предлагает на выбор 7 пунктов:
1. Список всех лекарств
2. Купить лекарство
3. Добавить отзыв о товаре
4. Отзывы наших клиентов
5. Рекомендации наших
сотрудников
6. Лучшие сотрудники
7. Выход

5.

На втором этапе реализован просмотр выбора препаратов, которые находятся в наличии в
аптеке. Для этого нужно обладать знаниями циклов, классов, векторов, функций для работы с
векторами, методов.
В case 1 цикла switch прописываются действия при выборе цифры 1.
Для аптеки, название которой хранится в объекте класса Рharmacy как pharmacy, вызывается
функция listMedicines(), которая выводит список всех лекарств в наличии. Вектор Medicine
представляет собой инвентарь аптеки (список лекарств): vector<Medicine> inventory. Благодаря
циклу for и вектору Medicine на консоль выводится список всех товаров.

6.

На третьем этапе можно купить товар. Для этого нужно знать и понимать работу циклов, классов,
методов, строк и стандартных функций для работы со строками. В начале покупателю предлагают
самостоятельно ввести название товара с помощью строковой функции getline() для чтения строки
с пробелами. Далее вызывается функция sellMedicine(), которая содержит все необходимые
действия для покупки товара.
В case 2 цикла switch прописываются действия при выборе цифры 2.
Для начала проверяем, есть ли товар в наличии циклом if с переменной количества: if (m.quantity
> 0). Далее спрашиваем, сколько упаковок нужно покупателю: cout << "How many units of " <<
medName << " would you like to buy? ". Если пользователь введет число меньше или равно 0, то будет
выведен соответствующий текст.

7.

Далее спрашиваем, есть ли у покупателя скидочная карта: cout << "Do you have a discount card?
(yes/no): ". Записываем ответ в переменную response. Если «да», то просим ввести имя и фамилию
покупателя и проверяем наличие карты функцией checkDiscountCard().
Если все прошло отлично, то применяем скидку 15% и выводим итоговую сумму к оплате.
Если оплата проходит, спрашиваем, не хочет ли покупатель оставить отзыв. Если он согласился,
то нужно ввести оценку от 1 до 5 и оставить комментарий.
Если оплата не прошла, то выводится соответствующее сообщение и попытка оплаты
повторяется.

8.

На четвертом этапе реализована функция, чтобы
оставить отзыв на товар, который уже купили и
протестировали. Для этого было проделано тоже
самое, что и для написания отзыва на третьем
этапе, только отдельно.
На пятом этапе реализован просмотр
всех отзывов покупателей. Для этого
понадобились знания векторов и
функций для работы с ними.
В case 4 цикла switch прописываются
действия при выборе цифры 4.
Вызывается функция
displayCustomerReviews().
С помощью цикла for и вектора
vector<Review> customerReviews, в
котором хранятся все отзывы
покупателей, реализуется пункт меню 4.

9.

На шестом этапе реализован вывод рекомендованных товаров. Для этого понадобились знания
циклов и векторов.
В case 5 цикла switch прописываются действия при выборе цифры 5.
Метод recommendMedicines выводит рекомендации по использованию лекарств от сотрудников
аптеки. Тут использовался вектор Medicine, информация о котором описана ранее.

10.

На седьмом этапе реализован вывод лучших сотрудников аптеки. Для этого понадобились знания
циклов и векторов.
В case 6 цикла switch прописываются действия при выборе цифры 6.
Вызывается метод displayTopEmployees(), в котором поочередно выводятся лучшие сотрудники с
помощью цикла for и вектора vector<Employee> topEmployees, с указанием их имен employee.name и
должностей employee.position.
На восьмом этапе реализован выход из программы. Для этого понадобились знания циклов и
векторов.
В case 7 цикла switch прописываются действия при выборе цифры 7.
Выводится прощание с покупателем и выбор больше осуществить нельзя.
English     Русский Rules