Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы.doc
Скачиваний:
33
Добавлен:
04.03.2016
Размер:
317 Кб
Скачать
☆

Література

  1. Джесс Либерти. Освой самостоятельно С++. 3 и-е. М.: Вильямс. – 2000.

  2. Г. Шилдт. Полный справочник по С++. 4 и-е. – М.: Вильямс. – 2003.

  3. Т.А. Павловская. С/С++. Программирование на языке высокого уровня. ПИТЕР-2002

  4. С.В. Глушаков. Практикум по С++. ФОЛИО – 2006

  5. Х. Дейтел, П. Дейтел. Как программировать на С++.

  6. Ю.Л. Кетков. Введение в языки программирования C и C++ http://www.intuit.ru/department/pl/ccpp/

  7. А.Л. Фридман. Язык программирования C++ http://www.intuit.ru/department/pl/cpp/

Лабораторная работа 10

Тема: Углубленное изучение функций

Цель:

Теоретические сведения

См. лекция №10

Ход работы

  1. Напишите объявление закрытого класса Circle с следующими переменными-членами : координаты центра и радиус (itsX,itsY, itsRadius). Включите в класс конструктор по умолчанию, деструктор и методы доступа.

  2. Напишите реализацию конструктора по умолчанию, инициализируя itsRadius числом 20, а XиY– числом 100.

  3. Добавьте второй конструктор, который принимает координаты центра и радиус как параметры и инициализирует itsX,itsY, itsRadius. Причем радиус может иметь значение по умолчанию равное 20.

  4. Добавьте третий конструктор, который вводит координаты центра и радиус с клавиатуры или считывает их из заранее подготовленного текстового файла на магнитном диске и присваивает значения itsX,itsY, itsRadius.

  5. Напишите конструктор копирования для класса Circle, который будет нам сообщать о своем выполнении.

  6. Напишите перегруженные методы для вычисления длины окружности, площади круга и объема шара как для объекта с радиусом itsRadius, так и для произвольного радиуса.

  7. Напишите программу в которой создается 4 объекта Circle – три в стеке, а один в свободной памяти. Первый конструктором по умолчанию, второй - конструктором с параметрами, третий – путем ввода с клавиатуры, четвертый – путем чтения данных из файла. Выполните вычисления и распечатки с помощью методов класса.

  8. Создайте в классе Circle префиксный и постфиксный операторы инкремента и декремента, воздействующие только на член-данное радиус itsRadius.

  9. Создайте в классе Circle оператор + для сложения объектов типа Circle. Необходимо складывать только величины радиусов itsRadius.

  10. Создайте в классе Circle операторы < и = = для сравнения объектов типа Circle по величине радиуса itsRadius.

  11. Измените класс Circle так, чтобы itsX,itsY, itsRadius создавались в свободной памяти. Откорректируйте конструкторы, деструктор и методы этого класса.

  12. Напишите конструктор копирования для класса Circle.

  13. Разработайте оператор = для класса Circle.

  14. Напишите программу в которой создается два объекта Circle. Инкрементируйте эти объекты и выполните распечатку значений их данных. Сравните объекты на равенство и < и выведите результаты сравнения на экран. Присвойте второй объект первому и распечатайте его параметры.

  15. Что неверно в реализации оператора присваивания? SQUARE::SQUARE operator = (const SQUARE & rhs) { itsSide = new int; *itsSide = rhs.GetSide(); return *this; }