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

Создать объявление класса и разработать программу-драйвер, которая продемонстрирует работу класса. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию http://www.cyberforum.ru/cpp-beginners/thread262292.html
Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию. Следует предусмотреть возможность выбора пользователем режима работы: добавление или отображение данных. Обеспечить хранение данных в файле в виде структурированной таблицы, для этого следует использовать средства форматирования. Из клавиатуры вводится название товара и его цена Мое решение, но...
C++ найти суму ряда Нужно найти суму ряда з заданою точностью e=10^-4 (тоисть это 0.001).Члены меньше e не считать.Показать как получена рекурсивна формула U_k+1 Ряд:x/1!-x^3/3!+x^5/5!-..... Рекурсивная формула http://s16.***********/i190/1103/14/45e49352882d.jpg Функция:sin(x) Вот набросал, незнаю правильно или нет.Помогите пожалуйста. #include<stdio.h> #include<conio.h> #include<math.h> http://www.cyberforum.ru/cpp-beginners/thread262275.html
C++ Построить на экране график функции подвижным визирем ис рисунка.
Составить программу, которая строит на экране график функции подвижным визирем ис рисунка. (Кривая графика появляется из кончика стрелки; скорость движения стрелки 1 ... 2,5 см / сек; стрелка - полупрозрачная; движение визиря сопровождается звуковым сигналом переменной тональности).
Построить на экране кривую по заданному параметрическому уравнению. C++
Построить на экране кривую по заданному параметрическому уравнению. Режим дисплея графический (graphics_mode VGAHI 640X480). График кривой выводить линией, характеристики которой (стиль, толщина, цвет) задавать произвольно.
C++ ошибка на Линуксе http://www.cyberforum.ru/cpp-beginners/thread262240.html
у меня такая проблема, на обычном Visual Studio программа работает верно, когда запускаю её на Линуксе, выдаётся ошибка... вся проблема в том, что на Линксе из текстового файла не считывается \n. Точнее он считывается, но не распознаётся, т.к. в switch (ch) { case '\n': cout<<"ok\n"; default: throw 1; }
C++ Как считать из *.txt строки? надо в переменную записывать строки и обрабатывать их. Но как узнать конец файла? подробнее

Показать сообщение отдельно
IrineK
Заблокирован
24.03.2011, 00:35     Создать объявление класса и разработать программу-драйвер, которая продемонстрирует работу класса.
Может, пригодится:
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <iostream>
#include <math.h>
using namespace std;
 
class Vector
{
private: 
    double _xA,_yA,_xB,_yB;
    double _dX,_dY;
    
public:
    Vector(double xA, double yA, double xB, double yB):
      _xA(xA),_yA(yA),_xB(xB),_yB(yB),_dX(xB-xA),_dY(yB-yA){} 
    Vector():_xA(0),_yA(0),_xB(0),_yB(0),_dX(0),_dY(0) {}
    ~Vector(){}
 
    void SetVector(double xA, double yA, double xB, double yB)
    {   _xA=xA;_yA=yA;_xB=xB;_yB=yB;
        _dX = xB-xA; _dY = yB-yA;
    }
 
    double GetVectorDX(){return _dX;}
    double GetVectorDY(){return _dY;}
        
    Vector &operator =(Vector& MN)
    {   if(&MN!=this)
        {   _xA=MN._xA;
            _yA=MN._yA;
            _xB=MN._xB;
            _yB=MN._yB;
            _dX=MN._dX;
            _dY=MN._dY;
        }
        return *this;
    }
 
    double Length()
    {   return sqrt(_dX*_dX + _dY*_dY);
    }
 
    friend double ScalarProduct(Vector &a, Vector &b)
    {   return a._dX*b._dX+a._dY*b._dY;
    }
 
    friend double Angle(Vector &a, Vector &b)
    {   return acos(ScalarProduct(a,b)/(a.Length()*b.Length()));
    }
 
};
 
 
class Triangle
{
private:
    Vector _AB,_AC,_BC;
 
public:
        Triangle(double xA, double yA, double xB, double yB, double xC, double yC):
            _AB(xA,yA,xB,yB), _AC(xA,yA,xC,yC), _BC(xB,yB,xC,yC){}
        Triangle():_AB(0,0,0,0),_AC(0,0,0,0), _BC(0,0,0,0) {}
        ~Triangle(){}
 
    void SetTriangle(double xA, double yA, double xB, double yB, double xC, double yC)
    {   Vector AB(xA,yA,xB,yB);
        Vector AC(xA,yA,xC,yC);
        Vector BC(xB,yB,xC,yC);
        _AB = AB;
        _AC = AC;
        _BC = BC;
        bool find = this->FoundErr();
    }
 
    bool FoundErr()
    {   double a =_BC.Length(),b = _AC.Length(),c = _AB.Length();
        if(a*b*c==0)
        {   cout<<"ERROR: zero side\n";
            return true;
        }
        else if(a+b<=c || a+c<=b || b+c<=a)
        {   cout<<"ERROR: one side too long\n";
            return true;
        }
        return false;
    }
 
    double Square()
    {   bool find = this->FoundErr();
        if(!find)
            return 0.5*fabs(_AB.GetVectorDX()*_AC.GetVectorDY()-_AC.GetVectorDX()*_AB.GetVectorDY());
        return 0;
    }
 
    bool isRectangular()
    {   bool find = this->FoundErr();
        if(!find)
            if(ScalarProduct(_AB,_AC)==0 || ScalarProduct(_AB,_BC)==0 
                || ScalarProduct(_BC,_AC)==0) return true;
        return false;
    }
 
    bool isEquilateral()
    {   bool find = this->FoundErr();
        if(!find)
        {
            if(_AB.Length()==_AC.Length() && _AC.Length()==_BC.Length()) return true;
        }
        return false;
    }
 
    bool isIsosceles()
    {   bool find = this->FoundErr();
        if(!find)
            if(_BC.Length()==_AC.Length() || _BC.Length()==_AB.Length() 
                || _AC.Length()==_AB.Length()) return true;
        return false;
    }
};
 
int main()
{   Vector L0;
    cout<<"Length of 0 vector: "<<L0.Length()<<endl;
    L0.SetVector(1,1,5,5);
    cout<<"Length of set vector: "<<L0.Length()<<endl;
 
    Vector L1(1,1,-5,-5);
    cout<<"Scalar Product: "<<ScalarProduct(L0,L1)<<endl;
    cout<<"Angle (Pi): "<< Angle(L0,L1)<<endl;
 
    Triangle T0;
    cout<<"Square of 0 triangle: "<<T0.Square()<<endl;
    T0.SetTriangle(5,0,0,5,0,0);
    cout<<"Square of set triangle T0: "<<T0.Square()<<endl;
    cout<<"Is rectangular: "<<T0.isRectangular()<<endl;
    cout<<"Is isosceles: "<<T0.isIsosceles()<<endl;
    cout<<"Is Equilateral: "<<T0.isEquilateral()<<endl;
 
    Triangle T1(1,1,5,5,9,1);
    cout<<"\nSquare of another triangle T1: "<<T1.Square()<<endl;
    cout<<"Is rectangular: "<<T1.isRectangular()<<endl;
    cout<<"Is isosceles: "<<T1.isIsosceles()<<endl;
    cout<<"Is Equilateral: "<<T1.isEquilateral()<<endl;
    
    cin.get();
    return 0;
}
Осталось только периметр дописать.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru