六周任务5

原创 2012年03月27日 20:43:33
//任务五 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 ;
}


 

运行结果:

 

 

加油 继续吧!!!!

六周任务4.1

#include #include using namespace std; class CPoint { private : double x ; double y ;...

六周任务四

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • dizzy12
  • dizzy12
  • 2012年03月28日 20:28
  • 279

六周任务三

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • dizzy12
  • dizzy12
  • 2012年03月28日 20:26
  • 326

六周任务2.2

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • dizzy12
  • dizzy12
  • 2012年03月28日 20:25
  • 532

六周任务3

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

六周第二次课 2017.11.21 sed

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

六周 BX1.2改错

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

六周 BX1.1

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

六周三次课(11月22日) 12.8 创建表 12.9/12.10 增加数据 12.11 查询数据

六周三次课(11月22日) 12.8 创建表 12.9/12.10 增加数据 12.11 查询数据

六周第三次课 2017.11.22 awk

9.6/9.7 awk awk支持分段 指定分隔符为:,列出第一段。(打印所有的段就把1改成0) 列出文件所有内容。(不用F指定分隔符,默认是以空白为分隔符) 指定分隔符为:,列出第1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:六周任务5
举报原因:
原因补充:

(最多只允许输入30个字)