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

【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
- 查看答案