Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108

класс треугольник

21.12.2010, 23:34. Показов 1773. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый вечер)
мне нужно было создать класс треугольник и реализовать операции нахождения площади, периметра,
я сделала это на примере класса прямоугольник, где бралось 2 стороны(a ,b..
и вот у меня появилась где-то ошибка с 3 ей стороной .
помогите!!
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
#ifndef rectangle__h
#define rectangle__h
#include <math.h>
 
class rectangle
{
    private:
        double a, b,c;
    public:
        rectangle();
        rectangle(double, double,double);
        ~rectangle();
        rectangle & operator=(const rectangle & x);
        double square(void);
        double perimeter(void);
        double diagonal(void);
        void print_rectangle(void);
};
 
#endif
 
#ifndef conrectangle__h
#define conrectangle__h
#include <iostream.h>
#include "rectangle.h"
 
rectangle::rectangle()
{
    cout<<"The constructor \"rectangle()\" worked.\n";
    a=1.0;
    b=1.0;
       c=1.0;
};
 
rectangle::rectangle(double x, double y,double z)
{
    cout<<"The constructor \"rectangle(double, double)\" worked.\n";
    a=x;
    b=y;
        c=z;
};
 
rectangle::~rectangle()
{
    cout<<"The destructor \"~rectangle()\" worked.\n";
    a=0.0;
    b=0.0;
        c=0.0;
};
 
rectangle & rectangle::operator=(const rectangle & x)
{
    if(this==&x) return *this;
    this->a=x.a;
    this->b=x.b;
        this->c=z.c;
    return *this;
};
 
double rectangle::square(void)
{
    return ((a*b)/2);
};
 
double rectangle::perimeter()
{
    return a*b*c;
};
                             
 
void rectangle::print_rectangle()
{
        cout<<"a="<<a<<"  b="<<b<<"c="<<c;
    cout<<" m^2   P="<<perimeter()<<" m  ";
    
    
    return;
};
 
#endif
 
#include <iostream.h>
#include "conrectangle.h"
 
void main()
{
    rectangle r1;
    double a,b,c;
    char s[1];
    do
    {
        cout<<"\n  Our rectangle:\n";
        r1.print_rectangle();
        cout<<"Input a, b,c:\n";
        cin>>a>>b>>c;
        rectangle r2(a, b,c);
        cout<<"\n Your rectangle:\n";
        r2.print_rectangle();
        r1=r2;
        cout<<"\n Your rectangle is our now:\n";
        r1.print_rectangle();
        cout<<"Repeat or quit?(r/q)...";
        cin>>s;
    }
    while (s[0]!='q');
    return;
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2010, 23:34
Ответы с готовыми решениями:

Создать базовый класс Треугольник с 2 наследниками: Равносторонний треугольник, Прямоугольный треугольник
Задание звучит так: Нужно создать базовый класс Треугольник с двумя наследующими его классами - равносторонний треугольник (·...

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

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

2
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
22.12.2010, 00:26
Поправьте под свои нужды.
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
#include <cmath>
#include <iostream>
 
class Triangle
{
private:
        double a_, b_, c_;
        const static double kPi = 3.14159265;
public:
        Triangle() : a_(0), b_(0), c_(0) {}
        Triangle(double a, double b, double c) : a_(a), b_(b), c_(c) {}
        Triangle(const Triangle& other) : a_(other.a_), b_(other.b_), c_(other.c_) {}
        // стороны
        inline double a() const { return a_; }
        inline double b() const { return b_; }
        inline double c() const { return c_; }
        inline double set_a(double angle) { return a_ = angle; }
        inline double set_b(double angle) { return b_ = angle; }
        inline double set_c(double angle) { return c_ = angle; }
 
        inline double perimeter() const { return a_+b_+c_; }
        inline double area() const
        {
                return (b_*c_*sin(A()))/2.0;
        }
        inline bool is_possible() const { return ((a_+b_)>c_) || ((b_+c_)>a_) || ((a_+c_)>b_); }
        inline bool is_right() const
        {
                return (((Ad()-90)<0.0001) || ((Bd()-90)<0.0001) || ((Cd()-90)<0.0001));
        }
        // углы, противолежащие соответствующим сторонам
        inline double A() const
        {
                double p = (b_*b_ + c_*c_ - a_*a_) / (2.0*c_*b_);
                return acos(p-static_cast<int>(p));
        }
        inline double B() const
        {
                double p = (-b_*b_ + c_*c_ + a_*a_) / (2.0*a_*c_);
                return acos(p-static_cast<int>(p));
        }
        inline double C() const
        {
                double p = (b_*b_ - c_*c_ + a_*a_) / (2.0*a_*b_);
                return acos(p-static_cast<int>(p));
        }
 
        const double Ad() const { return A()/(kPi/180.); }
        const double Bd() const { return B()/(kPi/180.); }
        const double Cd() const { return C()/(kPi/180.); }
 
        friend std::ostream& operator<< (std::ostream& o, const Triangle& T)
        {
                o << "a: " << T.a() << ", b: " << T.b() << ", c: " << T.c() << ". ";
                if (T.is_possible())
                        o << "Area: " << T.area();
                else
                        o << "Impossible triangle.";
                return o;
        }
};
1
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
22.12.2010, 00:54
rectangle.h.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef rectangle__h
#define rectangle__h
 
#include <math.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class rectangle
{
private:
    double a, b,c;
public:
    rectangle();
    rectangle(const double&, const double&, const double&);
    const rectangle & operator= (const rectangle&);
    double square(void);
    double perimeter(void);
    void print_rectangle(void);
};
 
#endif
rectangle.h.cpp
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
#include "rectangle.h"
 
rectangle::rectangle()
{
    cout << "The constructor \"rectangle()\" worked.\n";
    a = 1.0;
    b = 1.0;
    c = 1.0;
};
 
rectangle::rectangle(const double& x, const double& y, const double& z)
{
    cout << "The constructor \"rectangle(double, double, double)\" worked.\n";
    a = x;
    b = y;
    c = z;
};
 
const rectangle& rectangle::operator=(const rectangle& x)
{
    a = x.a;
    b = x.b;
    c = x.c;
    return *this;
};
 
double rectangle::square(void)
{
    double p = (a + b + c) / 2; 
    return sqrt(p * (p - a) * (p - c) * (p - b));
};
 
double rectangle::perimeter()
{
    return a + b + c;
};
 
 
void rectangle::print_rectangle()
{
    cout << "a = " << a << ", b = " << b << ", c = " << c << endl;
    cout << "P = " << perimeter() << ", S = " << square() << endl;
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "rectangle.h"
 
void main()
{
    rectangle r1;
    double a, b, c;
    do
    {
        cout << "\n  Our rectangle:\n";
        r1.print_rectangle();
        cout << "Input a, b, c:\n";
        cin >> a>> b >> c;
        rectangle r2(a, b, c);
        cout << "\n Your rectangle:\n";
        r2.print_rectangle();
        r1 = r2;
        cout << "\n Your rectangle is our now:\n";
        r1.print_rectangle();
        cout << "Repeat or quit?(r/q)...";
    }
    while (_getch() != 'q');
    return;
};
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2010, 00:54
Помогаю со студенческими работами здесь

Класс треугольник
Здравствуйте, уважаемые форумчане, очень нужна ваша помощь. Задача. Описать указанный в варианте класс и составить коды основных ...

Класс треугольник
Алоха всем!:) В институте задали задачу по классам, класс треугольник, материалу дали 0, вообщем ищи где хочешь, по шарил по инету,...

С++ Класс треугольник
Добрый вечер! Я вновь со своей задачей, извините что снова беспокою. (Разработать класс на языке С++ реализующий методы для работы с...

Класс треугольник
Вечер добрый! Помогите пожалуйста реализовать задачу. Класс треугольник. Проверка введённых данных. Нахождение периметра и площади....

класс «Треугольник»
Задание 1. Создайте класс «Треугольник», данными которого является длины отрезков, составляющих стороны треугольника. Класс имеет...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru