Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Сижу, смотрю методичку...   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.035 c
15-1159108905
Проггер из библиотеки
2006-09-24 18:41
2006.10.15
Информация о мониторе Samtron 76 BDF


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


15-1158741969
Иксик
2006-09-20 12:46
2006.10.15
Дженерики или как я туплю


2-1159419736
aht
2006-09-28 09:02
2006.10.15
Дабл клик на гриде


1-1157193722
samael6
2006-09-02 14:42
2006.10.15
Работа с XMPP (Extensible Messaging and Presence Protocol)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский