问答题

从下列的3道试题(试题五至试题七)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。
试题五
阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
某绘图系统存在Point、Line、Square 三种图元,它们具有Shape 接口,图元的类图关系如图5-1 所示。现要将Circle 图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle 类,且完全满足系统新增的Circle 图元所需的功能,但XCircle 不是由Shape派生而来,它提供的接口不能被系统直接使用。代码5-1 既使用了XCircle 又遵循了Shape 规定的接口,既避免了从头开发一个新的Circle 类,又可以不修改绘图系统中已经定义的接口。代码5-2 根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
绘图系统定义的接口与XCircle 提供的显示接口及其功能如下表所示:


[图5-1]


 

[代码5-1]

class Circle : public___(1)____{
 private:
 _______(2)________m_circle;
 public:
 void display(){
m_circle._____(3)_____;
}
 };

[代码5-2]

class Factory{
public :
_____(4)_____getShapeInstance(int type){ //生成特定类实例
switch (type){
 case 0: return new point;
 case 1: return new Rectangle;
 case 2: return new line;
 case 3: return new Circle;
 default: return NULL;
}
}
 };
void main (int argc , char *argv[]){
 if (argc ! =2){
 cout << “error parameters !”< return;
}
 int type = atoi (argv[ l ]);
 Factory factory;
 Shape *s;
 s = factory._____(5)____;
 if (s ==NULL){
cout <<”Error get the instance !” << endl;
return;
}
 c->display();
 __(6)___;
 return;
}

【参考答案】

(1) Shape (2) XCircle (3) displayIt( ) (4) Shape* (5) getSha......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
试题六 阅读以下说明和Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 某绘图系统存在Point、Line、Square 三种图元,它们具有Shape 接口,图元的类图关系如图6-1 所示。现要将Circle 图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle 类,且完全满足系统新增的Circle 图元所需的功能,但XCircle 不是由Shape派生而来,它提供的接口不能被系统直接使用。代码6-1 既使用了XCircle 又遵循了Shape 规定的接口,既避免了从头开发一个新的Circle 类,又可以不修改绘图系统中已经定义的接口。代码6-2 根据用户指定的参数生成特定的图元实例,并对之进行显示操作。 绘图系统定义的接口与XCircle 提供的显示接口及其功能如下表所示: [图6-1] [代码6-1] class Circle ____(1)______{ private ___(2)___ pxc; public Circle () {pxc = new ___(3)___; } public void display(){ pxc. ___(4)___; } } [代码6-2] public class Factory{ public___(5)___getShape Instance(int tyoe){ 生成特定类实例 switch(type){ case 0:return new point(); case 1: return new Rectangle(); case 2: return new line(); case 3: return new Circle(); default: return null } } }; public class App{ public static viod main (String argv[]){ if (argv.length ! =1){ System.out.println (“error parameters !”); Return; } int type = (new Integer(argv[0])).intValue(); Factory factory = new Factory(); Shape s; S = factory.___(6)____; If (s == null){ System.out.println(“Error get instance !”); Return; } s.display(); return; } }