Вход/Регистрация
Программирование. Принципы и практика использования C++ Исправленное издание
вернуться

Страуструп Бьерн

Шрифт:

21. Что такое шрифт и зачем он нужен?

22. Для чего нужен класс

Vector_ref
и как его использовать?

23. В чем заключается разница между классами

Circle
и
Ellipse
?

24. Что произойдет, если мы попытаемся изобразить объект класса

Image
с заданным именем файла, а заданное имя файла не относится к файлу, содержащему изображение?

25. Как вывести на экран часть изображения?

Термины

Упражнения

Для каждого упражнения, в котором требуется определить класс, выведите на экран несколько объектов данного класса и продемонстрируйте, как они работают.

1. Определите класс

Arc
, рисующий часть эллипса. Подсказка:
fl_arc
.

2. Нарисуйте окно с закругленными углами. Определите класс Box, состоящий из четырех линий и четырех дуг.

3. Определите класс

Arrow
, рисующий стрелки.

4. Определите функции

n
,
s
,
e
,
w
,
center
,
ne
,
se
,
sw
и
nw
. Каждая из них должна получать аргумент типа
Rectangle
и возвращать объект типа
Point
. Эти функции должны определять точки соединения, расположенные на границах и внутри прямоугольника. Например,
nw(r)
— это левый верхний угол объекта класса
Rectangle
с именем
r
.

5. Определите функции из упр. 4 для классов

Circle
и
Ellipse
. Поместите точки соединения на границах и внутри этих фигур, но не за пределами окаймляющего их прямоугольника.

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

Box
, объект которого представляет собой прямоугольник с текстовой меткой.

7. Создайте цветную диаграмму RGB (поищите пример в вебе).

8. Определите класс

Regular_hexagon
(шестиугольник — это правильный шестисторонний многоугольник). В качестве аргументов конструктора используйте центр и расстояние от центра до угловой точки.

9. Покройте часть окна узорами в виде объектов класса

Regular_hexagon
(используйте не меньше восьми шестиугольников).

10. Определите класс

Regular_hexagon
. В качестве аргументов конструктора используйте центр, количество сторон (не меньше двух) и расстояние от центра до угла.

11. Нарисуйте эллипс размером 300x200 пикселей. Нарисуйте ось x длиной 400 пикселей и ось y размером 300 пикселей, проходящие через центр эллипса. Пометьте фокусы. Отметьте точку на эллипсе, которая не принадлежит ни одной из осей. Соедините эту точку с фокусами двумя линиями.

12. Нарисуйте окружность. Заставьте метку перемещаться по окружности (пусть она перемещается каждый раз, когда вы щелкаете на кнопке Next).

13. Нарисуйте матрицу цвета из раздела 13.10, но без линий, окаймляющих каждый квадрат.

14. Определите класс для прямоугольного треугольника. Составьте восьмиугольник из восьми прямоугольных треугольников разного цвета.

15. Покройте окно узорами в виде маленьких прямоугольных треугольников.

16. Покройте окно узорами в виде маленьких шестиугольников.

17. Покройте окно узорами в виде маленьких разноцветных шестиугольников.

18. Определите класс

Poly
, представляющий многоугольник, так, чтобы его конструктор проверял, действительно ли его точки образуют многоугольник. Подсказка: вы должны передавать в конструктор координаты точек.

19. Определите класс

Star
. Одним из его параметров должно быть количество точек. Нарисуйте несколько звездочек с разным количеством точек, разноцветными линиями и разными цветами заполнения.

Послесловие

В главе 12 мы играли роль пользователей классов. В этой главе мы перешли на один уровень вверх по “пищевой цепочке” программистов: здесь мы стали разработчиками классов и пользователями инструментов программирования.

  • Читать дальше
  • 1
  • ...
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: