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

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

Войти
Регистрация
Восстановить пароль
 
Studentka
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
#1

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

21.12.2010, 23:34. Просмотров 1068. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 23:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос класс треугольник (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
22.12.2010, 00:26 #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
#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
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
22.12.2010, 00:54 #3
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2010, 00:54
Привет! Вот еще темы с ответами:

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

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

Класс Треугольник на С++ - C++
Помогите пожалуйста написать три конструктора для класса &quot;треугольник&quot; : 1)класс задаётся либо длинами 3х сторон, 2)либо стороной и двумя...

Разработать класс треугольник - C++
ПОМОГИТЕ РЕШИТЬ - Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе методы проверки существования...


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

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

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