Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.05.2013, 22:19
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Печаль Нужна помощь по дельфи 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  
Старый 04.05.2013, 23:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Дочитать терпения не хватило.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 05.05.2013, 00:00
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от angvelem
Дочитать терпения не хватило.
плюс один
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #4  
Старый 05.05.2013, 08:53
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Пассажир открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет и достаёт кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку в чемодан и закрывает чемодан. Открывает кошелёк, достаёт деньги, закрывает кошелёк. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет, кладёт в него кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. Отдаёт кондуктору деньги. Кондуктор даёт ему билет. Пассажир берёт билет, открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет и достаёт кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. Открывает кошелёк, кладёт в него билет, закрывает кошелёк. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, достаёт пакет, закрывает сумочку. Открывает чемодан, кладёт в него сумочку, закрывает чемодан. Разворачивает пакет, кладёт в него кошелёк, заворачивает пакет. Открывает чемодан, достаёт сумочку, закрывает чемодан. Открывает сумочку, кладёт пакет, закрывает сумочку. Открывает чемодан, кладёт сумочку, закрывает чемодан. И тут заходит контроллер...
Зачем ссылки битые?
__________________
Все смелые до begin...

Последний раз редактировалось DrGeorg, 05.05.2013 в 09:01.
Ответить с цитированием
Этот пользователь сказал Спасибо DrGeorg за это полезное сообщение:
nano_bot (06.05.2013)
  #5  
Старый 05.05.2013, 09:05
Аватар для orion_asm
orion_asm orion_asm вне форума
Прохожий
 
Регистрация: 23.06.2012
Адрес: Украина, Днепропетровск
Сообщения: 19
Версия Delphi: XE3
Репутация: 10
По умолчанию

Вообщем сделал это твое задание. Поставят 5 при условии что разберешься с кодом, применил немного ООП. Правда не знаю, скушает ли delphi 7, делал в rad studio xe3. Реализовано все кроме фунции учета вычитания наличия денег в "автомате", и вывод сообщения когда их там нет. Оставляю это за тобой. В целом, косяков вроде нету. Код комментирован.
Вложения
Тип файла: rar 123.rar (86.7 Кбайт, 15 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение:
Motikon (07.05.2013)
  #6  
Старый 05.05.2013, 23:01
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

спасибо за код, но к сожалению дельфи это не потянул...пишет что чего то не хватает...попробую запустить просто так или через рад студио
Ответить с цитированием
  #7  
Старый 06.05.2013, 11:01
Аватар для orion_asm
orion_asm orion_asm вне форума
Прохожий
 
Регистрация: 23.06.2012
Адрес: Украина, Днепропетровск
Сообщения: 19
Версия Delphi: XE3
Репутация: 10
По умолчанию

Пофиксил маленько код, там был Access Violation, ошибка с доступом к памяти, исправил, добавил кнопку "Заново". А не запускается на 7 делфи потому что мне кажется нет там таких компонентов как TCategoryButton. Прилагаю проект с бинарником. Стандартный виндовый гуй так выглядит:

А можно навесить тем из комплекта xe3, например Metropolis Black:
Вложения
Тип файла: rar 123.rar (850.5 Кбайт, 12 просмотров)

Последний раз редактировалось orion_asm, 06.05.2013 в 11:07.
Ответить с цитированием
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение:
Motikon (07.05.2013)
  #8  
Старый 06.05.2013, 23:40
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

охереть как круто, а где эту тему найти?...просто эту програмку установил но вижу впервые
и еще..как там добавить распечатку билета, примерно так: чтоб при нажатии на кнопку от печатал прямоугольник содержащий информацию о введенных данных. тип транспорта, проездного дней количество итд
вот этот отдельный прямоугольник размером с кредитку
и еще..он в кассе не учитывает прирост или убыток купюр и монет после взноса...тоже попытался исправить..но мозгов увы не хватило, вроде в коде всё прописано..но не считает

Последний раз редактировалось Motikon, 07.05.2013 в 00:01.
Ответить с цитированием
  #9  
Старый 07.05.2013, 00:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Можно повторить для orion_asm (картинки)
Цитата:
Зачем ссылки битые?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #10  
Старый 07.05.2013, 03:12
Аватар для orion_asm
orion_asm orion_asm вне форума
Прохожий
 
Регистрация: 23.06.2012
Адрес: Украина, Днепропетровск
Сообщения: 19
Версия Delphi: XE3
Репутация: 10
По умолчанию

В XE3 Project / Options / Application / Appearance. Учитывать добавляемые купюры легче а вот вычитание надо подумать... На ум приходит такая мысль - в цикле крутить вычитая денежные эквиваленты из сдачи до тех пор, пока не будет равно 0, и фиксируя это с заемами. А печать... оно ведь и так печатает там лейблы и выводит всю информацию.
Вложения
Тип файла: rar 123.rar (212.8 Кбайт, 16 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо orion_asm за это полезное сообщение:
Motikon (07.05.2013)
  #11  
Старый 08.05.2013, 00:14
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

балин, всё круто пашет кроме одного, он не учитывает зачисление денег когда выдаёт сдачу...код только в верхнем когда без сдачи...я попытался запихать его в общий для кнопки но не заработало, можешь помочь в этом и выслать заново??? буду благодарен! П.С. серо-оранжевая тема просто огонь!)
Ответить с цитированием
  #12  
Старый 08.05.2013, 00:29
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

вроде починил...вроде пашет
Ответить с цитированием
  #13  
Старый 08.05.2013, 18:18
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вас не смущает, что интерфейс "несколько" отличается от базовой постановки задачи?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #14  
Старый 09.05.2013, 12:29
Motikon Motikon вне форума
Прохожий
 
Регистрация: 04.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

да как то не особо, тут кровень идет "чуть" выше моих знаний приобретенных в универе, и думаю училка это понимает вполне и не будет приставать к таким мелочам, главное чтоб приложение работало, и расписано в было грамотно по полочкам(текстовая часть)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter