为你找到 191 个题目。
试题六(共15分)
阅读以下说明、图和Java代码,填补Java代码中的空缺(1)—(5),将解答写在答题纸的对应栏内。
【说明】
已知某公司主要有两大类耗电资产(Asset):计算机(ComputerAsset)和建筑物(BuildingAsset)。为了节约能源,通过控制各种电源,将可关闭的房灯、计算机显示器等在夜间关闭。
为了实现上述需求,设计了如下图所示的类图,并用下面的Java代码加以实现。
【Java代码】
abstract class Asset{ /*通用资产,基类*/ }
interface PowerSwitchable{ /*可在夜间关闭的电源的物体实现该接口*/
public void powerDown( );
public void powerUP( );
}
abstract class BuildingAsset extends Asset{ /*建筑物资产*/
protected int room;
public BuildingAsset(int room){ this.room=room; }
}
abstract class BuildingLight extends BuildingAsset{
//灯的通用信息:fluorescent / incandescent 等,略
//灯的通用信息:fluorescent / incandescent 等,略
BuildingLight(int room Number){ super(roomNumber); }
}
class EmergencyLight(1){ /*应急灯,永不关闭*/
EmergencyLight(int roomNumber){
super(roomNumber);
}
}
class RoomLights (2){
RoomLights(int roomNumber){ super(roomNumber);}
public void powerDown(){ /*关电源,代码略*/ }
public void powerUp(){ /*开电源,代码略*/ }
}
/*ComputerAsset、ComputerCPU和ComputerMonitor代码略*/
public class BuildingManagement{
Asset things[]=new Asset[24];
int numItems=0;
public void goodNight(){ /*值班员定时“关闭”时调用,关闭可关闭的电源*/
for(int i=0;i
if(things[i] instanceof (3))
((PowerSwitchable)things[i]).powerDown();
}
/*goodMorning( )与goodNight( )类似,依次调用powetUp( ),其实现细节此处略*/
public void add(Asset thing){ /*为建筑添加资产*/
things[(4)]=thing;
}
public static void main(String[ ]args) {
BuildingManagement b1=(5) BuildingManagement( );
b1.add(new RoomLights(101)); //101房间的控制灯
b1.add(new EmergencyLight(101)); //101房间的应急灯
b1.add(new ComputerCPU(10104)); //101房间4号桌上的计算机主机
b1.add(new ComputerMonitor(10104)); //101房间4号桌上的计算机显示器
b1.goodNight( );
delete b1;
}
}
试题五(共15分)
阅读以下说明、图和C++代码,填补C++代码中的空缺(1)—(5),将解答写在答题纸的对应栏内。
【说明】
已知某公司主要有两大类耗电资产(Asset):计算机(ComputerAsset)和建筑物(BuildingAsset)。为了节约能源,通过控制各种电源,将可关闭的房灯、计算机显示器等在夜间关闭。
为了实现上述需求,设计了如下图所示的类图,并用下面的C++代码加以实现。
【C++代码】
#include
#include
using namespace std;
class Asset{ /*通用资产,基类*/
public: virtual ~Asset( ){ };
};
class PowerSwitchable{ /*抽象基类,可在夜间关闭电源的物体接口*/
public: virtual void powerDown( )=0; /*powerDown( )函数接口*/
virtual void powerUP( )=0; /*powerUp函数接口*/
};
class computerAsset: public Asset{ /*计算机资产*/
protected: int deskNumber;
public:
ComputerAsset(int desNumber){ this->deskNumber= deskNumber;
};
class ComputerCPU (1) { /*计算机主机,永不关闭*/
public:
ComputerCPU(int desNumber): ComputerAsset (deskNumber){ }
};
class ComputerMonitor (2){ /*计算机显示器*/
public:
ComputerMonitor(int roomNumber):ComputerAsset(roomNumber),
PowerSwitchable( ){ }
~ComputerMonitor ( ){ }
PowerSwitchable( ){ }
~ComputerMonitor ( ){ }
void powerDown( ) { /*关电源,代码略*/ }
void powerUp( ) { /*开电源,代码略*/ }
};
/*BuildingAsset、BuildingLight、EmergencyLight和RoomLights代码省*/
class BuldingManagement {
private:
Asset* things[24]; int numItems;
public:
void goodNight( ){ /*值班员定时“关闭”时调用,关闭可关闭的电源*/
for(int i=0;i
(3) ps=dynamic_cast(things[i]);
if(ps!=0)
ps->powerDown();
}
}
/*goodMorning( )与goodNight( )类似,依次调用powerUp( ),实现省*/
void add(Asset*thing){ /*为建筑添加资产*/
things[(4)]=thing;
}
};
int main(){
BuildingManagement* b1=(5) BuildingManagement( );
b1->add(new RoomLights(101)); //101房间的控制灯
b1->add(new EmergencyLight(101)); //101房间的应急灯
b1->add(new ComputerCPU(10104)); //101房间4号桌上的计算机
b1->add(new ComputerMonitor(10104)); //101房间4号桌上的计算机显示器
b1->goodNight( );
delete b1;
}