Вы находитесь на странице: 1из 5

Вводные данные

Перед вами представлены скриншоты фронт-офисного приложения для оформления


заявок на получение кредита для физических лиц.

Рисунок 1

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

Задание 1
Опишите модель данных, которая может лежать в основе данного приложения.
Ожидаемый результат: ER диаграмма с пояснениями о выборе сущностей и типов данных
их атрибутов. Используйте реляционную СУБД.

Сущности: Клиент, Место работы, заявка, доп. услуга, кредит


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

Поэтому здесь организована связь один ко многим(Один клиент может иметь много
заявок.)
Сама заявка содержит данные о цели кредита, итоговой сумме, типе кредита, доп.
Услугах. Последние два параметра есть смысл выделить в отдельные сущности. Атрибуты
для Заявки, Кредита и доп. Услугах подобраны согласно скриншотам. Также была
добавлена дата в сущность Заявка, обозначающая дату создания заявки
Задание 2
Напишите SQL-запрос, который бы возвращал самый популярный вид продукта за
текущий год.
Ожидаемый результат: SQL-запрос, который основывается на модели данных из задания
1, и название СУБД, для которой был написан SQL-запрос.
СУБД : MS SQL server
/*создаем представление услуга_кол-во_заявок для нахождение самой популярной услуги*/

CREATE VIEW услуга_кол-во_заявок


as select наименование, COUNT(id_заявки) as"кол-во заявок" /*считаем кол-во заявок*/
from Кредит
where Заявка.id = Кредит.id_заявки and Заявка.дата = YEAR(getdate())/*сверяем id заявки и
кредита и добаваляем условие для текущего года*/
group by наименование /*группируем по имени услуги*/

select наименование, Max("кол-во заявок") from услуга_кол-во_заявок /*вычисляем


максимальное кол-во заявок
самый популярный в данном случае с большом кол-во обращений.
Для этого в представление велся подсчет заявок
*/
group by наименование /*группируем по наименованию услуги */

Задание 3
Предложите алгоритм для расчета графика аннуитетных платежей, напишите функцию,
рассчитывающую график платежей с 5 столбцами: «Месяц», «Ежемесячный платеж»,
«Основной долг», «Долг по процентам» и «Остаток основного долга».
Ожидаемый результат: словесное описание логики работы функции; функция, которая
выводит в строковом формате массив объектов, состоящих из 5 атрибутов указанных
выше, на любом языке программирования (JS будет плюсом). Алгоритм должен
основываться на модели данных из задания 1.
Дополнительно необходимо указать данные, на основе которых проводилось
тестирование работы функции, а также результат её исполнения.
Примерный ожидаемый результат:
Рисунок 3

Необходимо выполнить все задания и сформировать один файл. При необходимости,


можете включить в работу дополнительные скриншоты, картинки и файлы.

Формула для подсчета аннуитетного платежа

Формула для подсчета аннуитетного платежа


В коде представлена так (обозначения в коде и формулах одинаковые)
P = s*((r*((1+r)**n))/(((1+r)**n)-1))
Формула для подсчета процентов в аннуитетном платеже

i=r
В коде представлена так (обозначения в коде и формулах одинаковые)
In = Sn*r

Формула для подсчета основного долга

В коде представлена так (обозначения в коде и формулах одинаковые)


S = P - In

def payment_schedule(s, r, n):


r = r/100/n # вычистываем процент в месяц
P = s*((r*((1+r)**n))/(((1+r)**n)-1)) #Формула для подсчета аннуитетного
платежа
Sn=s
for month in range(1, n+1):
In = Sn*r #Формула для подсчета процентов в аннуитетном платеже
S = P - In #Формула для подсчета основного долга
Sn = Sn-S #Формула для подсчета остатка по основному долгу
"""вывод графика платежей"""
print(month, " | ", "%.2f" %P, " | ", "%.2f" %S," |
","%.2f" %In," | ", "%.2f" %Sn)
"""вывод графика платежей"""

sum_kredit = 100000#int(input("Введите сумму кредита"))


interest_rate = 13#int(input("Введите ставку по кредиту в год"))
time_kredit = 12#int(input("Введите срок по кредиту в месяцах"))
print("Месяц | Ежемесячный платеж | Основной долг | Долг по процентам |
Остаток основного долга")
payment_schedule(sum_kredit,interest_rate,time_kredit)

Вам также может понравиться