Показать сообщение отдельно
  #4  
Старый 28.11.2018, 20:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Значится так.
Т.к. это курсовая, то проектируем по простому.
1. Нафиг PageControl. Переносишь выбор места в отдельное диалоговое окно. Более того, у нач будет всего один терминал продажи, соответсвенно резервирование билета в процессе покупки не делаем.
2. Если ты когда-нить покупал билеты на самолет, то должен знать, что там билеты именные. Соответсвенно, в реале идет продажа по одному билету, даже если в начале процесса идет заказ нескольких билетов.
3. Так же, билеты номерные, т.е. при возврате билета ты точно знаешь какое место освобождается.
Итого.
Общий дизайн программы:
1. Главное окно со списком рейсов. На панели инструментов кнопки для продажи и возврата билета на выделенный рейс. Служебные кнопки для добавления/удаления/редактирования рейсов - по желанию, для описания текущей задачи они не важны.
2. Для простоты считаем, что борта для всех рейсов одинаковые, т.е. кол-во мест и их расположение одно и то же. Соответсвенно, для рейса мы храним:
а) Кол-во проданых или кол-во оставшихся билетов (для простоты, можно каждый раз считать, но лень)
б) список (массив) мест с указанным проданым билетом (ФИО клиента и номер билета)
3. При нажатии кнопки продать билет появляется диалоговое окно, где:
а) генерируется номер билета (последовательность, тогда ее надо хранить между запусками, или GUID)
б) вводится ФИО клиента
в) Заблокированное поле для номера места с 2мя кнопками: выбрать место автоматически и выбрать место вручную.
4. При нажатии кнопки автоматического выбора места, система сама смотрит свободные мести и выбирает первое свободное в списке.
5. При нажатии кнопки ручного выбора места открывается дополнительное диалоговое окно со схемой салона самолета в котором и происходит выбор места.
6. По возврату, надеюсь, понятно, что надо делать.

Еще вариант если уж очень хочется продавать несколько билетов.
Диалог продажи в таком виде будет состоять как бы из 2х частей.
Первая часть - кол-во билетов. Далее нажимается кнопочка (на защите можно будет отпиз..ся, что в этот момент происходит резервирование нужного кол-ва билетов, что бы текущий покупатель смог купить нужное ему кол-во билетов), по которой динамисески создаются блоки компонентов для оформления нужного кол-ва билетов. Ну и там точно так же выбираются места.

Все.
Если хочешь, чтобы тебе все сделать - переноси тему в раздел "Работа" с соотвествующей выкладкой ПОЛНОГО ТЗ и указание сроков и суммы оплаты.

ЗЫ. Кстати, номера мест в самолетах состоят из 2х частей: номер ряда (цифра) и буква для номера места в ряду. Т.е. например, 2D означает место в втором ряду под у окна на правом борту (вариант A320 с 4мя местами в ряду).
Ответить с цитированием