用c++写一个兔子拔萝卜、吃萝卜的类,兔子一次只能吃一个萝卜,一次只能拔出一个萝卜,类中用vector记录不同种类的萝卜的数量,再写一个萝卜的类,用来记数萝卜的数量
时间: 2024-05-08 19:20:27 浏览: 103
一个关于c++程序的小例题
以下是我给你实现的代码,注意其中的注释:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 萝卜类
class Carrot {
public:
// 构造函数
Carrot() {
count++;
}
// 获取萝卜数量
static int getCount() {
return count;
}
private:
// 记录萝卜数量
static int count;
};
int Carrot::count = 0;
// 兔子类
class Rabbit {
public:
// 构造函数
Rabbit() {
// 初始化萝卜数量
for (int i = 0; i < 5; i++) {
carrots.push_back(0);
}
}
// 拔萝卜
void pickCarrot(int type) {
if (carrots[type] > 0) {
carrots[type]--;
cout << "兔子拔出了一个" << type << "号萝卜" << endl;
} else {
cout << "没有" << type << "号萝卜了" << endl;
}
}
// 吃萝卜
void eatCarrot(int type) {
if (carrots[type] > 0) {
carrots[type]--;
cout << "兔子吃掉了一个" << type << "号萝卜" << endl;
} else {
cout << "没有" << type << "号萝卜了" << endl;
}
}
// 种萝卜
void plantCarrot(int type, int num) {
carrots[type] += num;
cout << "种植了" << num << "个" << type << "号萝卜" << endl;
}
private:
// 记录不同种类的萝卜数量
vector<int> carrots;
};
int main() {
// 实例化兔子和萝卜
Rabbit rabbit;
Carrot carrot;
// 种植萝卜
rabbit.plantCarrot(1, 10);
rabbit.plantCarrot(2, 5);
rabbit.plantCarrot(3, 2);
// 拔萝卜和吃萝卜
rabbit.pickCarrot(1);
rabbit.eatCarrot(1);
rabbit.pickCarrot(2);
rabbit.pickCarrot(2);
rabbit.eatCarrot(2);
rabbit.eatCarrot(3);
// 输出萝卜数量
cout << "现在有" << Carrot::getCount() << "个萝卜" << endl;
return 0;
}
```
注意,这里为了方便起见,用数字代替了不同种类的萝卜,你可以自行修改。另外,这里只实现了一种萝卜的计数功能,如果需要支持多种萝卜的计数,可以将萝卜计数改为一个数组或者 vector。
阅读全文