# 六周任务5

//任务五 main.cpp

#include <iostream>
#include <cmath>
#include "class.h"

using namespace std;

int main()

{
CTriangle ctr1(CPoint(6,6),CPoint(9,7),CPoint(10,5)) ;

//ctr1.setTriangle() ;//

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

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

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

system ("pause") ;

return  0 ;
}




// class.h

//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)输出点的值

};

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 ;//
};



// Triangle.cpp

#include "class.h"
#include <cmath>

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 ;
}


// CPoint.cpp

#include <iostream>

#include "class.h"

#include <cmath>

using namespace std ;

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 ;
}

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

## 六周三次课

1、  awk命令：   -F   #指定分隔符 OFS   #print的时候指定的分隔符 NR    #表示行 NF    #表示段 awk –F ‘:’ ‘{print \$1}’ t...
• csdn_chenc
• 2018年01月17日 17:50
• 12

## 六周一次课

1、  正则__grep：   正则就是一串有规律的字符串 掌握好正则对于编写shell脚本有很大帮助 各种编程语言中都有正则，原理是一样的   grep [-cinvABC] ‘word...
• csdn_chenc
• 2018年01月15日 14:48
• 15

## 六周第三次课 2017.11.22 awk

9.6/9.7 awk awk支持分段 指定分隔符为：，列出第一段。（打印所有的段就把1改成0） 列出文件所有内容。（不用F指定分隔符，默认是以空白为分隔符） 指定分隔符为：，列出第1...
• wtyufdssyh
• 2017年11月22日 22:47
• 33

## hiho一下 第十六周 RMQ-ST算法

RMQ (Range Minimum/Maximum Query)问题：对于长度为N的数列a，若干次查询，每次给出R和L，a[L——R]的最小(大）值，也就是说，RMQ问题是指求区间最值的问题。 此...
• ZzebraA
• 2016年04月08日 21:02
• 206

## 第十六周任务1

• a6809918
• 2012年06月06日 16:39
• 1727

## 第十六周任务3

• yuchenziyou
• 2012年06月14日 12:40
• 3136

## 第十六周任务二

/*【任务2】学生成绩排序 文件score.dat 中保存的是100 名学生的姓名和C++课、高数和英语成绩。 （1）定义学生类，其中包含姓名、C++课、高数和英语成绩及总分、均分数据成员，成员函数根...
• ErOyL
• 2012年06月06日 18:04
• 1800

## 六周任务三

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

## 第十六周 任务三

#include #include #include #include using namespace std; class Student { public: ...
• hb9206
• 2012年06月04日 18:48
• 756

## 第十六周任务：指来指去

/*  * 程序的版权和版本声明部分  * Copyright (c)2012, 烟台大学计算机学院学生  * All rightsreserved.  * 文件名称： 2.cpp  * 作    者...
• ycz19930423
• 2012年12月17日 08:12
• 182

举报原因： 您举报文章：六周任务5 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)