Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
-14 / 4 / 4
Регистрация: 19.01.2017
Сообщений: 546
1

Составить описание класса "Трапеции"

21.10.2018, 19:25. Показов 356. Ответов 1

Создать программы, которые реализуют следующие функции. При создании программ пользоваться правилами написания качественного кода.

Для реализации задачи надо составить описание класса фигуры. В программе main () предусмотреть объявления экземпляров фигуры с нанесенными координатами вершин. В классе предусмотреть следующие методы: перемещение прямоугольника на плоскости, сравнение пары заданных фигур, определить отношение типа «Фигура1 входит (не входит) в Фигуру 2»

Трапеции.

C++
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
 
inline int Min(int arg1, int arg2) {
  return arg1 < arg2? arg1 : arg2;
}
 
inline int Max(int arg1, int arg2) {
  return arg1 > arg2? arg1 : arg2;
}
 
struct Point {
  Point(int x, int y)
  : x(x)
  , y(y) {
  }
 
  int x;
  int y;
};
 
class Rect {
public:
  Rect(Point topLeft, Point bottomRight)
  : topLeft    (topLeft)
  , bottomRight(bottomRight) {
  }
 
  Rect(int l, int t, int r, int b)
  : topLeft    (l, t)
  , bottomRight(r, b) {
  }
 
  void Move(int dx, int dy) {
    topLeft.x += dx;
    topLeft.y += dy;
 
    bottomRight.x += dx;
    bottomRight.y += dy;
  }
 
  static const Rect Union(const Rect& rct1, const Rect& rct2) {
    int l = ::Min(rct1.topLeft.x    , rct2.topLeft.x);
    int t = ::Max(rct1.topLeft.y    , rct2.topLeft.y);
    int r = ::Max(rct1.bottomRight.x, rct2.bottomRight.x);
    int b = ::Min(rct1.bottomRight.y, rct2.bottomRight.y);
 
    return Rect(l, t, r, b);
  }
 
  Point topLeft;
  Point bottomRight;
};
 
int main() {
  Rect rct1(0, 3, 3, 0);
  Rect rct2(0, 4, 3, 0);
 
  rct2.Move(2, 1);
 
  Rect rct3 = Rect::Union(rct1, rct2);
 
  std::cout << "l: " << rct3.topLeft.x     << std::endl;
  std::cout << "t: " << rct3.topLeft.y     << std::endl;
  std::cout << "r: " << rct3.bottomRight.x << std::endl;
  std::cout << "b: " << rct3.bottomRight.y << std::endl;
 
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2018, 19:25
Ответы с готовыми решениями:

Составить описание класса "3D вектор". Объявить объекты класса и продемонстрировать работу методов
Возникли сложности при решении задачи. Буду признателен тем, кто поможет. Задание: Составить...

Составить описание класса "время"
ПОМОГИТЕ ПОЖАЛУЙСТА СДЕЛАТЬ РАБОТУ!!!! Время задается в формате час:минута:секунда. Методы...

Построить описание класса "Органзация"
Построить описание класса, содержащего информацию о почтовом адресе организации, а также...

Описание класса "Студенческая группа"
Добрый вечер! Нужна помощь в составлении программы. Условие: Описать класс &quot;студенческая группа&quot;....

1
0 / 0 / 1
Регистрация: 22.10.2018
Сообщений: 19
22.10.2018, 08:27 2
C++
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Point.h
#ifndef POINT_H
#define POINT H 
class Point {
public:
PointCdouble _х = 0. double= 0) : х(). у() {}
void ShowO const:
public:
double X. у:
}:
#endif /* POINT_H */
// Point.cpp
#1nclude <1ostream>
#include "Point.h"
using namespace std;
void Point::ShowO const {
cout « X « У;
// Triangle.h
#ifndef TRIANGLEJ
#define TRIANGLEJ
#include "Point.h"
class Triangle {
public:
Triangle(Point. Point.
Triangle(const char*):
-TriangleO:
Point Get_vl() const {
Point Get_v2() const {
Point Get_v3() const {
char* GetNameO const
void ShowO const:
void ShowSideAndArea(
public:
static int count:
private:
char* objID:
char* name:
Point vl.
double a:
double b:
double c:
v2. v3:
Point, const char*):
return vl: }
return v2: }
return v3: }
{ return name: }
) const:
#end1f /* TRIANGLE Н */ 
//Triangle.срр
#inclucie <math.h>
#include <iostream>
#inclucle <iomanip>
#inclucle <cstring>
//#inclucle "CyrlOS.h"
#include "Triangle.h"
using namespace std:
Triangle: :Triangle(Point _vl. Point _v2. Point _v3. const char ident)
: vl(_vl). v2(_v2). v3(_v3) {
char buf[16]:
objID = new char[strlen(ident) + 1];
strcpy(objID. ident);
count++:
sprintf(buf. "Треугольник %d". count);
name = new char[strlen(buf) +1] ;
strcpy(name, buf);
a = sqrt((vl.x - v2.x) * (vl.x - v2.x) + (vl.y - v2.y) * (vl.y - v2.y))
b = sqrt((v2.x - v3.x) ^ (v2.x - v3.x) + (v2.y - v3.y) * (v2.y - v3.y))
с = sqrt((vl.x - v3.x) * (vl.x - v3.x) + (vl.y - v3.y) * (vl.y - v3.y))
cout « "Constructor_l for: " « objID
« " (" « name « ") " « endl;
Triangle::Triangle(const char* ident) {
char buf[16];
objID = new char[strlen(ident) + 1]:
strcpy(objID, ident);
count++;
sprintf(buf "Треугольник ^d"
name = new char[strlen(buf) +
strcpy(name
a = b = с =
buf);
0;
cout « . "Constructor_2 for: "
« ' ' (" « name « ")
. count);
1]
«
' «
ObjID
' endl
Triangle::~Triangle() {
cout « "Destructor for: " « objID « endl; 
delete [] objID;
delete [] name;
void Triangle::Show() const {
cout « name « ":":
vl.ShowO; v2.Show(): v3.Show();
cout « endl;
}
void Triangle::ShowSideAndAreaО const {
double p = (a + b + с) / 2;
double s = sqrt(p * (p - a) '^ (p - b) ^ (p - c)):
cout « " • " « endl;
cout « name « ":";
cout.precision(4); '
cout « " a= " « setw(5) « a;
cout « ". b= " « setw(5) « b;
cout « ". c= " « setw(5) « c;
cout « ";\ts= " « s « endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2018, 08:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Раздельное объявление и описание шаблонной функции, принимающей в качестве операндов ссылку на объект класса "вектор"
Приветствую. Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;clocale&gt; #include...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

ткните мордой плз на описание конструкций типа defect?"brak":"goden"
вот пример использования http://codepad.org/VbScnm6F

Описание классов. Классы "Шар" и "Ящик для шаров"
1.Опишите класс &quot;шар&quot;, описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.