Банкомат. Пряснительная записка (банкомат). По для банкомата
Скачать 1.99 Mb.
|
Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Факультет компьютерных систем и сетей Кафедра электронных вычислительных машин ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе на тему ПО ДЛЯ БАНКОМАТА БГУИР КР 1-40 02 01 303 ПЗ Студент С. П. Бедюк Руководитель Д. Р. Байдун Минск 2021 СОДЕРЖАНИЕВВЕДЕНИЕ 3 1 ОБЗОР ИСТОЧНИКОВ 4 1.1Обзор использованной литературы 4 1.2Обзор аналогов 4 2 СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ 5 3 ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ 8 4 РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ 11 5 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 13 ЗАКЛЮЧЕНИЕ 20 СПИСОК ЛИТЕРАТУРЫ 21 ПРИЛОЖЕНИЕ А 22 ПРИЛОЖЕНИЕ Б 23 ПРИЛОЖЕНИЕ В 24 ВВЕДЕНИЕСегодня банкоматы являются очень популярными устройствами во всем мире. С помощью программного обеспечения каждый год совершаются миллиарды операций во всем мире. Приложения для банкоматов используют для снятия наличных средств, просмотра баланса, пополнения баланса и многого другого. Целью данной курсовой работы является написание приложения под операционную систему Windows, с помощью которого можно будет снимать денежные средства, просматривать баланс, пополнять дебетовую карту и счет номера телефона. В результате должны получить программу, рассчитанную на массовое использование с отсутствием багов, а также в ходе работы получить опыт работы с объектно-ориентированным подходом программирования. 1 ОБЗОР ИСТОЧНИКОВОбзор использованной литературыВ данной роботе использовалась различная литература для проектирования данного приложения. Ниже приведено их краткое описание. [1] Дэвис, Стефан, Р. Д94 C++ для "чайников", 4-е издание.: Пер. с англ.: — М.: Издательский дом '"Вильяме", 2003. — с. 291-306. [2] Документация Winforms.Net Framework. Данная документация использовалась для изучения платформы и углубления уже имеющихся знаний. Обзор аналоговЛюбой банкомат по сути представляет собой компьютер с подключенной периферией, менеджером оборудования и собственно банковским приложением. Сегодня известно множество банков во всем мире, большинство из них имеют собственные банкоматы с уникальным программным обеспечением. В текущей реальности программное обеспечение банкоматов должно быть не только красивым, понятным, простым и удобным, но и максимально надежным. Так как по статистике в мире с каждым годом растет число финансовых преступлений. Поэтому программное обеспечение необходимо постоянно модернизировать. Аналогами разрабатываемого приложения являются: Реальные программные обеспечения для банкоматов крупнейших банков мира. Например: Bank of America, UniCredit, UBS group и другие. Данное приложение будет обладать повышенным относительно аналогов функционалом: пополнение счета мобильного телефона и карты. 2 СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕВ данном разделе описана структурная схема работы приложения. Сама структурная схема представлена в приложении А. Работа программы разбита на четыре основных блока: обработка пользовательского ввода, поиск данных в файлах, взаимодействие с файлами, пользовательский интерфейс и представление графической информации. С помощью данных блоков реализован полный функционал реального программного обеспечения банкомата. Блоки хорошо связаны и хорошо функционируют между собой, с помощью 4 блоков можно реализовать большой функционал: снятие наличных с дебетовой карты клиента с проверкой на корректность ввода номера дебетовой карты и пин-кода, а также с проверкой заданной суммы и остатка на дебетовой карте в совокупности; пополнение дебетовой карты наличными средствами с проверкой на внесение максимальной суммы и записью текущего состояния дебетовой карты в группу текстовых файлов в операционной системе Windows; пополнение счета мобильного телефона с дебетовой клиентской банковской карты и после автоматическая запись состояния карты в группу файлов; просмотр счета банковской карты; выход из программы. Данная система блоков реализовала полностью техническое задание с дополнительными элементами, также блоки реализованы универсально, что позволяет, в случае необходимости, добавить дополнительный функционал, при чем это можно реализовать быстро и без изменения структуры программы. Функции и алгоритмы блоков также универсальны и разбиты на маленькие участки кода, что снова облегчит работу в случае доработки программы. Интерактивные прототипы описаны максимально подробно. В рамках спецификации современных стандартов, независимые функции, вне зависимости от их блока, могут быть смешаны с уникальными данными. Современные технологии достигли такого уровня, что постоянное улучшение программного обеспечения стало необходимым. В частности, сложившаяся структура организации предполагает независимые способы реализации благоприятных перспектив. С учётом сложившейся современной обстановки, перспективное планирование обеспечивает актуальность универсальных решений. Вот яркий пример современных тенденций - перспективное планирование не оставляет шанса для стандартных подходов. Выбор данной системы блоков очевиден, так как при относительно малом их количестве реализован полный функционал программного обеспечения. Также ПО хорошо функционирует при относительно малых затрачиваемых ресурсных составляющих. Блок файлов выполняет роль хранилища объектов. Блок записывает и считывает данные дебетовой банковской карты в следующем порядке: номер карты, пин-код, сумма счета карты. Данная система файлов устроена так, что позволяет использовать поиск карты в основном файле “base1” только один раз, что значительно отражается на скорости выполнения программы и является неоспоримым преимуществом. Недостаток лишь в том, что для такой системы нужен дополнительный файл “base2”, который хранит данные текущей карты. Таким образом из-за повышенного быстродействия, программа чуть-чуть проигрывает в памяти. Такой способ организации блока файлов был выбран потому что в современном мире на первом плане стоит скорость выполнения программы не же ли память, которую она занимает. Блок пользовательского интерфейса является основным в работе приложения, так как соединяет все остальные блоки между собой через ряд методов и классов. Данный блок реализован графически, что соответствует современным требованиям программного обеспечения, и является простым в использовании для рядового пользователя. Недостатков у данного блока не обнаружено. Блок обработки пользовательского ввода содержит функции обработки пользовательских нажатий для фильтрации и преобразования полученных данных. В блоке реализована система проверок на корректность ввода и чтения данных, что сказывается на быстродействии программы, но значительно минимизирует риски аварийной остановки программы. Такое решение было выбрано исходя из задачи, так как программное обеспечение для банкоматов должно быть максимально надежным. Также в блоке реализована система ввода с помощью кнопок, а не клавиатуры, что дополнительно минимизирует риски аварийного завершения программы. Таким образом блок реализован исходя из соображений безопасности. Блок представления графической информации служит для отображения обработанных данных. Данный блок получает все необходимые данные и отображает их в главном окне программы. После чего пользователь продолжает работу с программой для чего и сделана связь между блоками пользовательского интерфейса и блоком представления графической информации. Преимуществом блока является уведомления пользователя о всех процессах, происходящих с его личной банковской картой и счетом на карте. Недостатков в данном блоке не обнаружено. 3 ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕПоскольку в данной работе используется объектно-ориентрованный подход программирования, то ниже приведен класс, использованный в программе и все его методы (диаграмма классов вместе с описанием файлов представлена в приложении Б): Base – главный и единственный класc, который включает в себя множество полей и методов, для реализации полного функционала программы. Поля: - string pin: текущий пин-код; - string number: текущий номер карты; - string sum: Текущий баланс на карте. Методы: -string sum1(): возвращает текущую сумму; -int search(string a, string b): ищет, введенный пользователем пин-код и номер карты, в файле, если данный найдены, то записывает текущую сумму в поле sum. В ином случае уведомляет пользователя, что введенные данные некорректны; -void write(): записывает данные объекта в промежуточный файл для хранения информации и быстрого считывания при необходимости; -void write_base(): считывает данные из промежуточного файла и записывает обновленную информацию в основной файл с данными всех карт; -void read(): считывает данные из промежуточного файла; -int debiting(int number): отнимает определенную сумму со счета карты при снятии наличных и уведомляет пользователя, если средств недостаточно; -void sumx(string sum1): добавляет определенную сумму к счету карты при внесении наличных средств в банкомат; -int debiting1(string sum1): отнимает определенную сумму со счета карты в режиме “OTHER AMOUNT” при снятии наличных и при пополнении счета мобильного телефона. Также в данной работе используется процедурный подход программирования, ниже приведено описания логики: Для описания логики ввода пин-кода и номера банковской карты клиента в два отдельных поля изобразим блок-схему на рисунке 1 Рисунок 1 (блок-схема логики ввода) Таким образом имеется возможность с помощью кнопок переключаться между полями для ввода. Также функционал позволяет стирать и добавлять цифры в поля, программа не позволяет ввести более 16 цифр в поле для номера карты и более 4 в поле для пин-кода. Для описания меню действий, изобразим блок-схему на рисунке 2 Рисунок 2 (блок-схема логики меню) Таким образом имеется возможность с помощью четырех кнопок выбрать действие в меню. После нажатия любой из кнопок данная форма закроется и откроется соответствующая. 4 РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙВ данном разделе приведен алгоритм снятия наличных. После отображения информации на экран, у пользователя появляется возможность выбрать сумму снятия наличных, а именно: 5 BYN, 10 BYN, 20 BYN, 50 BYN, 100 BYN, 200 BYN, 500 BYN или ввести сумму самостоятельно с помощью новой специальной формы с кнопками-цифрами. После выбора варианта пользователем, алгоритм может пойти по двум путям: для стандартной суммы и суммы введенной вручную. Алгоритм снятия наличных содержит в себе несколько функций (методов класса Base). Для первого случая: Base::read(), Base::debiting(), Base::write(), Base::write_base(). Для второго случая: Base::read(), Base::debiting1(string sum1), Base::write(), Base::write_base(). После определения суммы снятия наличных, алгоритм считывает данные о счете карты с промежуточного текстового файла base2. Далее проводится проверка счета на наличия денежных средств с учетом выбранной суммы снятия. Потом происходит перезапись актуальной информации в промежуточный файл base2. Затем, по завершению снятия, переписываем актуальную информацию с файла base2 в основной текстовый base1. В следующей части раздела более подробно описаны действия, осуществляющиеся при выборе стандартной суммы: Считывание информации из файла base2 – считывание всех трех полей класса Base. Проверка счета – функция debiting(int) отнимает от счета карты выбранную сумму, если недостаточно средств возвращает отрицательное значение -33. Перезапись актуальной информации в промежуточный текстовый файл base2 с уже измененным счетом карты. Перезапись основного текстового файла base1 (со всеми данными всех карт) c учетом изменений актуальной карты в файле base2 в файл base3. А затем перезапись из base3 в base1. В следующей части раздела более подробно описаны действия, осуществляющиеся при выборе стандартной суммы: Считывание информации из файла base2 – считывание всех трех полей класса Base. Проверка счета – функция debiting1(string) отнимает от счета карты выбранную сумму, если недостаточно средств возвращает отрицательное значение -33. Но прежде вычитания функция преобразовывает string в int, затем производит вычисления в стандартном типе данных int и в конце преобразовывает int в string. Перезапись актуальной информации в промежуточный текстовый файл base2 с уже измененным счетом карты. Перезапись основного текстового файла base1 (со всеми данными всех карт) c учетом изменений актуальной карты в файле base2 в файл base3. А затем перезапись из base3 в base1. Блок-схема алгоритма представлена в приложении В. 5 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯДля корректной работы разработанного программного средства необходимы: - компьютер или ноутбук с операционной системой Windows; Разработанное программное средство просто в использовании. Ниже будут даны описания последовательностей действий, необходимых для успешной работы с программой. После запуска программы откроется форма для ввода номера карты и пин-кода. Рисунок 1 (форма для ввода номера карты и пин-кода) Далее нужно ввести номер карты и пин-код, для примера введем: 1111111111111111 и 1111 (рисунок 2). Рисунок 2 (заполнение полей pin и card) После заполнение полей нужно кликнуть по клавише “ENTER”. Далее, может появиться окно (рисунок 3), если данные введены неверно, сигнализирующее пользователю об ошибке “INVALID PINCODE OR NUMBER OF THE CARD”. Рисунок 3 (уведомление о неверных данных) Если данные введены верно, то появится новая форма с выбором действия (рисунок 4). Есть возможность: снять наличные, просмотреть баланс карты, пополнить счет карты и счет мобильного телефона. Воспользоваться одной из функций можно с помощью четырех соответствующих кнопок: “GET CASH”, “CHECK BALANCE”, “TOP UP YOUR CARD”, “TOP UP YOUR PHONE”. Рисунок 4 (выбор действия) При нажатии первой клавиши “снятие наличных” (“GET CASH”) откроется новая форма (рисунок 5). Рисунок 5 (выбор суммы) На форме имеется 10 клавиш. Клавиши: “5 BYN”, “10 BYN”, “20 BYN”, ”50 BYN”, “100 BYN”, “200 BYN”, “500 BYN” отвечают за стандартную сумму снятия. При их нажатии появляется уведомление о успешности или не успешности операции (рисунки 6а и 6б). При нажатии клавиши “BACK” программа перейдет на предыдущую форму. При нажатии клавиши “EXIT” произойдет выход из программы. При нажатии клавиши “OTHER AMOUNT” откроется новая форма (рисунок 7). На новой форме есть 14 клавиш. 10 клавиш – это цифры для набора суммы. Есть также клавиши “BACK” и “EXIT”, их принцип действия такой же, как и ранее. Клавиша “CLEAR” позволяет стирать цифры. После заполнение полей нужно кликнуть по клавише “ENTER”. При нажатии появляется уведомление о успешности операции аналогично, как на прошлой форме (рисунки 6а и 6б). а) б) Рисунок 6 (а. средств достаточно; б. средств недостаточно) Рисунок 7 (снятие собственной суммы с карты) При нажатии второй клавиши “CHECK BALANCE” на рисунке 4 появляется новая форма, которая показывает остаток на карте (рисунок 8). Есть клавиши “BACK” и “EXIT”, их принцип действия такой же, как и ранее. Рисунок 8 (просмотр баланса) При нажатии третьей клавиши “TOP UP YOUR CARD” на рисунке 4 появляется новая форма (рисунок 7), которая позволяет пополнить карту. При нажатии четвертой клавиши “TOP UP YOUR PHONE” на рисунке 4 появляется новая форма (рисунок 10), которая позволяет пополнить счет телефона. В два поля нужно ввести номер телефона и сумму. При вводе суммы более 200 BYN выведется предупреждение (рисунок 9). Рисунок 9 (сумма более 200 BYN) При вводе суммы более, чем остаток на карте выведется предупреждение (рисунок 6б). Рисунок 10 (пополнение счета телефона) 6 ТЕСТИРОВАНИЕ Проведём тестирование некоторых кнопок.
По результатам тестирования можно утверждать, что программа выполняет действия, описанные в руководстве пользователя с точностью до ожидаемого результата, бесполезные или неработоспособные элементы отсутствуют следовательно приложение соответствует исходным требованиям. ЗАКЛЮЧЕНИЕВо время выполнения курсовой работы были выполнены все поставленные задачи: создание простого и понятного в использовании приложения, позволяющего, снимать денежные средства с карты, пополнять карту, просматривать баланс, а также пополнение счета сотового телефона; использование объектно-ориентированного подхода программирования; рассмотрение фреймворка .Net Framework. Было создано приложение под операционную систему Windows, были проведены необходимые тесты, а также продемонстрировано применение программы. В перспективе возможны изменение дизайна: корректировка неточностей отображения, подбор цветовой гаммы, создание нескольких цветовых тем, добавление настроек приложения. СПИСОК ЛИТЕРАТУРЫДэвис, Стефан, Р. Д94 C++ для "чайников", 4-е издание.: Пер. с англ.: — М.: Издательский дом '"Вильяме", 2003. — с. 291-306. Открытие-форм-windows-forms. - [Электронный ресурс]. Дата доступа 02.12.2021 Преобразование строки System::String в стандартную строку . - [Электронный ресурс]. Дата доступа 04.12.2021 Разработка программного модуля. - [Электронный ресурс]. Дата доступа 05.12.2021 Статические члены класса. - [Электронный ресурс]. Дата доступа 05.12.2021 ПРИЛОЖЕНИЕ А(Обязательное) Структурная схема программы ПРИЛОЖЕНИЕ Б(Обязательное) Диаграмма классов ПРИЛОЖЕНИЕ В(Обязательное) Блок схема алгоритма снятия наличных |