用c++构造一个圆类Circle,属性为半径Radius、圆周长和面积,实现根据输入半径计算周长和面积并输出。要求定义以半径为参数、默认值为0的构造函数,且周长和面积的计算在构造函数中实现。该实验的实验目的
时间: 2024-10-08 17:12:38 浏览: 36
定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。
5星 · 资源好评率100%
在C++中,我们可以创建一个名为`Circle`的类,用于表示圆形,并包含半径(`radius`)、周长(`circumference`)和面积(`area`)作为成员变量。为了实现实验目的,我们首先需要定义一个构造函数接受用户输入的半径,默认为0,然后在构造函数内部计算周长和面积。
```cpp
#include <iostream>
#include <cmath> // 引入math库,用于计算圆的周长和面积
class Circle {
public:
// 构造函数,接受半径作为参数,如果未提供则默认为0
Circle(double radius = 0) : radius(radius) {
if (radius > 0) {
circumference = 2 * M_PI * radius; // 计算周长
area = M_PI * pow(radius, 2); // 计算面积
std::cout << "Circle constructed with radius " << radius << ".\n";
} else {
std::cerr << "Invalid radius! Please provide a positive value.\n";
}
}
private:
double radius;
double circumference;
double area; // 圆的半径、周长和面积
// 输出成员变量
friend std::ostream& operator<<(std::ostream& os, const Circle& circle);
};
// 输出操作符重载,方便打印Circle对象信息
std::ostream& operator<<(std::ostream& os, const Circle& circle) {
return os << "Radius: " << circle.radius << ", Circumference: " << circle.circumference
<< ", Area: " << circle.area << '\n';
}
int main() {
Circle c1(5); // 使用默认构造函数,半径为5
Circle c2(0.5); // 传递半径0.5
return 0;
}
```
这个实验的目的包括:
1. 学习和理解类的构造函数以及如何初始化成员变量。
2. 掌握如何在构造函数中执行计算任务。
3. 实现基本的封装原则,将数据(半径)和相关的操作(计算周长和面积)封装在一起。
4. 观察错误处理,如检查输入的半径是否有效。
阅读全文