找考题网-背景图
填空题


阅读以下说明和C++代码,
[说明]
现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图6-1显示了各个类间的关系。
[图6-1]

这样,系统始终只处理3个对象:Shape对象、Drawingg对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。
[C++代码]
class DP1{
public:
static void draw_a_line(double x1,double y1,double x2,double y2){
//省略具体实现
}
};
class DP2{
public:
static void drawline(double x1,double x2,double y1,double y2){
//省略具体实现
}
};
class Drawing{
public:
(1) void drawLine(double x1,double y1,double x2,double y2)=0;
};
class V1Drawing:public Drawing{
public:
void drawLine(double x1,double y1,double x2,double y2){
DP1::draw_a_line(x1,y1,x2,y2);
}
};
class V2Drawing:public Drawing{
public:
void drawLine(double x1,double y1,double x2,double y2){
(2)
}
};
class Shape{
privatc:
(3) dp;
public:
Shape(Drawing*dp);
virtual void draw()=0;
void drawLine(double x1,double y1,double x2,double y2);
};
Shape::Shape(Drawing*dp)
{
_dp=dp;
}
void Shape::drawLine(double x1,double y1,double x2,double y2)
{ //画一条直线
(4)
}
class Rectangle:public Shape{
privatc:
double_x1,_y1,_x2,_y2;
public:
Rectangle(Drawing *dp,double x1,double y1,
double x2,double y2);
void draw();
};
Rectangle::Rectangle(Drawing*dp,double x1,double y1,double x2,double y2)
(5)
{
_x1=x1;_y1=yl;_x2=x2;_y2=y2;
}
void Rectangle::draw()
{
//省略具体实现
}

【参考答案】

DP2::drawline(x1,x2,y1,y2)
热门试题

填空题exchange(dr,m,b)

填空题super(dp)

填空题h==n-1

问答题进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。 常见的的调度算法有:先进先出FIFO(按照进程进入就绪队列的的先后次序选择)、时间片轮转RR(进程轮流运行一个时间片)、最高优先级HPF(分配给具有最高优先级的就绪进程)。 在实际系统中,调度模式往往是几种调度算法的结合。某系统按优先级别设置若干个就绪队列,对级别较高的队列分配较小的时间片Si(i=1,2,…,n),即有S1<S2<…n。除第n级队列是按RR法调度之外,其他各级队列均按FIFO调度。系统总是先调度级别较高的队列中的进程,仅当该队列为空时才去调度下一级队列中的进程。当执行进程用完其时间片时便被剥夺并进入下一级就绪队列。当等待进程被唤醒时,它进入其优先级相应的就绪队列,若其优先级高于执行进程,便抢占CPU执行进程。 现有五个进程P1、P2、P3、P4、P5,它们同时依次进入就绪队列,它们所需的CPU时间和优先级如图4-2所示。注意,优先数越大优先级越低。 [图4-2] 进程CPU时间优先数P1103P211P323P414P552 在该系统中,假定不同级别的时间片为S1=2i-1(i为优先数),请给出五个进程的CPU占用序列,并注明每次占用所用的时间。 从下列的3道试题(试题五至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。