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>