Разработка программного модуля начисления процентов
Федеральное агентство по образованию
Рязанский государственный радиотехнический университет
Кафедра САПР ВС
«Разработка программного модуля начисления процентов»
Пояснительная записка
к курсовому проекту по курсу
«Программное обеспечение банковских операций »
Выполнил:
.
Проверил:
доцент кафедры САПР ВС
Карманов П.В.
Рязань 2009
Содержание
Задание 3
Введение 4
1. Начисление процентов по вкладам 6
1.1. Депозитные вклады и их классификация 6
1.2. Формула расчета процентов по вкладам 8
2. Структура базы данных ”Депозитные вклады” 12
3. Руководство пользователя 13
3.1. Организация взаимодействия клиентской программы с БД 13
3.2. Разработка интерфейса пользователя 15
Заключение 23
Список литературы 24
Приложение 25
10. Заключение 23
11. Список литературы 24
Задание
“Разработка программного модуля начисления процентов”
Модуль позволяет осуществить начисления процентов по всем вкладам, вкладам в выбранной валюте, по выбранному договору или по отдельному вкладу
Проценты рассчитываются до заданного момента
Выдается процентная ведомость
Введение
В последние годы банковская система нашей страны переживает бурное развитие. Несмотря на существующие недостатки российского законодательства, регулирующего деятельность банков, ситуация неуклонно меняется к лучшему. Прошли времена, когда можно было легко зарабатывать на спекулятивных операциях с валютой и мошенничестве. Сегодня все больше банков делает ставку на профессионализм своих сотрудников и новые технологии.
Трудно представить себе более благодатную почву для внедрения новых компьютерных технологий, чем банковская деятельность. В принципе почти все задачи, которые возникают в ходе работы банка достаточно легко поддаются автоматизации. Быстрая и бесперебойная обработка значительных потоков информации является одной из главных задач любой крупной финансовой организации. В соответствии с этим очевидна необходимость обладания вычислительной сетью, позволяющей обрабатывать все возрастающие информационные потоки. Кроме того, именно банки обладают достаточными финансовыми возможностями для использования самой современной техники. Однако не следует считать, что средний банк готов тратить огромные суммы на компьютеризацию. Банк является прежде всего финансовой организацией, предназначенной для получения прибыли, поэтому затраты на модернизацию должны быть сопоставимы с предполагаемой пользой от ее проведения. В соответствии с общемировой практикой в среднем банке расходы на компьютеризацию составляют не менее 17% от общей сметы годовых расходов.
Интерес к развитию компьютеризированных банковских систем определяется не желанием извлечь сиюминутную выгоду, а, главным образом, стратегическими интересами. Как показывает практика, инвестиции в такие проекты начинают приносить прибыль лишь через определенный период времени, необходимый для обучения персонала и адаптации системы к конкретным условиям. Вкладывая средства в программное обеспечение, компьютерное и телекоммуникационное оборудование и создание базы для перехода к новым вычислительным платформам, банки, в первую очередь, стремятся к удешевлению и ускорению своей рутинной работы и победе в конкурентной борьбе.
Новые технологии помогают банкам, инвестиционным фирмам и страховым компаниям изменить взаимоотношения с клиентами и найти новые средства для извлечения прибыли. Аналитики сходятся во мнении, что новые технологии наиболее активно внедряют инвестиционные фирмы, затем следуют банки, а самыми последними их принимают на вооружение страховые компании.
Задача, стоящая перед всеми финансовыми организациями, одинакова: интеграция унаследованных систем в распределенную архитектуру локальных сетей. Дэвид Стюарт, главный консультант по новым технологиям в Global Concepts, считает, что сегодня спрос на людей, понимающих в сетях, выше, чем когда-либо прежде. По его мнению, в наше время при устройстве на работу в банк предпочтение отдается программисту, а не кассиру.
Банковские компьютерные системы на сегодняшний день являются одной из самых быстро развивающихся областей прикладного сетевого программного обеспечения. Нужно отметить, что БС представляют из себя "лакомый кусочек" для любого производителя компьютеров и ПО. Поэтому почти все крупные компании разработчики компьютерной техники предлагают на этом рынке системы на базе своих платформ.
В качестве примеров передовых технологий, используемых в банковской деятельности, можно назвать базы данных на основе модели "клиент-сервер"; средства межсетевого взаимодействия для межбанковских расчетов; службы расчетов, целиком ориентированных на Internet, или, так называемые, виртуальные банки; банковские экспертно-аналитические системы, использующие принципы искусственного интеллекта и многое другое.
1. Начисление процентов по вкладам
1.1. Депозитные вклады и их классификация
Вклад (депозит) – это денежные средства (в наличной и безналичной форме, в национальной или иностранной валюте), переданные в банк их собственником для хранения на определенных условиях. Операции, связанные с привлечением денежных средств во вклады, называются депозитными. Для банков вклады - это главный вид их пассивных операций и, следовательно, основной ресурс для проведения активных кредитных операций.
Депозитные операции – понятие широкое, поскольку к ним относится вся деятельность банка, связанная с привлечением средств во вклады. Особенностью этой группы пассивных операций является то, что банк имеет сравнительно слабый контроль над объемом таких операций, т. к. инициатива в помещении средств во вклады исходит от вкладчиков. При этом, как показывает практика, вкладчика интересуют не только выплаченные банком проценты, но и надежность сохранения доверенных банку средств.
Депозитные счета могут быть самыми разнообразными и в основу их классификации могут быть положены такие критерии, как источники вкладов, их целевое назначение степень доходности и т.д., однако, наиболее часто в качестве критерия выступает категория вкладчика и формы изъятия вклада.
Исходя из категории вкладчиков, различают:
депозиты юридических лиц (предприятий, организаций, других банков);
депозиты физических лиц.
По экономическому содержанию все вклады-депозиты могут быть сгруппированы:
с учетом категорий вкладчиков;
по формам изъятия;
по порядку использования хранимых средств.
По форме изъятия средств депозиты принято подразделять на 3 группы:
срочные депозиты;
депозиты до востребования;
сберегательные вклады населения.
Срочные вклады - это денежные средства, зачисляемые на депозитные счета на строго оговоренный срок с выплатой процента. Ставка по ним зависит от размера и срока вклада. То обстоятельство, что владелец срочного вклада может распоряжаться им только по истечении оговоренного срока, не исключает возможности досрочного получения им в банке своих денежных средств. Однако в этом случае у клиента понижается размер процента по вкладу. Банк заинтересован в привлечении срочных вкладов, так как они стабильны и позволяют банку располагать средствами вкладчиков в течение длительного времени.
Срочные вклады принимаются только в круглых суммах. Часто требуется и минимальный вклад. В некоторых учреждениях обычно разрешается делать срочные вклады только деловым клиентам, в то время как частным клиентам рекомендуются сберегательные вклады, как форму помещения капитала.
Срочные депозиты классифицируются в зависимости от их срока:
депозиты со сроком до 3 месяцев;
депозиты со сроком от 3 до 6 месяцев;
депозиты со сроком от 6 до 9 месяцев;
депозиты со сроком от 9 до 12 месяцев;
депозиты со сроком свыше 12 месяцев.
Достоинством срочных депозитных счетов для клиента является получение высокого процента, а для банка - возможность поддержания ликвидности с меньшим оперативным резервом. Недостаток срочных депозитных счетов для клиентов состоит в низкой ликвидности и невозможности использовать средства на счетах срочных депозитов для расчетов и текущих платежей, а также для получения наличных денег. Для банка недостаток состоит в необходимости выплат повышенных процентов по вкладам и снижении, таким образом, маржи.
1.2. Формула расчета процентов по вкладам
Для начисления процентов по вкладам (депозитам), да и кредитам тоже, применяются следующие формулы процентов:
формула простых процентов,
формула сложных процентов.
Порядок начисления процентов по вышеперечисленным формулам осуществляется с использованием фиксированной или плавающей ставки. Чтобы не возвращаться к данному вопросу в дальнейшем, сразу поясню значение слов и отличия фиксированной ставки и плавающей ставки.
Фиксированная ставка, это когда установленная по вкладу банка процентная ставка, закреплена в депозитном договоре и остается неизменной весь срок вложения средств, т.е. фиксируется. Такая ставка может измениться только в момент автоматической пролонгации договора на новый срок или при досрочном расторжении договорных отношений и выплате процентов за фактический срок вложения по ставке «до востребования», что оговаривается условиями.
Плавающая ставка, это когда первоначально установленная по договору процентная ставка может меняться в течение всего срока вложения. Условия и порядок изменения ставок оговариваются в депозитном договоре. Процентные ставки могут изменяться: в связи с изменениями ставки рефинансирования, с изменением курса валюты, с переходом суммы вклада в другую категорию, и другими факторами.
Для начисления процентов с применением формул, необходимо знать параметры вложения средств на депозитный счет, а именно:
сумму вклада (депозита),
процентную ставку по выбранному вкладу (депозиту),
цикличность начисления процентов (ежедневно, ежемесячно, ежеквартально и т.д.),
срок размещения вклада (депозита),
иногда требуется и вид используемой процентной ставки - фиксированной или плавающей.
Теперь давайте рассмотрим названные выше стандартные формулы процентов, которые применяются для расчета процентов по вкладам (депозитам):
Формула простых процентов
Формула простых процентов применяется, если начисляемые на вклад проценты причисляются к вкладу только в конце срока депозита или вообще не причисляются, а переводятся на отдельный счет, т.е. расчет простых процентов не предусматривает капитализации процентов.
При выборе вида вклада, на порядок начисления процентов стоит обращать внимание. Когда сумма вклада и срок размещения значительные, а банком применяется формула простых процентов, это приводит к занижению суммы процентного дохода вкладчика. Формула простых процентов по вкладам выглядит так:
Рис.1.Формула простых процентов
Значение символов:
S — сумма денежных средств, причитающихся к возврату вкладчику по окончании срока депозита. Она состоит из первоначальной суммы размещенных денежных средств, плюс начисленные проценты.
I – годовая процентная ставка
t – количество дней начисления процентов по привлеченному вкладу
K – количество дней в календарном году (365 или 366)
P – первоначальная сумма привлеченных в депозит денежных средств
Sp – сумма процентов (доходов).
А чтобы рассчитать только сумму простых процентов формула будет выглядеть так:
Рис.2. Формула суммы простых процентов
Значение символов: Sp – сумма процентов (доходов).
I – годовая процентная ставка
t – количество дней начисления процентов по привлеченному вкладу
K – количество дней в календарном году (365 или 366)
P – сумма привлеченных в депозит денежных средств.
Формула сложных процентов
Формула сложных процентов применяется, если начисление процентов по вкладу, осуществляется через равные промежутки времени (ежедневно, ежемесячно, ежеквартально) а начисленные проценты причисляются к вкладу, т. е. расчет сложных процентов предусматривает капитализацию процентов (начисление процентов на проценты).
Большинство банков, предлагают вклады с поквартальной капитализацией (Сбербанк России, ВТБ и т. д.), т.е. с начислением сложных процентов. А некоторые банки, в условиях по вкладам предлагают капитализацию по окончанию срока вложения, т.е. когда вклад пролонгируется на следующий срок, что, мягко говоря, относится к рекламному трюку, который подталкивает вкладчика не забирать начисляемые проценты, но само начисление процентов фактически осуществляется по формуле простых процентов. И повторюсь, когда сумма вклада и срок размещения значительные, такая «капитализация» не приводит к увеличению суммы процентного дохода вкладчика, ведь начисления процентов на полученные в предыдущих периодах процентные доходы нет.
Формула сложных процентов выглядит так:
Рис.3.Формула сложных процентов
Значение символов: I – годовая процентная ставка;
j – количество календарных дней в периоде, по итогам которого банк производит капитализацию начисленных процентов;
K – количество дней в календарном году (365 или 366);
P – первоначальная сумма привлеченных в депозит денежных средств;
n — количество операций по капитализации начисленных процентов в течение общего срока привлечения денежных средств;
S — сумма денежных средств, причитающихся к возврату вкладчику по окончании срока депозита. Она состоит из суммы вклада (депозита) с процентами.
Расчет только сложных процентов с помощью формулы, будет выглядеть так:
Рис.4.Расчет только сложных процентов
Значение символов: I – годовая процентная ставка;
j – количество календарных дней в периоде, по итогам которого банк производит капитализацию начисленных процентов;
K – количество дней в календарном году (365 или 366);
P – первоначальная сумма привлеченных в депозит денежных средств;
n — количество операций по капитализации начисленных процентов в течение общего срока привлечения денежных средств;
Sp – сумма процентов (доходов).
2. Структура базы данных ”Депозитные вклады”
Схема базы данных ”Депозитные вклады”, состоящая из пяти таблиц, представлена на рисунке 5:
Рис. 5. Схема базы данных
3. Руководство пользователя
3.1. Организация взаимодействия клиентской программы с БД
Данное приложение разработано в среде Delphi 7.0. Взаимодействие приложения с базой данных осуществлялось с помощью следующих компонентов:
TADOConnection
TADOQuery
TDataSource
TADODataSet
TDBGrid
TDBNavigator
TComboBox
TDateTimePicker
В компоненте TADOConnection инкапсулированы свойства подключения к конкретной базе данных и возможности манипулирования подключением при использовании механизма ADO. Объект типа TADOConnection подключается к базе данных и контролирует работу всех наборов данных, у которых в качестве свойства Database Name указано его имя.
Разработанное приложение использует этот компонент для динамического подключения к базе данных. Для этого в свойстве компонента ConnectionString указывается:
ConnectionString - имя базы данных, имя сервера БД
Для представления данных использовались компоненты TDBGrid и TComboBox
Для связи этих компонент с компонентом TADOQyery использовался компонент TDataSource.
Свойство DataSource есть и у компонент ресурсов данных и у компонент представления данных. Через него происходит их связь.
Действия пользователя обрабатываются клиентским приложением, оно формирует наборы данных и передает их хранимым процедурам для исполнения. Результат отображается, как правило, на компоненте TDBGrid.
Компонент DBGrid используется только для представления данных, а редактирование и добавление данных осуществляется с помощью взаимодействия пользовательского интерфейса и системы хранимых процедур.
Совместно с TDBGrid использован TDBNavigator - простой и эффективный механизм управления данными, представляемыми в компонентах отображения. Навигатор представляет собой панель, в которой содержится ряд кнопок.
Каждая кнопка реализует определенную операцию перемещения по набору данных или редактирования данных. Назначение всех кнопок описывается в приведенной ниже таблице. Разработчик может по своему желанию изменять набор видимых в приложении кнопок Навигатора.
Весь интерфейс программы построен таким образом, чтобы как можно более надёжно исключить вероятность ошибки, связанной с добавлением и модификацией данных БД.
После совершения пользователем каких-либо действий программа формирует тот или иной запрос к БД, который обрабатывается и возвращается к программе.
3.2 Разработка интерфейса пользователя
Перед запуском программы необходимо скопировать БД с названием «DepositBD.mdb» и в файле Config.txt прописать путь к ней, других действий перед запускам исполняемого файла Interest.exe не требуется.
Перечислим основные формы и вкладки приложения с указанием их функций и расположенным на них (формах и вкладках) компонентов.
1) «Тарифы» - вкладка программы (рис.6), на которой отображается таблица БД – Tariffs. В ней описываются все тарифы, в соответствие с которыми рассчитываются проценты по вкладам. Возможные операции с данными таблицы: Добавление, Удаление, Обновление.
Рис. 6 Вкладка «Тарифы»
2) «Вкладчики» (рис. 7) - вкладка, на которой показана вся информация o держателях вклада, а именно: фамилия, имя, отчество, номер паспорта, ИНН, а также дата и место рождения. Все эти поля хранятся в таблице Investors. Возможные операции с данными таблицы: Добавление, Удаление, Обновление.
Рис. 7. Вкладка «Вкладчики»
3) «Вклады» (рис. 8) – последняя и трёх вкладок, на которых отображается содержание БД, она показывает дочернюю таблицу – Accounts, хранящую основные сведения об депозитах: Номер депозита, код владельца, тариф, дату открытия, дату окончания срока вклада и сумму вклада. Из возможных операций над таблицей присутствует тока обновление записей.
Рис. 8. Вкладка «Вклады»
4) «Начисление процентов» (рис. 9) – основная вкладка программы, предоставляющая оператору два режима расчёта процентов:
- По всем депозитам;
- По заданному депозиту;
В первом режиме доступны три фильтра, для выборки интересующих депозитных счётов:
- Фильтр начисления %-тов по вкладам до определенной даты;
- Фильтр начисления %-тов по вкладам для определенной валюты, на выбор предоставляется три доступных: рубли, доллары и евро.
- Фильтр начисления %-тов по вклада с определённым тарифом;
Первый фильтр работает совместно с двумя последними, а остальные – взаимоисключающие. Также можно не применять ни один из фильтров.
Рис. 9. Вкладка «Начисление процентов»
Во втором режиме расчёт производится для определённого вклада, номер которого необходимо выбрать в соответствующем поле, за весь срок, а детализация по месяцам выводит в таблице.
Для двух режимов расчётов доступна распечатка отчётов, содержание которого соответствует данным таблицы.
Все начисленные суммы можно занести в таблицу БД нажав кнопку «Внести на счета»
Для примера произведём расчёт по одному из депозитов, для этого выберем режим “Рассчёт по заданному депозиту”. В поле «Номер счёта» зададим номер 1035616 и нажмём кнопку «Рассчитать». В результате получим таблицу, показанную на рисунки 10.
Рис. 10. Пример начисления %-тов»
Далее нажмём кнопку «Распечатать отчёт”, в результате получим заполоненный бланк, показанный на рисунке 11.
Рис. 11. Выписка со счёта.
41
4) «Депозитный калькулятор» (рис. 12) – последняя вкладка программы является демонстрацией расчётных формул, использованных в программе. В ней все данные, необходимые для начисления процентов по вкладам, вводятся с консоли, а выдаваема выписка со счета аналогична режиму “По заданному депозиту”.
На вкладке возможно задать : валюту вклада, сумму вклада, годовую процентную ставку, период начисления процентов (ежемесячно, ежеквартально, ежегодно, в конце срока вклада), дату открытия вклада, дату закрытия вклада, срок вклада. Так же можно задать параметры налогообложения: ставку рефинансирования (по умолчанию по вкладам в рублях она равна 13% а валюте – 9%) и ставку налогообложения (по умолчанию – 35% в соответствие с законодательством РФ).
Рис. 12. Выписка со счёта.
Достоинства программы:
1) Позволяет рассчитывать проценты по вкладам до любого срока
2) Позволяет рассчитывать %-ты по депозитам в 3-х валютах;
3) Выдает детализацию расчетов по месяцам для любого из вкладов
4) Существует возможность распечатать расчеты в виде выписок и справок.
5) Имеется автономный депозитный калькулятор;
Недостатки программы:
1) Программа позволяет только рассчитывать проценты по вкладам, но не может вести все депозитные операции.
Заключение
Любая автоматизированная банковская система представляет из себя сложный аппаратно-программный комплекс, состоящий из множества взаимосвязанных модулей. Совершенно очевидна роль сетевых технологий в таких системах. По сути БС представляет из себя комплекс, состоящий из множества локальных и глобальных вычислительных сетей. В БС сегодня применяется самое современное сетевое и телекоммуникационное оборудование. От правильного построения сетевой структуры БС зависит эффективность и надежность ее функционирования.
Поскольку спрос на БС достаточно высок, а цена высока, многие крупные компании-производители компьютерной техники и ПО предлагают на рынке свои разработки в данной области. Перед отделом автоматизации банка встает трудный вопрос выбора оптимального решения. Банковская сфера определяет два основных требования к БС - обеспечение надежности и безопасности передачи коммерческой информации. В последнее время для взаимодействия с клиентами и осуществления расчетов все чаще используются открытые глобальные сети (например Internet). Последнее обстоятельство еще более усиливает значимость защиты передаваемых данных от несанкционированного доступа.
Судя по всему, в ближайшее время темпы развития БС (особенно в нашей стране) будут стремительно расти. Практически все появляющиеся сетевые технологии будут быстро браться банками на вооружение. Неизбежны процессы интеграции банков в рамках национальных и мировых банковских сообществ. Это обеспечит постоянный рост качества банковских услуг, от которого выиграют в конечном счете все - и банки и их клиенты.
В данной курсовой работе был разработан программный модуль, обеспечивающий эффективное начисление процентов депозитным вкладам.
Список литературы
1. Лекции по курсу «Программное обеспечение банковских операций», Карманов П.В
2. Лекции по курсу «Базы данных» Гринченко Н.Н.
З. Лекции по курсу «Клиент-серверные приложения баз данных», Благодаров А.В.
Приложение
Текст программы
41
Модуль UInterest.pas
unit UInterest;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, ComCtrls, StdCtrls,DateUtils, DBCtrls,
ExtCtrls, Spin, FloatSpinEdit, QuickRpt, QRCtrls;
type
TMainForm = class(TForm)
ADOConnection: TADOConnection;
DSInvestors: TDataSource;
ADOQInvestors: TADOQuery;
ADOQTariffs: TADOQuery;
DSTariffs: TDataSource;
ADOQAccounts: TADOQuery;
DSAccounts: TDataSource;
DSTime: TDataSource;
ADOQTime: TADOQuery;
DataSourceNumDeposit: TDataSource;
ADOTableNumDeposit: TADOTable;
ADOTableCyrrency: TADOTable;
DataSourceCyrrency: TDataSource;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGridTariffs: TDBGrid;
TabSheet2: TTabSheet;
DBGridInvestors: TDBGrid;
TabSheet3: TTabSheet;
DBGridAccounts: TDBGrid;
TabSheet4: TTabSheet;
StringGrid: TStringGrid;
DBGridTime: TDBGrid;
TabSheet6: TTabSheet;
PageControl2: TPageControl;
TabSheet7: TTabSheet;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
ComboBox1: TComboBox;
SpinEdit1: TSpinEdit;
FloatSpinEdit1: TFloatSpinEdit;
ComboBox2: TComboBox;
DateTimePicker1: TDateTimePicker;
GroupBox2: TGroupBox;
Label6: TLabel;
Label7: TLabel;
FloatSpinEdit2: TFloatSpinEdit;
FloatSpinEdit3: TFloatSpinEdit;
SpinEdit2: TSpinEdit;
DateTimePicker2: TDateTimePicker;
TabSheet8: TTabSheet;
StringGridDep: TStringGrid;
Panel1: TPanel;
RadioGroupCalculate: TRadioGroup;
DBLookupComboBoxNumDeposit: TDBLookupComboBox;
DateTimePickerEnd: TDateTimePicker;
CheckBoxTime: TCheckBox;
Label10: TLabel;
Label11: TLabel;
DBLookupComboBoxCyrrency: TDBLookupComboBox;
CheckBoxCyrrency: TCheckBox;
Label12: TLabel;
DBLookupComboBoxTariff: TDBLookupComboBox;
CheckBoxTariff: TCheckBox;