Курсовая, 4 курс: переписал с использованием классов, добавил тест на виедо.