Доброго времени суток, Уважаемые Знатоки. Сразу оговорюсь, помощь нужна не в решении задачи вместо меня. Просто не могу понять, как применить имеющиеся знания на практике. Если кто-нибудь поможет составить план действий, буду очень сильно благодарен. Итак, вот сама задача: Напишите программу, моделирующую кассы в магазине. Существует несколько касс, работающих одновременно.
Каждый покупатель — отдельный поток. Общее количество покупателей может быть больше, чем количество касс, но одновременно не может обрабатываться больше покупателей, чем имеется рабочих касс. У каждого покупателя есть набор товаров, которые должны быть выведены в процессе обслуживания.
Отслеживать
5,185 3 3 золотых знака 23 23 серебряных знака 48 48 бронзовых знаков
Источник: ru.stackoverflow.com
Cash Front. Программа для кассы. Обзор
Написание программы, моделирующей работу кассы приема платежей
Написать программу, моделирующую работу кассы приема платежей.
Количество работающих кассиров (1, 2 или 3) выбирается переключателем.
Работа каждого кассира моделируется отдельным потоком, время обслуживания каждого клиента определяется генератором случайных чисел
в диапазоне 30 – 200 сек.
На главной форме визуально должны динамически отображаться:
— количество обслуживаемых в данный момент клиентов;
— количество клиентов в общей очереди;
— состояние каждого кассира (занят-свободен);
если он занят – время, оставшееся до окончания
обслуживания очередного клиента (секунд).
Объекты синхронизации выбираются самостоятельно.
В качестве способа синхронизации была выбрана Критическая секция.
Принцип работы программы заключается в следующем:
Критическая секция (critical section) — это небольшой участок кода, требующий монопольного доступа к каким-то общим данным. Она позволяет сделать так, чтобы единовременно только один поток получал доступ к определенному ресурсу.
В своей программе при помощи кнопки Button3- «Пуск» и переключателя RadioGroup1 создаем потоки от 1 до 3-х, которые одновременно могут обслуживать только по одному клиенту.
Запуская потоки, уменьшается число клиентов в очереди и запускается таймер, который показывает время, оставшееся до освобождения кассы.
Количество клиентов можно увеличить при помощи Button2-«Добавить людей в очередь».
Работу запущенных потоков можно приостановить кнопками PauseBtn1, PauseBtn2 и соответственно PauseBtn3.
Общая схема работы программы:
Описание основных функций:
Кассовая программа Frontol Simple. Обзор основных возможностей торговли в программе Frontol Simple.
Преимущество критических секций в том, что они просты в использовании и выполняются очень быстро, так как реализованы на основе Interlocked-функций.
Рис.1. Главная форма программы.
На данной форме осуществляется управление моделью «касс приема платежей».
— Функция FormCreate. Создаем критическую секцию, задаем интервал времени, указываем место нахождения картинок.
void __fastcall TBankForm::FormCreate(TObject *Sender)
PictureDir = WorkDir + AnsiString(«\pictures»);
— Функция отсчета окончания времени обслуживания клиента.
void __fastcall TBankForm::Timer1Timer(TObject *Sender)
//n1, n2, n3- счетчики, нужные для отсчета времени обслуживания
Источник: vunivere.ru
Как написать программу для кассы
Тебе русским языком написано, что ошибки произошли во время построения.
Найди в своей вижуал студии окошко с ошибками уже.
g++ main.cpp -o main main.cpp:7:11: error: ‘NOD’ does not name a type main.cpp:9:28: error: ‘NOD’ was not declared in this scope main.cpp: In member function ‘void FirstClass::input_data()’: main.cpp:23:17: error: ‘Name_of_dastination’ was not declared in this scope main.cpp:23:38: error: ‘NOD’ was not declared in this scope main.cpp: In member function ‘void SecondClass::show_input_data()’: main.cpp:39:42: error: ‘Name_of_dastination’ was not declared in this scope main.cpp: In function ‘int main()’: main.cpp:56:19: error: ‘system’ was not declared in this scope |
Смотри по порядку:
main.cpp:7:11: error: ‘NOD’ does not name a type |
ошибка в 7 строке, 11 символе — ты объявляешь константу типа NOD, но нет такого типа.
main.cpp:9:28: error: ‘NOD’ was not declared in this scope |
9 строка, 28 символ. Ты опять пользуешься NOD
main.cpp:23:17: error: ‘Name_of_dastination’ was not declared in this scope |
23 строка, 17 символ — ты используешь Name_of_dastination, но опять ничего с таким именем не объявлял.
И дальше в том же духе.
Регистрация: 04.10.2008
Сообщений: 2,618
static const int NOD=30;
#include
Соберется оно хотя бы, а как работать будет — я хз, не смотрел код.
Пользователь
Регистрация: 14.12.2013
Сообщений: 64
static const int NOD=30;
#include
Соберется оно хотя бы, а как работать будет — я хз, не смотрел код.
Благодарю! Работает.
Если не сложно, могли бы Вы еще подсказать, как исправить, что бы корректно отображало введенные данные.
Изображения
Wrong data.jpg (17.0 Кб, 160 просмотров) |
Регистрация: 04.10.2008
Сообщений: 2,618
Если не сложно, могли бы Вы еще подсказать, как исправить, что бы корректно отображало введенные данные. |
Ты не пытаешься «отображать введенные данные».
У тебя 2 разных объекта. В первый ты вводишь данные, а во втором — не инициализируешь их.
Выводишь ты данные второго объекта, которые не инициализировал, поэтому на экран вываливается мусор.
Ну то-есть ты не понял азы ООП и ожидаешь какого-то неправильного поведения.
Источник: www.programmersforum.ru