
Добавил:
FuwaFuwa
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2.3 / main
.cpp#include <iostream>
#include <conio.h>
#include <math.h>
class Fig
{
public:
double x0,y0,X0,Y0;
Fig() { x0=0; y0=0; }
Fig(double x, double y) {x0=x; y0=y;}
double getP() {return 0;}
double getS() {return 0;}
void What()
{
printf("\nFig: x0=%7.3lf; y0=%7.3lf;", x0, y0);
}
};
class triangle: public Fig
{
public:
double X1, Y1, X2, Y2;
triangle()
{
X0=0; Y0=0;
X1=1; Y1=2;
X2=2; Y2=2;
}
triangle(double XX0, double YY0, double XX1, double YY1, double XX2, double YY2)
{Y0=XX0; Y0=YY0;
X1=XX1; Y1=YY1;
X2=XX2; Y2=YY2;
}
double getP1()
{
double dX, dY,dy2;
dX=sqrt(((X1-X0)*(X1-X0))+((Y1-Y0)*(Y1-Y0)));
dY=sqrt(((X2-X1)*(X2-X1))+((Y2-Y1)*(Y2-Y1)));
dy2=sqrt(((X0-X2)*(X0-X2))+((Y0-Y2)*(Y0-Y2)));
return dX+dY+dy2;
}
double getS1()
{
double a, b,c,p;
a=sqrt(((X1-X0)*(X1-X0))+((Y1-Y0)*(Y1-Y0)));
b=sqrt(((X2-X1)*(X2-X1))+((Y2-Y1)*(Y2-Y1)));
c=sqrt(((X0-X2)*(X0-X2))+((Y0-Y2)*(Y0-Y2)));
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
void What()
{
printf("\ntriangle: (%7.3lf; %7.3lf), (%7.3lf; %7.3lf), (%7.3lf; %7.3lf)", X0, Y0, X1, Y1,X2, Y2);
}
};
using namespace std;
int main(int argc, char** argv) {
setlocale(0, "");
//.............................................
triangle t(0,0, 1, 2, 2, 2);
double P1;
double S1;
t.What();
S1=t.getS1();
printf("\nL=%7.3lf\nS=%7.3lf", P1,S1);
int choice=0;
while(1)
{
cout<<"\n\n1. Vvod triangle \n2.triangle What \n3. Get P-triangle \n4.Get S-triangle \n5. Exit";
choice=getch();
switch(choice)
{
case '1':
printf("Vvedite levuy niznuy tochku");
cout<<"\nx0="; cin>>t.X0;
cout<<"y0="; cin>>t.Y0;
printf("Vvedite verhnuy tochku");
cout<<"x1="; cin>>t.X1;
cout<<"y1="; cin>>t.Y1;
printf("Vvedite pravuy niznuy tochku");
cout<<"x2="; cin>>t.X2;
cout<<"y2="; cin>>t.Y2;
break;
case '2':
t.What();
break;
case '3':
cout<<"\nP="<<t.getP1();
break;
case '4':
cout<<"\nS="<<t.getS1();
break;
default:
goto mEnd;
break;
} // end swtch
}// end while
mEnd:
return 0;
}