Министерство науки и образования Украины
Харьковский национальный экономический университет
Кафедра информатики и компьютерных технологий
По курсу: «Экономическая информатика»
На тему: «Проектирование в среде VBA»
Руководитель: Выполнила:
Давыдов Д.Д. студентка 1 курса 8 группы
факультета ФЭФ
Бондаренко В.К.
Харьков, 2007
Цель: выработать умения и навыки работы с компонентами интегрированной среды VBA при разработке приложений для решения задач по банковскому делу.
Постановка задачи
Составить программу, реализующего вычислительный процесс по определению суммы возврата кредита с уплатой процентов банку по истечению срока действия кредитного договора (в рассматриваемом примере принимается срок кредитования, равным 124 месяцам). Предусматривается выплата по процентам в конце действия кредитного договора.
Математическая модель
Ежемесячная процентная ставка, исходя из общей суммы процентов, которую рассчитывает получить банк по данному кредиту, рассчитывается по формуле:
P% = P / 100 / 12
где P% – месячная процентная ставка
Р – годовая процентная ставка
Сумма средств, подлежащая возврату банку по истечению срока действия кредитного договора, увеличится на сумму начисленных процентов за пользование кредита:
S1% = K1 * P% – за первый месяц
За последующие месяцы сумма начисленных процентов рассчитывается с помощью цикла по формуле
S%2= Σ (S%2 + (K1 – K1/ N * (i - 1)) * Р%)
Общая сумма начисленных процентов:
S% = S%1 + S%2
где S%1 - сумма начисленных процентов за пользование кредитом за первый месяц;
S%2 – сумма начисленных процентов за пользование кредитом за последующие месяцы
K1 – сумма кредита
N – срок кредита
P% – месячная процентная ставка
i – целое число меняется от 2 до N
По истечению срока действия кредитного договора (124 месяца для рассматриваемого примера) сумма средств, подлежащая возврату клиентом банка, с начисленной суммой процентов определяется по формуле:
K2 = K1 + S%,
где К2 - сумма средств, подлежащая возврату банку по истечении срока.
Используя математическую модель, требуется разработать алгоритм решения задачи, в котором необходимо предусмотреть четыре этапа обработки данных:
1. Ввод исходных данных для решения задачи - сумма полученного кредита и годовая процентная ставка за пользование кредитом;
2. Вычисление суммы начисленных процентов за пользование кредитом;
3. Расчет суммы средств, которая возвращается клиентом банку;
4. Вывод результатов вычислений.
Алгоритм решения задачи
В соответствии с приведенной выше математической моделью необходимо разработать алгоритм решения задачи. Пример разработанного алгоритма представлен на рис. 1.
Структура данных
В разрабатываемом приложении используются различные элементы управления, состав которых и их основные свойства представлены в таблице 1.
Таблица. Основные свойства элементов управления
Имя элемента управления | Name | Caption | Text | Назначение |
Label | lblКредитор | Кредитор: (введите наименование банка) | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblЗаемщик | Заемщик (введите Ф. И. О.) | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblКредит | Сумма кредита | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblСрокКредита | Срок кредита | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblСтавка | Процентная ставка | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblСуммаПлатежей | Сумма платежей по процентам | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblВозврат | Сумма возврата кредита с уплатой процентов | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblДата1 | Дата выдачи кредита | Отсутствует | Текст свойства Caption выводится на форме |
Label | lblДата2 | Дата возврата кредита | Отсутствует | Текст свойства Caption выводится на форме |
TextBox | txtКредитор | Отсутствует | Пусто | Используется для ввода наименования банка |
TextBox | txtЗаемщик | Отсутствует | Пусто | Используется для ввода Ф. И. О. клиента |
TextBox | txtКредит | Отсутствует | Пусто | Используется для ввода исходных данных (сумма кредита) |
TextBox | txtСрокКредита | Отсутствует | Пусто | Используется для ввода исходных данных (срок кредита) |
TextBox | txtСтавка | Отсутствует | Пусто | Используется для ввода исходных данных (процентная ставка) |
TextBox | txtСуммаПлатежей | Отсутствует | Пусто | Используется для вывода суммы платежей по процентам |
TextBox | txtВозврат | Отсутствует | Пусто | Используется для вывода суммы возврата кредита с уплатой процентов |
TextBox | txtДата1 | Отсутствует | Пусто | Используется для вывода даты выдачи кредита (вычисляется на момент выполнения программы) |
TextBox | txtДата2 | Отсутствует | Пусто | Используется для вывода даты возврата кредита |
CommandButton | cmdПечать | Печать формы | Отсутствует | Печать формы с результатами вычислений |
CommandButton | cmdВычислить | Вычислить | Отсутствует | Вычисляется результат |
CommandButton | cmdВыход | Выход | Отсутствует | Завершается работа приложения |
Элементы управления Label используются для вывода текстовой информации на форме, позволяющей пользователю сориентироваться, как происходит в программе процесс ввода данных и где размещены результаты вычислений. Текст, введенный в свойстве Caption элемента управления Label, выводится на форме и в процессе выполнения программы не может быть изменен.
Данные Сумма кредита, Срок кредита, Процентная ставка являются исходными и вводятся с клавиатуры в текстовые поля txtКредит, txtСрокКердита и txtСтавка. Поэтому для соответствующих элементов управления TextBox в свойстве Name указаны префиксы txt. Результаты вычислений Сумма возврата кредита с уплатой процентов, Сумма платежей по процентам выводятся в форме также в текстовое поле – txtВозврат, txtСуммаПлатежей.
В коде программы при выполнении вычислений используются 10 переменных:
curSumKredit
intSrok
sngProcent
curSumPlat
curSumPlatVsego
curSumVozvrat
curPlatZa1mes
dtmData1
dtmData2
i
В таблице 2 представлены имена переменных, которые используются в коде программы, и их назначение при обработке банковской информации при кредитовании.
Таблица 2
Структура данных
Реквизит | Имя | Тип переменной | Назначение |
Платежи за месяц | curSumKredit | Currency | Сумма предоставляемого банком кредита |
Процентная ставка | sngProcent | Single | Месячная процентная ставка |
Платеж по процентам | curSumPlatVsego | Currency | Общая сумма начисленных процентов |
Платеж по процентам | curSumPlat | Currency | Сумма платежей по процентам за последующие месяцы |
Платежи по процентам | curPlatZa1mes | Currency | Платежи по процентам за первый месяц |
Сумма возврата кредита | curSumVozvrat | Currency | Сумма средств, возвращаемая клиентом |
Срок кредита | intSrok | Integer | Количество месяцев , на которые выдан кредит |
Дата выдачи кредита | dtmData1 | Date | Дата выдачи кредита |
Дата возврата кредита | dtmData2 | Date | Дата возврата кредита |
Счетчик | i | integer | Переменная цикла |
Интерфейс с пользователем
Задача решается с помощью формы, структура которой представлена на рис. 2. Проект формы и внешний ее вид после выполнения программы представлены на рис. 3.
Рис. 2. Расположение объектов на форме