C语言实现实现一个圆柱体类,类中包含私有数据成员半径和高;包含设置圆柱体半径和高、计算圆柱体体积;获取圆柱体半径、高、圆柱体体积的成员函数;能够对数据有效性进行判断处理。编写主函数测试类的使用。
时间: 2024-12-23 07:23:34 浏览: 10
在C语言中,虽然它不是面向对象的语言,但我们可以通过结构体和函数来模拟类的行为。我们可以创建一个名为`Cylinder`的结构体,并为其提供相应的初始化、访问和操作方法。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 定义圆柱体结构体
typedef struct {
double radius; // 半径
double height; // 高度
} Cylinder;
// 设置圆柱体的半径和高度,同时检查输入的有效性
void set_cylinder(Cylinder* cylinder, double r, double h) {
if (r <= 0 || h <= 0) {
printf("Invalid dimensions! Radius and height must be positive.\n");
return;
}
cylinder->radius = r;
cylinder->height = h;
}
// 计算并返回圆柱体的体积
double calculate_volume(Cylinder cylinder) {
return M_PI * pow(cylinder.radius, 2) * cylinder.height;
}
// 获取圆柱体的半径、高度和体积
void get_cylinder_info(const Cylinder cylinder) {
printf("Radius: %.2f\n", cylinder.radius);
printf("Height: %.2f\n", cylinder.height);
printf("Volume: %.2f cubic units\n", calculate_volume(cylinder));
}
int main() {
Cylinder my_cylinder;
// 测试类的使用
set_cylinder(&my_cylinder, 5.0, 7.0); // 正常设置
get_cylinder_info(my_cylinder);
// 设置无效值,验证错误处理
set_cylinder(&my_cylinder, -1.0, 0.0); // 非正数半径和高度
return 0;
}
```
在这个例子中,`set_cylinder`, `calculate_volume`, 和 `get_cylinder_info` 函数分别实现了设置属性、计算体积和查看信息的功能。在`main`函数中,我们实例化了一个`Cylinder`结构体并进行了相关的操作。当试图设置无效尺寸时,程序会打印出错误消息。请注意,这个设计并不完全符合OOP原则,但它展示了如何在C语言中模拟类似类的行为。
阅读全文