Добавлен: 14.06.2023
Просмотров: 433
Скачиваний: 10
Введение
Банкомат – это устройство, автоматизирующее операции по выдаче и переводу денег, хранящихся в банке, лицу, которому они принадлежат. Идентификация каждого клиента происходит с помощью имеющейся у него кредитной карты банка и соответствующего карте секретного pin-кода. Поэтому человек может вне банка снимать деньги или оплачивать определенные услуги. Так как банк заинтересован в том, чтобы человек хранил в нем свои деньги, то он должен обеспечивать удобство работы своим клиентам. При этом, если банкомат будет не надежным, то страдать будет как банк, так и его клиенты, а это совершенно неприемлемая ситуация.
Целью данной работы является разработка приложения, имитирующего модель работы банкомата. Для выполнения поставленной цели необходимо решить следующие задачи:
- сформулировать требования к системе и описать их в виде алгоритмов;
- спроектировать базу данных приложения;
- спроектировать структуру приложения, разработать диаграмму классов;
- разработать пользовательский интерфейс;
- разработать программный код;
- отладить приложение.
1. Формирование требований
1.1. Задание
Спроектировать и реализовать приложение «Модель работы банкомата». Приложение должно обеспечивать ввод номера карты, ввод PIN-кода, запрос баланса, выдачу наличных, осуществление безналичных платежей, печать квитанций.
1.2. Назначение и область применения
Банкомат – это автомат для выдачи наличных денег по кредитным пластиковым карточкам. В его состав входят следующие устройства: дисплей, панель управления с кнопками, приемник кредитных карт, хранилище денег и лоток для их выдачи, хранилище конфискованных кредитных карт, принтер для печати. Банкомат подключен к линии связи для обмена данных с банковской информационной системой, содержащей сведения о счетах клиентов.
Обслуживание клиента начинается с момента помещения пластиковой карточки в банкомат. После распознавания типа пластиковой карточки, банкомат выдает на дисплей приглашение ввести персональный код. Персональный код представляет собой четырехзначное число. Затем банкомат проверяет правильность введенного кода, сверяя с кодом, хранящимся на карте. Если код указан неверно, пользователю предоставляются еще две попытки для ввода правильного кода. В случае повторных неудач карта перемещается в хранилище карт, и сеанс обслуживания заканчивается. После ввода правильного кода банкомат предлагает пользователю выбрать операцию. Клиент может либо снять наличные со счета, либо узнать остаток на его счету, либо осуществить безналичный платеж со своего счёта.
При снятии наличных со счета банкомат предлагает указать сумму. После выбора клиентом суммы банкомат запрашивает, нужно ли печатать справку по операции. Затем банкомат посылает запрос на снятие выбранной суммы центральному компьютеру банка. В случае получения разрешения на операцию, банкомат проверяет, имеется ли требуемая сумма в его хранилище денег, и может ли он выдать запрошенную сумму банкнотами, имеющимися в наличии (например, если в банкомате нет банкнот достоинством менее 1000 рублей, он не может выдать никакую сумму не кратную 1000). После удаления карточки из приемника, банкомат выдает указанную сумму в лоток выдачи. Банкомат печатает справку по произведенной операции, если она была затребована клиентом.
Если клиент хочет узнать остаток на счету, то банкомат посылает запрос центральному компьютеру банка и выводит сумму на дисплей. По требованию клиента печатается и выдается соответствующая справка.
1.3. Состав требований
Приложение «Модель работы банкомата» должно реализовывать следующие функции:
1.Проверка PIN-кода карты.
После помещения пластиковой карты в банкомат (ввода номера карты в текстовое поле) банкомат проверяет, существует ли такой номер карты на сервере. Если введенный номер действителен, пользователю предлагается ввести PIN-код для продолжения работы с картой. После ввода четырехзначного кода банкомат проверяет на соответствие данного PIN-кода указанному номеру карты. Если соответствие установлено, пользователю будет предложено выбрать дальнейшую операцию по карте.
2. Предоставление сведений об остатке на счете.
Когда пользователь выбирает операцию «Запросить баланс», банкомат связывается с сервером и получает значение остатка на счете по соответствующему номеру карты. Затем это значение отображается на дисплее банкомата.
3. Выдача наличных.
Когда пользователь выбирает операцию «Получить наличные», банкомат предлагает выбрать требуемую сумму для выдачи: 100, 200, 500, 1000, 5000, 10000, 20000, 50000. После выбора суммы банкомат сначала проверяет остаток на счете, затем, если остаток больше требуемой суммы, проверяет возможность выдачи требуемой суммы купюрами, находящимися в хранилище купюр банкомата. Если такая возможность существует, пользователю выдаются наличные, при этом изменяется значение остатка по счету и количество купюр в хранилище.
4. Выполнение денежного перевода.
Когда пользователь выбирает операцию «Денежный перевод», на дисплей банкомата выводится форма ввода номера карты, на которую осуществляется перевод, и суммы перевода. При выполнении перевода происходит списание средств с текущего счета и зачисление их на указанный счет.
5. Оплата услуг сотовой связи.
Когда пользователь выбирает операцию «Оплата сотовой связи», на дисплей банкомата выводится форма ввода номера телефона, на который осуществляется пополнение, и суммы перевода. При выполнении перевода происходит списание средств с текущего счета.
6. Оплата коммунальных платежей.
Когда пользователь выбирает операцию «Коммунальные платежи» или «Оплата электроэнергии», на экран выводится форма с элементами выбора поставщика услуг и ввода персонального счета клиента и суммы оплаты. При выполнении платежа происходит списание средств с текущего счета.
7. Печать квитанции.
После выдачи наличных пользователю предлагается распечатать квитанцию об операции. Квитанция содержит номер счета, выданную сумму и остаток по счету.
8. Просмотр истории операций по карте.
Когда пользователь выбирает операцию «История операций», на экран выводится форма, содержащая элементы выбора периода, за который предоставить отчет, и таблицу, которая заполняется информацией об операциях по карте за указанный период.
1.4. Описание алгоритма
Для более наглядного отображения требований к информационной системе для каждой реализуемой функции составлен и описан подробный алгоритм.
1. Проверка PIN-кода карты.
Пользователь вводит номер своей карты, по которой он хочет совершить какие-либо операции. Приложение осуществляет запрос к базе данных на получение подробной информации по введенному номеру карты. Если такой не найден, пользователь оповещается об этом сообщением. Когда система находит требуемый номер счета, и пользователю предлагается ввести четырехзначный PIN-код.
После ввода PIN-кода банкомат проверяет его правильность. Для этого производится получение из базы данныхPIN-кода карты по её номеру, затем выполняется сравнение полученногоPIN-кода и введенного пользователем. Если данные коды не совпадают, пользователь оповещается сообщением о неверно введенномPIN-коде. При совпадении кодов пользователю предлагается выбрать дальнейшую операцию по карте.
На рисунке 1 изображено графическое представление данного алгоритма.
Рисунок 1 – Алгоритм функции «Проверка PIN-кода карты»
2. Предоставление сведений об остатке на счете
После выбора пользователем действия «Запросить баланс» выполняется поиск данных по указанному номеру счета. Когда соответствующая запись найдена, из нее получается значение остатка по счету. Затем полученное значение остатка отображается на дисплее банкомата.
На рисунке 2 изображено графическое представление данного алгоритма.
Рисунок 2 - Алгоритм функции «Предоставление сведений об остатке на счете»
3. Выдача наличных.
Когда пользователь выбирает операцию «Получить наличные», банкомат предлагает выбрать требуемую сумму для выдачи: 100, 200, 500, 1000, 5000, 10000, 20000, 50000. После выбора суммы выполняется поиск данных по указанному номеру счета. Когда соответствующая запись найдена, из нее получается значение остатка по счету. Затем выполняется проверка, является ли остаток по счету достаточным для выдачи требуемой суммы. Если остаток меньше требуемой суммы, пользователь оповещается об этом сообщением о недостаточном количестве средств на счете.
Если значение остатка больше значения запрашиваемой суммы, банкомат выполняет проверку наличия купюр для выдачи указанной сумы в хранилище купюр. Если данную сумму находящимися в хранилище купюрами выдать невозможно, пользователь оповещается об этом сообщением. Если такая возможность существует, пользователю выдаются наличные. При этом происходит списание выданной суммы со счета, т.е. изменяется значение остатка по счету. Также выполняется изменение количества купюр соответствующего номинала в хранилище купюр. Производится запись о выполнении операции в историю операций. На дисплей выводится сообщение, какими купюрами и в каком количестве выдана указанная сумма. После выдачи наличных пользователю предлагается распечатать квитанцию.
На рисунке 3 изображено графическое представление данного алгоритма.
Рисунок 3 – Алгоритм функции «Выдача наличных»
4. Выполнение денежного перевода.
Когда пользователь выбирает операцию «Денежный перевод», на дисплее банкомата отображается форма ввода номера карты, на которую осуществляется перевод, и суммы перевода. Затем банкомат отправляет запрос на сервер для проверки указанного номера счета. Если в базе такой счет не найден, пользователь оповещается сообщением об ошибке. Если указанный номер счета найден в списке счетов, выполняется проверка баланса текущего счета, достаточно ли средств для выполнения перевода. Если сумма на остатке по счету меньше указанной суммы, пользователь оповещается сообщением об ошибке. Если сумма на остатке достаточна для выполнения операции, производится списание указанной суммы с текущего счета и зачисление этой суммы на указанный счет.Производится запись о выполнении операции в историю операций.
На рисунке 4 изображено графическое представление данного алгоритма.
Рисунок 4 – Алгоритм функции «Выполнение денежного перевода»
5. Оплата услуг сотовой связи.
Когда пользователь выбирает операцию «Оплата сотовой связи», на дисплей банкомата выводится форма ввода номера телефона, на который осуществляется пополнение, и суммы перевода. Далее банкомат отправляет запрос на сервер для проверки баланса текущего счета. Если сумма на остатке по счету меньше указанной суммы, пользователь оповещается сообщением об ошибке. Если сумма на остатке достаточна для выполнения операции, производится списание указанной суммы с текущего счета.
На рисунке 5 изображено графическое представление данного алгоритма.
Рисунок 5 – Алгоритм функции «Оплата услуг сотовой связи»
6. Оплата коммунальных платежей.
Когда пользователь выбирает операцию «Коммунальные платежи» или «Оплата электроэнергии», на экран выводится форма с элементами ввода требуемых данных. Сначала необходимо выбрать поставщика услуг из списка, который формируется в зависимости от типа платежа. После выбора поставщика происходит обращение к базе и получение номера банковского счета поставщика, который отображается на форме. Далее пользователь вводит номер своего персонального счета у данного поставщика. Есть возможность проверить правильность введенного персонального счета нажатием на кнопку «Проверить», банкомат обратится к серверу и получит персональные данные клиента по указанному персональному счету, которые будут отображены на экране. Если такой номер не будет найден, пользователь будет повещен сообщением об ошибке. Если проверка прошла успешно, пользователь вводит сумму оплаты и нажимает кнопку «Оплатить». Выполняется проверка баланса, если сумма достаточна для платежа, производится списание средств со счета, и добавляется запись об операции в историю.
На рисунке 6 изображено графическое представление данного алгоритма.
Рисунок 6 – Алгоритм функции «Оплата коммунальных платежей»
7. Печать квитанции.
Если после выдачи наличных пользователь выбирает «Печатать квитанцию», происходит поиск данных по счету и получение значения остатка после выдачи наличных. Затем выдается квитанция, содержащая номер счета, выданную сумму и значение остатка по счету после выдачи наличных.