Идея
В качестве составного элемента я выбрал кредитный калькулятор. Он поддерживает следующие функции: 1) Расчёт ежемесячного платежа по кредиту по аннуитетной схеме; 2) Расчёт полной суммы кредита и переплаты по аннуитетной и дифференциальной схемам; 3) Вывод информации о конвертации кредита в иностранную валюту; 4) Расчёт вероятности одобрения кредита; 5) Вывод информации для пользователя при загрузке элемента;
Состав элемента и требования к работе
Элемент состоит из семи элементов Label, 4 NumericUpDown, 1 CheckedListBox, 1 ComboBox, 1 panel. Элементы типа NumericUpDown используются для ввода параметров кредита, элемент ComboBox служит для выбора схемы кредита, элемент CheckedListBox служит для выбора условий кредита для расчёта вероятности одобрения, элементы типа Label служат в качестве поясняющих надписей и для вывода информации пользователю.
Требования к работе сводились в основном к технической стороне. Выбрать можно было любую тему, главное, чтобы сам элемент соответствовал техническим характеристикам, а именно:
- Иметь три собственных конструктора с различными параметрами, а также конструктор без аргументов;
- Иметь не менее пяти собственных свойств различных типов (в том числе – множественного типа), связанных с основной функциональностью элемента управления (причём при изменении хотя бы двух из них должно происходить немедленное изменение в элементе управления), трёх вспомогательных свойств, а также пяти свойств, сопоставленных свойствам элементов управления, входящих в состав создаваемого элемента управления;
- Иметь не менее трёх новых публичных метода в совокупности с не менее чем четырьмя аргументами, в одном из случаев – в виде функции;
- Иметь не менее четырёх новых событий, хотя бы в двух случаях – с аргументом собственных классов;
- Использовать не менее двух интерфейсов (тип interface), включающих логически целостные фрагменты функциональности класса элемента управления;
Реализация большей части требований сводилась в основном к реализации свойств интерфейса (внешнего вида) элемента. Не сказал бы, что эта работа была сложной или интересной, в отличии от курсовой работы по Базам Данных, о которой я писал ранее. На разработку ушло около двух дней. Большая часть времени ушла на составление документации по шаблонам преподавателя.
Состав документации
Вся документация свелась к четырём документам - руководству программиста, техническому заданию, пояснительной записки и тексту программы. В пояснительной записке описывались технические характеристики программного продукта, а также алгоритмическое обеспечение системы. В руководстве пользователя содержалась подробная инструкция по использованию элемента управления, снабженная скриншотами, а также краткое описание всех методов, конструкторов и свойств элемента. Техническое задание содержит перечень функциональности, которая должна быть реализована в рамках курсовой работы.