|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нужна помощь по дельфи 7
Воспрос стоит такой. Нужно создать терминал по продажам проездных на транспорт. Вот и задание целиком полностью разьесненный:
Торговый автомат осуществляет продажу транспортных карт пассажирам городского транспорта. Используются 4 вида бланков в зависимости от вида транспорта (автобус, трамвай, троллейбус, метро). В состав автомата входят следующие устройства: информационное табло, кнопки выбора вида транспорта, кнопки выбота ёмкости карт, считыватель пополняемых карт, хранилище денег и лоток для их выдачи, хранилище бланков карт и лоток для их выдачи, принтер для печати на бланках карт, сервисная консоль. Загрузка бланков карт в автомат осуществляется обслуживающим персоналом. Автомат следит за наличием бланков карт. Если бланки какого-либо вида заканчиваются, автомат отправляет сообщение об этом на станцию обслуживания по линии связи и информирует покупателей (зажигается красная лампочка рядом с кнопкой выбора данного вида транспорта). Автомат принимает к оплате бумажные купюры и монеты. После ввода денег клиент выбирает вид транспорта нажатием на одну из четырёх кнопок. Затем клиент должен выбрать емкость карты при помощи одной из 11 кнопок выбора емкости. Емкости бывают: 1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок, 1 день, 5 дней, 30 дней, 90 дней, 365 дней. После того как пассажир сделал свой выбор, выдача карты производится только в том случае, если имеются бланки выбранных карт, и если введенная сумма денег не меньше цены карты выбранной ёмкости. В этом случае автомат использует бланк карты из лотка, где лежат бланки нужного вида, и записывает на карту данные о времени продажи карты и её емкости. Дата продажи карты и её емкость печатаются на её бланке. Готовая карта выдаётся клиенту. Если введённая клиентом сумма превышает цену карты, вместе с картой выдается сдача. За один сеанс клиент может купить не более одной карты. У некоторых пассажиров имеются пополняемые транспортные карты. Автомат даёт возможность заряжать пополняемую карту. Для пополнения пассажир должен вставить карту в считыватель. Автомат считывает данные со вставленной карты и определяет вид транспорта, на котором действует карта. Пополнение неисправных карт не производится. Если на карте имеются нерастраченные поездки, то пассажир может оплатить и добавить некоторое количество добавляемых поездок (1, 2, 5, 10, 20, 60 поездок), но не дни проезда. Если на карте есть нерастраченные дни, автомат разрешает поподнять такую карту только днями проезда (1, 5, 30, 90, 365), но не поездками. Если карта разряжена (0 поездок и 0 дней), пассажир может пополнить её либо днями либо поездками по своему выбору (но не тем и другим одновременно). Пополнение происходит схоже с тем, как описано выше. Разница в том, что вместо бланка карты используется пополняемая карта, вставленная в автомат клиентом, и что печать на пополняемых картах не производится. На автомате имеется информационное табло, на котором высвечивается текущая сумма денег, принятых автоматом к оплате, и сообщения для клиентов, такие как: «введите деньги», «выберите вид транспорта», «выберите емкость карты», «введенной суммы недостаточно», «закончились бланки», «заберите карту», «заберите сдачу», «заберите деньги», «добавьте сумму ... руб. чтобы получить сдачу». Купюры и монеты, имеющиеся в распоряжении автомата, хранятся в денежном ящике. Автомат хранит сведения о том, сколько купюр или монет какого номинала есть в ящике. Принимаются купюры по 10, 50, 100, 500, 1000, 5000 рублей и монеты по 1, 2, 5, 10 рублей. Возможна ситуация, когда у автомата нет возможности выдать сдачу теми купюрами или монетами, что хранятся в ящике. В этом случае после нажатия на кнопку выдачи товара не производится выдача, а выводится сообщение, указывающее, минимальную сумму, которую надо добавить клиенту, чтобы автомат смог выдать сдачу. Например, пассажир покупает карту с 1 поездкой на метро за 28 рублей, опуская 3 монеты по 10 рублей. Пусть в автомате есть только монеты по 5 или 10 рублей, а по 1 рублю и по 2 рубля нет. В такой ситуации автомат высвечивает сообщение «Добавьте сумму 3 руб. чтобы получить сдачу.». При нажатии на кнопку "Возврат" клиенту возвращаются все принятые от него к оплате деньги. Возврат денег не производился после выдачи карты. Автомат должен корректно работать при нажатии на "Возврат" во время выдачи карты. В специальном отделении автомата, закрываемом замком, есть сервисная консоль, которая используется обслуживающим персоналом. С консоли производится управление доступом к ящику с деньгами для изъятия/добавления купюр и монет, управление доступом к лоткам для загрузки или замены бланков карт, а также ввод данных о текущих тарифах за проезд в память автомата. Данные включают в себя цену карт всех видов и всех емкостей, а также сведения о том, сколько бланков карт в каком лотке находится. в целом основную часть я сделал но он у меня получился как калькулятор обычный..хотелось бы как то покрасивее, возможно с дочерними формами или еще как нибудь как сочтете нужным. Было бы круто если напишете новый..потому что мой получился тяжёлый..и если честно стремный.вот мой код: http://http://dfiles.ru/files/970q2gpp7 я здесь и вообще в дельфи новичок..так что не судите строго тут в архиве сам собственно проеект http://http://dfiles.ru/files/xqq0jl4j1 |
#2
|
||||
|
||||
Дочитать терпения не хватило.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
||||
|
||||
Цитата:
Я за здоровый экстрим! Спасибо за "спасибо") |
#4
|
|||
|
|||
Пассажир открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет и достаёт кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку в чемодан и закрывает чемодан. Открывает кошелёк, достаёт деньги, закрывает кошелёк. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет, кладёт в него кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. Отдаёт кондуктору деньги. Кондуктор даёт ему билет. Пассажир берёт билет, открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет и достаёт кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. Открывает кошелёк, кладёт в него билет, закрывает кошелёк. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет, кладёт в него кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. И тут заходит контроллер...
Зачем ссылки битые? Все смелые до begin... Последний раз редактировалось DrGeorg, 05.05.2013 в 09:01. |
Этот пользователь сказал Спасибо DrGeorg за это полезное сообщение: | ||
nano_bot (06.05.2013)
|
#5
|
||||
|
||||
Вообщем сделал это твое задание. Поставят 5 при условии что разберешься с кодом, применил немного ООП. Правда не знаю, скушает ли delphi 7, делал в rad studio xe3. Реализовано все кроме фунции учета вычитания наличия денег в "автомате", и вывод сообщения когда их там нет. Оставляю это за тобой. В целом, косяков вроде нету. Код комментирован.
|
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение: | ||
Motikon (07.05.2013)
|
#6
|
|||
|
|||
спасибо за код, но к сожалению дельфи это не потянул...пишет что чего то не хватает...попробую запустить просто так или через рад студио
|
#7
|
||||
|
||||
Пофиксил маленько код, там был Access Violation, ошибка с доступом к памяти, исправил, добавил кнопку "Заново". А не запускается на 7 делфи потому что мне кажется нет там таких компонентов как TCategoryButton. Прилагаю проект с бинарником. Стандартный виндовый гуй так выглядит:
А можно навесить тем из комплекта xe3, например Metropolis Black: Последний раз редактировалось orion_asm, 06.05.2013 в 11:07. |
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение: | ||
Motikon (07.05.2013)
|
#8
|
|||
|
|||
охереть как круто, а где эту тему найти?...просто эту програмку установил но вижу впервые
и еще..как там добавить распечатку билета, примерно так: чтоб при нажатии на кнопку от печатал прямоугольник содержащий информацию о введенных данных. тип транспорта, проездного дней количество итд вот этот отдельный прямоугольник размером с кредитку и еще..он в кассе не учитывает прирост или убыток купюр и монет после взноса...тоже попытался исправить..но мозгов увы не хватило, вроде в коде всё прописано..но не считает Последний раз редактировалось Motikon, 07.05.2013 в 00:01. |
#9
|
||||
|
||||
Можно повторить для orion_asm (картинки)
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
||||
|
||||
В XE3 Project / Options / Application / Appearance. Учитывать добавляемые купюры легче а вот вычитание надо подумать... На ум приходит такая мысль - в цикле крутить вычитая денежные эквиваленты из сдачи до тех пор, пока не будет равно 0, и фиксируя это с заемами. А печать... оно ведь и так печатает там лейблы и выводит всю информацию.
|
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение: | ||
Motikon (07.05.2013)
|
#11
|
|||
|
|||
балин, всё круто пашет кроме одного, он не учитывает зачисление денег когда выдаёт сдачу...код только в верхнем когда без сдачи...я попытался запихать его в общий для кнопки но не заработало, можешь помочь в этом и выслать заново??? буду благодарен! П.С. серо-оранжевая тема просто огонь!)
|
#12
|
|||
|
|||
вроде починил...вроде пашет
|
#13
|
||||
|
||||
А вас не смущает, что интерфейс "несколько" отличается от базовой постановки задачи?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#14
|
|||
|
|||
да как то не особо, тут кровень идет "чуть" выше моих знаний приобретенных в универе, и думаю училка это понимает вполне и не будет приставать к таким мелочам, главное чтоб приложение работало, и расписано в было грамотно по полочкам(текстовая часть)
|