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

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

Восстановить пароль Регистрация
 
Studentka
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
21.12.2010, 23:34     класс треугольник #1
добрый вечер)
мне нужно было создать класс треугольник и реализовать операции нахождения площади, периметра,
я сделала это на примере класса прямоугольник, где бралось 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;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 23:34     класс треугольник
Посмотрите здесь:

C++ Класс треугольник
класс «Треугольник» C++
Класс Треугольник на С++ C++
C++ Класс треугольник
Реализовать класс треугольник C++
С++ Класс треугольник C++
Класс треугольник(3 объекта) C++ C++
Разработать класс треугольник C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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;
        }
};
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 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;
};
Yandex
Объявления
22.12.2010, 00:54     класс треугольник
Ответ Создать тему
Опции темы

Текущее время: 11:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru