понедельник, 25 ноября 2013 г.

Решаем задачу на классы



Задача на классы:
Описать класс «Прямоугольник» (имеет длину и ширину, метод рассчитывает площадь)  и производный от него класс «Параллелепипед» (имеет длину, ширину, высоту, методы рассчитывают площадь поверхности и объем). С помощью конструкторов создать 3 объекта-прямоугольника и 2 объекта- параллелепипеда. Напечатать таблицу, содержащую № объекта (1-прямоугольник, 2- параллелепипед), длину, ширину, высоту (для прямоугольника в этом столбце –пропуск), площадь и объем (для прямоугольника в этом столбце –пропуск).
Для уяснения необходимости виртуальных методов, напишите отдельную функцию, которая будет печатать строки такой таблицы при пересылке адреса объекта (пример – в лекции).

План разработки программы:



  1. Описать класс  «Прямоугольник» с данными, конструктором и нужными функциями (какими? - определите из требований задачи).
  2. Написать конструктор, для задания длины и ширины использовать параметры, номер фигуры задать константой. Напишите остальные "пустые" функции-члены класса.
  3. Написать функцию main, в которой с помощью вызова конструктора создан один объект-Прямоугольник. Запустите проект: ничего видимого программа делать не будет, главное, чтобы не было ошибок.
  4. Написать метод, рассчитывающий площадь.
  5. Написать функцию main, в которой создан один объект-Прямоугольник, напечатано значение площади. Запустите проект: 
  6.  Написать методы, необходимые для заполнения таблицы. Дописать в main их вызов и печать заголовка и одной строки таблицы.
  7. Описать остальные объекты-прямоугольники, оргпнизовать печать их данных в таблицу.
  8. Описать класс «Параллелепипед» (какие данные и функции будут наследоваться, а какие нужно описать дополнительно?)
  9. Написать конструктор, длясоздание объекта-наследника. Обязательно вызовите конструктор класса-родителя. Напишите дополнительные  "пустые" функции-члены класса. 
  10. Допишите в  функцию main создание объекта-параллелепипеда. Запустите проект:
...далее действуйте самостоятельно, но аналогично.

Комментариев нет:

Отправить комментарий