c++程序写一个兔子拔萝卜吃萝卜的类 再写一个萝卜类 用vector容器输出兔子吃萝卜和拔萝卜的数量
时间: 2023-09-04 08:04:04 浏览: 216
### 回答1:
这是一段C++代码:
```
#include <iostream>
#include <vector>
class Carrot {
public:
Carrot(int num) : number(num) {}
int getNumber() const { return number; }
private:
int number;
};
class Rabbit {
public:
Rabbit(int num) : number(num) {}
int getNumber() const { return number; }
void eatCarrot(std::vector<Carrot> &carrots) {
int count = 0;
for (int i = 0; i < carrots.size(); i++) {
if (count >= number) {
break;
}
carrots[i].getNumber();
count++;
}
std::cout << "Rabbit ate " << count << " carrots." << std::endl;
}
void pullCarrot(std::vector<Carrot> &carrots) {
int count = 0;
for (int i = 0; i < carrots.size(); i++) {
if (count >= number) {
break;
}
carrots.erase(carrots.begin() + i);
count++;
i--;
}
std::cout << "Rabbit pulled " << count << " carrots." << std::endl;
}
private:
int number;
};
int main() {
std::vector<Carrot> carrots;
for (int i = 0; i < 10; i++) {
carrots.push_back(Carrot(i));
}
Rabbit rabbit(5);
rabbit.eatCarrot(carrots);
rabbit.pullCarrot(carrots);
return 0;
}
```
这段代码定义了两个类:`Carrot`和`Rabbit`。`Carrot`类表示萝卜,有一个数量属性`number`。`Rabbit`类表示兔子,也有一个数量属性`number`。
我们使用了`vector`容器存储萝卜的数量,在程序的主函数中,我们创建了10个萝卜并存储在`vector`容器中。然后,我们创建了一个兔子对象,并调用了两个函数:`eatCarrot`和`pullCarrot`,分别表示兔子吃萝卜和拔萝卜。
在这两个函数中,我们通过循环语句
### 回答2:
兔子拔萝卜吃萝卜的类可以定义如下:
```cpp
#include <iostream>
#include <vector>
class Rabbit {
private:
int eatCount; // 兔子吃萝卜的数量
int pullCount; // 兔子拔萝卜的数量
public:
Rabbit() {
eatCount = 0;
pullCount = 0;
}
void eatCarrot() {
eatCount++;
}
void pullCarrot() {
pullCount++;
}
int getEatCount() {
return eatCount;
}
int getPullCount() {
return pullCount;
}
};
int main() {
std::vector<Rabbit> rabbits;
for (int i = 0; i < 5; i++) {
rabbits.push_back(Rabbit());
}
// 兔子1拔1个萝卜,吃2个萝卜
rabbits[0].pullCarrot();
rabbits[0].eatCarrot();
rabbits[0].eatCarrot();
// 兔子2拔3个萝卜,吃5个萝卜
rabbits[1].pullCarrot();
rabbits[1].pullCarrot();
rabbits[1].pullCarrot();
rabbits[1].eatCarrot();
rabbits[1].eatCarrot();
rabbits[1].eatCarrot();
rabbits[1].eatCarrot();
rabbits[1].eatCarrot();
// 输出各兔子的吃萝卜和拔萝卜的数量
for (int i = 0; i < 5; i++) {
std::cout << "兔子" << i+1 << "拔萝卜:" << rabbits[i].getPullCount() << "个,吃萝卜:" << rabbits[i].getEatCount() << "个" << std::endl;
}
return 0;
}
```
上述代码中,我们定义了一个`Rabbit`类,其中包含了兔子吃萝卜和拔萝卜的数量。通过调用`eatCarrot()`和`pullCarrot()`函数,可以增加吃萝卜和拔萝卜的数量。通过`getEatCount()`和`getPullCount()`函数,可以获取兔子吃萝卜和拔萝卜的数量。
在`main`函数中,我们创建了一个存放兔子对象的`vector`容器`rabbits`,并向其中添加了5只兔子。然后,我们通过调用相应的函数,为每只兔子增加了拔萝卜和吃萝卜的数量。最后,我们使用循环遍历容器,输出每只兔子的拔萝卜和吃萝卜的数量。
运行上述代码,输出结果为:
```
兔子1拔萝卜:1个,吃萝卜:2个
兔子2拔萝卜:3个,吃萝卜:5个
兔子3拔萝卜:0个,吃萝卜:0个
兔子4拔萝卜:0个,吃萝卜:0个
兔子5拔萝卜:0个,吃萝卜:0个
```
其中,兔子1拔了1个萝卜,吃了2个萝卜;兔子2拔了3个萝卜,吃了5个萝卜;其它兔子都没有拔和吃过萝卜。
### 回答3:
兔子拔萝卜吃萝卜的类可以定义如下:
```c++
#include <iostream>
#include <vector>
class Rabbit {
public:
Rabbit() : carrotsEaten(0), carrotsPulled(0) {}
void eatCarrot() {
carrotsEaten++;
}
void pullCarrot() {
carrotsPulled++;
}
int getNumCarrotsEaten() {
return carrotsEaten;
}
int getNumCarrotsPulled() {
return carrotsPulled;
}
private:
int carrotsEaten;
int carrotsPulled;
};
int main() {
std::vector<Rabbit> rabbits;
rabbits.resize(5); // 创建5只兔子
// 兔子拔萝卜吃萝卜
for (int i = 0; i < rabbits.size(); i++) {
rabbits[i].pullCarrot();
rabbits[i].eatCarrot();
}
// 输出每只兔子的拔萝卜和吃萝卜数量
for (int i = 0; i < rabbits.size(); i++) {
std::cout << "兔子" << i+1 << ": "
<< "拔萝卜" << rabbits[i].getNumCarrotsPulled()
<< "根,吃萝卜" << rabbits[i].getNumCarrotsEaten()
<< "根" << std::endl;
}
return 0;
}
```
这段代码定义了一个Rabbit(兔子)类,该类有两个私有成员变量`carrotsEaten`(吃萝卜的数量)和`carrotsPulled`(拔萝卜的数量)。以及两个公有成员函数`eatCarrot`(吃萝卜)和`pullCarrot`(拔萝卜),分别用于增加兔子吃萝卜和拔萝卜的数量。还有两个公有成员函数`getNumCarrotsEaten`(获取吃萝卜的数量)和`getNumCarrotsPulled`(获取拔萝卜的数量),用于在外部获取兔子吃萝卜和拔萝卜的数量。
在主函数中,使用`std::vector`容器创建了5只兔子,并分别执行了拔萝卜和吃萝卜的操作。最后,使用一个`for`循环输出每只兔子的拔萝卜和吃萝卜的数量。
阅读全文
相关推荐














