Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.74
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
#1

Создать класс "точка" и производный класс "отрезок" - C++

08.04.2010, 10:09. Просмотров 5371. Ответов 22
Метки нет (Все метки)

Создать класс "точка" и производный класс "отрезок"
ИСПОЛЬЗОВАТЬ КОНСТРУКТОРЫ И ДИСТРУКТОРЫ
и к отрезку метод получения его длинны....

вообщем запара немного с конструктарами и диструкторами, не уверен что правильно всё написал..
И никак не могу понять какая формула для расчёта длинны...может подскажете ?

Помогите с реализацией класса пожалуйста!

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
#include <iostream> 
#include <complex> 
using namespace std; 
 
class tochka
{ 
private: double x1,x2,y1,y2; 
public: 
tochka (double,double,double,double); 
~tochka(); 
double d(); 
}; 
tochka ::tochka (double x1, double x2, double y1,double y2) 
{ 
tochka ::x1=xn; 
tochka ::x2=xk; 
tochka ::y1=yn; 
tochka ::y2=yk;
} 
tochka ::~tochka() 
{
}
 
 
int main() 
{ 
double xn,yn,xk,yk; 
cout<<"xn= \n"; 
cin >>xn; 
cout<<"yn= \n"; 
cin>>yn; 
cout<<"xk= \n"; 
cin>>xk;
cout<<"yk= \n";
cin>>yk;
tochka ob(x1,y1,x2,y2); 
 
system("pause"); 
return 0; 
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2010, 10:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс "точка" и производный класс "отрезок" (C++):

Создать класс "Шар", заданный радиусом, и определить производный класс "Окружность" - C++
Создать класс шар, заданный радиусом. Определить производный класс окружности. Предусмотреть виртуальную функцию для вычисления площади...

Создать класс "Квадрат" и производный класс "Правильная пирамида" - C++
Заранее спасибо за помощь)

Для класса "Футболист" создать производный класс "Нападающий" - C++
помогите плиз написать главную функцию и внешний метод и посмотрите ошибки класс ФУТБОЛИСТ с атрибутами: фамилия, название команды,...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 11:04  [ТС] #2
ни у кого никаких мыслей нету?
нет такой функции в 2008 Visual Studio что бы длину считал по координатам?

в классе точка я правильно использовал конструкторы и диструкторы?
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:06 #3
Почему точка на плоскости у тебя задается 4 координатами?
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:21  [ТС] #4
эээээ....чёрт!
а надо 2?
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:23 #5
Вот как это может выглядеть:
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
#include <iostream>
#include <cmath>
 
class point
{
protected:
    double _x, _y;
public:
    point(double xn, double yn)
        : _x(xn), _y(yn) {}
    double x() {return _x;}
    double y() {return _y;}
};
 
class intercept: public point
{
    double _x1, _y1;
    double _length;
public:
    intercept(double x0, double y0, double x1, double y1)
        : point(x0, y0), _x1(x1), _y1(y1)
    {
        _length=sqrt((_x1-_x)*(_x1-_x)+(_y1-_y)*(_y1-_y));
    }
    double x1() {return _x1;}
    double y1() {return _y1;}
    double length() {return _length;}
};
 
int main()
{
    intercept i(13, 9, 1, 4);
    std::cout << i.length() << std::endl;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от LuBu Посмотреть сообщение
эээээ....чёрт!
а надо 2?
Естественно!
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:29  [ТС] #6
intercept i(13, 9, 1, 4);

а что это за цифры?

просто мне надо использовать конструкторы и диструкторы, а я их тут вроде не вижу..(
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:34 #7
Это инициализация отрезка инициализирующим конструктором с четырьмя аргументами - координатами начала и конца отрезка

Добавлено через 39 секунд
Сам конструктор описан в строках 20-24

Добавлено через 2 минуты
ЗЫ. ИМХО, вести наследование отрезка от точки нет смысла. Лучше сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class intercept
{
    point   _p0, _p1;
    double  _length;
public:
    intercept(double x0, double y0, double x1, double y1)
        : _p0(x0, y0), _p1(x1, y1)
    {
        _length=sqrt((_p0.x()-_p1.x())*(_p0.x()-_p1.x())+(_p0.y()-_p1.y())*(_p0.y()-_p1.y()));
    }
    point p0() {return _p0;}
    point p1() {return _p1;}
    double length() {return _length;}
};
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:34  [ТС] #8
а почему 13,9,1,4 ?

чёт я не врубаю =(

а диструкторы есть?
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:39 #9
Цитата Сообщение от LuBu Посмотреть сообщение
а почему 13,9,1,4 ?
(13, 9) - координаты начала отрезка
(1, 4) - координаты конца отрезка

Цитата Сообщение от LuBu Посмотреть сообщение
а диструкторы есть?
Деструкторы для таких простых классов просто не нужны. Компилятор сам сгенерирует деструктор, который в свою очередь вызовет деструкторы для переменных-членов класса.

Добавлено через 1 минуту
Впрочем, если сильно хочется, можно выделить память для переменных-членов динамически, тогда и появится необходимость в деструкторах
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:46  [ТС] #10
пнятно!)

только есть 1 проблема мне надо будет самому задать координаты)) но я думаю тут сам разберусь!)

Добавлено через 6 минут
спасибо!) буду пытаться разобраться дальше сам))
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
13.04.2010, 12:53 #11
просто мне надо использовать конструкторы и диструкторы, а я их тут вроде не вижу..(
Даже интересно, а какая ценность будет в определении деструктора....
Nameless One:
Приписал бы деструктор а то вдруг кто то обидится из-за его отсутствия.
LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:55  [ТС] #12
ну типо показать что ты знаешь как записать деструктор!)
я уже писал одну прогу для квадратного уравнения

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
#include <iostream> 
#include <complex> 
using namespace std; 
 
class uravnenie 
{ 
private: double a,b,c; 
public: 
uravnenie (double,double,double); 
~uravnenie (); 
double x1(); 
double x2(); 
}; 
uravnenie ::uravnenie (double a1, double b1, double c1) 
{ 
uravnenie ::a=a1; 
uravnenie ::b=b1; 
uravnenie ::c=c1; 
} 
uravnenie ::~uravnenie () 
{ 
} 
double uravnenie ::x1() 
{ 
return ((-b+sqrt(b*b-4*a*c))/(2*a)); 
} 
double uravnenie ::x2() 
{ 
return ((-b-sqrt(b*b-4*a*c))/(2*a)); 
} 
int main() 
{ 
double a1,b1,c1; 
cout<<"a= \n"; 
cin >>a1; 
cout<<:b= \n"; 
cin>>b1; 
cout<<"c= \n"; 
cin>>c1; 
 uravnenie ob(a1,b1,c1); 
cout<<"X1="<<ob.x1()<<" "<<"X2=" 
<<ob.x2()<<"\n"; 
system("pause"); 
return 0; 
}
тут то тоже класс простой но тем не менее заставили!((
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:57 #13
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Приписал бы деструктор а то вдруг кто то обидится из-за его отсутствия.

Не по теме:

Я чувствую, что от этого обижаются преподаватели LuBu...

LuBu
4 / 4 / 0
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:59  [ТС] #14
да всё нормлаьно!) спаисбО!)))
я сам припишу если что!)
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
13.04.2010, 12:59 #15
Цитата Сообщение от LuBu Посмотреть сообщение
тут то тоже класс простой но тем не менее заставили!((
В том-то и дело, что заставили, ведь пользы от явного объявления деструктора в таком классе нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2010, 12:59
Привет! Вот еще темы с ответами:

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/". - C++
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс комплексных чисел и ввести операции: &quot;+&quot;,...

Создать иерархию классов: родительский класс "Транспорт", класс-потомок "Техосмотр транспорта" - C++
Помогите пожалуйста написать программу Родительский класс &quot;Транспорт&quot;. Поля класса: тип транспорта, гос.номер, марка, Ф.И.О владельца,...

Создать абстрактный класс "Треугольник" и производный - "Равнобедренный треугольник" - C++
Задание Создать абстрактный класс треугольник. Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода...

Создать класс "Кот" с полями "Возраст" и "Вес" - C++
Нужно сделать универсальный класс.Задание такое : Есть два кота (их может быть хоть 100) они характеризуются возрастом (int) и весом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.04.2010, 12:59
Ответ Создать тему
Опции темы

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