6週目の実験指導--タスク4--三角形クラスを設計し、三角形の3つの頂点を入力し、その面積、周長を求めることができる.

2088 ワード

//*(プログラムヘッダコメント開始)*プログラムの著作権とバージョン宣言部分*Copyright(c)2011、煙台大学コンピュータ学部学生*All rights reserved.*ファイル名:三角形クラスを設計し、三角形の3つの頂点を入力し、その面積、周長を求め、直角三角形と等腰三角形であるかどうかを判断します.
*作者:雷恒鑫*完成日:2012年03月26日*バージョン番号:V 1.0*タスクおよび解法の説明部*入力説明:*問題説明:*プログラム出力:
*プログラムヘッダのコメント終了
*/
#include

#include

using namespace std;
class CPoint
{
private:
	double x;  //    
	double y;  //    
public:
	CPoint(double xx=0,double yy=0);
	float getx();
	float gety();
};
class CTriangle
{
public:
	CTriangle(CPoint &X,CPoint &Y,CPoint &Z,int i=0):A(X),B(Y),C(Z),i(i){} //         
	void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);
	float perimeter(void);//        
	float area(void);//           
	void isRightTriangle(); //        
	void isIsoscelesTriangle(); //        
	void Distance(CPoint &p,CPoint &q) ;   //        (      ,      p)
	float  CTriangle::Distance1(CPoint &p,CPoint &q);
private:
	CPoint A,B,C; //   
	float bian[3];
	int i;
	
};
void main()
{
	CPoint c1(0,0),c2(0,1),c3(1,0);
	CTriangle m(c1,c2,c3);
	m.setTriangle(c1,c2,c3);
	m.Distance(c1,c2);
	m.Distance(c1,c3);
	m.Distance(c2,c3);
	cout<

実行結果:
経験の蓄積:
1.オブジェクトの常引用の仕方を学びました.
以下に改良されたプログラムを示します.
#include

#include

using namespace std;
class CPoint
{
private:
	double x;  //    
	double y;  //    
public:
	CPoint(double xx=0,double yy=0);
	double getx();
	double gety();
};
class CTriangle
{
public:
	CTriangle(CPoint &X,CPoint &Y,CPoint &Z,int i=0):A(X),B(Y),C(Z),i(i){} //         
	void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);
	float perimeter(void);//        
	float area(void);//           
	void isRightTriangle(); //        
	void isIsoscelesTriangle(); //        
	void Distance(CPoint &p,CPoint &q) ;   //        (      ,      p)
	float  CTriangle::Distance1(CPoint &p,CPoint &q);
private:
	CPoint A,B,C; //   
	float bian[3];
	int i;
	
};
void main()
{
	CPoint c1(1,1),c2(4,1),c3(1,5);
	cout<

実行結果: