0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 10
|
|
1 | |
Работа с классами10.04.2015, 16:48. Показов 362. Ответов 0
Метки нет (Все метки)
Помогите найти косяки в программе.Задание:Дан класс figura.Найти площадь трапеции.данные высота и основания.С использованием конструктора по умолчания.с параметрами.копирования.и деструктор.
дано три файла. figura.h #ifndef FIGURA_H #define figura_h class figura { int a, b, c; double p; public: double s(); void In(); double R(figura &H); void Out(); figura operator++ (); figura& operator++ (int d); figura operator+ (figura &V); figura operator* (figura &V); figura operator= (figura &V); bool operator== (figura &V); figura(); figura(double f); figura(figura & A); ~figura(){}; }; #endif figura.cpp : #include <iostream> #include <Math.h> #include <time.h> #include <stdlib.h> #include "figura.h" using namespace std; void figura::In() { cout << "Введите основания и высоту: " << endl; cout << "a="; cin >> a; cout << "b="; cin >> b; cout << "c="; cin >> c; return; } void figura::Out() { cout << "(" << a << ";" << b << ";" << c <<")" << endl; return; } double figura::R(figura &h) { if (((a != 0) || (b != 0) || (c != 0)) ) {cout<< "Такая трапеция существует" << endl; p = (0.5*(a + b) * c);} else {cout<<"Трапеции нет"<<endl; p=0; return p ; } } figura& figura::operator++(int d) { ++a; ++b; ++c; return *this; } figura figura::operator++() { figura temp(*this); ++a; ++b; ++c; return temp; } figura figura::operator+ (figura &V) { figura M; M.a=a+V.a; M.b=b+V.b; M.c=c+V.c; return M; } figura figura:: operator* (figura &V) {figura M; M.a=a*V.a; M.b=b*V.b; M.c=c*V.c; return M; } figura figura:: operator= (figura &V) { a=V.a; b=V.b; c=V.c; return *this; } bool figura::operator== (figura &V) { if( (a==V.a)&&(b==V.b )) return true; else return false; } figura::figura() { srand(time(NULL)); a=rand()%201-100; b=rand()%201-100; c=rand()%201-100; } figura::figura(double f) { a=f; b=f; c=f; } main.cpp #include <iostream> #include "figura.h" using namespace std; int main() { setlocale(0, ""); double J,f=5; figura A,B,C,Q,D(f),K(A),Z; Z.In(); Z.Out(); cout << "площадь тропеции: " << A.s()<< endl; C.Out(); cout<<"rabota konstructora s parametramy"<<endl; D.Out(); cout<<"rabota konstructora kopirovaniya"<<endl; K.Out(); cout<<"\n ввод основания A"<<endl; A.In(); cout<<"\n вывод основания А "<<endl; A.Out(); cout<<"ввод основания B"<<endl; B.In(); cout<<"\n вывод основания B"<<endl; B.Out(); cout<<" ввод высоты C"<<endl; Q.Out(); cout<<"вывод высоты C"<<endl; J=A.R(B); cout<<"\n расстояние между основаниями: "<<"\n"<<J; cout<<"\n работа переопределена ++: "<<endl; J=0; J=(++A).R(B++); cout<<"\n Другое расстояние между основаниями: "<<"\n"<<J; cout<<"\n работа ++ прифексной: "<<endl<<"новое основание A: "; A.Out(); cout<<"\n работа ++ постфиксная: "<<endl<<"новое основание B: "; B.Out(); cout<<"\n Работа переопределена +: "<<endl<<"A+B: "; figura L(A+B); L.Out(); cout<<"\n Работа переопределена *: "<<endl<<"A*B: "; figura k(A*B); k.Out(); cout<<"\n Работа переопределена ==: "<<endl; if (A==B) cout<<"Основания равны"<<endl; else cout<<"Основания не равны"<<endl; cout<<"\n Работа в норме =: "<<endl<<"A=B: A= "; A=B; A.Out(); system("pause"); return 0; } figura::figura(figura & A) { a=A.a; b=A.b; c=A.c; }
0
|
10.04.2015, 16:48 | |
Ответы с готовыми решениями:
0
Работа с классами Работа с классами Работа с классами Работа с классами |
10.04.2015, 16:48 | |
10.04.2015, 16:48 | |
Помогаю со студенческими работами здесь
1
Работа с классами Работа с классами Работа с классами Работа с классами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |