设计一个类Trig,给定三角形的三条边长x,y,z,包含一个友元函数计算两个三角形面积之和。

编写一个程序,设计一个类Trig,给定三角形的三条边长x,y,z,包含一个友元函数计算两个三角形面积之和。
#include
using namespace std;
class Trig2;
class Trig1 {
public:
Trig1(int xx1 = 0, int yy1 = 0, int zz1 = 0) : x1(xx1), y1(yy1), z1(zz1) {}
int getX() { return x1; }
int gerY() { return y1; }
int gerZ() { return z1; }
friend float dist(Trig1 &T1, Trig2 &T2);
private:
int x1, y1 ,z1;
};
class Trig2 {
public:
Trig2(int xx2 = 0, int yy2 = 0, int zz2 = 0) : x2(xx2), y2(yy2), z2(zz2) {}
int getX() { return x2; }
int gerY() { return y2; }
int gerZ() { return z2; }
friend float dist(Trig1 &T1, Trig2 &T2);
private:
int x2, y2, z2;
};
float dist(Trig1 &T1, Trig2 &T2)
{
double area1 = (T1.x1 + T1.y1 + T1.z1) / 2.0;
double area2 = (T2.x2 + T2.y2 + T2.z2) / 2.0;
return static_cast(area1 + area2);
}
void main()
{
Trig1 T1(1,2,3);
Trig2 T2(4,5,2);
cout << dist(T1, T2) << endl;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,但我无法提供完整的代码来控制硬件设备。然而,我可以给你一个大致的思路来实现该功能。你可以根据以下步骤编写代码: 1. 设置引脚和端口:将超声波模块连接到适当的引脚上,并将两个直流电机连接到单片机的输出引脚上。 2. 初始化:设置超声波模块和电机的引脚为输入或输出。 3. 超声波测距:使用超声波模块发送信号,然后等待接收到回波信号。通过计算回波时间或距离,可以得到障碍物与小车的距离。 4. 避障功能:根据测得的距离,判断是否需要避开障碍物。例如,如果距离小于设定的阈值,则执行避障程序。 5. 控制电机:根据需要,控制两个直流电机的转动方向和速度,以实现小车的运动。 下面是一个简单的伪代码示例,你可以根据自己的具体需求进行修改: ```C #include <reg51.h> // 定义超声波引脚和电机引脚 sbit trig = P1^0; sbit echo = P1^1; sbit motor1 = P2^0; sbit motor2 = P2^1; void delay(unsigned int ms) { unsigned int i, j; for (i = 0; i < ms; i++) for (j = 0; j < 1000; j++); } void main() { while (1) { // 发送超声波信号 trig = 1; delay(10); trig = 0; // 等待回波信号 while (!echo); // 计算距离 // ... // 判断是否需要避障 if (distance < threshold) { // 避障程序 // ... // 控制电机运动 motor1 = 1; // 设置电机1转动方向 motor2 = 0; // 设置电机2转动方向 // 控制电机速度 // ... } } } ``` 请注意,以上代码只是一个简单的示例,并没有完整的超声波测距和避障算法。你需要根据自己的实际情况进行进一步的开发和优化。另外,确保正确连接硬件,并根据你的实际电路配置进行引脚定义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值