HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Продолжаю серию постов про вузовское образование в сфере IT. В этом посте я расскажу о курсовой работе по предмету Технологии Программирования за второй курс. Задача состояла в разработке составного элемента управления на основе класса UserControl на языке С#.</p>
1 <p>Продолжаю серию постов про вузовское образование в сфере IT. В этом посте я расскажу о курсовой работе по предмету Технологии Программирования за второй курс. Задача состояла в разработке составного элемента управления на основе класса UserControl на языке С#.</p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Идея</a></li>
3 <ul><li><a>Идея</a></li>
4 <li><a>Состав элемента и требования к работе</a></li>
4 <li><a>Состав элемента и требования к работе</a></li>
5 <li><a>Состав документации</a></li>
5 <li><a>Состав документации</a></li>
6 </ul><h2>Идея</h2>
6 </ul><h2>Идея</h2>
7 <p>В качестве составного элемента я выбрал кредитный калькулятор. Он поддерживает следующие функции:</p>
7 <p>В качестве составного элемента я выбрал кредитный калькулятор. Он поддерживает следующие функции:</p>
8 <ol><li>Расчёт ежемесячного платежа по кредиту по аннуитетной схеме;</li>
8 <ol><li>Расчёт ежемесячного платежа по кредиту по аннуитетной схеме;</li>
9 <li>Расчёт полной суммы кредита и переплаты по аннуитетной и дифференциальной схемам;</li>
9 <li>Расчёт полной суммы кредита и переплаты по аннуитетной и дифференциальной схемам;</li>
10 <li>Вывод информации о конвертации кредита в иностранную валюту;</li>
10 <li>Вывод информации о конвертации кредита в иностранную валюту;</li>
11 <li>Расчёт вероятности одобрения кредита;</li>
11 <li>Расчёт вероятности одобрения кредита;</li>
12 <li>Вывод информации для пользователя при загрузке элемента;</li>
12 <li>Вывод информации для пользователя при загрузке элемента;</li>
13 </ol><h2>Состав элемента и требования к работе</h2>
13 </ol><h2>Состав элемента и требования к работе</h2>
14 <p>Элемент состоит из семи элементов Label, 4 NumericUpDown, 1 CheckedListBox, 1 ComboBox, 1 panel. Элементы типа NumericUpDown используются для ввода параметров кредита, элемент ComboBox служит для выбора схемы кредита, элемент CheckedListBox служит для выбора условий кредита для расчёта вероятности одобрения, элементы типа Label служат в качестве поясняющих надписей и для вывода информации пользователю.</p>
14 <p>Элемент состоит из семи элементов Label, 4 NumericUpDown, 1 CheckedListBox, 1 ComboBox, 1 panel. Элементы типа NumericUpDown используются для ввода параметров кредита, элемент ComboBox служит для выбора схемы кредита, элемент CheckedListBox служит для выбора условий кредита для расчёта вероятности одобрения, элементы типа Label служат в качестве поясняющих надписей и для вывода информации пользователю.</p>
15 <p>Требования к работе сводились в основном к технической стороне. Выбрать можно было любую тему, главное, чтобы сам элемент соответствовал техническим характеристикам, а именно:</p>
15 <p>Требования к работе сводились в основном к технической стороне. Выбрать можно было любую тему, главное, чтобы сам элемент соответствовал техническим характеристикам, а именно:</p>
16 <ul><li>Иметь три собственных конструктора с различными параметрами, а также конструктор без аргументов;</li>
16 <ul><li>Иметь три собственных конструктора с различными параметрами, а также конструктор без аргументов;</li>
17 <li>Иметь не менее пяти собственных свойств различных типов (в том числе - множественного типа), связанных с основной функциональностью элемента управления (причём при изменении хотя бы двух из них должно происходить немедленное изменение в элементе управления), трёх вспомогательных свойств, а также пяти свойств, сопоставленных свойствам элементов управления, входящих в состав создаваемого элемента управления;</li>
17 <li>Иметь не менее пяти собственных свойств различных типов (в том числе - множественного типа), связанных с основной функциональностью элемента управления (причём при изменении хотя бы двух из них должно происходить немедленное изменение в элементе управления), трёх вспомогательных свойств, а также пяти свойств, сопоставленных свойствам элементов управления, входящих в состав создаваемого элемента управления;</li>
18 <li>Иметь не менее трёх новых публичных метода в совокупности с не менее чем четырьмя аргументами, в одном из случаев - в виде функции;</li>
18 <li>Иметь не менее трёх новых публичных метода в совокупности с не менее чем четырьмя аргументами, в одном из случаев - в виде функции;</li>
19 <li>Иметь не менее четырёх новых событий, хотя бы в двух случаях - с аргументом собственных классов;</li>
19 <li>Иметь не менее четырёх новых событий, хотя бы в двух случаях - с аргументом собственных классов;</li>
20 <li>Использовать не менее двух интерфейсов (тип interface), включающих логически целостные фрагменты функциональности класса элемента управления;</li>
20 <li>Использовать не менее двух интерфейсов (тип interface), включающих логически целостные фрагменты функциональности класса элемента управления;</li>
21 </ul><p>Реализация большей части требований сводилась в основном к реализации свойств интерфейса (внешнего вида) элемента. Не сказал бы, что эта работа была сложной или интересной, в отличии от курсовой работы по Базам Данных, о которой я<a>писал ранее</a>. На разработку ушло около двух дней. Большая часть времени ушла на составление документации по шаблонам преподавателя.</p>
21 </ul><p>Реализация большей части требований сводилась в основном к реализации свойств интерфейса (внешнего вида) элемента. Не сказал бы, что эта работа была сложной или интересной, в отличии от курсовой работы по Базам Данных, о которой я<a>писал ранее</a>. На разработку ушло около двух дней. Большая часть времени ушла на составление документации по шаблонам преподавателя.</p>
22 <h2>Состав документации</h2>
22 <h2>Состав документации</h2>
23 <p>Вся документация свелась к четырём документам - руководству программиста, техническому заданию, пояснительной записки и тексту программы. В пояснительной записке описывались технические характеристики программного продукта, а также алгоритмическое обеспечение системы. В руководстве пользователя содержалась подробная инструкция по использованию элемента управления, снабженная скриншотами, а также краткое описание всех методов, конструкторов и свойств элемента. Техническое задание содержит перечень функциональности, которая должна быть реализована в рамках курсовой работы.</p>
23 <p>Вся документация свелась к четырём документам - руководству программиста, техническому заданию, пояснительной записки и тексту программы. В пояснительной записке описывались технические характеристики программного продукта, а также алгоритмическое обеспечение системы. В руководстве пользователя содержалась подробная инструкция по использованию элемента управления, снабженная скриншотами, а также краткое описание всех методов, конструкторов и свойств элемента. Техническое задание содержит перечень функциональности, которая должна быть реализована в рамках курсовой работы.</p>