0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 6
1

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line

01.11.2017, 23:45. Показов 1364. Ответов 15
Метки нет (Все метки)

1. Создать класс Point (точка). На его основе создать классы ColoredPoint и Line. На
основе класса Line создать класс ColoredLine и класс PolyLine (многоугольник). Все
классы должны иметь виртуальные методы установки и получения значений всех
координат, а также изменения цвета и получения текущего цвета.
2. Создать класс Picture, содержащий список (или массив) объектов этих классов.
Предусмотреть возможность вывода характеристик объектов списка.
Помогите, скоро сдавать!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2017, 23:45
Ответы с готовыми решениями:

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line
Необходимо: Создать класс Point (точка). На его основе создать классы ColoredPoint и Line...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
всем привет! помогите пожалуйста с решением задачи. вот задание: "Создать класс Point...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
Задания на наследование. Создать класс Point (точка). На его основе создать классы ColoredPoint и...

Создать класс Point (точка) На его основе создать классы ColoredPoint и Line (линия)
Помогите пожалуйста, сделать лабу :cry: Лабораторная работа 9. Наследование В программах...

15
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
04.11.2017, 10:00 2
1. Я тут немного начал, сможете закончить?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type
  Point = class
  private
    FX, FY: LongInt;
  end;
 
  ColoredPoint = class (Point)
  private
    FColor: LongWord;
  end;
 
  Line = class (Point)
  private
    FEndX, FEndY: LongInt;
  end;
 
  ColoredLine = class (Line)
  private
    FColor: LongWord;
  end;
1
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 6
15.11.2017, 23:08  [ТС] 3
Если не сложно можешь дописать ее? Заранее спасибо большое.

Добавлено через 1 минуту
ILinker, Спасибо, только можешь продолжить?
0
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 515
16.11.2017, 00:40 4
Цитата Сообщение от merleeen Посмотреть сообщение
Все классы должны иметь виртуальные методы установки и получения значений всех
координат, а также изменения цвета и получения текущего цвета.
Бред...
0
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 6
16.11.2017, 14:29  [ТС] 5
Такое задание, не я составляю...
0
5497 / 4292 / 1379
Регистрация: 14.04.2014
Сообщений: 19,282
Записей в блоге: 19
16.11.2017, 17:09 6
ILinker, неплохо бы следовать соглашениям о том, что классы начинаются с T
и избегать совпадающих наименований хотя бы с самыми стандартными библиотеками
в разделе interface
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TMyPoint=class
private
  FColor : TColor;
  FCrd:array of TPoint;
  function GetCoord(index:integer):TPoint; virtual;
  procedure SetCoord(index:integer; value:TPoint); virtual;
  function GetColor:TColor; virtual;
  procedure SetColor(Value:TColor); virtual;
public
  constructor Create; virtual;
  destructor Destroy; virtual;
  property Coord[index:integer] : TPoint read GetCoord write SetCoord;
  property Color:TColor read GetColor write SetColor;
end;
 
TMyLine=class(TMyPoint)
public
  constructor Create; override;
end;
в разделе implementation
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function TMyPoint.GetCoord(index:integer):TPoint; 
begin
  result := FCrd[index];
end;
 
procedure TMyPoint.SetCoord(index:integer; value:TPoint); 
begin
  FCrd[index] := value;
end;
 
function TMyPoint.GetColor:TColor;
begin
  result := FColor;
end;
 
procedure TMyPoint.SetColor(Value:TColor); 
begin
  FColor := value;
end;
 
constructor TMyPoint.Create;
begin
  inherited;
  SetLength(FCrd,1);
end;
 
destructor TMyPoint.Destroy;
begin
  SetLength(FCrd,0);
  inherited;
end;
 
constructor TMyLine.Create; 
begin
  inherited;
  SetLength(FCrd,2);
end;
1
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
17.11.2017, 07:08 7
krapotkin, в ТЗ имена классов без префикса "T".

Добавлено через 1 минуту
krapotkin, почему у класса "Точка" есть массив точек?
0
5497 / 4292 / 1379
Регистрация: 14.04.2014
Сообщений: 19,282
Записей в блоге: 19
17.11.2017, 09:21 8
в ТЗ нет, а в Делфи есть
массив из одной точки не отличается от одной точки ничем
а вот наследование фигур, основанных на N точках, от одной точки, будет сильно странным
0
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
17.11.2017, 10:12 9
krapotkin, препод сказал без префикса, значит будет без префикса.
Тут видно ТЗ не правильно составлено, раз в класс "Точка" нужно помещать массив точек.
0
Житель Земли
2995 / 2994 / 391
Регистрация: 26.07.2011
Сообщений: 11,457
Записей в блоге: 1
17.11.2017, 22:21 10
Цитата Сообщение от ILinker Посмотреть сообщение
препод сказал без префикса, значит
препода нужно научить как правильно
0
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
18.11.2017, 12:46 11
DenNik, да нынешние преподы сами не особо то и программируют.
0
Житель Земли
2995 / 2994 / 391
Регистрация: 26.07.2011
Сообщений: 11,457
Записей в блоге: 1
18.11.2017, 16:34 12
ILinker, ну да, это все равно что вождению будет учит человек, не умеющий водить. гнать таких
1
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 6
18.11.2017, 23:12  [ТС] 13
это все конечно отлично, но что насчет программы то ?)

Добавлено через 4 минуты
DenNik, ILinker, поможете с заданием то ?
0
пофигист широкого профиля
4632 / 3077 / 852
Регистрация: 15.07.2013
Сообщений: 17,740
19.11.2017, 01:59 14
Цитата Сообщение от merleeen Посмотреть сообщение
это все конечно отлично, но что насчет программы то ?)
А код в ответе krapotkin #6 вам не помогает никак?
0
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 6
19.11.2017, 15:48  [ТС] 15
northener, класса Polyline(многоугольник) нет
0
5497 / 4292 / 1379
Регистрация: 14.04.2014
Сообщений: 19,282
Записей в блоге: 19
20.11.2017, 08:40 16
ну так напрягитесь чучуть
он и появится
нужно переопределить конструктор как в TMyLine, но с количеством точек 0
я бы в базовом классе создал еще
function GetCrdCount:integer;
proceudre SetCrdCount(value:integer);
property CrdCount:integer read GetCrdCount write SetCrdCount;

Delphi
1
2
3
4
procedure TMyPoint.SetCount(n:integer);
begin
  SetLength(FCrd,N);
end;
тогда

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
constructor TMyPoint.Create; 
begin
  inherited;
  CrdCount:=1;
end;
constructor TMyLine.Create; 
begin
  inherited;
  CrdCount:=2;
end;
constructor TMyPolyline.Create; 
begin
  inherited;
  CrdCount:=0;
end;
и все

ну а перед использованием polyline нужно установить CrdCount в нужное значение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2017, 08:40
Помогаю со студенческими работами здесь

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
Привет Помогите пожалуйста с решением задачи на C++. вот задание: "Создать класс Point...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
На основе класса Line создать классы ColoredLine и PolyLine (многоугольник). В классах описать...

Создать класс Point, на его основе создать класс Line
Здравствуйте, есть такая часть задачки: "Создать класс Point, на его основе создать класс Line....

Создать класс Line (линия). На его основе создать классы ColoredLine и Treug (треугольник)
Помогите, вообще не знаю как это сделать:cry: Создать класс Line (линия). На его основе создать...

Создать класс CPoint — точка. На его основе создать классы CcoloredPoint и CLine
Помогите доделать программу: Создать класс CPoint — точка. На его основе создать классы...

Создать класс Point и производный класс ColoredPoint (цветная точка)
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru