Разработка программного обеспечения для автоматизации банковских услуг

Анализ проектирования интерфейса программы. Выбор и назначение визуальных компонентов. Изучение экранных форм приложения. Модули, процедуры, функции проекта и их назначение. Листинг программного кода. Результаты работы автоматизированного продукта.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.12.2017
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Санкт-Петербургский государственный экономический университет»

Кафедра информационных систем и технологий

Курсовая работа

по дисциплине: «Стандартизация, сертификация и управление качеством программного обеспечения»

Разработка программного обеспечения для автоматизации банковских услуг

Выполнила:

Балова М. А.

Проверил:

Головкин Ю. Б.

Санкт-Петербург 2016

Содержание

1. Постановка задачи

1.1 Описание предметной области

2. Разработка программного обеспечения

2.1 Проектирование интерфейса программы

2.2 Структура программного обеспечения

3. Результаты работы программного приложения

Список использованной литературы

1. Постановка задачи

Разработка программного обеспечения в объектно-ориентированной системе визуального программирования Delphi для автоматизация банковской услуги учета кредитов физических лиц. Программа позволит заводить новых клиентов, открывать им кредитные договоры и договоры залога, делать расчет графика платежей, проводить оплаты по кредитам и проводить аналитику по своей работе.

1.1 Описание предметной области

Банковские операции (также банковские услуги) -- транзакционные и бизнес-операции, обычно совершаемые банками; в некоторых странах на исключительной основе.

По законодательству Российской Федерации банковские операции входят в закрытый перечень операций, право совершения которых принадлежит кредитным организациям на основании банковской лицензии.

В соответствии с Федеральным законом «О банках и банковской деятельности» от 02.12.1990 N 395-1-ФЗ к банковским операциям относят:

· привлечение денежных средств физических и юридических лиц во вклады (до востребования и на определенный срок);

· размещение указанных привлеченных средств от своего имени и за свой счет;

· открытие и ведение банковских счетов физических и юридических лиц;

· осуществление расчетов по поручению физических и юридических лиц, в том числе банков-корреспондентов, по их банковским счетам;

· инкассация денежных средств, векселей, платежных и расчетных документов и кассовое обслуживание физических и юридических лиц;

· купля-продажа иностранной валюты в наличной и безналичной формах;

· привлечение во вклады и размещение драгоценных металлов;

· выдача банковских гарантий;

· осуществление переводов денежных средств по поручению физических лиц без открытия банковских счетов (за исключением почтовых переводов).

Все банковские операции и другие сделки осуществляются в рублях, а при наличии соответствующей лицензии Банка России -- и в иностранной валюте. Правила осуществления банковских операций, в том числе правила их материально-технического обеспечения, устанавливаются Банком России.

Согласно терминологии Всемирной торговой организации (ВТО) указанные банковские операции относятся к банковским услугам.

К банковским услугам корпоративного бизнеса относятся:

· Расчетно-кассовое обслуживание, в том числе через систему "Клиент-Банк";

· Кредитование: целевой кредит, овердрафт, открытие кредитной линии;

· Размещение денежных средств в депозиты и векселя Банка;

· Операции с ценными бумагами: брокерское обслуживание, операции с собственными векселями и векселями третьих лиц;

· Документарные операции;

· Конверсионные операции;

· Предоставление информации об остатках на счете с использованием кодового слова;

· Аренда индивидуальной ячейки банковского сейфа.

Кредиты, его виды, формы и функции

Кредит - термин, образованный от латинских credium (заем) и credere (доверять). Это определенная сумма денег (или товаров), которая ссужается под определенный процент одним лицом другому. Лицо, получающее кредит, называется заемщик, лицо, дающее его - кредитор. Кредит становится необходимым и возможным, если происходит совпадение интересов кредитора и заемщика. Он выдается на оговоренный в договоре срок, по истечении которого заемщик обязан вернуть полную сумму кредита с начисленными процентами.

Важнейшими источниками кредитами являются:

1. Средства бюджетной системы, различных целевых фондов и резервов;

2. Доходы и накопления населения;

3. Средства, предназначенные для восстановления основного капитала и накапливаемые по мере перенесения его стоимости в форме амортизации;

4. Предназначенная для капитализации часть прибавочной стоимости, накапливаемая при расширенном воспроизводстве до определенной величины, зависящей от масштабов предприятия и их технического уровня;

5. Часть оборотного капитала, высвобождаемая в денежной форме в связи с несовпадением времени продажи товаров и покупки сырья, топлива, выплаты заработной платы и т.п.

Функции кредитов

· Перераспределительная. В случае, если имеется излишек на уровне предприятия, он может быть использован для поддержания дружественного предприятия, на уровне государства - помощь под невысокие проценты союзной стране.

· Аккумуляция. Сбор активов, капитала для серьезного вклада или большой покупки.

· Стимулирование обращения. Развитие некоторых банковских инструментов - виртуальных счетов, карт. Часто человек, не держа физически в руках денег, может получить средства в кредит, и даже вернуть их. Т.е. нет необходимости печатать все деньги, находящиеся в обращении, что значительно экономит ресурсы.

· Воспроизводственная. Она позволяет использовать дополнительные средства для цикла производства (закупить сырье, обработать, продать товары или продукты, а с выручки рассчитаться), а также его изменения (по качеству, себестоимости…)

· Стимулирующая. Позволяет организовать процесс производства с нуля, не имея собственных активов.

Формы кредитов

В зависимости от вещественной формы ссуженной стоимости выделяют товарную, денежную и смешанную формы кредита.

Товарная форма кредита предполагает передачу во временное пользование отдельные товары (меха, скот, зерно и пр.). Возвращать надлежит аналогичное имущество с оговоренным или естественным (для скота, зерна, птицы) приращением. В современных условиях товарной формой кредита является поставка товаров с отсрочкой оплаты, продажа в рассрочку, аренда (прокат) имущества, лизинг оборудования.

Денежная форма кредита преобладает в современном хозяйстве. Она предполагает передачу во временное пользование оговоренного количества денег. В ней нет эквивалентного товарно-денежного обмена, а есть передача стоимости во временное пользование с условием возврата через определённое время и, как правило, с уплатой процентов за пользование ей. Данная форма кредита активно используется всеми субъектами экономических отношений как внутри страны, так и во внешнем экономическом обороте.

Смешанная форма кредита возникает в том случае, когда кредит был предоставлен в форме товара, а возвращён деньгами или наоборот -- предоставлен деньгами, а возвращён в виде товара. Например, когда за полученные денежные ссуды расчёт производится поставками товаров.

Принципы кредитования

1. Принцип взаимовыгодности кредитной сделки означает, что условия сделки должны адекватно учитывать коммерческие интересы и возможности обеих сторон.

2. Принцип платности подразумевает, что за право пользования кредитом заёмщик должен заплатить оговоренную сумму процентов.

3. Принцип срочности означает, что кредит должен быть не просто возвращен, а возвращен в строго оговоренный в кредитном соглашении срок. Для этого в нем подробно разрабатывается график погашения кредита и уплаты процентов.

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

5. Принцип неизменности условий кредитования. То есть изменение условий кредитного договора (соглашения) должно производиться в соответствии с правилами, сформулированными в самом кредитном договоре, либо в специальном приложении к нему.

6. Принцип подчинения кредитной сделки нормам законодательства и банковским правилам (в частности, обязательно составление кредитного договора или соглашения в письменной форме, не противоречащего закону и нормативным актам ЦБ РФ).

Виды коммерческих кредитов

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

Ипотечный кредит предоставляется для приобретения недвижимости, которая или сама и служит гарантом заема, или кредит выдается под залог другого имущества. Данный вид кредита обычно бывает долгосрочным и выдается на срок от десяти до тридцати лет.

Потребительский кредит, как правило, выдается для приобретения каких-либо товаров общего потребления (мебель, техника и т.п.). В денежной форме предоставляется как банковская ссуда физическому лицу, в товарной, при розничной продаже, как отсрочка платежа. Этот вид кредита обычно имеет фиксированную процентную ставку, которая не может быть изменена ни одной из сторон. В роли кредитора могут выступать банки, специализированные кредитные организации, а также любые юридические лица, осуществляющие реализацию товаров или услуг. Потребительский кредит регулируется со стороны государства более тщательно, чем другие его виды, так как он связан с потребностями населения, регулированием его уровня жизни.

Автокредит выдается банком для покупки автомобиля. Не имеет значения, какой именно автомобиль собрался приобрести заемщик: новый или старый. Этот вид кредита подразумевает большие сроки, чем потребительский, получаемая сумма также может быть намного больше, а процентная ставка зависит от стоимости авто. Минусы состоят в том, что, если владелец автомобиля захочет его продать, он будет обязан ставить в известность банк. Процедура оформления купли-продажи будет гораздо сложнее.

Кредитная карта - сравнительно новый банковский продукт. Это именной документ, владелец которого может совершать покупки, используя деньги, выданные банком. При этом в случае возврата потраченной суммы до обозначенного периода проценты не взимаются. Но если дата внесения платежа просрочена, то начисляются штраф и проценты, которые существенно выше, чем по традиционным видам кредита. На данную карточку не нужно перечислять денежные средства, они автоматически пополняются банком до определенного лимита.

Отношения между банком и заемщиком возникают на основе кредитного договора или соглашения. Кредитное соглашение - это договор кредитора и заемщика при предоставлении-получении кредита, подробно оговаривающий условия возвратности, срочности и платности. Он должен быть заключен в письменной форме. Несоблюдение письменной формы влечет недействительность кредитного договора.

График погашения кредита

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

1. Аннуитетными, т.е. равновеликими платежами называют платежи, которые производятся на протяжении всего срока кредита равными друг другу. При таком виде платежа заемщик регулярно совершает платеж одного и того же размера. Эта сумма может меняться только по соглашению сторон или в некоторых случаях частичного досрочного погашения. Структура аннуитетного платежа состоит из двух частей: процентов за пользование кредитом и суммы идущей на погашение кредита. С течением времени соотношение этих величин меняется и проценты постепенно начинают составлять меньшую величину, соответственно сумма на погашение основного долга внутри аннуитетного платежа увеличивается. Поскольку, при аннуитетных платежах в начале сумма, идущая на погашение основного долга, убывает медленно, а проценты всегда начисляются на остаток от этой суммы, то и общий размер уплаченных процентов по такому кредиту больше. Это особенно заметно при досрочных погашениях.

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

В том числе платежи бывают плановыми и досрочными. К плановым платежам по кредиту, относят те выплаты, которые заемщик платит, если идет нормальная выплата займа, т.е. не возникает просрочки.

Периодические платежи -- это транши, которые платятся ежемесячно по ссуде. К ним относятся -- аннуитетный и дифференцированный платежи.

Разовые платежи -- платятся один раз за все время выплат по займу. К ним относятся комиссия за выдачу займа, комиссия за рассмотрение заявки. Сейчас эти платежи сведены к минимуму. Но во многих банках они все равно есть. В случае потребительских займов страховка может являться разовой выплатой.

Штрафы и досрочные погашения. Проценты на просроченную выплату и досрочные погашения относят к внеплановым платежам по займу. Досрочные погашения пользователь делает в любое время. Штрафы и пени пользователь получает, когда не платит по займу.

Досрочный платеж -- платеж который делается для погашения кредита помимо ежемесячного платежа. При этом уменьшается либо сумма кредита, либо срок. Само досрочное погашение бывает либо полным, либо частичным. В первом случае кредита погашается полностью. Во втором случае погашается часть кредита и происходит уменьшение суммы или срока в зависимости от выбранного способа досрочного погашения.

2. Разработка программного обеспечения

2.1 Проектирование интерфейса программы

Выбор и назначение визуальных компонентов

В данном проекте были использованы следующие визуальные компоненты объектно-ориентированной среды Delphi:

MainMenu - компонент определяет главное меню программы.

Label - метка. Компонент предназначен для отображения текста на форме.

Edit - текстовое поле. Предназначен для ввода и редактирования записей разной длины.

Button - командная кнопка. Используется для управления программами. Связанный с кнопкой алгоритм управления реализуется в обработчике события OnClick.

RadioButton - переключатель, состояние которого зависит от состояния других компонентов RadioButton, находящихся на форме. Поэтому их обычно объединяют в группы - RadioGroup.

RadioGroup - группа переключателей. Компонент представляет собой специальный контейнер, предназначенный для размещения переключателей класса RadioButton.

ComboBox - компонент, представляющий собой комбинацию текстового поля и списка. Позволяет ввести данные путем набора на клавиатуре или выбора из списка.

MaskEdit - текстовое поле с маской ввода, предназначенное для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: String.

Image - изображение. Предназначен для отображения графики: иллюстраций, фотографий, рисунков.

Chart - диаграмма. Предназначен для графического представления числовых данных. Компонент содержит большое количество специфичных свойств, событий и методов.

DateTimePicker - компонент, отвечающий за ввод даты и времени, по средствам открывающегося календаря.

Создание базы данных происходило в MS Access. Схема данных имеет следующий вид:

Для создания БД в программе и редактирования её использовались следующие компоненты:

ADOConnection - компонент, обеспечивающий соединение с базой данных.

ADOTable - компонент, который представляет собой таблицу, отображающий все столбцы подключаемой таблицы из БД. В том числе, этот компонент обеспечивает доступ к таблице в БД, возможность её редактирования.

ADOQuery позволяет направить запрос серверу БД. Обычно он используется, если данные, которые надо получить из базы данных, распределены по нескольким таблицам.

DataSource - источник данных, компонент обеспечивает связь между данными, представленными компонентом ADOTable или ADOQuery и компонентами отображения данных - DBGrid, DBEdit, DBLookUpComboBox.

DBGrid - имеет вид сетки, компонент обеспечивает табличный способ представления данных на экране из компонентов Table или Query. Приложение может использовать DBGrid для отображения, вставки, уничтожения, редактирования данных БД.

DBEdit - текстовое поле, обеспечивающий как и Edit запись или редактирование данных, только в отличие от Edit имеет привязку к конкретному значению в БД.

DBLookUpComboBox - позволяет задавать значение некоторого поля одного набора данных путём выбора соответствующего значения из списка, сформированного из элементов другого набора данных. Данные отображаются посредством стандартного компонента ComboBox. Выбор в списке устанавливает значение поля в наборе данных DataSource. Обычно в списках отображаются значения тех полей (ListField), которые наилучшим образом описывают реальное значение поля (DataField).

DBNavigator - беспечивает перемещение указателя текущей записи, активизацию режима редактирования, добавление и удаление записей. Компонент представляет собой совокупность командных кнопок.

Экранные формы программного приложения

Форма - важный визуальный компонент приложения, который, как и другие компоненты, имеет определенные свойства. Важнейшие свойства формы: заголовок, высота, ширина, местоположение, цвет фона и т.д.. Она является контейнером, т. е. на ее поверхности могут располагаться другие визуальные компоненты, которые составляют интерфейсную часть приложения. В одной программе может быть несколько форм, каждая из которых выполняет определенную задачу.

Форма 1 - Заставка

Первая форма содержит 4 надписи (Label), которые отображают тему курсовой работы, информацию об авторе. Рисунок проекта (Image) и кнопку (Button), при нажатии на которую осуществляется переход к главному меню программы.

Форма 2 - Главная форма программы

Вторая форма содержит главное меню (MainMenu), в подменю которого можно выбрать для выполнения необходимую функцию программы или открыть необходимую таблицу БД, также здесь представлены две кнопки (Button), которые отражают самые частые функции использования программы.

При нажатии на кнопку «Создать клиента» появляется новая форма ввода новой записи о новом клиенте. При нажатии на кнопку «Открыть кредит» появляется новая форма ввода новой записи о новом кредите и если нужно открытие договора залога.

Форма 3 - Добавление записи в БД (Карточка клиента)

Форма состоит из следующих компонентов: 6 меток (Label); 2 поля с маской ввода (MaskEdit), ComboBox, текст, написанный в этих полях после нажатия на кнопку «Создать» (Button1) будет занесен в базу данных; кнопка «Отменить» (Button2), которая обеспечивает возврат на форму 2.

Форма 4 - Добавление записи в БД (открытие кредита)

Форма содержит следующие визуальные компоненты: 5 текстовых полей (Edit), 2 BDLookUpComboBox, ComboBox, 2 MaskEdit и 11 Label. При нажатии на кнопку «Созадть» (Button 1) - введеные значения вносят в БД, при нажатии на «Отменить» (Button 2) - происходит возврат на форму 2, при нажатии на кнопку «Рассчитать» (Button 3) - программа рассчитывает платежный календарь по введеному кредиту и отражает его на нофой форме 9.

Форма 5 - кредитная база банка

На форме отражается таблица с данными об уже открытых кредитных договорах. Также на это форме может осущетсвить поиск по трем критериям при помощи визуальных объектов - текстовых полей (Edit), DataTimePicker, и кнопок (Button), можно сбросить результаты поиска. Также можно отсортировать при помощи кнопок по трем критерям. Навигатор обеспечивает навигацию по таблице.

Форма 6 - Клиентская база

На форме представлена таблица, навигация по ней и кнопка «Создать клиента» - для создания клиента, в случае если сотрудник работал с клиентской базой во время обращения к нему.

Форма 7 - Справочник договоров залога

Информация в справочник добавляется с формы 4, и используется как справочник, представлен навигатор для удобства перемещения по справочнику.

Форма 8 - Справочник видов договора залога

Форма служит для создания новых предметов залога через навигатор и подвязки данной информации на форму 2 через визуальный окмпонент DBLookUpComboBox.

Форма 9 - график платежей (кредитный калькулятор)

На данной форме располагается информация по графикам платежей по открытым кредитным договорам. Информацию записывается сюда при помощи формы 4 при нажатии на кнопку «Рассчитать».

Форма 10 - Анализ (диаграммы)

Данная форма служит для анализа деятельности банка. Деятельность представлена в разрезе трех критериев, которые сформированы в группу RadioGroup. Данный переключатель используется для выбора типа диаграммы (построена при помощи визуального компонента DBChart).

Форма 11 - Журнал операций

На данную форму заносятся записи из формы 12, и она отражает по каким договорам была произведена оплата и в какую дату, какую сумму внесли. интерфейс приложение листинг код

Форма 12 - Погашение

Данная форма отражает произведение оплаты по кредиту. Из DBLookUpComboBox выбирается кредитный договор, поля ниже заполняются автоматически (DBEDit) и сотрудником вносится дата погошения и сумма. При нажатие на «Провести» - заносится в БД (на форму 11), при «Отменить» - отменются действия.

2.2 Структура программного обеспечения

Модули, процедуры, функции проекта и их назначение

Назначение модулей:

Unit1 - заставка

Unit2 - основная форма

Unit3 - добавление записи (карточка клиента)

Unit4 - добавление записи (кредитный договор)

Unit5 - Кредитная база

Unit6 - Клиентская база, на этой форме происходит подключение к БД

Unit7 - Договоры залогов

Unit9 - Виды залогов

Unit11 - График

Unit12 - Анализ (диаграммы)

Unit13 - Журнал операций

Unit14 - Погашение

Основные процедуры:

procedure Form5.Button1Click(Sender: TObject); - сортировка по фамилии заемщика

procedure Form5.Button2Click(Sender: TObject); - сортировка по сроку кредита

procedure Form5.Button3Click(Sender: TObject); - сортировка по сумме кредита

procedure Form5.ПоискClick(Sender: TObject); - поиск по фамилии заемщика

procedure Form5.Button5Click(Sender: TObject); - поиск по дате договора

procedure Form5.Button6Click(Sender: TObject); - поиск по № кредитного договора

procedure Form5.Button4Click(Sender: TObject); - сброс результатов поиска

procedure Form4.Button1Click(Sender: TObject); - открытие кредита

procedure Form4.Button3Click(Sender: TObject); - рассчет графика платежей

procedure Form3.Button1Click(Sender: TObject); - создание клиента

Основные функции проекта

FloatToStr (n) - строка, являющаяся изображением вещественного числа n

StrToInt(s) - целое, изображением которого является строка s

ShowMessage - окно, в котором находится сообщение и кнопка ОК.

Листинг программного кода

unit Unit1; //заставка

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls,

Vcl.StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Image1: TImage;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

Uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); // открытие формы 2

begin

Form2.ShowModal;

end;

end.

unit Unit2; // форма 2 с основным меню программы

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.Imaging.jpeg,

Vcl.ExtCtrls, Vcl.StdCtrls;

type

TForm2 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N9: TMenuItem;

Button1: TButton;

Button2: TButton;

N13: TMenuItem;

Image1: TImage;

N14: TMenuItem;

Lju1: TMenuItem;

N8: TMenuItem;

procedure N1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure Lju1Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

Uses unit3, unit4, unit5, unit6, unit7, unit9, unit10, unit12, unit13, unit14, unit11;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject); // Карточка клиента

begin

form3.Show;

end;

procedure TForm2.Button2Click(Sender: TObject); // Открытие кредита

begin

form4.Show;

end;

procedure TForm2.Lju1Click(Sender: TObject); // Договоры залога

begin

form7.Show;

end;

procedure TForm2.N13Click(Sender: TObject); // Анализ

begin

form12.Show;

end;

procedure TForm2.N14Click(Sender: TObject); //Виды залогов

begin

form9.Show;

end;

procedure TForm2.N1Click(Sender: TObject); // Карточка клиента

begin

form3.Show;

end;

procedure TForm2.N3Click(Sender: TObject); // Погашение

begin

form14.show;

end;

procedure TForm2.N5Click(Sender: TObject); // Выход

begin

close;

end;

procedure TForm2.N6Click(Sender: TObject); // Клиентская база

begin

form6.Show;

end;

procedure TForm2.N7Click(Sender: TObject); //Кредитная база

begin

form5.Show;

end;

procedure TForm2.N8Click(Sender: TObject); //График

begin

form11.show;

end;

procedure TForm2.N9Click(Sender: TObject); //Журнал операций

begin

form13.Show;

end;

end.

unit Unit3; // карточка клиента

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask;

type

TForm3 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

MaskEdit1: TMaskEdit;

Label3: TLabel;

Edit2: TEdit;

Button1: TButton;

Button2: TButton;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

Edit4: TEdit;

Label6: TLabel;

Edit5: TEdit;

Label7: TLabel;

ComboBox1: TComboBox;

Label8: TLabel;

MaskEdit2: TMaskEdit;

Label9: TLabel;

Edit6: TEdit;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

Uses unit6;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject); // создание клиента

begin

if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') or (Edit4.Text='')or

(MaskEdit2.Text='') then

begin

Application.MessageBox('Не заполнены поля!','Ошибка',MB_OK+MB_IconWarning);

Exit;

end;

Form6.tabClients.Append;

Form6.tabClients['ФИО']:= edit1.Text;

Form6.tabClients['Пол']:= combobox1.Text;

Form6.tabClients['Дата рождения']:= MaskEdit1.Text;

Form6.tabClients['Место рождения']:= Edit2.Text;

Form6.tabClients['Паспорт']:= Edit3.Text;

Form6.tabClients['Адрес регистрации']:= Edit4.Text;

Form6.tabClients['Адрес места жительства']:= Edit5.Text;

Form6.tabClients['Мобильный телефон']:= MaskEdit2.Text;

Form6.tabClients['Электронная почта']:= Edit6.Text;

Form6.tabClients.Post;

Application.MessageBox('Клиент успешно добавлен', 'Успешно', MB_OK + MB_IconInformation);

edit1.Text:='';

combobox1.Text:='';

MaskEdit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

MaskEdit2.Text:='';

Close;

end;

procedure TForm3.Button2Click(Sender: TObject); //отмена записи

begin

close;

end;

end.

unit Unit4; // Открытие кредита

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Data.DB,

Vcl.Grids, Vcl.DBGrids, Data.Win.ADODB, Vcl.DBCtrls;

type

TForm4 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

MaskEdit1: TMaskEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit2: TEdit;

Label6: TLabel;

Edit3: TEdit;

Label7: TLabel;

ComboBox2: TComboBox;

Button1: TButton;

Button2: TButton;

DBLookupComboBox1: TDBLookupComboBox;

Label8: TLabel;

Label9: TLabel;

MaskEdit3: TMaskEdit;

Label10: TLabel;

Edit4: TEdit;

DBLookupComboBox2: TDBLookupComboBox;

Label11: TLabel;

tabCredit: TADOTable;

tabpledge: TADOTable;

Edit5: TEdit;

Button3: TButton;

DataSource1: TDataSource;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

s,platej:real;

i,vsegoplatejey: Byte;

date:TDateTime;

implementation

Uses unit5, unit6, unit9, unit7, Unit11;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject); // создание кредита и залога

begin

Form4.tabCredit.Open;

Form4.tabCredit.Append;

Form4.tabCredit['№ кредитного договора']:= edit1.Text;

Form4.tabCredit['Дата открытия']:= MaskEdit1.Text;

Form4.tabCredit['Срок кредита']:= Edit5.Text;

Form4.tabCredit['ID клиента']:= DBLookUpComboBox1.KeyValue;

Form4.tabCredit['Сумма кредита']:= Edit2.Text;

Form4.tabCredit['Ставка по кредиту, %']:= Edit3.Text;

Form4.tabCredit['Тип кредита']:= ComboBox2.Text;

Form4.tabCredit.Post;

Form4.tabpledge.Open;

Form4.tabpledge.Append;

Form4.tabpledge['№ договора залога']:=Edit4.Text;

Form4.tabpledge['№ кредитного договора']:=edit1.Text;

Form4.tabpledge['Код предмета залога']:=DBLookUpComboBox2.KeyValue;

Form4.tabpledge['id клиента']:=DBLookUpComboBox1.KeyValue;

Form4.tabpledge['Дата договора']:=MaskEdit3.Text;

Form4.tabpledge.Post;

end;

procedure TForm4.Button2Click(Sender: TObject); // отмена ввода записи

begin

edit1.Text:='';

edit2.Text:='';

edit3.Text:='';

MaskEdit1.Text:='';

Edit5.Text:='';

DBLookUpComboBox1.KeyValue:='';

ComboBox2.Text:='';

close;

end;

procedure TForm4.Button3Click(Sender: TObject); // расчёт графика платежей

begin

date:=StrToDate(MaskEdit1.Text);

date:=incMonth(date);

i:=1;

s:=StrToFloat(edit3.text)/100;

platej:=((StrToFloat(edit2.text)/StrToFloat(edit5.text))+(StrToFloat(edit2.text)*(s/12)));

vsegoplatejey:=StrToInt(edit5.text);

while i<vsegoplatejey do

begin

Form11.TabGrafic.Append;

Form11.TabGrafic['Дата']:= date;

Form11.TabGrafic['Сумма обязательств']:= platej;

Form11.TabGrafic['№ кредитного договора']:= Edit1.Text;

Form11.TabGrafic.Post;

i:=i+1;

date:=incMonth(date);

end;

edit1.Text:='';

edit2.Text:='';

edit3.Text:='';

MaskEdit1.Text:='';

Edit5.Text:='';

DBLookUpComboBox1.KeyValue:='';

ComboBox2.Text:='';

MaskEdit3.Text:='';

Edit4.Text:='';

Form11.Show;

end;

end.

unit Unit5; // кредитная база

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.Grids,

Vcl.DBGrids, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.ComCtrls;

type

TForm5 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

ADOQuery1: TADOQuery;

Label1: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Поиск: TButton;

Button5: TButton;

Button6: TButton;

Edit1: TEdit;

Edit3: TEdit;

ADOQuery1кредитногодоговора: TWideStringField;

ADOQuery1ФИО: TWideStringField;

ADOQuery1Датаоткрытия: TDateTimeField;

ADOQuery1Сроккредита: TWideStringField;

ADOQuery1Суммакредита: TIntegerField;

ADOQuery1Ставкапокредиту: TIntegerField;

ADOQuery1Типкредита: TWideStringField;

DateTimePicker1: TDateTimePicker;

ADOQuery2: TADOQuery;

Button4: TButton;

ADOQuery3: TADOQuery;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure ПоискClick(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

Uses unit6;

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject); // сортировка по ФИО

begin

Form5.ADOQuery1.sort:='ФИО';

end;

procedure TForm5.Button2Click(Sender: TObject); // сортировка по сроку кредита

begin

Form5.ADOQuery1.sort:='[Срок кредита]';

end;

procedure TForm5.Button3Click(Sender: TObject); // сортировка по сумме кредита

begin

Form5.ADOQuery1.sort:='[Сумма кредита]';

end;

procedure TForm5.Button4Click(Sender: TObject); // Сброс

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Кредиты.[№ кредитного договора], Клиенты.ФИО, Кредиты.[Дата открытия], Кредиты.[Срок кредита], Кредиты.[Сумма кредита], Кредиты.[Ставка по кредиту, %], Кредиты.[Тип кредита]');

ADOQuery1.SQL.Add('FROM Клиенты INNER JOIN Кредиты ON Клиенты.[ID клиента] = Кредиты.[ID клиента]');

ADOQuery1.Active:=True;

end;

procedure TForm5.Button5Click(Sender: TObject); // поиск по дате открытия

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Кредиты.[№ кредитного договора], Клиенты.ФИО, Кредиты.[Дата открытия], Кредиты.[Срок кредита], Кредиты.[Сумма кредита], Кредиты.[Ставка по кредиту, %], Кредиты.[Тип кредита]');

ADOQuery1.SQL.Add('FROM Клиенты INNER JOIN Кредиты ON Клиенты.[ID клиента] = Кредиты.[ID клиента]');

ADOQuery1.SQL.Add('WHERE [Дата открытия] Like :E2');

AdoQuery1.Parameters.ParamByName('E2').Value := '%'+FormatDatetime('dd.mm.yyyy',DateTimePicker1.DateTime)+'%';

ADOQuery1.Active:=True;

end;

procedure TForm5.Button6Click(Sender: TObject); // поиск по № договора

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Кредиты.[№ кредитного договора], Клиенты.ФИО, Кредиты.[Дата открытия], Кредиты.[Срок кредита], Кредиты.[Сумма кредита], Кредиты.[Ставка по кредиту, %], Кредиты.[Тип кредита]');

ADOQuery1.SQL.Add('FROM Клиенты INNER JOIN Кредиты ON Клиенты.[ID клиента] = Кредиты.[ID клиента]');

ADOQuery1.SQL.Add('WHERE [№ кредитного договора] Like :E3');

AdoQuery1.Parameters.ParamByName('E3').Value := '%'+Trim(Edit3.Text)+'%';

ADOQuery1.Active:=True;

end;

procedure TForm5.ПоискClick(Sender: TObject); // поиск по ФИО

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Кредиты.[№ кредитного договора], Клиенты.ФИО, Кредиты.[Дата открытия], Кредиты.[Срок кредита], Кредиты.[Сумма кредита], Кредиты.[Ставка по кредиту, %], Кредиты.[Тип кредита]');

ADOQuery1.SQL.Add('FROM Клиенты INNER JOIN Кредиты ON Клиенты.[ID клиента] = Кредиты.[ID клиента]');

ADOQuery1.SQL.Add('WHERE ФИО Like :E1');

AdoQuery1.Parameters.ParamByName('E1').Value := '%'+Trim(Edit1.Text)+'%';

ADOQuery1.Active:=True;

end;

end.

unit Unit6; // клиентская база

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.ExtCtrls,

Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls;

type

TForm6 = class(TForm)

Bank: TADOConnection;

tabclients: TADOTable;

DataSource1: TDataSource;

tabclientsIDклиента: TAutoIncField;

tabclientsФИО: TWideStringField;

tabclientsПол: TWideStringField;

tabclientsДатарождения: TDateTimeField;

tabclientsМесторождения: TWideStringField;

tabclientsПаспорт: TWideStringField;

tabclientsАдресрегистрации: TWideStringField;

tabclientsАдресместажительства: TWideStringField;

tabclientsМобильныйтелефон: TWideStringField;

tabclientsЭлектроннаяпочта: TWideStringField;

DBNavigator1: TDBNavigator;

Button1: TButton;

DBGrid1: TDBGrid;

ADOQuery1: TADOQuery;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses unit3;

{$R *.dfm}

procedure TForm6.Button1Click(Sender: TObject); // открыть создание клиента

begin

form3.Show;

end;

end.

unit Unit12; // анализ

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, VclTee.TeeGDIPlus,

VCLTee.Series, VCLTee.TeEngine, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart,

Vcl.StdCtrls;

type

TForm12 = class(TForm)

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

Chart1: TChart;

Series1: TBarSeries;

Series2: THorizBarSeries;

Series3: TPieSeries;

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure RadioButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

uses unit5, Unit6;

{$R *.dfm}

procedure TForm12.RadioButton1Click(Sender: TObject); // диаграмма по количеству договоров по типу кредита

var

x: string;

y: integer;

begin

Chart1.Title.text.Clear;

Chart1.Title.text.add('Количество договоров по типу кредита');

Series1.Active:=true;

Series2.Active:=false;

Series3.Active:=false;

form5.ADOQuery2.SQL.Clear;

form5.ADOQuery2.SQL.Add('SELECT Кредиты.[Тип кредита], Count(Кредиты.[№ кредитного договора]) AS Количество FROM Кредиты GROUP BY Кредиты.[Тип кредита]');

form5.ADOQuery2.Active:=true;

form5.ADOQuery2.First;

while not form5.ADOQuery2.Eof do

begin

x:=form5.ADOQuery2.Fields[0].Asstring;

y:=form5.ADOQuery2.Fields[1].AsInteger;

chart1.Series[0].Add(y,x);

form5.ADOQuery2.Next;

end;

end;

procedure TForm12.RadioButton2Click(Sender: TObject); // Диаграмма по полу клиентов

var

x: string;

y: integer;

begin

Chart1.Title.text.Clear;

Chart1.Title.text.add('По полу заемщика');

Series2.Active:=true;

Series1.Active:=false;

Series3.Active:=false;

form6.ADOQuery1.SQL.Clear;

form6.ADOQuery1.SQL.Add('SELECT Клиенты.Пол, Count(Клиенты.[ID клиента]) AS Количество FROM Клиенты GROUP BY Клиенты.Пол');

form6.ADOQuery1.Active:=true;

form6.ADOQuery1.First;

while not form6.ADOQuery1.Eof do

begin

x:=form6.ADOQuery1.Fields[0].Asstring;

y:=form6.ADOQuery1.Fields[1].AsInteger;

chart1.Series[1].Add(y,x);

form6.ADOQuery1.Next;

end;

end;

procedure TForm12.RadioButton3Click(Sender: TObject); // Диаграмма стоимости по видам кредита

var

x: string;

y: integer;

begin

Chart1.Title.text.Clear;

Chart1.Title.text.add('Сумма договоров по типу кредита');

Series3.Active:=true;

Series1.Active:=false;

Series2.Active:=false;

form5.ADOQuery3.SQL.Clear;

form5.ADOQuery3.SQL.Add('SELECT Кредиты.[Тип кредита], Sum(Кредиты.[Сумма кредита]) AS [Sum-Сумма кредита] FROM Кредиты GROUP BY Кредиты.[Тип кредита]');

form5.ADOQuery3.Active:=true;

form5.ADOQuery3.First;

while not form5.ADOQuery3.Eof do

begin

x:=form5.ADOQuery3.Fields[0].Asstring;

y:=form5.ADOQuery3.Fields[1].AsInteger;

chart1.Series[2].Add(y,x);

form5.ADOQuery3.Next;

end;

end;

End.

unit Unit14; // погашение

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls;

type

TForm14 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button1: TButton;

Button2: TButton;

DBLookupComboBox1: TDBLookupComboBox;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Edit2: TEdit;

MaskEdit1: TMaskEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form14: TForm14;

implementation

uses unit4, unit6, unit13;

{$R *.dfm}

procedure TForm14.Button1Click(Sender: TObject); //проведение

begin

Form13.tabjournal.Open;

Form13.tabjournal.Append;

Form13.tabjournal['№ кредитного договора']:= DBLookUpComboBox1.KeyValue;

Form13.tabjournal['Дата']:= MaskEdit1.Text;

Form13.tabjournal['Сумма']:= Edit2.Text;

Form13.tabjournal.Post;

end;

procedure TForm14.Button2Click(Sender: TObject); //отмена

begin

close;

end;

end.

3. Результаты работы программного приложения

Представление результата по поиску:

1. По ФИО заемщика

2. Сброс результата поиска

3. По дате открытия кредитного договора

По номеру кредитного договора

Ниже представлена фильтрация:

1. По сроку кредита

2. По фамилии заемщика

3. По сумме кредита

Диаграммы

Список использованной литературы

1. ГОСТ 34.602-89 Информационная технология. Техническое задание на создание автоматизированной системы. 01.01.1990 г. - 26 с.

2. ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств. 01.03.2012 - 160 с.

3. ФЗ №395-1-ФЗ от 02.12.1990 «О банках и банковской деятельности».

4. Культин Н.Б. Основы программирования в Embarcadero Delphi - 2015 г. - 232 с.

5. Пестриков В., Маслобоев А. Delphi на примерах. - СПб.: «БХВ - Петербург», 2005. - 496 с.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.