Текущий архив: 2006.10.15;
Скачать: CL | DM;
ВнизСижу, смотрю методичку... Найти похожие ветки
← →
ferr © (2006-09-20 23:06) [0]Объектно-ориентированное программирование(ООП)
Методические указания к лабораторной работе №1
Задание.
Имеется 4 вида фигуры: точка, круг, квадрат и правильный треугольник. Требуется создать программу, которая содержала бы список из выше приведенных фигур и рисовала бы их на экране. Каждый экземпляр какого-либо вида фигуры обладает координатами центра, относительно которого экземпляр будет рисоваться. Если список не пуст, то один элемент списка обязательно должен быть активным, то есть:
1. при отображении он должен каким-либо образом выделяться
2. с данным элементом пользователь может проводить различные операции:
а. удалить
b. подвинуть на экране (влево, вправо, вверх, вниз)
с. повернуть на какой-либо угол (для квадрата и треугольника)
d. изменить размер
e. изменить цвет
Программа должна позволять пользователю выбирать вид фигуры и создавать фигуру текущего вида, которая будет добавляться в список.
Первое, что требуется, - это правильно создать дерево иерархии классов. Иными словами, каждый вид фигуры (точка, круг, квадрат и правильный треугольник) - это класс. Самая простая фигура - это точка, она и будет базовым классом. Логично предположить, что дочерним классом для точки будет круг. От класса Круг можно перейти к классу Правильный многоугольник, потомками которого будут классы Квадрат и Правильный треугольник.
Наше дерево:TPset
|
TCircle
|
TRightFigure
/ \
TSquare Triangle
Как вам такое наследование?
← →
ferr © (2006-09-20 23:08) [1]
Логично предположить, что дочерним классом для точки будет круг.
← →
BOA_KAA © (2006-09-20 23:14) [2]А если так:
TBaseFigure(abstract)
| |
TPoint TFigure(abstract)
| \ \
TSquare TTriang TCircle
?
← →
Gero © (2006-09-20 23:15) [3]> Логично предположить, что дочерним классом для точки будет
> круг.
Не совсем логично, но возможно.
> От класса Круг можно перейти к классу Правильный многоугольник
А вот это уже совсем нелогично. Какое отношение многоугольник имеет к кругу?
← →
ferr © (2006-09-20 23:15) [4]> А если так:
>
> TBaseFigure(abstract)
> | |
> TPoint TFigure(abstract)
> | \ \
> TSquare TTriang TCircle
>
> ?
так и я могу, тем более я бы сделал интерфейсами, а ты методичку раскури!
← →
Cyrax © (2006-09-20 23:18) [5]Удалено модератором
← →
default © (2006-09-20 23:18) [6]TCircle
|
TRightFigure
переводя на русский это звучит как всякая правильная фигура есть круг:)
условие задачи стоило бы назвать не лаб работа N1, а порви свой мозг
← →
ferr © (2006-09-20 23:19) [7]> А вот это уже совсем нелогично. Какое отношение многоугольник
> имеет к кругу?
не ко мне вопрос. Я из методички скопировал и вставил, жду комментариев...
> [5] Cyrax © (20.09.06 23:18)
> Шо-то не пому - это Object Pascal или C++ ?
>
> з.ы. как же мы экзамен-то сдавать будИм...
Это методичка! Я привожу то, что мне показалось бредятиной.
А не разобравшись в сути проблемы, можно было и воздержаться от комментариев.
← →
Zeqfreed © (2006-09-20 23:19) [8]А отступать от указаний в методичке нельзя/нежелательно, насколько я понимаю? Да… хорошенькая иерархия получится…
← →
Cyrax © (2006-09-20 23:21) [9]Удалено модератором
← →
Gero © (2006-09-20 23:22) [10]
ГеометричейскийОбъект
/ |
Точка Фигура
/ \
Круг Многоугольник
/ \
Квадрат Треугольник
← →
Чапаев © (2006-09-20 23:24) [11]Один класс с полями "радиус" и "количество углов". У точки оба поля нулевые, у круга количество углов нулевое и радиус положительный.
← →
ferr © (2006-09-20 23:24) [12]> [8] Zeqfreed © (20.09.06 23:19)
> А отступать от указаний в методичке нельзя/нежелательно,
> насколько я понимаю? Да… хорошенькая иерархия получится…
Не знаю. Я обладаю только методичкой. Подошёл, спросил можно ли сделать на шарпе, мне сказали нет(vs2005 стоит везде на кафедре, предмет называется ооп).
← →
Gero © (2006-09-20 23:24) [13]Если забыть общепринятую терминологию и руководствоваться указаниями в методичке, то иерархия в [0] — правильная.
← →
ferr © (2006-09-20 23:25) [14]Да не надо мне помогать с иерархиями, я сам справлюсь... Просто наболевшую проблему поднял...
← →
DiamondShark © (2006-09-20 23:26) [15]
> Это методичка! Я привожу то, что мне показалось бредятиной.
Не тебе одному, как видно.
В чём вопрос-то? Как нам? Нам варианты:
- пофиг
- бредятина
Полегчало?
← →
Marser © (2006-09-20 23:26) [16]> [3] Gero © (20.09.06 23:15)
> > Логично предположить, что дочерним классом для точки будет
>
> > круг.
>
> Не совсем логично, но возможно.
>
> > От класса Круг можно перейти к классу Правильный многоугольник
>
> А вот это уже совсем нелогично. Какое отношение многоугольник
> имеет к кругу?
Круг это многоугольник то ли с бесконечностью, то ли с "0" углов. Скорее, последнее.
(Это я пытаюсь понять логику автора)
← →
Gero © (2006-09-20 23:27) [17]> Да не надо мне помогать с иерархиями, я сам справлюсь...
Тогда ветка бессмысленна.
← →
default © (2006-09-20 23:27) [18]Чапаев © (20.09.06 23:24) [11]
это из разряда, что правильней |||||| это три раза по || или два раза по ||| ? :)
мы смотрим на проблематику с той точки зрения с какой нам выгодно, а выгода определяется контекстом:)
← →
Cyrax © (2006-09-20 23:27) [19]Удалено модератором
← →
ferr © (2006-09-20 23:28) [20]проблема отсутствия преподавателей) Обидно...
> Не тебе одному, как видно.
>
> В чём вопрос-то? Как нам? Нам варианты:
> - пофиг
> - бредятина
>
> Полегчало?
полегчало.
← →
ferr © (2006-09-20 23:30) [21]>
> Круг это многоугольник то ли с бесконечностью, то ли с "0"
> углов. Скорее, последнее.
> (Это я пытаюсь понять логику автора)
скорее с бесконечностью, т.к. асимптотически правильный n-угольник -> круг :)
← →
default © (2006-09-20 23:30) [22]Удалено модератором
← →
DiamondShark © (2006-09-20 23:31) [23]Вот и замечательно :)
А вообще, тема-таки больная. В методичках по программированию какой-то редкостно высокий процент бреда.
По себе помню...
← →
Cyrax © (2006-09-20 23:31) [24]Удалено модератором
← →
default © (2006-09-20 23:32) [25]Удалено модератором
← →
DiamondShark © (2006-09-20 23:34) [26]Флудеры -- в газенваген!
← →
Cyrax © (2006-09-20 23:34) [27]Удалено модератором
← →
default © (2006-09-20 23:35) [28]ferr © (20.09.06 23:30) [21]
это из разряда [18]
я могу предложить процедуру рисования фигур в которой у круга ноль углов вполне логично:)
← →
ferr © (2006-09-20 23:49) [29]дальше больше...
TPset = object
private { приватные поля и методы }
X : integer; { координата X }
Y : integer; { координата Y }
Color : integer; { цвет }
Size : integer; { размер }
Angle : integer; { угол }
...
← →
Чапаев © (2006-09-20 23:55) [30]> дальше больше...
Правильно. Только конструкторы различаются и последние два поля read-only. ;-)
← →
isasa © (2006-09-20 23:55) [31]У меня такое впечатление, что автор методички собирается описывать эту фигню в полярных координатах, только он стесняется это сказать. :)
Для окружности и точки - логично, а для треугольника ... :)
← →
jack128 © (2006-09-21 00:10) [32]Удалено модератором
← →
DiamondShark © (2006-09-21 00:17) [33]Я понял. Это дзенская методичка.
Кто знает, как звучит хлопок одной ладонью, тот без труда увидит точку, повёрнутую на 10 градусов.
← →
isasa © (2006-09-21 00:21) [34]Я понял. В этой жизни, окружность - это очень жирная точка. :)
← →
Думкин © (2006-09-21 05:56) [35]Все классы содержат свою рисовалку. Она перекрывается.
Класс точка - содержит только поля координат.
Класс окружность - координаты центра(от предка) и поле радиуса.
Класс прмногоуг - коорц и рад описаной(от предка) и число вершин(также нужны данные о б ориентации).
Класс треуг и квадрат - потомки прмногоуг при создании самостоятельно выставляют число вершин.
Если по методичке. В чем проблема? В том что жестко задано? Ну как дали, не нравится - пинать препода, чтобы дерево делать самим.
← →
Loginov Dmitry © (2006-09-21 07:43) [36]В редакторе этикеток реализовал такую иерархию:
TBaseClass
|
TRectClass
/ | \
TLineClass TCirkleClass TBarCode
Получилось довольно изящно и просто (у каждой фигуры при выделении рисуется рамочка в форме прямоугольника с узелками для изменения размеров)
← →
Карелин Артем © (2006-09-21 08:20) [37]
> TCirkleClass
Эт чаво?
← →
Тульский © (2006-09-21 09:53) [38]Класс Круг и класс Трофим наследуются от класса Шансон :)
← →
ferr © (2006-09-21 10:23) [39]> [35] Думкин © (21.09.06 05:56)
> Все классы содержат свою рисовалку. Она перекрывается.
> Класс точка - содержит только поля координат.
> Класс окружность - координаты центра(от предка) и поле радиуса.
> Класс прмногоуг - коорц и рад описаной(от предка) и число
> вершин(также нужны данные о б ориентации).
> Класс треуг и квадрат - потомки прмногоуг при создании самостоятельно
> выставляют число вершин.
>
> Если по методичке. В чем проблема? В том что жестко задано?
> Ну как дали, не нравится - пинать препода, чтобы дерево
> делать самим.
Я привёл описание класса точки(из всё той же методички). Там есть цвет, угол и размер.
← →
TUser © (2006-09-21 11:54) [40]Ладно бы еще круг от многоугольника наследовать - прописать у наследника бесконечное (т.е. очень большое) число ребер. Странно, но понять извращенцев можно. Но чтоб наоборот ...
Страницы: 1 2 вся ветка
Текущий архив: 2006.10.15;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.049 c