main函數
/*
*程序的版權和版本聲明部分:
*Copyright(c)2014,煙台大學計算機學院學生
*All rights reserved.
*文件名稱:
*作者:趙加響
*完成日期:2014 年 4 月 1 日
*版本號:v1.0
*對任務及求解方法的描述部分:
*輸入描述:三個點坐標
*問題描述:本項目設計一個三角形類,其數據成員不再是三角形三條邊的邊長,而是三角形的三個頂點。
利用設計的三角形類,輸入三角形的三個頂點,求出其面積、周長,並判斷其是否為直角三角形和等腰三角形。
*/
#include
#include
#include "cpoint.h"
#include "ctriangle.h"
using namespace std;int main()
{
CPoint a,b,c;
CTriangle C(a,b,c);
cout<<"輸入頂點坐標:"<
cpoint.cpp函數
#include
#include
#include "cpoint.h"
#include "ctriangle.h"
double CPoint::Distance(CPoint p) const
{
return sqrt(pow(x-p.x,2)+pow(y-p.y,2));
}
void CTriangle::setbian()
{
a=A.Distance(B);
b=C.Distance(B);
c=A.Distance(C);//A點到B點的距離 即c邊的長,,,
}
float CTriangle::perimeter()
{
return a+b+c;
}
float CTriangle::area()
{
return 0.25*sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a));
}
bool CTriangle::isRightTriangle()
{
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
return true;
else
return false;
}
bool CTriangle::isIsoscelesTriangle()
{
if(a==b||a==c||b==c)
return true;
else
return false;
}
cpoint.h函數
#ifndef CPOINT_H_INCLUDED
#define CPOINT_H_INCLUDED
#include
using namespace std;
class CPoint
{
private:
double x;
double y;
public:
CPoint(double xx=0,double yy=0):x(xx),y(yy) {}
double Distance(CPoint p) const;
void input()
{
cin>>x>>y;
}
};
#endif // CPOINT_H_INCLUDED
ctriangle.h函數
#ifndef CTRIANGLE_H_INCLUDED
#define CTRIANGLE_H_INCLUDED
class CTriangle
{
public:
CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z) {} //給出三點的構造函數
void setTriangle(CPoint &X,CPoint &Y,CPoint &Z)
{
A=X;
B=Y;
C=Z;
}
void setbian();
float perimeter(void);//計算三角形的周長
float area(void);//計算並返回三角形的面積
bool isRightTriangle(); //是否為直角三角形
bool isIsoscelesTriangle(); //是否為等腰三角形
private:
CPoint A,B,C; //三頂點
double a,b,c;//三個邊
};
#endif // CTRIANGLE_H_INCLUDED

感悟:開始時把兩個類的程序放在了一起 老是不對 ,後來發現 應該分開來著