三角形类

#include <iostream>
#include <cstdlib>
#include <Cmath>


using namespace std;


class Triangle
{
public:
    Triangle(double x=1, double y=1, double z=1)//(1)使用带参数构造函数
    {
        setABC(x,y,z);
    }
    Triangle(const Triangle &t) //使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象
    {
setABC(t.a,t.b,t.c); 
    }
    
    void setABC(double x, double y, double z); //置三边的值,注意要能成三角形
    double perimeter(void); //计算三角形的周长
    double area(void); //计算并返回三角形的面积
    bool IsTriangle(double a, double b, double c); //判断三个边长是否能构成三角形 
    void showMessage(void); //显示三角形的边长,周长和面积 
private:
    double a,b,c; //三边为私有成员数据
    
};


int main()
{
double a,b,c; //定义三个边长的值 


/*
cout<<"请输入三条边的边长:"<<endl;
cin>>a>>b>>c;
if (IsTriangle(a,b,c))
cout<<"能构成三角形\n";
else
cout<<"不能构成三角形\n";
*/
Triangle Tri2;   //定义边长为1 1 1的三角形类实例
    Tri2.showMessage();

Triangle Tri1(4.1,5.0,6);  //定义三角形类的一个实例(对象)
    Tri1.showMessage();    
    
    Tri1.setABC(10,5,6); //为三边置初值
    Tri1.showMessage();
    
    Triangle Tri3(Tri1); //调用复制构造函数
    Tri3.showMessage();
    return 0;

}


//请在下面定义Triangle类中的各个成员函数
void Triangle::setABC(double x, double y, double z)
{
    if(IsTriangle(x,y,z))
    {
        a=x;
        b=y;
        c=z;
    }
    else
    {
        cout<<"不能构成三角形"<<endl;
        exit(0);  //直接退出程序的执行
    }
}


double Triangle::perimeter(void)
{
    return a+b+c;
}


/*
海伦公式计算三角形的面积。
p=(边长1+边长2+边长3)/2
s=sqrt(p*(p-a)*(p-b)*(p-c)) 
*/
double Triangle::area(void)
{
    double p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}


/*
判断三条边是否能构成三角形 
*/
bool Triangle::IsTriangle(double a,double b,double c)
{
bool result;

//对输入的边长值进行判断,边长如果小于等于0,则不能构成三角形. 
if (a <=0 || b <=0 || c<=0)
{
cout<<"三角形的边长不能小于等于0."<<endl;
cout<<a<<","<<b<<","<<c<<endl;
result = false;
return result;
}

if((a+b)>c&&(a+c>b)&&(b+c)>a)
{
    result = true;
cout<<"能构成三角形\n"<<endl;
    if(a==b&&b==c)
    {
    cout<<"是等边三角形\n"<<endl;
}
      
    else if(a==b||a==c||b==c)
    {
    cout<<"是等腰三角形\n"<<endl;
}       
    else 
   
        cout<<"是一般三角形\n"<<endl;
}
else 
{
result = false;
cout<<"不能构成三角形\n"<<a<<","<<b<<","<<c<<endl;
}

return result;
    



void Triangle::showMessage(void)
{
cout<<"三角形的三边长分别为:"<<a<<' '<<b<<' '<<c<<endl;
    cout<<"该三角形的周长为"<<perimeter()<<",面积为"<<area()<<endl<<endl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Java实现三角形的示例代码: ```java public class Triangle { public static void main(String[] args) { // 打印三角形 5行 for (int i = 1; i <= 5; i++) { // 一个空白的倒三角形,对应图中1 for (int j = 5; j >= i; j--) { System.out.print(" "); } // 一个直角三角形,对应图中2 for (int j = 1; j <= i; j++) { System.out.print("*"); } // 一个直角三角形,对应图中3 for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } } } ``` 这个实现了一个打印三角形的功能。它包含了三个for循环,第一个循环控制行数,第二个循环打印空白的倒三角形,第三个循环分别打印两个直角三角形。你可以根据需要修改行数和打印字符来实现不同型的三角形。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java代码实现三角形](https://blog.csdn.net/qq_53192419/article/details/125984830)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java实现三角形](https://blog.csdn.net/weixin_61375386/article/details/124234472)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值