Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.57 MB
Время: 0.078 c
15-1158747829
Torry
2006-09-20 14:23
2006.10.15
ISDEF Start Seminar


6-1147845759
BanderLog
2006-05-17 10:02
2006.10.15
Использование TIdSync в Indy10


2-1159244988
tlv
2006-09-26 08:29
2006.10.15
MediaPlayer - не запускается на компьютере без Delphi


3-1155717915
GrBob
2006-08-16 12:45
2006.10.15
FieldName в DBexpress и ADO


2-1159540488
Весь в делах
2006-09-29 18:34
2006.10.15
Иконки