Написать программу, рассчитывающую график платежей по кредиту.
Текстовый файл:
<процентная ставка> <сумма кредита> <срок кредита_в_месяцах> <дата выдачи кредита> 
Файл может содержать пустые и невалидные строки. Программа должна корректно это обрабатывать.
Передачу имени входного файла, реализовать через аргументы командной строки.
При заданной годовой процентной ставке P, сумме кредита S, сроке кредита в N месяцев и дате выдачи кредита D программа должна вывести таблицу расчёта погашения кредита:
Предполагается, что выплаты производятся аннуитетными платежами (ежемесячная сумма выплаты не меняется, но с каждым месяцем в этой сумме содержится больше выплат основного долга по кредиту и меньше процентных выплат).
Вычисление суммы аннуитетного платежа производится по формуле:
Где p – это нормализованная месячная процентная ставка (p = P / 100 / 12).
Для S = 1200000, P = 17 и N = 36 сумма аннуитетного платежа равна 42783.27.
Для вычисления процентной составляющей в платеже можно воспользоваться следующей формулой: Percent = p * Rem, где Rem – остаток задолженности по кредиту. Тогда сумма, идущая в погашение основного долга, равна Principal = Payment - Percent.
Кроме показа таблицы программа должна вычислить и отобразить общую сумму переплаты (суммарное количество выплаченных процентов).
Текстовый файл
Дата         Сумма к оплате       Проценты       Основной долг
...
15.09.2014       42783.27         2340.90        40442.37
15.10.2014       42783.27         1767.96        41015.31
...
Необходимо написать полноценный набор тестов, охватывающий различные варианты кредитов, все варианты перехода платежей на другой день и т.п.
Функции ввода/вывода нужно тестировать с помощью std::stringstream.