第3周项目1-三角形累的构造函数(4)

本文介绍了一个使用C++实现的三角形类的设计方法。该类通过构造函数实现了对象的初始化,并提供了计算周长和面积的功能。文章展示了如何利用参数初始化表来优化构造函数。
/*
*copyright (c)2015,烟台大学计算机学院
*All rights reserved
*文件名称:project.cpp
*作者:孙春红
*完成日期:2015年3月28日
*版本号:v1.0
*
*问题描述:设计三角形类,通过增加构造函数,使对象在定
义时能够进行初始化,可以由下面的类声明开始,需要自己实
现相关的成员函数,以及增加要求的构造函数.
(4)在构造函数中使用参数初始化表对数据成员初始化,
这是一种更加提倡的写法。测试函数同(1)。
*输入描述:略。
*程序输出:略。
*/
#include <iostream>
#include <cmath>
using namespace std;
class Triangle
{
public:
    double perimeter();//计算三角形的周长
    double area();//计算并返回三角形的面积
    void showMessage();
    Triangle(double x,double y,double z):a(x),b(y),c(z){}
private:
    double a,b,c; //三边为私有成员数据
};
void Triangle::showMessage()
{
    cout<<"三角形的三边长分别为:"<<a<<' '<<b<<' '<<c<<endl;
    cout<<"该三角形的周长为"<<perimeter()<<",面积为:"<<area()<<endl<<endl;
}
double Triangle::perimeter()
{
    return (a+b+c);
}
    double Triangle::area()
{
    double p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}
int main(){
    Triangle Tri(7,8,9);	//定义三角形类的一个实例(对象)
    Tri.showMessage();
    return 0;
}


运行结果:

知识点总结:

学会使用参数初始化表。

考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)内容概要:本文围绕“考虑柔性负荷的综合能源系统低碳经济优化调度”展开,重点研究在碳交易机制下如何实现综合能源系统的低碳化与经济性协同优化。通过构建包含风电、光伏、储能、柔性负荷等多种能源形式的系统模型,结合碳交易成本与能源调度成本,提出优化调度策略,以降低碳排放并提升系统运行经济性。文中采用Matlab进行仿真代码实现,验证了所提模型在平衡能源供需、平抑可再生能源波动、引导柔性负荷参与调度等方面的有效性,为低碳能源系统的设计与运行提供了技术支撑。; 适合人群:具备一定电力系统、能源系统背景,熟悉Matlab编程,从事能源优化、低碳调度、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究碳交易机制对综合能源系统调度决策的影响;②实现柔性负荷在削峰填谷、促进可再生能源消纳中的作用;③掌握基于Matlab的能源系统建模与优化求解方法;④为实际综合能源项目提供低碳经济调度方案参考。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件设置及碳交易成本的量化方式,可进一步扩展至多能互补、需求响应等场景进行二次开发与仿真验证。
以下是几种用 C 语言实现求三角形面积函数的相关解答: ### 方法一:定义独立函数计算面积 定义一个名为 `triangle_area` 的函数,该函数接受三个参数,分别为三角形的三条边长,使用海伦公式计算三角形的面积。海伦公式为:$area = \sqrt{s(s - a)(s - b)(s - c)}$,其中 $a$、$b$、$c$ 为三角形的三条边长,$s$ 为半长,即 $s = (a + b + c) / 2$。 ```c #include <stdio.h> #include <math.h> // 定义计算三角形面积的函数 double triangle_area(double a, double b, double c) { double s = (a + b + c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c)); } int main() { double a, b, c; printf("请输入三角形的三条边(a,b,c)\n"); scanf("%lf%lf%lf", &a, &b, &c); double area = triangle_area(a, b, c); printf("三角形的面积是: %.2f\n", area); return 0; } ``` 此方法将计算面积的逻辑封装在 `triangle_area` 函数中,使代码结构更清晰,便于复用。 ### 方法二:在主函数中直接计算并添加合法性判断 在主函数中直接实现计算三角形面积的逻辑,并添加判断输入的三条边是否能构成三角形的功能。 ```c #include <stdio.h> #include <math.h> int main() { double a, b, c, p, S; printf("请输入三角形的三条边(a,b,c)\n"); scanf("%lf%lf%lf", &a, &b, &c); if ((a + b > c) && (a + c > b) && (b + c > a)) { p = (a + b + c) / 2; S = sqrt(p * (p - a) * (p - b) * (p - c)); printf("三角形的面积是: %.2f\n", S); } else { printf("无法构成三角形\n"); } return 0; } ``` 该方法在输入三条边后,先判断是否能构成三角形,若能则计算并输出面积,否则给出提示。 ### 方法三:另一种函数封装及合法性判断 定义一个 `Area` 函数,在主函数中调用该函数计算面积,并进行合法性判断。 ```c #include <stdio.h> #include <math.h> float Area(float a, float b, float c, float l) { float s = sqrt(l * (l - a) * (l - b) * (l - c)); // 海伦公式 return s; } int main() { float a = 0; float b = 0; float c = 0; printf("Please enter the three sides of the triangle:>"); // 请输入三角形的三条边长 scanf("%f %f %f", &a, &b, &c); // 用空格分开 // 两边之和大于第三边或者两边之差小于第三边 if ((a + b) > c && (a + c) > b && (b + c) > a) { float l = (a + b + c) / 2; // 半长 float s = Area(a, b, c, l); // 面积 Area printf("三角形的面积是:%.2f\n", s); // 保留两位小数 } else { printf("The side lengths of the input triangle cannot form a triangle"); // 输入的三角形边长无法构成三角形! } return 0; } ``` 此方法同样将计算面积的核心逻辑封装在 `Area` 函数中,在主函数中进行输入和合法性判断。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值