
- •Оглавление
- •Введение
- •1. Рекомендации по изучению теоретического материала
- •1.1. Общие указания
- •1.2. Рекомендации по конкретным разделам курса
- •1.3. Методология обобщенного программирования
- •Почему не интерфейсы?
- •Вызов объекта
- •Реализация компараторов
- •Техника traits
- •2. Рекомендации по подготовке эссе, рефератов и докладов
- •2.1. Эссе: рекомендации по подготовке
- •2.2. Рефераты: рекомендации по подготовке
- •2.3. Доклады: рекомендации по подготовке
- •2.4. Моделирующие программы: рекомендации по разработке
- •3.2. Домашнее задание №2. Использование алгоритмов и контейнеров данных в прикладной задаче. Задачи домашнего задания
- •Задание
- •Требования к отчетности
- •Предлагаемые этапы выполнения задания
- •Теоретический материал, необходимый для выполнения домашнего задания
- •Функциональный и объектно-ориентированный подходы к программированию – краткое описание
- •Основы uml
- •Понятие агрегации в объектно-ориентированном программировании
- •Рекомендованные правила оформления исходных текстов
- •4.1. Правила выбора идентификаторов
- •4.2. Выравнивание исходных текстов Символ табуляции запрещён
- •Выравнивание блоков
- •Пробелы
- •Длинные операторы
- •4.3. Комментарии
- •Заключение
- •Литература
- •Кафедра компьютерной фотоники
Основы uml
UML (Unified Modeling Language) [8] – это язык, позволяющий графически описать разрабатываемую программу. Он очень полезен для обмена информацией между программистами, четкой формулировки своих мыслей при проектировании. Существуют и средства автоматической генерации кода из UML-диаграмм, хотя они, разумеется, позволяют создать лишь каркас программы.
Рис. 4. Примеры UML-диаграмм.
UML позволяет описать разные аспекты программы. В данный момент нас будут интересовать диаграммы классов UML, позволяющие описать существующие в программе классы и отношения между ними. На рис. 4 иллюстрируются основные возможности диаграмм классов UML.
Описание класса ExampleClass1 с закрытым полем данных Data1 типа wchar_t и методом Method1, принимающим два входных параметра – Parameter1 типа double и Parameter2 типа bool и возвращающим целочисленное значение.
Описание класса ExampleChartParent и унаследованного от него класса ExampleClassChild.
Описание класса ExampleClassUser, использующего для своей работы класс ExampleChartService.
Описание класс ExampleChartWhole, неотъемлемой часть объекта которого является один экземпляр класса ExampleChartElement.
Описание класса ExampleChartContainer, который владеет многими объектами класса ExampleChartElement. В отличие от предыдущего примера, элементы не являются неотъемлемой частью контейнера. Например, массив владеет своими элементами, но элементы могут добавляться и удаляться.
Описание взаимодействующих друг с другом (один объект с одним объектом) классов ExampleInteractionClass1 и ExampleInteractionClass2.
Понятие агрегации в объектно-ориентированном программировании
В объектно-ориентированном программировании говорят об агрегации в ситуации, когда типом поля данных одного класса является другой класс.
В этом случае код имеет вид:
class A
{
….
};
class B
{
….
A ObjectA;
//или
A ArrayA[ <Length> ];
….
};
В этом случае, естественно, мы можем в методах класса B работать с этим полем данных.
Агрегация используется, когда объект A является частью объекта B, хранится в объекте B или используется для реализации объекта B. Например:
class Date
{
int Year;
int Month;
int Day;
};
class PassportData
{
int Number;
Date IssueDate;
char PoliceDepartmentName[ 50 ];
};
Мы используем класс Date для реализации класса PassportData.
Понятие шаблонов (template) в C++
См. разд. 1.3.
Рекомендованные правила оформления исходных текстов
Единые правила оформления исходных текстов значительно облегчают их чтение и понимание. Возможность при чтении исходного кода программы сразу же понять, что именно означает тот или иной идентификатор, возможность видеть структуру программы при одном взгляде на код существенно облегчают разработку, отладку и проверку программы.
Основное требование к правилам оформления исходных текстов – чтобы они у Вас были и были разумны. Вы можете использовать не ту нотацию, которая предлагается ниже, но в этом случае Вам следует сформулировать эти правила.