[试题]

阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。

(说明)

某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。

现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。(C++代码5-1)既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。(C++代码5-2)根据用户指定的参数生成特定的图元实例,并对它进行显示操作。

该绘图系统定义的接口与XCircle提供的显示接口及其功能如表5-13所示。

(C++代码5-1)

class Circle: public (1) {

Private;(2) m_circle;

Public;

void display(){

m_circle. (3)

}

};

(C++代码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!"<<endl;

return;

}

int type=atoi(argv[1]);

F.actory factory;

Shape *s;

s=factory.(5);

if(s==NULL){

cout<<"Error get the instance!"<<endl;

return;

}

s->display();(6);

Return;

}

参考答案与解析:

相关试题

请认真阅读以下关于某传输系统的技术说明、状态转换图及C£«£«代码,根据要求回答

[试题]请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1和问题2。(说明)传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout 3种,事件与其相应的状态转换如图6-18所示。下面的(C++代码1)与(C++代码2)分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。(C

  • 查看答案
  • 阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。(C£«£«程

    [主观题]阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。(C£«£«程序)include include阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。(C++程序)include < stdio. h >include < string. h >define Max 1000class Bank{int index;char date [Max] [10]; // 记录交易日iht amount[Max]; // 记录每次交易金额,以符号区分存钱和取钱int rest[

  • 查看答案
  • 请仔细阅读以下关于某传输系统的技术说明、状态转换图及Java程序,根据要求回答问

    [试题]请仔细阅读以下关于某传输系统的技术说明、状态转换图及Java程序,根据要求回答问题1~问题2。[说明]传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、 StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如图7-16所示。下面的[Java代码1]与[Java代码2]分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句

  • 查看答案
  • 阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。[说明]

    [试题]阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。[说明]某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-10表格所示)。表4-10粗略地描述了曲线Ratio(temp)。校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,需要用更多的列表值细致地描述曲线K(temp),如表4-11所示。在表4-11中,各温度值所对应的K值是对表4-10进行线性

  • 查看答案
  • 阅读以下UML类图及其说明,根据要求回答问题1~问题4。 [说明] 某客户信息管

    [试题]阅读以下UML类图及其说明,根据要求回答问题1~问题4。[说明]某客户信息管理系统中保存着两类客户的信息:①个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和E-mail)。②集团客户。集团客户可以创建和管理自己的若干名联系人。对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息。联系人的信息包括姓名、住宅电话、E-mail、办公电话以及职位。该系统除了可以保存客户信息之外,还具有以下功能:①向系统中添加客户(addCustomer

  • 查看答案
  • 阅读以下说明C£«£«代码,将应填入(n)处的字句写在对应栏内。[说明] 以下程

    [试题]阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。[说明]以下程序的功能是实现堆栈的一些基本操作。堆栈类stack共有三个成员函数:empty判断堆栈是否为空;push进行人栈操作;pop进行出栈操作。[C++程序]include "stdafx. h"include <iostream, h>eonst int maxsize = 6;class stack {float data[ maxsize];int top;public:stuck(void);~ stack(void)

  • 查看答案
  • 阅读以下说明和C程序代码,将程序补充完整。[说明] 下面C程序代码的功能是:对于

    [主观题]阅读以下说明和C程序代码,将程序补充完整。[说明]下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。函数int isPalm(long m)的功能是:将正整数m

  • 查看答案
  • 请阅读以下技术说明、类图及Java代码,根据要求将(1)~(7)空缺处的内容填写

    [试题]请阅读以下技术说明、类图及Java代码,根据要求将(1)~(7)空缺处的内容填写完整。1. [说明]已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图1-18所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图1-19所示。在图1-19中,

  • 查看答案
  • 阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。[说明] 以下

    [试题]阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明]以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下:姓名 成绩 合格否Mary 90 PASSJohn 88 PASSA.lice 67 FAILTom 56 FAIL[C++程序]inclu

  • 查看答案
  • 阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内 [说明] 以下程

    [试题]阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内[说明]以下程序的功能时三角形、矩形和正方形的面积输出。程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。[Java程序]public class areatest {public static viod main(string args[]){F.igure[]Figures={New triangle(2,3,3

  • 查看答案