Нужна программа консольного вида и в виде экранных форм. Допускается использование динамических массивов, динамических функций, указателей, структур(при надобности). Также нужно предусмотреть чтение исходных данных из файла и запись результатов работы приложения в файл данных.