我要亲亲抱抱举高高 2024-05-29 12:34 采纳率: 50%
浏览 1
已结题

三面对对象程序编程设计

一、要求3个三角形的面积,请编写一个对象的程序,数据成员为a,b,c三条边,要求实现以下功能:
1、由键盘分别输入三条边的大小
2、计算三角形的面积
3、输出三角形的面积
4、完成输入值能否组成三角形的判定
请编写程序。
程序要求:符合C++语句格式,例如输入输出函数使用cin/cout等。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 12:34
    关注

    引自免费微信小程序:皆我百晓生

    为了满足您的需求,这里是一个简单的C++类定义,用于创建三角形对象并实现所需的功能。我们将这个类命名为Triangle,包含私有数据成员(边长)和公共方法(构造函数、计算面积、判断是否构成三角形以及输出信息)。

    #include <iostream>
    #include <cmath>
    
    class Triangle {
    private:
        double a, b, c; // 边长
    
    public:
        // 构造函数,接收三个参数作为边长
        Triangle(double firstSide, double secondSide, double thirdSide) {
            a = firstSide;
            b = secondSide;
            c = thirdSide;
    
            // 判断输入值能否组成三角形
            if (!isValidTriangle()) {
                std::cout << "输入的边长无法构成三角形。\n";
                exit(0);  // 如果不构成三角形,则退出程序
            }
        }
    
        // 计算三角形面积的方法
        double calculateArea() {
            double s = (a + b + c) / 2.0;
            return std::sqrt(s * (s - a) * (s - b) * (s - c));
        }
    
        // 判断是否构成三角形的方法
        bool isValidTriangle() {
            return a + b > c && a + c > b && b + c > a;
        }
    
        // 输出三角形信息的方法
        void printInfo() {
            std::cout << "三角形的边长分别为: " << a << ", " << b << ", " << c << "\n";
            std::cout << "三角形的面积为: " << calculateArea() << "\n";
        }
    };
    
    int main() {
        double sideA, sideB, sideC;
    
        std::cout << "请输入三角形的三条边的长度:" << std::endl;
        std::cin >> sideA >> sideB >> sideC;
    
        Triangle triangle(sideA, sideB, sideC);
        triangle.printInfo();
    
        return 0;
    }
    

    这段代码首先定义了一个名为Triangle的类,其中包含了三个私有变量a, b, 和c,表示三角形的边长。然后我们定义了构造函数,它接收三个参数,并检查它们是否可以构成一个有效的三角形。接着是calculateArea()方法用于计算三角形的面积,isValidTriangle()用于判断给定的边长是否能构成三角形,以及printInfo()方法用于输出三角形的信息。

    main()函数中,我们从用户那里获取三个边的长度,然后创建一个Triangle对象并调用printInfo()方法来显示结果。如果输入的边长无法构成三角形,程序会输出错误消息并终止执行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 短剧的sdk在哪里接入
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
  • ¥15 不同模型怎么用同一个shader
  • ¥15 安卓启动没有ais proxy与v4l2的log打印
  • ¥15 go怎么读取mdb文件里面的数据
  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作