Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824

Очередь в магазине с приоритетами

13.12.2012, 01:46. Показов 5142. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, пытаюсь решить задачу, не знаю с какой стороны подступиться, как начать ее выполнять.


В магазине выстроилась очередь за товарами. Список товаров строго ограничен. На каждого покупателя продавец тратит определенное время ( в зависимости от списка покупаемых товаров и их количества). При этом каждый покупатель очень воспитан, а именно: мужчины пропускают женщин, все пропускают пенсионеров; пенсионеры мужчины пропускают пенсионеров-женщин. Необходимо написать приложение, позволяющее моделировать данную ситуацию.

На входной форме необходимо указать количество видов товаров в магазине. Далее в диалоговом окне задаются наименование товара и время обслуживания продавцом одной единицы товара данного типа. Время выбора клиентом покупаемых товаров выбирается случайным образом.

На выходной форме необходимо отобразить список предлагаемых товаров; очередь за товарами; обслуживаемого в данный момент клиента со списком покупаемых товаров; список обслуженных клиентов с возможностью просмотра информации о покупках по каждому клиенту.

Необходимо:
1. Разработать и реализовать иерархию классов (ядро), позволяющую моделировать систему без привязки к интерфейсу пользователя. Обязательно применение класса TStringList(TObjectLIst);
2. Разработать интерфейс пользователя
3. Реализовать интерфейс с необходимой функциональность., используя разработанную иерархию.

Вот такая вот задача... Честно говоря не понимаю даже с какой стороны к этому можно подступиться... Подскажите?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2012, 01:46
Ответы с готовыми решениями:

Очередь с приоритетами
Напишите программу, реализующую очередь с приоритетами.

Очередь с приоритетами
Использую обычный и отсортированный список. Подчеркивает в строке class SortedLinkedList L<T>: LinkedList<T> L<T> и...

Очередь с приоритетами
Всем добрый день. Надо реализовать класс очереди с приоритетами. Нашел информацию: 1. http://edu.nstu.ru/courses/saod/queue.htm...

21
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
16.01.2013, 04:41  [ТС]
Студворк — интернет-сервис помощи студентам
Помогите разобраться вот с чем: файл OutputForm, строка 338. Жалуется видите ли на то, что не может прочитать Customer. Внимание вопрос! почему?
Ведь я его не очищал, никуда не девал.
Почему он очищается?
Вопрос номер 2 видимо сразу отпадает, после разрешения 1го. Как добавлять элементы в ListView.

Вопрос номер 3. Как думаете как лучше организовать список текущих посетителей?
У меня была идея скопировать PriorityQueue в какую-то еще, взять обычный TMemo и вывести туда все итемы с помощью GetCustomer.

Вопрос номер 4. Я молодец?

Пока что все.

Прилепил.

Вопросы
вопрос номер 5
почему после записи в поле TMemo список покупок текущего покупателя курсор опущен на строчку вниз, чтобы увидеть все нужно поднять его ручками.

впорос номер 6
почему это же поле TMemo странно как-то расширяется.
неправильно. не скажете почему? я чего-то не замечаю?

и вообще! почему секнда, как будто не секунда. вроде бы все верно учитываю. гляньте?

p.s.
по поводу первого вопроса. после того, как перенес, customer видит, но там мусор.
это плохо.
Вложения
Тип файла: zip lab3_alina.zip (416.3 Кб, 10 просмотров)
0
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 02:02  [ТС]
Поправил генератор рандома. Кода меньше, но работать будет и так. Должно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TShop.GenerateCustomers;
var
  RandomInt : Integer;
begin
  RandomInt := random(11);
  if RandomInt = 7 then
    PriorityQueue.NewCustomer(M);
  if RandomInt = 8 then
    PriorityQueue.NewCustomer(M_P);
  if RandomInt = 9 then
    PriorityQueue.NewCustomer(W);
  if RandomInt = 10 then
    PriorityQueue.NewCustomer(W_P);
end;
Вопрос такой. почему одни пенсионерки?
Может я неправильно задаю имя типу?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TPriorityQueue.NewCustomer(CstmrType: Priority);
var
  Str: String;
begin
  // Очередь работает с указателями, поэтому создаем экземпляр
  // объекта, который будет храниться в очереди, и передаем его
  // в метод Push (поскольку все объекты создаются в куче, то
  // Item - это собственно и есть адрес)
 
  if CstmrType = Priority.W_P then
    Str := 'Пенсионерка';
  if CstmrType = Priority.M_P then
    Str := 'Пенсионер';
  if CstmrType = Priority.M then
    Str := 'Мужчина';
  if CstmrType = Priority.W then
    Str := 'Женщина';
 
  queue[CstmrType].Push(TCustomer.Create(UID, Str));
  UID := UID + 1;
end;
P.S.: при отладке все окей. то есть при цифре 7 попадает на мужчину, все прально присваивает. но выводит только пенсионерку почему то.
P.P.S.: еще раз начал отлаживать. вроде все в порядке. все равно посмотрите, пожалуйста.
странно как-то
P.P.P.S.: то, что в прикрепленном проекте - точно неправильно

Добавлено через 8 минут

Добавлено через 1 минуту
ВСЕ понял.
жгу.
у нас же пенсионерки должны первые идти всегда. так что это наоборот подтверждает правильность работы DD
понял-понял.

Добавлено через 41 минуту
Решил проблему с Customer.
Проблема была в области видимости.
грубо говоря так:
Pascal
1
2
3
4
5
6
7
8
procedure Work;
var Customer: TCustomer;
begin
  if a > b then 
    Customer := TCustomer(GetCustomer);
    //... работает с Customer 
  else 
    //... работает с Customer. Тут будет ошибка. Т.к. кастомер определен в другой ветке.
я смотрел на область видимости в более широком смысле. рассматривал на уровне метод, класс, а не на уровне условие, метод.
devils is in the details
как кто-то, помню, говорил

Добавлено через 3 часа 50 минут
Разобрался со всеми пунктами, кроме вывода списка текущей очереди. Все остальное работает.
UI, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.01.2013, 02:02

Очередь с приоритетами
Всем привет, делаю очередь с приоритетами, для реализации кода Хаффмана запихиваю туда вероятности мимволов и получается они как бы...

Очередь с приоритетами
Бьюсь над вопросом как вывести очередь на консоль в виде пирамиды/двоичного дерева? Очередь реализуется массивом целых чисел. Заранее...

Очередь с приоритетами в алгоритме Прима
Здравствуйте, мне нужно реализовать алгоритм Прима с помощью PriorityQueue, но я не понимаю как это сделать, каким образом в очереди должны...

Очередь с приоритетами на основе пирамиды
Здравствуйте, переписывал очередь с приоритетами с языка Java на C#(Algorithms, 4th Edition by Robert Sedgewick) и там есть один не...

Класс-шаблон реализующий очередь с приоритетами
Пожалуйста, помогите выполнить задание, не могу понять как его сделать Создать класс-шаблон CPriorQueue, реализующий очередь с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru