Добавлен: 14.06.2023
Просмотров: 434
Скачиваний: 10
На рисунке 7 изображено графическое представление данного алгоритма.
Рисунок 7 – Алгоритм функции «Печать квитанции»
8. История операций по карте.
Когда пользователь выбирает операцию «История операций», на экран выводится форма, содержащая элементы выбора даты для указания периода, за который необходимо предоставить информацию. Далее банкомат обращается к серверу и получает данные обо всех совершенных операциях по карте за указанный период. Затем для более информативного отображения данных на форме происходит определение наименования владельца счета либо типа совершенной операции. На форме данные представлены в виде таблицы, содержащей поля «Дата», «Номер счета», «Владелец счета» и «Сумма».
На рисунке 8 изображено графическое представление данного алгоритма.
Рисунок 8 – Алгоритм функции «История операций»
1.5. Выбор состава технических и программных средств
Функционирование приложения предполагается на персональных компьютерах под управлением операционной системы Windows, версия XPSP3 или выше.
Минимальная аппаратная конфигурация системы, обеспечивающей нормальное функционирование программного обеспечения должна быть не ниже следующей:
- процессор 900 МГц и выше;
- оперативная память 256 Мбайт и выше;
- свободного места на жестком диске не менее 100 Мб.
2. Разработка рабочего проекта
2.1 Проектирование хранилища данных
В качестве СУБД для разработки системы был выбран Microsoft Access 2010.
Для реализации необходимо функционала были созданы следующие таблицы:
1. Таблица «Clients» - содержит информации о клиентах банка.
Поля таблицы:
- idClient- код клиента, первичный ключ, счетчик, служит для автоматической индексации записей о клиентах;
- nameClient – ФИО клиента, текстовый;
- passport – серия и номер паспорта клиента, текстовый;
- address – адрес регистрации клиента, текстовый;
- tel – номер телефона клиента, текстовый.
2. Таблица «Accounts» - содержит информацию о счетах клиентов банка.
Поля таблицы:
- idAccount – код счета, первичный ключ, счетчик, служит для автоматической индексации записей о счетах клиентов;
- idClient – код клиента, внешний ключ на таблицу «Clients», числовой, служит для определения принадлежности счета конкретному клиенту;
- numAccount – номер карты клиента, текстовый;
- pin – PIN-код карты, текстовый;
- balance – значение остатка средств на счете, числовой.
3. Таблица «Providers» - содержит информацию о поставщиках услуг.
Поля таблицы:
- idProvider – код поставщика, первичный ключ, счетчик, служит для автоматической индексации записей о поставщиках;
- nameProvider – наименование поставщика, текстовый;
- accountProvider – номер банковского счета поставщика, текстовый;
- inn – ИНН поставщика, текстовый;
- typeProvider – категория оказываемых поставщиком услуг, текстовый.
4. Таблица «ClientsOfProviders» - содержит информацию о клиентах поставщиков услуг.
Поля таблицы:
- idStr – код записи, первичный ключ, счетчик, служит для автоматической индексации записей о клиентах поставщиков;
- idProvider – код поставщика, внешний ключ на таблицу «Providers», числовой, служит для определения принадлежности клиента конкретному поставщику;
- personalAccount – номер лицевого счета клиента у данного поставщика, текстовый;
- nameClient – ФИО клиента, текстовый;
- addressClient – адрес клиента, текстовый.
5. Таблица «History» - содержит информацию о севершенных операциях по картам клиентов.
Поля таблицы:
- idStr- код записи, первичный ключ, счетчик, служит для автоматической индексации записей о совершенных операциях;
- idAccount – код счета, внешний ключ на таблицу «Accounts», числовой, служит для определения принадлежности совершенной операции конкретному номеру счета;
- transactAccount – номер счета, на который или с которого были переведены деньги при безналичном переводе, текстовый;
- dateTransact – дата и время совершения операции, дата/время;
- sumTransact – сумма, на которую была совершена операция (при списании средств – отрицательная, при зачислении – положительная), числовой;
- personalAccount – номер лицевого счета при оплате коммунальных услуг, текстовый;
- typeTransact – тип совершенной операции (снятие наличных, денежный перевод и т.д.), числовой.
6. Таблица «Banknotes» - содержит информацию о количестве купюр, имеющихся в наличии в банкомате.
Поля таблицы:
- idBanknote – код банкноты, первичный ключ, счетчик, служит для автоматической индексации записей о купюрах;
- denomination – номинал купюры, текстовый;
- countBanknotes – количество имеющихся купюр данного номинала, числовой.
На рисунке 9 представлена схема данных.
Рисунок 9 – Схема данных
2.2. Проектирование структуры приложения
Для реализации поставленных требований структура приложения «Модель работы банкомата» должна включать в себя следующие элементы.
1. Класс «Банкомат», представляющий основную форму для действий пользователя и связи с сервером банка для совершения необходимых операций. Реализует следующие функции:
- Ввод номера карты и PIN-кода;
- Предоставление пользователю выбора действий для совершения необходимых операций по карте;
- Проверка наличия купюр для выдачи – расчет необходимого количества купюр для выдачи указанной суммы и проверка хранилища купюр для определения, есть ли в наличии требуемые купюры;
- Выдача наличных – изменение значения имеющегося в наличии количества купюр соответствующего номинала с учетом выданных купюр;
- Печать квитанции – отображение на экране сообщения, содержащего номер счета, выданную сумму и остаток по счету;
2. Класс «Сервер банка», обеспечивающий подключение к базе данных банка и реализующий следующие функции:
- Проверка карты –поиск в базе данных номера карты, идентичного введенному пользователем;
- Проверка PIN-кода – получение из базы данных PIN-кода карты по номеру счета и сравнение его с введенным;
- Проверка баланса – получение из базы данных значение остатка по счету по номеру карты;
- Изменение баланса – уменьшение значения остатка по счету в базе данных;
- Зачисление средств – увеличение баланса по номеру карты при совершении денежного перевода;
- Добавление записи в историю – запись в базу данных информации о совершенной операции;
- Получение истории операций – запрос из базы данных истории операций по карте за указанный период.
3. Класс «Коммунальные платежи» - представляет форму для действий пользователя по совершении оплаты коммунальных услуг или электроэнергии. Обеспечивает связь с сервером банка и сервером поставщиков услуг и реализует следующие функции:
- Ввод всех необходимых данных для совершения платежа.
4. Класс «Сервер поставщиков услуг», обеспечивающий подключение к базе данных банка и реализующий следующие функции:
- Получение списка поставщиков услуг по категории услуг: коммунальные услуги или электроэнергия;
- Получение номера счета поставщика;
- Проверка персонального счета клиента.
5. Класс «История операций по карте» - представляет форму для выбора пользователем периода и отображения истории операций за указанный период. Обеспечивает связь с сервером банка.
6. База данных «Банк» - обеспечивает хранение информации о клиентах банка, счетах клиентов, поставщиках, клиентах поставщиков, истории операций по картам клиентов.
На рисунке 10 представлена диаграмма классов приложения «Модель работы банкомата».
Рисунок 10 – Диаграмма классов
2.3. Разработка пользовательского интерфейса.
Графический интерфейс приложения должен предоставлять пользователю доступ ко всем вышеперечисленным функциям и реализовывать классы «Банкомат», «Коммунальные платежи» и «История операций по карте».
Графический интерфейс формы «Банкомат» содержит следующие элементы:
- приемник карт, выполненный в виде текстового поля и кнопки «ОК» для ввода номера карты;
- панель с кнопками для ввода PIN-кода и номера карты для перевода средств, содержащая цифровой блок, кнопку корректировки и кнопку ввода;
- дисплей, на котором отображается информация о совершаемой операции, кнопки выбора действия («Запросить баланс», «Получить наличные», «Безналичные переводы», «История операций» «Выход»), кнопки выбора суммы для выдачи, кнопки для выбора вида безналичного перевода, кнопки для подтверждения печати чека («Да», «Нет»). Общий вид графического интерфейса представлен на рисунке 11.
Рисунок 11 - Графический интерфейс формы «Банкомат»
- панель для ввода номера карты и суммы для выполнения денежного перевода (рисунок 12);
Рисунок 12 – Панель ввода данных для денежного перевода
- панель для ввода номера телефона и суммы для оплаты сотовой связи (рисунок 13).
Рисунок 13 – Панель ввода данных для оплаты сотовой связи
Графический интерфейс формы «Коммунальные платежи» содержит следующие элементы:
- выпадающий список для выбора поставщика;
- элемент отображения номера счета выбранного поставщика;
- текстовое поле ввода номера лицевого счета клиента и кнопка «Проверить»;
- элементы отображения ФИО и адреса клиента;
- текстовое поле ввода суммы оплаты;
- кнопки «Оплатить» и «Отмена».
Общий вид графического интерфейса формы «Коммунальные платежи» представлен на рисунке 14.
Рисунок 14 - Графический интерфейс формы «Коммунальные платежи»
Графический интерфейс формы «История операций по карте» содержит следующие элементы:
- элементы выбора даты для указания периода;
- кнопка «Поиск»;
- таблицы для отображения истории операций.
Общий вид графического интерфейса формы «Коммунальные платежи» представлен на рисунке 15.
Рисунок 15 - Графический интерфейс формы «История операций по карте»
2.4. Разработка программного кода
Исходный код разрабатываемого проекта представлен в приложении 1.
2.5. Тестирование приложения.
При запуске приложения открывается первоначальная форма. На дисплее отображается надпись «Вставьте карту» (рисунок 16)
Рисунок 16 - «Вставьте карту» для начала работы
После ввода номера карты происходит проверка на сервере, является ли данная карта доступной. Если данный номер карты не найден, на дисплее отображается сообщение «Данная карта недействительна» (рисунок 17).
Рисунок 17 – «Данная карта недействительна»
Если карта в порядке, на дисплее отображается номер карты в виде скрытых символов и открытых 4 последних цифр и предложение ввести PIN-код (рисунок 18).
Рисунок 18 – «Введите PIN-код»
После ввода PIN-кода происходит проверка на сервере, верно ли введенPIN. При неверном вводе PIN-кода отображается сообщение об ошибке и уменьшается количество возможных попыток ввода верного PIN-кода (рисунок 19).
Рисунок 19 – «Неверный PIN-код»