第六周实验之三角形

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

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

* 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 Junit 测试三角形的小程序: ```java import static org.junit.Assert.assertEquals; import org.junit.Test; public class TriangleTest { @Test public void testTriangle() { Triangle triangle = new Triangle(3, 4, 5); assertEquals("This is a right-angled triangle.", triangle.getType()); Triangle triangle2 = new Triangle(3, 3, 3); assertEquals("This is an equilateral triangle.", triangle2.getType()); Triangle triangle3 = new Triangle(3, 3, 4); assertEquals("This is an isosceles triangle.", triangle3.getType()); Triangle triangle4 = new Triangle(3, 4, 6); assertEquals("This is not a triangle.", triangle4.getType()); } } class Triangle { private int a, b, c; public Triangle(int a, int b, int c) { this.a = a; this.b = b; this.c = c; } public String getType() { if (a + b <= c || a + c <= b || b + c <= a) { return "This is not a triangle."; } else if (a == b && b == c) { return "This is an equilateral triangle."; } else if (a == b || b == c || a == c) { return "This is an isosceles triangle."; } else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) { return "This is a right-angled triangle."; } else { return "This is a scalene triangle."; } } } ``` 这个程序包含一个 `Triangle` 类和一个 `TriangleTest` 类。`Triangle` 类用于检查三角形的类型,`TriangleTest` 类包含了 Junit 测试用例。 在 `TriangleTest` 类中,我们创建了四个不同的三角形并分别检查它们的类型是否正确。我们使用 `assertEquals` 方法来比较实际输出和期望输出是否相等。 在 `Triangle` 类中,我们定义了一个 `getType` 方法来检查三角形的类型。如果三边不能构成一个三角形,我们返回字符串 "This is not a triangle.",否则我们使用一系列的 if 语句来判断三角形的类型并返回相应的字符串。 这个程序可以帮助你了解如何使用 Junit 来测试你的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值