- •Методические указания к лабораторным работам
- •Лабораторная работа №1 простые программы с циклами и операторами консольного ввода/вывода
- •Задание
- •Описание примера
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 работа с текстовыми файлами, структурами данных и меню
- •Задание
- •Структурное программирование и функциональная декомпозиция системы
- •Функции
- •Организация меню в консольном приложении
- •Структуры данных
- •Операции с файлами
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №3 разработка и спецификация функций и модулей программы
- •Задание
- •Модульная структура программ
- •Параметры командной строки
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №4 разработка и спецификация структур данных, использование указателей и динамических массивов структур
- •Задание
- •Указатели
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №5 использование объектно-ориентированного программирования в разработке приложений
- •Задание
- •Конструкторы и деструкторы
- •Конструктор по умолчанию
- •Конструктор копирования
- •Массивы объектов
- •Friend-конструкции
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №6 использование наследования, полиморфизма и абстрактных классов
- •Задание
- •Наследование данных и методов
- •Полиморфизм и виртуальные функции
- •Абстрактный класс
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №7
- •Сложные структуры из объектов классов
- •Цель работы - изучение организации различных структур данных и разработка методов манипулирования данными.
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №8 разработка windows-интерфейса приложения
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №9 разработка и использование com-сервера
- •Задание
- •Шаблоны классов
- •Использование библиотеки atl для создания серверов сом
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Литература
Методика выполнения
Запустите MS Visual Studio и откройте проект консольного приложения из работы №4.
Измените объявление структуры на объявление класса.
Сделайте необходимые изменения в объявлениях и определениях функций обработки данных. Отладьте программу. В процессе отладки используйте заглушки и комментарии для постепенного включения исправлений в программу.
Преобразуйте функции консольного и файлового ввода/вывода объектов класса в методы этого класса. Тела методов определите вне блока описания класса в отдельном модуле. Отладьте программу.
Замените в программе все функции консольного ввода/вывода из библиотек stdio.h и conio.h на операции библиотеки классов потокового ввода/вывода.
Переопределите для разработанного класса операторы << и >> для консольного ввода/вывода.
Содержание отчета
Отчет готовится в письменном или печатном виде один на бригаду. В отчет включить листинги модулей, результаты тестовых прогонов программы. Листинги должны содержать спецификации модулей и функций, иметь структурированный вид и комментарии.
Контрольные вопросы
Как в С++ объявляется класс?
С какой целью и как в классе выделяются элементы с различным уровнем доступности?
Как объявляются и какие функции выполняют конструкторы класса?
Как действует деструктор класса?
Что такое friend-конструкции?
Назовите основные элементы библиотеки классов потокового ввода-вывода C++.
Объясните механизм переопределения операций в классах.
В чем достоинства переопределения операций?
Лабораторная работа №6 использование наследования, полиморфизма и абстрактных классов
Цель работы - освоение на практике механизмов наследования, полиморфизма и абстрактных классов в языке С++ для обработки динамических массивов объектов различных классов.
Задание
Разработать на языке С++ 5-ю версию консольного приложение для хранения и отображения сведений об объектах некоторого вида в соответствии с вариантом задания, указанном в таблице.
Графа «Предметная область» представляет родительский класс, в котором определены общие атрибуты. Графа «Список типов объектов» представляет список дочерних классов. Для каждого такого класса необходимо индивидуально определить любые 3 атрибута по своему выбору. В случае затруднений уточнить список атрибутов у преподавателя.
Для представления набора объектов в оперативной памяти использовать динамический массив (массив указателей на объекты класса).
При обработке элементов массива использовать полиморфизм позднего связывания.
Поиск и сортировку производить только по общим атрибутам.
В классах запретить непосредственный доступ к полям данных. Доступ к атрибутам объектов осуществлять только с помощью методов классов.
Варианты задания
Бригада № |
Предметная область |
Список типов объектов |
Общие атрибуты |
1 |
Комплектующие для ПК |
Процессор, память, НЖМД, монитор |
Модель, цена |
2 |
Географические объекты |
Страна, река, озеро, гора |
Название, континент |
3 |
Сотрудники |
Руководитель верхнего уровня, менеджер, штатный исполнитель, совместитель |
Ф.И.О., возраст, должность |
4 |
Канцелярские товары |
Карандаш, скоросшиватель, тетрадь, органайзер |
Фирма-производитель, цена |
5 |
Графические фигуры |
Линия, треугольник, прямоугольник, окружность |
Название, длина контура |
6 |
Микросхемы |
Регистр, счетчик, дешифратор, мультиплексор |
Технология, серия |
7 |
Бытовые приборы |
Телевизор, холодильник, стиральная машина, СВЧ-печь |
Марка, цена |
8 |
Компьютерные программы |
Игра, ОС, СУБД, среда программирования |
Название, объем дистрибутива |
9 |
Радиоэлектронные элементы |
Конденсатор, резистор, транзистор, диод |
Марка, количество в наличии |
10 |
Автомобили |
Легковой, грузовой, тягач, автобус |
Марка, изготовитель, мощность двигателя |
11 |
Книги |
Учебник, справочник, худ. литература, альбом |
Автор, название, объем |
12 |
Небесные тела |
Планета, комета, звезда, галактика |
Название |
Краткая теория