关闭

第六周实验之三角形

429人阅读 评论(0) 收藏 举报

/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:                             

* 作    者:  李冠绩             

* 完成日期:   2012   年  3 月   28   日

* 版 本 号:          

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:设计一个三角形类,能够输入三角形的三个顶点,求出其面积和周长,并判断是否为直角三角形和等腰三角形,

* 程序输出:

* 程序头部的注释结束

*/

#include<iostream>  

#include<cmath>  

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)  
private: 
 CPoint A,B,C; //三顶点  
    float bian[3]; 
 int i; 
 
}; 
void main() 

 CPoint c1(3,0),c2(1,0),c3(0,5); 
 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(); //是否为等腰三角形  

float CPoint::getx() 

 return x; 

float CPoint::gety() 

 return y; 

CPoint::CPoint(double xx,double yy) 

 x=xx; 
 y=yy; 

void  CTriangle::Distance(CPoint &p,CPoint &q)  

 int m=0; 
 bian[m+i]=sqrt((p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety())); 
 ++i; 

//计算三角形的周长
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()     

 int i=0; 
 int m,n,c; 
 m=bian[i]; 
    n=bian[i+1]; 
 c=bian[i+2]; 
 if((m*m+n*n)==c*c||(m*m+c*c)==n*n||(c*c+n*n)==m*m) 
 { 
  cout<<"此三角形为直角三角形"<<endl; 
 } 
 else 
 { 
  cout<<"此三角形不是直角三角形"<<endl; 
    } 

//是否为等腰三角形 
void CTriangle::isIsoscelesTriangle() 

 float m,n,c; 
 int 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; 
 
}

学会举一反三。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11277次
    • 积分:268
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论