6-3 点和线段 (20 分)

这篇博客介绍了如何在C++中实现表示点的CPoint类和表示线段的CLine类。CPoint类包含坐标数据成员以及构造函数,而CLine类则包含了两个CPoint对象作为线段的端点,并提供了计算线段长度的GetLen函数和计数器ShowCount。在主函数示例中,展示了如何创建CPoint对象,构造CLine对象并计算线段长度,以及输出CLine对象的计数。
摘要由CSDN通过智能技术生成

已知表示点的类CPoint和表示线段的CLine类, 类CPoint包含:(1)表达点位置的私有数据成员x,y (2)构造函数及复制构造函数      类CLine包含: (1)两个CPoint的点对象(该两点分别为线段的两个端点) (2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化) (3)公有成员函数GetLen,其功能为返回线段的长度,返回值类型为整型 (4)类属性成员count用于记录创建的CLine类对象的个数,及用于显示count值的ShowCount函数; 要求: (1)实现满足上述属性和行为的CPoint类及CLine类定义; (2)保证如下主函数能正确运行。

裁判测试程序样例:

/* 请在这里填写答案 */
int main(){
     int x,y;
     cin>>x>>y;
     CPoint p1(x,y);
     cin>>x>>y;
     CPoint p2(x,y);
     CLine line1(p1,p2);
     cout<<"the length of line1 is:"<<line1.GetLen()<<endl;
     CLine line2(line1);
     cout<<"the length of line2 is:"<<line2.GetLen()<<endl;
     cout<<"the count of CLine is:"<<CLine::ShowCount()<<endl; 
     return 0;
}

输入样例:

在这里给出一组输入。例如:

1 1 
4 5

输出样例:

在这里给出相应的输出。例如:

The length of line1 is:5
The length of line2 is:5
The count of Line is:2

 

 

完整代码:

#include <iostream>
#include <cmath>
using namespace std;
/* 请在这里填写答案 */
class CPoint{
    int x,y;
public:
    CPoint(){
        x = 0;
        y = 0;
    }
    CPoint(int a,int b){
        x = a;
        y = b;
    }
    CPoint(const CPoint &obj){   //拷贝构造函数
        x = obj.x;
        y = obj.y;
    }

    int getx(){
        return x;
    }
    int gety(){
        return y;
    }  //后面GetLine()函数会用到

};

class CLine:public CPoint
{
    CPoint p1,p2;
    static int count;
public:
    CLine(const CLine &l)     //给类CLine定义拷贝构造函数
    {
        p1 = l.p1;         
        p2 = l.p2;            
        count++;
    }

    CLine(CPoint a,CPoint b)     // //给类CLine定义构造函数
    {
        p1 = a;
        p2 = b;
        count++;
    }

    int GetLen()
    {
        return sqrt(pow(p1.getx()-p2.getx(),2) + pow(p1.gety()-p2.gety(),2));
    }
    static int ShowCount()
    {
        return count;
    }
};

int CLine::count = 0;
int main() {
    int x, y;
    cin >> x >> y;
    CPoint p1(x, y);
    cin >> x >> y;
    CPoint p2(x, y);
    CLine line1(p1, p2);        //调用构造函数  CLine(CPoint a,CPoint b)

//{ p1=a; p2=b;}
    cout << "the length of line1 is:" << line1.GetLen() << endl;
    CLine line2(line1);         //调用拷贝构造函数,也可以写成CLine line2=line1;

//CLine (const CLine &l) //{p1=l.p1;  p2=l.p2;}

//为什么要加const?加上const,防止对引用类型参数值的意外修改。为了安全,所以加不加都一样,都不会报错

//拷贝构造函数的参数使用引用类型不是为了减少一次内存拷贝, 而是避免拷贝构造函数无限制的递归下去。


    cout << "the length of line2 is:" << line2.GetLen() << endl;
    cout << "the count of CLine is:" << CLine::ShowCount() << endl;
    return 0;
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要在Visio中画10-20系统的脑电图,需要进行以下步骤: 1. 打开Visio软件,并选择流程图模板。 2. 在画布中心区域创建一个大圆形,表示头部。 3. 根据10-20国际电极布系统,在头部上绘制标准的电极位,共计19个。这些的位置要遵循制定的标准,可以参考相关的资料进行绘制。 4. 将每个电极连上对应的导线,连接的方式可以使用线段或箭头等符号来表示。此时要注意线段的颜色和宽度,以及箭头的方向和风格,使其符合规范。 5. 在画布的另一侧,绘制一条平行于头部的虚线,表示参考。参考的位置应该和电极布系统相对应,并且标明标准位置。 6. 在参考旁边绘制一个方框,用来标识脑电记录仪器的类型和参数。框内需要填写设备名称、品牌、型号、采样率等信息。 7. 在图表的左下角标注图例,解释电极和导线的符号含义,以便其他人能够正确理解图表。 8. 最后,对画布进行适当的排版和美化,使其易于阅读、美观整洁。 以上就是绘制10-20系统脑电图的基本步骤和方法,需要注意的是,绘图过程中需要遵循严格的规范和标准,确保图表的准确性和可靠性。同时,还应该熟悉Visio软件的功能和操作,以便更好地完成绘图任务。 ### 回答2: 您可以按照以下步骤使用Microsoft Visio绘制10-20系统的脑电图: 1. 打开Visio软件,并在“新建”的选项中选择“基本流程图”。 2. 在绘制画布中,选择“流程图”库,并拖动适当的图形,如初始/终止、过程和判断符号。 3. 在画布上放置第一个符号,代表开始了你的脑电图。这个符号可能是圆形和带有一个“开始”标签。 4. 从“流程图”库中选择直线符号,并将其连接到起始符号,以表示流程的开始。 5. 接下来,您需要在画布上添加各种符号代表脑电图中的各种寄生组织和位置,如O1,O2,FP1和FP2等。 6. 为每个位置添加一个文本框,以便您可以在其上方添加其对应的标记。 7. 设计脑电图数据传输的移植方式,并将其表示在画布中。 8. 添加所有必需的图形,在画布上完成整个脑电图。 9. 在绘制完整个脑电图后,您可以对它进行调整和美化,以使其更加有吸引力。 10. 最后,保存您的Visio文件并将其导出为您需要的格式。 尽管绘制一个好的脑电图可能有一些技术性的挑战,但此过程还是非常直观和容易掌握的。您可以根据您的要求个性化调整图形和标签,并且可以使用Visio的帮助功能进行快速入门。 以上是关于使用Visio绘制10-20系统的脑电图的基本步骤。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值