На вход программы поступает файл в формате:
Дата Счёт1 Счёт2 Сумма Примечание
Поля разделены пробелами или символами табуляции. Дата
имеет формат YYYY-MM-DD
или DD.MM.YYYY
(2014-09-22, 22.09.2014).
Счёт1
и Счёт2
– строки без пробелов. Сумма
— число. Примечание
– любой текст, он игнорируется.
Каждая строка отражает перевод суммы с одного счёта на другой (транзакция).
Пример файла:
01.01.2014 Старт Кошелёк 990 Изначально в кошельке было 990 руб
01.01.2014 Старт Карта 7000 А на карте 7000
20.09.2014 Кошелёк Проезд 70 Заплатил за проезд
20.09.2014 Кошелёк Базар 500 Купил фруктов на базаре
2014-09-21 Карта Книги 770.31 Купил книжку по карточке
21.02.2014 Карта Кошелёк 1000 Снял тысячу в банкомате
Файл может содержать пустые и невалидные строки. Программа должна корректно это обрабатывать.
Программа должна поддерживать два режима:
990-70-500+1000 = 1420
.входящий + приход - расход
).Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream
.