第六周实验指导--任务五--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。

来源:互联网 发布:js根据id给元素赋值 编辑:程序博客网 时间:2024/04/27 23:16

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:
设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。

* 作    者:         雷恒鑫                       
* 完成日期:     2012    年 03      月    26  日
* 版 本 号:       V1.0   
* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 

* 程序头部的注释结束

*/

CTriangle.h

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;};
CTriangle.cpp

#include<iostream>#include"CTriangle.h"#include<cmath>void  CTriangle::Distance(CPoint &p,CPoint &q) {bian[i]=sqrt((p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety()));++i;}float  CTriangle::Distance1(CPoint &p,CPoint &q) {bian[i]=(p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety());++i;return bian[i-1];}float CTriangle::perimeter(void)//计算三角形的周长{float s=0;--i;s=s+bian[i]+bian[i-1]+bian[i-2];return s;}float CTriangle::area(void)//计算并返回三角形的面积{ float s,m;  int i=0;    m=(bian[i]+bian[i+1]+bian[i+2])/2;            s=sqrt(m*(m-bian[i])*(m-bian[i+1])*(m-bian[i+2]));         return s;  }void CTriangle::isRightTriangle()//是否为直角三角形{     i=0;float m,n,c;m=Distance1(A,B);n=Distance1(A,C);c=Distance1(B,C);//m=bian[i];//n=bian[i+1];//c=bian[i+2];if((m+n)==c||(m+c)==n||(c+n)==m){cout<<"此三角形为直角三角形"<<endl;}else{cout<<"此三角形不是直角三角形"<<endl;}}void CTriangle::isIsoscelesTriangle() //是否为等腰三角形{float m,n,c;     i=0;m=bian[i];n=bian[i+1];c=bian[i+2];if(m==n||m==c||n==c){cout<<"此三角形为等腰三角形"<<endl;}else{cout<<"此三角形不是等腰三角形"<<endl;}}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){A=X;B=Y;C=Z;}
CPoint.cpp

#include<iostream>#include"CTriangle.h"double CPoint::getx(){return x;}double CPoint::gety(){return y;}CPoint::CPoint(double xx,double yy){x=xx;y=yy;}
main.cpp

#include<iostream>#include"CTriangle.h"using namespace std;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<<"三角形的周长为:"<<m.perimeter()<<endl;//计算三角形的周长cout<<"三角形的面积为:"<<m.area()<<endl;//计算并返回三角形的面积m.isRightTriangle(); //是否为直角三角形m.isIsoscelesTriangle(); //是否为等腰三角形system("PAUSE");}
运行结果:



经验积累:

1.我学会了如何把一个项目用多个文件的方式组织起来。




原创粉丝点击