資源簡介
需求
該程序設計的是一個狼吃羊的小故事,大灰狼吃小綿羊 。所有大灰狼和小綿羊都在青青草原中生活。系統首先初始化大灰狼們和小綿羊們的基本信息。經過一段時間的自動運行。查看當前系統的基本情況。
1) 每個大灰狼和小綿羊都具有位置信息,性別、年齡等基本信息。
2) 大灰狼和小綿羊都有一定的生存規則,如運動規則,繁殖規則(年齡、性別),死亡規則(年齡),捕食規則(可以通過位置判定可以捕食,小綿羊可以逃跑)等。
3) 程序初始化時,需要初始化大灰狼和小綿羊的數量,隨機生成每個生物的基本信息。并打印輸出。
4) 通過鍵盤輸入運行時間。
5) 程序根據運行時間運行,大灰狼和小綿羊按照自己的生存規則運行。
6) 程序需要輸出生存期間的重要事件(如捕食、逃脫、繁殖等)。
7) 運行結束,輸出當前青青草原中大灰狼和小綿羊的基本信息(數量,基本信息)。
2. 問題分析
本題的設計思路如下,建立生物基類,并派生出大灰狼、小綿羊的子類。根據需要建立類的成員函數和成員方法,其中包括捕食、死亡等多態方法。在main函數中采用數組和new動態生成用戶需要生成的狼和羊的數量及基本信息。該題目主要涉及到的知識點有:繼承、派生、多態。
代碼片段和文件信息
#include?“stdafx.h“
#include?“Animal.h“
CAnimal::CAnimal()
{
m_CPPoint?=?cvPoint(12020);
}
CAnimal::~CAnimal()
{
}
void?CAnimal::Draw(CDC?*?pdc)
{
HBITMAP?h;
h?=?(HBITMAP)LoadImage(NULL
m_picString
IMAGE_BITMAP
0?0
LR_LOADFROMFILE);
CBitmap?*?tempimg?=?CBitmap::FromHandle(h);//獲得位圖對象指針
CDC?memDC;
memDC.CreateCompatibleDC(pdc); //創建內存兼容DC
CBitmap*?pOldBitmap?=?memDC.Selectobject(tempimg);
BITMAP?bm;
tempimg->Getobject(sizeof(BITMAP)?&bm);//獲得位圖的大小
CRect?rect;
rect.left?=?12?+?m_CPPoint.x;
rect.top?=?199;????????
rect.right?=?rect.left?+?bm.bmWidth?+?12;
rect.bottom?=?rect.top?+?m_CPPoint.y;
//透明貼圖
TransparentBlt(*pdc?m_CPPoint.x?m_CPPoint.y
bm.bmWidth?bm.bmHeight?memDC?0?0?bm.bmWidth?bm.bmHeight
RGB(255?255?255));
? pdc->SetBkMode(TRANSPARENT);
? memDC.Selectobject(pOldBitmap);
Deleteobject(memDC);
Deleteobject(h);
}
void?CAnimal::Run(CDC?*?pdc)
{
Draw(pdc);
}
bool?CAnimal::Breed()
{
return?true;
}
void?CAnimal::SaveMsg(?FILE?*os?)
{
if?(os?==?NULL)
{
AfxMessageBox(_T(“打開文件錯誤“)0);
return?;
}
/*char*?str?=?new?char[15];*/
/*sprintf_s(str15“NowAge?:?%d\n“m_nNowAge);*/
fprintf_s(os“NowAge?????:?%d\n“m_nNowAge);
fprintf_s(os“DieAge?????:?%d\n“m_nDieAge);
fprintf_s(os“Sex????????:?%d\n“m_nSex);
fprintf_s(os“WeddingAge?:?%d\n\n“m_nBreed);
fclose(os);
}
評論
共有 條評論