第06周:项目三:多文件组织

/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 作    者:王颖
* 完成日期:2014 年 4 月 4 日
* 版 本 号:v1.0
* 输入描述: 无
* 问题描述:多文件组织项目三
* 程序输出:略
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
#include<cmath>
#include "CPoint.h"
#include "CTriangle.h"
using namespace std;
CPoint::CPoint(double xx,double yy)
{
    x=xx;
    y=yy;
}
double CPoint::distance1(CPoint p)
 {
     double d;
     d=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
     return d;
 }
int main()
{
    CPoint X(4,5),Y(1,3),Z(6,8);
     CTriangle s(X,Y,Z);
    cout<<"三角形的周长为:"<<s.perimeter()<<"三角形的面积为:"<<s.area()<<endl;
    cout<<"三角形"<<(s.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;
    cout<<"三角形"<<(s.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;
    return 0;
}
CPoint.h
#ifndef CPOINT_H_INCLUDED
#define CPOINT_H_INCLUDED

class CPoint
{
private:
    double x;  // ºá×ø±ê
    double y;  // ×Ý×ø±ê
public:
    CPoint(double xx=0,double yy=0);
    double distance1(CPoint p);
};


#endif // CPOINT_H_INCLUDED

CTriangle.h

#ifndef CTRIANGLE_H_INCLUDED
#define CTRIANGLE_H_INCLUDED
#include "CPoint.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);//
  float perimeter(void);//计算三角形的周长
  float area(void);//计算并返回三角形的面积
  bool isRightTriangle(); //是否为直角三角形
  bool isIsoscelesTriangle(); //是否为等腰三角形
private:
  CPoint A,B,C; //三顶点
};

#endif // CTRIANGLE_H_INCLUDED

make.cpp

#include <iostream>
#include<cmath>
#include "CTriangle.h"
using namespace std;
void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)
 {
     A=X;
     B=Y;
     C=Z;
 }
 float CTriangle::perimeter(void)
 {
     CPoint t;
     double d;
     d=B.distance1(A)+A.distance1(C)+C.distance1(B);
     return d;
 }
 float CTriangle::area(void)
 {
     CPoint q;
     double p,s,a=0,b=0,c=0;
     a=C.distance1(B);
     b=A.distance1(C);
     c=B.distance1(A);
     p=(a+b+c)/2;
     s=sqrt(p*(p-a)*(p-b)*(p-c));
     return s;
 }
 bool CTriangle::isRightTriangle() //是否为直角三角形
 {
     CPoint t;
     double a=0,b=0,c=0;
     a=C.distance1(B);
     b=A.distance1(C);
     c=B.distance1(A);
     bool flag=false;
     if(((a*a+b*b)==c*c)||((a*a+c*c)==b*b)||((b*b+c*c)==a*a))
     {
              flag=true;

     }
     return flag;
 }
   bool CTriangle::isIsoscelesTriangle() //是否为等腰三角形
   {
       CPoint t;
       bool flag=false;
       if(B.distance1(A)==A.distance1(C)||A.distance1(B)==B.distance1(C)||C.distance1(A)==C.distance1(B))
   flag=true;
   return flag;
   }

第06周:项目三:多文件组织_第1张图片

你可能感兴趣的:(C++,类,对象,Class,结构)