创建一个矩阵Rectangle类
时间: 2024-11-04 14:14:03 浏览: 20
在Python中,我们可以创建一个`Rectangle`类来表示矩形,包含长和宽两个属性,并提供计算面积和周长的方法。这里是一个基础的实现例子:
```python
class Rectangle:
def __init__(self, length, width):
"""
初始化矩形,存储长度和宽度
"""
self.length = length
self.width = width
def area(self):
"""
计算矩形的面积
"""
return self.length * self.width
def perimeter(self):
"""
计算矩形的周长
"""
return 2 * (self.length + self.width)
# 示例用法
my_rectangle = Rectangle(5, 7)
print(f"矩形的面积是: {my_rectangle.area()}")
print(f"矩形的周长是: {my_rectangle.perimeter()}")
```
在这个类中,`__init__`方法是一个特殊的方法,当我们创建`Rectangle`对象时自动调用,用来初始化矩形的尺寸。`area()`和`perimeter()`方法分别用于计算矩形的面积和周长。
相关问题
设计三个类:几何形状类( Shape)) 、圆类( Circle )、矩形类(Rectangle),要求: Shape类具有用来计算面积的公有成员函数getArea; Circie以及Rectangle两类都丛Shape类公有派生,Circle类的保护成员为半径(radius),Rectangle类的保护成员为长(length)和宽(width); 实现Circle类和Rectangle类的拷贝构造函数、带参构造函数、析构函数; 给出具体的Circle和Rectangle类的计算面积函数getArea; 在main()函数中输出半径为5的圆对象,以及长度为3、宽度为4的矩形对象的面积。 读入文件rectangle_info.txt中的矩阵边长信息,计算每个矩阵面积;并将计算结果写入名为rectangle_area.txt的文件中
以下是类的实现及 main() 函数的代码:
```C++
#include <iostream>
#include <fstream>
using namespace std;
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数
};
class Circle : public Shape {
protected:
double radius;
public:
Circle() { radius = 0; }
Circle(double r) : radius(r) {}
Circle(const Circle& c) : radius(c.radius) {}
virtual ~Circle() {}
virtual double getArea() { return 3.1415926 * radius * radius; }
};
class Rectangle : public Shape {
protected:
double length, width;
public:
Rectangle() { length = width = 0; }
Rectangle(double l, double w) : length(l), width(w) {}
Rectangle(const Rectangle& r) : length(r.length), width(r.width) {}
virtual ~Rectangle() {}
virtual double getArea() { return length * width; }
};
int main() {
Circle c(5);
Rectangle r(3, 4);
cout << "圆的面积为:" << c.getArea() << endl;
cout << "矩形的面积为:" << r.getArea() << endl;
ifstream infile("rectangle_info.txt");
ofstream outfile("rectangle_area.txt");
double l, w;
while (infile >> l >> w) {
Rectangle r(l, w);
outfile << r.getArea() << endl;
}
infile.close();
outfile.close();
return 0;
}
```
其中,Shape 类为抽象类,只包含一个纯虚函数 getArea(),用于计算形状的面积。Circle 类和 Rectangle 类都是从 Shape 类公有派生而来,分别用于表示圆和矩形。Circle 类包含一个保护成员 radius,表示圆的半径,而 Rectangle 类包含两个保护成员 length 和 width,分别表示矩形的长和宽。Circle 类和 Rectangle 类都实现了拷贝构造函数、带参构造函数和析构函数,以及计算面积的成员函数 getArea()。在 main() 函数中,分别创建了半径为 5 的圆对象和长为 3、宽为 4 的矩形对象,并输出它们的面积。另外,从文件 rectangle_info.txt 中读入矩形的边长信息,计算每个矩形的面积,并将结果写入 rectangle_area.txt 文件中。
设计三个类:几何形状类( Shape)) 、圆类( Circle )、矩形类,要求:Shape类具有用来计算面积的公有成员函数getArea;Circie以及Rectangle两类都丛Shape类公有派生,Circle类的保护成员为半径(radius), Rectangle类的保护成员为长(length)和宽(width) ;实现Circle类和Rectangle类的铂贝构造函数、带参构造函数、析构函数;给出具体的Circle和Rectangle类的计算面积函数getArea;在main()函数中输出半径为5的圆对象,以及长度为3、宽度为4的矩形对象的面积。读合吝失 rectangle_info.txt_中的矩阵纯长信息,计算每个矩阵面积;并将计算结果写入名为rectangle_area.txt
下面是题目要求的代码实现:
```c++
#include <iostream>
#include <fstream>
using namespace std;
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数,用于计算面积
};
class Circle : public Shape {
protected:
double radius;
public:
Circle() : radius(0) {} // 默认构造函数
Circle(double r) : radius(r) {} // 带参构造函数
~Circle() {} // 析构函数
double getArea() { // 计算圆的面积
return 3.14 * radius * radius;
}
};
class Rectangle : public Shape {
protected:
double length, width;
public:
Rectangle() : length(0), width(0) {} // 默认构造函数
Rectangle(double l, double w) : length(l), width(w) {} // 带参构造函数
~Rectangle() {} // 析构函数
double getArea() { // 计算矩形的面积
return length * width;
}
};
int main() {
Circle c(5); // 创建半径为5的圆对象
Rectangle r(3, 4); // 创建长为3,宽为4的矩形对象
cout << "圆的面积为:" << c.getArea() << endl; // 输出圆的面积
cout << "矩形的面积为:" << r.getArea() << endl; // 输出矩形的面积
ifstream fin("rectangle_info.txt"); // 打开文件
ofstream fout("rectangle_area.txt"); // 创建文件
double l, w;
while (fin >> l >> w) { // 读取文件中的长和宽
Rectangle r(l, w); // 根据读取的长和宽创建矩形对象
fout << "矩形的面积为:" << r.getArea() << endl; // 将矩形的面积写入文件
}
fin.close(); // 关闭文件
fout.close(); // 关闭文件
return 0;
}
```
运行结果:
```
圆的面积为:78.5
矩形的面积为:12
```
在 `rectangle_area.txt` 文件中,会写入多个矩形的面积,例如:
```
矩形的面积为:12
矩形的面积为:20
矩形的面积为:42
矩形的面积为:60
```
阅读全文