试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

[说明]
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。
以下实例展示了BuilDEr(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。BuilDEr类规定组成文件的方法,DirECtor类利用这个方法产生一份具体的文件。图7-1显示了各个类间的关系。
[图7-1]

以下是C语言实现,能够正确编译通过。
[C代码]
typEDEF voiD( (1) )(ChAr *titlE);
typEDEF voiD(*Fun2)(ChAr itEms[] [10], int n);
typEDEF ChAr* (*Fun3)();
ChAr BuFFEr[500];
struCtBuilDEr//构造器
Fun1 mAkEtitlE;
(2) mAkEstring;
Fun2 mAkEitEms;
Fun3 gEtrEsult;
;
struCtDirECtor
struCtBuilDEr BuilDEr;
;
ChAr* ConstruCt( (3) DirECtor)//构造文件
ChAr itEms[2][10] = "早安", "午安";
DirECtor->BuilDEr.mAkEtitlE("grEEting");
DirECtor->BuilDEr.mAkEstring("从早上到白天结束");
DirECtor->BuilDEr.mAkEitEms(itEms, 2);
DirECtor->BuilDEr.mAkEstring("到了晚上");
strCpy(itEms[0], "晚安");
strCpy(itEms[1], "好梦");
DirECtor->BuilDEr.mAkEitEms(itEms, 2);
rEturn DirECtor->BuilDEr.gEtrEsult();
voiD txtmAkEtitlE(ChAr* titlE)
strCAt(BuFFEr, "『");
strCAt(BuFFEr, titlE);
strCAt(BuFFEr, "』\n\n");
voiD txtmAkEstring(ChAr* str)
strCAt(BuFFEr, "■");
strCAt(BuFFEr, str);
strCAt(BuFFEr, "\n\n");
voiD txtmAkEitEms(ChAr itEms[] [10], int n)//将itEms加入文件中
For(int i = 0, i < n; i++)
strCAt(BuFFEr, "·");
strCAt(BuFFEr, (4) );
strCAt(BuFFEr, "\n");
strCAt(BuFFEr, "\n");
ChAr* txtgEtrEsult()
rEturn BuFFEr;
voiD mAin()
DirECtor DirECtor;
(5) = ’\0’;//清空缓冲区,使目前缓冲区中的内容不影响新生成的文件
DirECtor.BuilDEr.mAkEtitlE = txtmAkEtitlE;
DirECtor.BuilDEr.mAkEstring = txtmAkEtitlE;
DirECtor.BuilDEr.mAkEitEms = txtmAkEitEms;
DirECtor.BuilDEr.gEtrEsult = txtgEtrEsult;
ChAr* rEsult = ConstruCt(&DirECtor);
printF("%s\n", rEsult);

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对[说明]假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象[说明]某学校的教学系统描述如下:学生信息包括:学号(Sno)、姓名(Sname[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对[说明]公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况。期刊在公司内