改错并重构代码,原始代码如下。# inlude < iostream > using namespace std ; class Box private : double length ;//长度 double breadth ;//宽度 double height ;//高度 int main () Box Box1; //声明Box1,类型为 Box Box Box2; //声明Box2,类型为 Box double volume =0.0; /用于存储体积 // box 1详述 Box1.height=5.0; Box1.length=6.0; Box1.breadth=7.0; // box 2详述 Box2.height=10.0; Box2.length=12.0; Box2.breadth=13.0; // box 1的体积 volume =Box1.height*Box1.length*Box1.breadth; cout <<"Box1的体积:"<< volume << endl ; // box 2的体积 volume =Box2.height*Box2.length*Box2.breadth; cout <<"Box2的体积:"<< volume << endl ; return 0; (1)请找出并修改代码中的错误; (2)请将修改正确的程序重新改写,保证数据只能由成员函数操作,实现长、宽、高的输入、输出、获取和修改功能。
时间: 2024-03-27 21:38:25 浏览: 135
原始代码中存在以下错误:
1. `# inlude < iostream >` 应该为 `#include <iostream>`
2. 类的私有成员没有在 `private:` 后面进行声明
3. `Box Box1` 和 `Box Box2` 的声明应该放在 `main` 函数之前
4. `int main()` 缺少 `{`,应该为 `int main() {`
5. `double volume =0.0;` 应该为 `double volume = 0.0;`
6. `/用于存储体积` 应该为 `//用于存储体积`
7. `volume =Box2.height*Box2.length*Box2.breadth;` 缺少分号,应该为 `volume = Box2.height * Box2.length * Box2.breadth;`
8. `cout <<"Box2的体积:"<< volume << endl ;` 结尾缺少分号,应该为 `cout <<"Box2的体积:"<< volume << endl ;}`
以下是改错并重构后的代码:
```c++
#include <iostream>
using namespace std;
class Box {
private:
double length; //长度
double breadth; //宽度
double height; //高度
public:
// 设置长、宽、高
void setLength(double len) {
length = len;
}
void setBreadth(double bre) {
breadth = bre;
}
void setHeight(double hei) {
height = hei;
}
// 获取长、宽、高
double getLength() {
return length;
}
double getBreadth() {
return breadth;
}
double getHeight() {
return height;
}
// 计算体积
double getVolume() {
return length * breadth * height;
}
// 输出体积
void printVolume() {
cout << "Box的体积:" << getVolume() << endl;
}
};
int main() {
Box Box1; //声明Box1,类型为 Box
Box Box2; //声明Box2,类型为 Box
// 设置长、宽、高
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
// 输出体积
Box1.printVolume();
Box2.printVolume();
return 0;
}
```
修改后的代码中,Box 类的私有成员被放在了 `private:` 后面进行了声明,成员函数 `setLength`、`setBreadth`、`setHeight`、`getLength`、`getBreadth`、`getHeight`、`getVolume` 和 `printVolume` 分别实现了长、宽、高的设置、获取,体积的计算和输出。在 `main` 函数中,先创建了两个 Box 类型的对象 Box1 和 Box2,然后通过成员函数设置长、宽、高,最后通过成员函数输出体积。
阅读全文