- •Разработка объектно-ориентированных программ
- •Методические указания
- •1. Методология программирования
- •1.1. Методология объектно-ориентированного
- •1.2. Методология объектно-ориентированного анализа
- •2. Особенности программирования в среде Windows
- •2.1 Разработка объектно-ориентированных программ
- •2.2. Разработка объектно-ориентированных программ
- •4. Лабораторный практикум
- •4.1. Лабораторная работа 1.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •Контрольные вопросы
- •4.2. Лабораторная работа 2.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.3. Лабораторная работа 3.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.4. Лабораторная работа 4.
- •Общие сведения
- •Лабораторное задание
- •4.5. Лабораторная работа 5.
- •Общие сведения.
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.6. Лабораторная работа 6.
- •Общие сведения.
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.7. Лабораторная работа 7.
- •Общие сведения.
- •Лабораторное задание.
- •Приложение а. Спецификации api-функций.
- •Приложение б. Основные классы mfc.
Варианты лабораторных заданий
Определить класс, описывающий объект “книга” (тематика, автор, издательство и т.д.).
Определить класс, описывающий объект “изделие” (какой промышленностью произведено, в каком городе, год выпуска и т.д.).
Определить класс, описывающий объект “Транспортное средство” (среда передвижения, назначение, вид топлива и т.д.).
Определить класс, описывающий объект “деталь” (назначение, материал, единичное/массовое производство и т.д.).
Определить класс, описывающий объект “студент” (ВУЗ, факультет, кафедра, форма обучения и т.д.).
Определить класс, описывающий объект “человек” (пол, национальность, страна и город проживания и т.д.).
Определить класс, описывающий объект «дом» (улица, номер, год постройки, количество квартир, количество жильцов и т.д.).
Определить класс, описывающий объект “телевизор” (страна и фирма-производитель, основная телевизионная система, наличие цифровой развертки, размер кинескопа, звуковая система и т.д.).
Определить класс, описывающий объект “геометрическая фигура” (название, цвет, толщина линий, тип заливки, степень прозрачности и т.д.).
Определить класс, описывающий объект “компьютер” (тип процессора, объем оперативной памяти, цена и т.д.).
Контрольные вопросы
Что такое класс в языке С++?
Как определяется класс?
Как можно управлять видимостью членов класса?
Как создаются объекты класса?
Поясните назначение конструкторов и деструкторов.
Поясните особенности конструкторов с параметрами и способы передачи параметров в конструктор.
Чем отличается класс от объекта (экземпляра класса)?
Опишите жизненный цикл объекта.
4.2. Лабораторная работа 2.
Объекты в свободной памяти.
Цель работы: изучить принципы создания объектов и списков объектов в свободной памяти, а также механизмы работы с ними.
Общие сведения
Для создания объекта класса в свободной памяти может использоваться операция new, после чего доступ к объекту осуществляется с помощью указателя (ссылки) на объект. При этом могут использоваться конструкторы с параметрами или без параметров. Уничтожение объектов выполняется с помощью операции delete.
Для создания списка объектов могут использоваться два подхода. Первый из них заключается в том, что при создании объектов в свободной памяти одновременно формируется массив указателей на объекты. С помощью элементов такого массива осуществляется доступ к конкретному элементу списка.
Второй подход заключается в определении таких классов, одним из членов которого является указатель на другой объект того же класса. При создании очередного объекта (кроме первого) члену-указателю предыдущего объекта присваивается значение указателя на данный объект.
Лабораторное задание
Разработать программу, выполняющую создание списка объектов в свободной памяти. Предусмотреть ввод данных с клавиатуры и вывод списка на экран, реализуемые функциями-членами. Разработать два варианта программы, используя два изложенных выше подхода к созданию списков.
Программа должна представлять собой консольное приложение.
Варианты лабораторных заданий
Варианты заданий взять из лабораторной работы 1.
Контрольные вопросы
Как создать объект в свободной памяти? Как его уничтожить?
Как создать список объектов?
Как получить доступ к элементам списка объектов?
В чем заключается преимущество списка объектов перед массивом объектов?
Поясните назначение статических членов класса? Какова особенность выделения памяти для класса, содержащего статические члены?