Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/55: Рейтинг темы: голосов - 55, средняя оценка - 4.91
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71

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

08.04.2010, 10:09. Показов 11908. Ответов 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; 
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2010, 10:09
Ответы с готовыми решениями:

Создать класс линия и производный класс отрезок
Создать класс линия и производный класс отрезок, перегрузить операторы сложения, декрементирования и сравнения, определить методы для...

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

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

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

в классе точка я правильно использовал конструкторы и диструкторы?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.04.2010, 12:06
Почему точка на плоскости у тебя задается 4 координатами?
0
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:21  [ТС]
эээээ....чёрт!
а надо 2?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.04.2010, 12:23
Вот как это может выглядеть:
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?
Естественно!
0
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:29  [ТС]
intercept i(13, 9, 1, 4);

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

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

Добавлено через 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;}
};
0
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:34  [ТС]
а почему 13,9,1,4 ?

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

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

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

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

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

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

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; 
}
тут то тоже класс простой но тем не менее заставили!((
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.04.2010, 12:57
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Приписал бы деструктор а то вдруг кто то обидится из-за его отсутствия.

Не по теме:

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

0
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
13.04.2010, 12:59  [ТС]
да всё нормлаьно!) спаисбО!)))
я сам припишу если что!)
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.04.2010, 12:59
Цитата Сообщение от LuBu Посмотреть сообщение
тут то тоже класс простой но тем не менее заставили!((
В том-то и дело, что заставили, ведь пользы от явного объявления деструктора в таком классе нет.
0
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
14.04.2010, 15:33  [ТС]
здрасте ещё раз))
можно ещё 1 вопрос!
вот код программы тольок пользователь сам вводит координаты отрезка, я правильно всё ввёл? у меня такой бред что он пишет что x1 и x0 таких индефикаторов нет!
и ещё какой то треш выдаёт! ну Студия пишет что 6 ошибок 2 это индефикаторы и 4 какой то треш!
может подскажете чтоу меня за фэйл?(


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
#include <iostream>
#include <cmath>
#include "conio.h"
using namespace std;
 
 
 
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()
{
    cout<<"Vvedite xn= \n";
    cin>>x0;
    cout<<"Vvedite yn= \n";
    cin>>y0;
    cout<<"Vvedite xk= \n";
    cin>>x1;
    cout<<"Vvedite yk= \n";
    cin>>y1;
 
 
        intercept i(x0,y0,x1,y1);
        std::cout << i.length() << std::endl;
        system("pause");
    return 0;
}
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 15:35
Цитата Сообщение от LuBu Посмотреть сообщение
вот код программы тольок пользователь сам вводит координаты отрезка, я правильно всё ввёл? у меня такой бред что он пишет что x1 и x0 таких индефикаторов нет!
и ещё какой то треш выдаёт! ну Студия пишет что 6 ошибок 2 это индефикаторы и 4 какой то треш!
может подскажете чтоу меня за фэйл?(
Переменные объявлять надо
1
4 / 4 / 2
Регистрация: 03.12.2009
Сообщений: 71
14.04.2010, 15:37  [ТС]
я совсем уже...)))) спасибО!)_))
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
14.04.2010, 20:14
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от LuBu Посмотреть сообщение
Создать класс "точка" и производный класс "отрезок"

Не по теме:

Извините, не удержался. Очередной случай, когда бестолковый преподаватель не имеет понятия о том, что такое объектно-ориентированное программирование. "Отрезок" не может быть производным понятием от "точки"

0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
14.04.2010, 21:03
Evg:
Просвистите в чем тут подвох, просто долго я не размысливал на эту тему, может что то не понял.
Наследованию данные для разумного насыщения производного поддаются,
а вот насчет функций мне не всё понятно.
По сути если иметь функцию SetPoint в базовом, в производном она уже не поможет,
потому что с помощью неё не установить вторую точку: прямой.

В целом я разделяю ваше мнение пример не куда негодится, а над нормальным преподавателю
влом подумать: за это бабло не платят.
Я тоже где то не подумав ляпнул точка->отрезок, аж стыдно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2010, 21:03
Помогаю со студенческими работами здесь

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать базовый класс Человек. Создать производный класс Сотрудник, содержащий следующие данные
Создать базовый класс Человек. Каждый объект класса должен содержать следующие данные: ФИО, год рождения, пол. Класс должен выполнять...

Создать класс Triad (тройка чисел) и производный класс Time
Создать класс Triad (тройка чисел); определить метод сравнения триад. Определить производный класс Time с полями: час, минута и секунда....

Создать базовый класс - Array и производный класс - Money для работы денежной суммы
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru