# 六周任务4.1

#include <iostream>
#include <cmath>

using namespace std;

class CPoint
{
private :
double x ;
double y ;

public :
CPoint( double xx = 0 , double yy = 0 );//构造函数声明

double Distance ( CPoint p ) const ;//求两点距离函数声明

void input() ;//按x , y的形式输入点

void output() ;//按（x,y)输出点的值

};

CPoint::CPoint( double xx , double yy )
{
x = xx ;
y = yy ;
}

void  CPoint::input()
{
cout << "按 x , y 的形式输入坐标点" << endl ;
cin >> x >> y ;
}

void  CPoint::output()
{
cout<< "点的坐标为：" <<"("<< x <<","<< y <<")"<< endl ;
}

double CPoint::Distance ( CPoint p ) const
{
double h ;
h = sqrt ((x - p.x)*(x - p.x) + (y - p.y)*(y - p.y)) ;
return h ;
}

class CTriangle

{
public:

CTriangle(CPoint &x , CPoint &y , CPoint &z ):A(x),B(y),C(z){}//

void setTriangle (CPoint &x , CPoint &y , CPoint &z );//

double perimeter(void);//

double area(void);//

bool isRightTriangle();//

bool isIsoscelesTriangle();//

private:

CPoint A , B , C ;//
};

/*CTriangle:: CTriangle()

{
A=x ;

B=y ;

C=z ;
}*/

double  CTriangle::perimeter(void)

{
return ( A.Distance(B) + A.Distance(C) + B.Distance(C) ) ;//
}

void  CTriangle::setTriangle (CPoint &x , CPoint &y , CPoint &z )

{
A.input();
B.input();
C.input();
}

double  CTriangle::area(void)

{
double s , m ;

m = ( A.Distance(B) + A.Distance(C) + B.Distance(C) )/2 ;

s = sqrt ( m * ( m - A.Distance(B) ) * ( m - A.Distance(C) ) * ( m - B.Distance(C) ) ) ;//

return s ;
}

bool  CTriangle::isRightTriangle()

{
if ( abs(A.Distance(B)*A.Distance(B)+A.Distance(C)*A.Distance(C)-B.Distance(C)*B.Distance(C))<1e-6||abs( A.Distance(B)*A.Distance(B)+B.Distance(C)*B.Distance(C)-A.Distance(C)*A.Distance(C))<1e-6||abs(A.Distance(C)*A.Distance(C)+B.Distance(C)*B.Distance(C)-A.Distance(B)*A.Distance(B))<1e-6)

return true ;
else

return false ;
}

bool  CTriangle::isIsoscelesTriangle()

{
if((abs(A.Distance(C)*A.Distance(C)-B.Distance(C)*B.Distance(C))<1e-6)||((abs(A.Distance(B)*A.Distance(B)-B.Distance(C)*B.Distance(C))<1e-6)||(abs(A.Distance(B)*A.Distance(B)-A.Distance(C)*A.Distance(C))<1e-6) ))

return true ;
else
return false ;
}

int main()

{
CTriangle ctr1(CPoint(3,6),CPoint(5,7),CPoint(8,6)) ;

//ctr1.setTriangle() ;//

cout<<"该三角形的周长为："<<ctr1.perimeter()<<"，面积为："<<ctr1.area()<<endl<<endl;

cout<<"该三角形"<<(ctr1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;

cout<<"该三角形"<<(ctr1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;

system ("pause") ;

return  0 ;
}



运行结果：

。谢谢老师啦。呵呵

• 本文已收录于以下专栏：

## 六周任务四

• dizzy12
• 2012年03月28日 20:28
• 280

## 六周任务三

• dizzy12
• 2012年03月28日 20:26
• 327

## 六周任务2.2

• dizzy12
• 2012年03月28日 20:25
• 533

## 六周任务3

#include #include using namespace std; enum SymmetricStyle { axisx , axisy , point }; cl...

## Kettle定时任务（V4.1）

Kettle定时任务是通过操作系统的定时计划来实现的，以Windows8为例：操作系统定时任务触发BAT文件执行，BAT文件调用job从而实现定时任务的功能。控制面板》管理工具》任务计划程序》任务计划...

## 六周第二次课 2017.11.21 sed

sed sed对比grep有一个优势，就是替换。 匹配指定的行 将test.txt里的含有root字符的行过滤出来。 sed同时也支持grep里的. * +等符号，不过需要加脱义符...