2023年08月04日来源:信管网 作者:cnitpm
软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2023/8/3)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2023/8/3
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2023/8/3)
试题五(共15分)
阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。
【C++代码】
#include<iostream>
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 printinvoice0{
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.printlnvoice();
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!
信管网考友试题答案分享:
信管网cnitpm_wanghl:
1、 contentdecorator(invoice*t) :decorator(t){}
void printinvoice()
2、cout<< `ticket` <<endl;
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关推荐