#include<iostream> using namespace std; class Point { private: int x,y; public: Point(int x=0,int y=0):x(x),y(y){};}; class Rectangle { private: Point p1,p2; int length, width,perimeter,area; public: Rectangle(Point p1,Point p2):p1(p1),p2(p2){ int width=int(p2.Point(x)-p1.Point(x)); int length=int(p2.Point(y)-p1.Point(y)); perimeter=2*(width+length); area=width*length; } int getPerimeter(){return perimeter;} int getArea(){return area;} }; int main() { Point p1(1,1); Point p2(2,2); Rectangle rect(p1,p2); cout<<"周长为"<<rect.getPerimeter()<<endl; cout<<"面积为"<<rect.getArea()<<endl; return 0; }
时间: 2023-08-21 18:49:57 浏览: 106
这是一个 C++ 程序,定义了两个类 Point 和 Rectangle。Point 类表示平面上的一个点,Rectangle 类表示矩形。在 main 函数中创建了两个 Point 对象 p1 和 p2,然后通过这两个点创建了一个 Rectangle 对象 rect。程序计算了矩形的周长和面积,并输出到控制台。
相关问题
#include<iostream> #include<vector> #include<cmath> using namespace std; class point { private: int x,y; public: point(int x=0,int y=0):x(x),y(y){} void coutt () { cout << "[" <<x<<","<<y<<"]"<< endl; } }; int main() { int i,n; vector<int>x(100); vector<int>y(100); for(i=0;i<100;i++) { cin >>x[i]>>y[i]; } n=x.size()-1; point m[n+1]; for(;n>=0;n--) m[n](x[n],y[n]).coutt; return 0; }有什么错
这段代码存在一些错误:
1. 在使用 vector 时,应该在开头添加 `#include<vector>` 头文件。
2. 在 point 类的构造函数中,应该使用成员初始化列表来初始化 x 和 y,而不是在函数体中进行赋值操作。
3. 在 point 类的 coutt() 函数中,应该使用 `endl` 而不是 `\n`。
4. 在 main() 函数中,应该使用 `vector<point> m(100);` 来定义 point 类型的 vector,而不是使用 point 数组。
下面是修改后的代码:
```cpp
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
class point {
private:
int x, y;
public:
point(int x = 0, int y = 0):x(x), y(y){}
void coutt() {
cout << "[" << x << "," << y << "]" << endl;
}
};
int main() {
int i, n;
vector<int> x(100);
vector<int> y(100);
for (i = 0; i < 100; i++) {
cin >> x[i] >> y[i];
}
n = x.size() - 1;
vector<point> m(100);
for (; n >= 0; n--) {
m[n] = point(x[n], y[n]);
m[n].coutt();
}
return 0;
}
```
判断两条直线是否垂直 ,部分代码提供,“***” 部分请补充完整。 #include <iostream> using namespace std ; class point //定义 点 类 { public: point() ; int get_x() ; int get_y() ; private: int x, y ; } ; point::point() { int r,c; cin >>r; cin >>c; x = r; y
好的,这是一个关于C++类和对象的问题。下面是代码示例:
```cpp
#include <iostream>
using namespace std;
class point { // 定义点类
public:
point();
int get_x();
int get_y();
private:
int x, y;
};
point::point() {
int r, c;
cin >> r;
cin >> c;
x = r;
y = c;
}
int point::get_x() {
return x;
}
int point::get_y() {
return y;
}
int main() {
point p1, p2; // 定义两个点对象
int x1 = p1.get_x();
int y1 = p1.get_y();
int x2 = p2.get_x();
int y2 = p2.get_y();
if ((x2 - x1) * (y2 - y1) == -1) { // 判断两条直线是否垂直
cout << "两条直线垂直" << endl;
} else {
cout << "两条直线不垂直" << endl;
}
return 0;
}
```
在这个程序中,首先定义了一个点类 `point`,它有两个私有成员 `x` 和 `y`,以及一个公有构造函数和两个公有成员函数 `get_x` 和 `get_y`,用于获取点的坐标。在构造函数中,通过 `cin` 输入点的坐标。
在主函数中,先定义了两个点对象 `p1` 和 `p2`,分别输入它们的坐标。然后判断两条直线是否垂直,这可以通过判断两条直线的斜率是否互为相反数来实现。如果两条直线的斜率乘积为 -1,则它们垂直;否则,它们不垂直。最后输出判断结果。
注意:这个程序只是判断两条直线是否垂直,并不是计算两条直线的斜率。如果想计算两条直线的斜率,需要在 `point` 类中增加一个成员函数,用于计算两个点之间的斜率。
阅读全文