题目详情

某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。

中级软件设计师,历年真题,2016年下半年(下午)《软件设计师》真题

【C++代码】

#include

using namespace std;

class Invoice{

public:

(1){

cout<<"This is the content of the invoice!"<<endl;

}

};

class Decorator:public Invoice{

Invoice*ticket;

public:

Decorator(lnvoice*t){ticket=t;}

void printInvoice(  ){

if(ticket!=NULL)

(2);

}

};

class HeadDecorator:public Decorator{

public:

HeadDecorator(lnvoice*t):Decorator(t){}

void printInvoice(  ){

cout<<"This is the header of the invoice!"<<endl;

(3);

}

};

class FootDecorator:public Decorator{

public:

FootDecorator(Invoice*t):Decorator(t){}

void printlnvoice(  ){

(4);

cout<<"This is the footnote of the invoice!"<<endl;

}

};

int main(void){

Invoice t;

FootDecorator f(&t);

HeadDecorator h(&f);

h.printInvoice(  );

cout<<”------------------------”<<endl;

FootDecorator a(NULL);

HeadDecorator b((5));

b.printInvoice(  );

return 0;

}

程序的输出结果为:

This is the header of the invoice!

This is the content of the invoice!

This is the footnote of the invoice!

----------------------------

This is the header of the invoice!

This is the footnote of the invoice!

正确答案及解析

正确答案
解析

(1)virtual void printInvoice()

(2)ticket->printInvoice()

(3)Decorator::printInvoice()

(4)Decorator::printInvoice()

(5)&a

1.Invoice类下,定义虚函数,按类图,函数名是printInvoice。

2.前面定义对象名是ticket,那么在ticket不为空的时候调用函数printInvoice。

3.这部分填写发票的抬头,看类图应该实现函数printInvoice,Decorator装饰模式使用该方法。

4.这部分是发票的脚注,看类图应该实现函数printInvoice,Decorator装饰模式使用该方法。

5.FootDecorator a(NULL);脚步的装饰参数是a,调用a参数。

包含此试题的试卷

你可能感兴趣的试题

单选题

Advancements in ( )have contributed to the growth of the automotive industry through the creation and evolution of self-driving vehicles.

  • A.Artificial Intelligence
  • B.Cloud Computing
  • C.Internet of Things
  • D.Big Data
查看答案
单选题

In project human resource management , ( )is not a source of power for the project manager.

  • A.referent power
  • B.expert power
  • C.reward power
  • D.audit power
查看答案
单选题

At the project establishment stage , the feasibility study mainly includes techinical feasibility analysis , ( ), operation environment feasibility analysis and other aspects of feasibility analysis.

  • A.detail feasibility analysis
  • B.opportunity analysis
  • C.economic feasibility analysis
  • D.risk analysis
查看答案
单选题

( )is a grid that shows the project resources assigned to each work package.

  • A.Stakeholder engagement assessment matrix
  • B.Requirements traceability matrix
  • C.Probability and impact matrix
  • D.Responsibility assignment matrix
查看答案
单选题

Xinhua News Agency reported in January 2022,Chian will further promote the developmet of a digital economy during the 14th Five-Year Plan eriod(2021-2025). The plan also emphasized industrial ( )transformation.

  • A.digital
  • B.networking
  • C.intelligentize
  • D.informatization
查看答案

相关题库更多 +