面向对象程序设计C++实验报告书模板.docx
- 文档编号:4023233
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:28.32KB
面向对象程序设计C++实验报告书模板.docx
《面向对象程序设计C++实验报告书模板.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计C++实验报告书模板.docx(10页珍藏版)》请在冰豆网上搜索。
面向对象程序设计C++实验报告书模板
面向对象程序设计C++实验报告书
班级:
姓名:
学号:
课程名称
面向对象程序设计C++
实验项目
宠物管理系统
实验项目类型
验证
演示
综合
设计
指导教师
成绩
√
一、实验目的
1、掌握面向对象的文件结构。
2、理解面向对象的c++语言风格的语句。
3、运用c++编译器进行程序的编写与运行。
二、实验步骤
.1、实现一个简易的管理系统,可以增加、删除指定笼子中的宠物,
查询每个笼子中存放宠物的情况(包括笼子为空的情况),统计宠物的种类和数量;
2、定义描述宠物屋的类Shelves,其中有12个笼子用于存放各种宠物;
3、定义虚拟基类Animal,至少包括纯虚函数ShowMe;
4、定义派生类Cat、Dog和Snake,具体实现上述纯虚函数ShowMe,显示该宠物的种类、名称、颜色、体重和喜爱的食物;
5、重载输入“>>”操作符,使得可以通过cin直接读入宠物颜色、体重和喜爱的食物;
6编写main函数,测试上述所要求的各种功能。
*/
三、程序内容
#include
classAnimal
{
protected:
inttype;
char*name;
intweigh;
char*color;
char*food;
public:
virtualvoidAddNum()=0;
virtualvoidDeleteNum()=0;
virtualvoidShowMe()=0;
};
classCat:
publicAnimal
{
private:
staticintcatnum;
public:
Cat(){
type=0;
name=newchar[20];
weigh=0;
color=newchar[20];
food=newchar[20];
}
voidAddNum(){catnum++;}
intGetcatnum(){returncatnum;}
voidDeleteNum(){catnum--;}
friendistream&operator>>(istream&is,Cat&cat);
voidShowMe();
};
classDog:
publicAnimal
{
private:
staticintdognum;
public:
Dog(){
type=1;
name=newchar[20];
weigh=0;
color=newchar[20];
food=newchar[20];
}
voidAddNum(){dognum++;}
intGetdognum(){returndognum;}
voidDeleteNum(){dognum--;}
friendistream&operator>>(istream&is,Dog&dog);
voidShowMe();
};
classSnake:
publicAnimal
{private:
staticintsnakenum;
public:
Snake(){
type=2;
name=newchar[20];
weigh=0;
color=newchar[20];
food=newchar[20];
}
voidAddNum(){snakenum++;}
intGetsnakenum(){returnsnakenum;}
voidDeleteNum(){snakenum--;}
friendistream&operator>>(istream&is,Snake&snake);
voidShowMe();
};
classShelves
{
private:
Animal*cage[12];
public:
Shelves()
{for(inti=0;i<12;i++)
cage[i]=NULL;
}
voidAppend();
voidDelete();
voidQuery();
voidStat();
};
intCat:
:
catnum=0;
istream&operator>>(istream&is,Cat&cat)
{cout<<"请输入宠物的名称:
";cin>>cat.name;
cout<<"************体重:
";cin>>cat.weigh;
cout<<"************颜色:
";cin>>cat.color;
cout<<"************食物:
";cin>>cat.food;
returnis;
}
voidCat:
:
ShowMe()
{cout< cout<<"宠物猫的信息"< cout<<"宠物的名称: "< cout<<"******体重: "< cout<<"******颜色: "< cout<<"食物: "< } intDog: : dognum=0; istream&operator>>(istream&is,Dog&dog) {cout<<"请输入宠物的名称: ";cin>>dog.name; cout<<"************体重: ";cin>>dog.weigh; cout<<"************颜色: ";cin>>dog.color; cout<<"************食物: ";cin>>dog.food; returnis; } voidDog: : ShowMe() {cout< cout<<"宠物狗的信息"< cout<<"宠物的名称: "< cout<<"******体重: "< cout<<"******颜色: "< cout<<"食物: "< } intSnake: : snakenum=0; istream&operator>>(istream&is,Snake&snake) {cout<<"请输入宠物的名称: ";cin>>snake.name; cout<<"************体重: ";cin>>snake.weigh; cout<<"************颜色: ";cin>>snake.color; cout<<"************食物: ";cin>>snake.food; returnis; } voidSnake: : ShowMe() {cout< cout<<"宠物蛇的信息"< cout<<"宠物的名称: "< cout<<"******体重: "< cout<<"******颜色: "< cout<<"食物: "< } voidShelves: : Append() {intno,t; cout< ";cin>>no; no--; if(cage[no]! =NULL||no>=12) cout< else{ cout< "; cin>>t; if(t==0){ Cat*cat; cat=newCat; cin>>*cat; cage[no]=cat; cage[no]->AddNum(); cout< "< } elseif(t==1){ Dog*dog; dog=newDog; cin>>*dog; cage[no]=dog; cage[no]->AddNum(); cout< "< } elseif(t==2){ Snake*snake=newSnake; cin>>*snake; cage[no]=snake; cage[no]->AddNum(); cout< "< } elsereturn;} } voidShelves: : Delete() {intno; cout< ";cin>>no; no--; if(cage[no]==NULL) cout< "< elseif(no>=12) cout< "< else{ cage[no]->DeleteNum(); cage[no]=NULL; cout< "< } return; } voidShelves: : Query() {intno; cout< ";cin>>no; no--; if(cage[no]==NULL) cout< "< elseif(no>=12||no<0) cout< "< else cage[no]->ShowMe(); return; } voidShelves: : Stat() {Catcat; Dogdog; Snakesnake; cout< cout<<"******猫: "< cout<<"******狗: "< cout<<"******蛇: "< } voidmain() {Shelvesshelves; intchioce; cout< while(chioce! =5) {cout< cout<<"1.宠物进笼2.宠物出笼3.查询宠物4.统计宠物5.退出"< cin>>chioce; switch(chioce) { case1: shelves.Append(); break; case2: shelves.Delete(); break; case3: shelves.Query(); break; case4: shelves.Stat(); break; case5: break; } } return; } 四、上机结果及分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 C+ 实验 报告书 模板