个人门户网站开发,邢台58同城,河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo,超市会员管理系统功能要求#xff1a; 用户可以调用push方法将cat类或dog类的实例放入队列中;用户可以调用pollAll方法#xff0c;将队列中所有的实例按照进队列的先后顺序依次弹出;用户可以调用pollDog方法#xff0c;将队列中dog类的实例按照进队列的先后顺序依次弹出;用户可以调用pollCat… 功能要求 用户可以调用push方法将cat类或dog类的实例放入队列中;用户可以调用pollAll方法将队列中所有的实例按照进队列的先后顺序依次弹出;用户可以调用pollDog方法将队列中dog类的实例按照进队列的先后顺序依次弹出;用户可以调用pollCat方法,将队列中cat类的实例按照进队列的先后顺序依次弹出;用户可以调用isEmpty方法检查队列中是否还有dog或cat的实例;用户可以调用isDogEmpty方法检查队列中是否有dog类的实例;用户可以调用isCatEmpty方法检查队列中是否有cat类的实例。 Pet.h #ifndef _PET_H
#define _PET_H
#include string
using namespace std;class Pet{
private:string type;public:Pet(){}Pet(string type){this-type type;}string getPetType(){return type;}
};class Dog :public Pet{
public:Dog() :Pet(dog) {}
};class Cat :public Pet{
public:Cat() :Pet(cat) {}
};#endif PetEnterQueue.h #ifndef _PETENTERQUEUE_H
#define _PETENTERQUEUE_H
#include Pet.h
using namespace std;class PetEnterQueue {
private:Pet pet;long count;
public:PetEnterQueue(Pet pet, long count) {this-pet pet;this-count count;}Pet getPet() {return this-pet;}long getCount() {return this-count;}string getEnterPetType() {return this-pet.getPetType();}
};
#endif CatDogQueue.h #ifndef _CATDOGQUEUE_H
#define _CATDOGQUEUE_H
#includePetEnterQueue.h
#includePet.h
#includeiostream
#includequeue
using namespace std;class CatDogQueue {
private:queuePetEnterQueue dogQ;queuePetEnterQueue catQ;long count;public:void push(Pet pet){if (pet.getPetType() dog) {this-dogQ.push(PetEnterQueue(pet, count));}else if(pet.getPetType()cat){this-catQ.push(PetEnterQueue(pet, count));}}Pet popAll() {if (!catQ.empty() !dogQ.empty()){if (dogQ.front().getCount() catQ.front().getCount()){Pet tmp dogQ.front().getPet();dogQ.pop();return tmp;}else{Pet tmp catQ.front().getPet();catQ.pop();return tmp;}}else if (!catQ.empty()){Pet tmp catQ.front().getPet();catQ.pop();return tmp;}else if (!dogQ.empty()){Pet tmp dogQ.front().getPet();dogQ.pop();return tmp;}else{throw runtime_error(Error empty queue.);}}Dog popDog(){if (!dogQ.empty()){Pet tmpP dogQ.front().getPet();Dog tmpD;Pet* pd tmpD;*pd tmpP;dogQ.pop();return tmpD;}else{throw runtime_error(Error empty dog queue.);}}Cat popCat(){if (!catQ.empty()){Pet tmpP catQ.front().getPet();Cat tmpC;Pet* pc tmpC;*pc tmpP;catQ.pop();return tmpC;}else{throw runtime_error(Error empty cat queue.);}}bool isEmpty(){return dogQ.empty() catQ.empty();}bool isDogEmpty(){return dogQ.empty();}bool isCatEmpty(){return catQ.empty();}
};#endif test.cpp #include iostream
#include CatDogQueue.husing namespace std;
int main()
{CatDogQueue test;if (test.isEmpty())cout All queue is empty! endl;test.push(Dog());if (!test.isEmpty())cout All queue is not empty! endl;if (!test.isDogEmpty())cout Dog queue is not empty! endl;if (test.isCatEmpty())cout Cat queue is Empty! endl;for (int i 0; i 2; i){test.push(Cat());test.push(Dog());}cout popAll: test.popAll().getPetType() endl;cout popDog: test.popDog().getPetType() endl;cout popCat: test.popCat().getPetType() endl;cout popAll: test.popAll().getPetType() endl;cout popAll: test.popAll().getPetType() endl;if (test.isEmpty())cout All queue is empty! endl;return 0; 转载于:https://www.cnblogs.com/MuZiShiYe/p/11255490.html