首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,回答问题 [说明] 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。 以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及
阅读以下函数说明和C代码,回答问题 [说明] 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。 以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及
admin
2012-02-20
87
问题
阅读以下函数说明和C代码,回答问题
[说明]
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式,进行组合将小对象组合成复杂的对象。
以下实例展示了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];
struct Builder{//构造器
fun1 makeTitle;
(2) makeString;
fun2 makeItems;
fun3 getResult;
};
struct Director{
struct Builder 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);
}
选项
答案
*funl funl struct Director* itemsi buffer[0]
解析
转载请注明原文地址:https://kaotiyun.com/show/ulDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则________________是一个小顶堆结构。堆结构用二叉树表示,则适宜的二叉树类型为________________。对于10个结点的小顶堆,其
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则________________是一个小顶堆结构。堆结构用二叉树表示,则适宜的二叉树类型为________________。对于10个结点的小顶堆,其
在一个完整的功能测试过程中,______不属于应该编写的测试文档。A.测试需求文档B.测试用例文档C.测试标准D.问题报告单
程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的()。
程序质量评审通常是从开发者的角度进行评审,其内容不包括____________。
________________不属于网络测试对象。
计算机系统中,虚拟存储体系由______两级存储器构成。
测试记录包括、(64)。①测试计划或包含测试用例的测试规格说明。②测试期间出现问题的评估与分析。③与测试用例相关的所有结果,包括在测试期间出现的所有失败。④测试中涉及的人员身份。
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
随机试题
状态转换方法目前主要有三种实现方法:____________、有色Petri-Net和语言/应用编程接口。
国家运用行政手段直接协调和控制微观经济主体的经济行为,这是
下列容易发生呼吸性酸中毒的是
关于公司的财务行为,下列哪些选项是正确的?(2014年卷三第71题)
下列不是债券基金的投资风险的是( )。
依照《中华人民共和国证券投资基金法》的规定,下列不属于基金托管人职责的是()。
可以对有关责任人员从轻、减轻或者免予采取证券市场禁人措施的情形包括()。I.主动消除或者减轻违法行为危害后果的Ⅱ.配合查处违法行为有立功表现的Ⅲ.受他人指使、胁迫有违法行为,且能主动交代违法行为的Ⅳ.其他可以
否定之否定规律是在自然、社会和人类思维领域普遍起作用的规律,它在()。
甲赠与乙房屋一间,条件是:乙必须与甲结婚,该民事法律行为()。
Untilaround1930fewUnitedStatesCivilWarhistorianspaidmuchattentiontoSouthernerswhoopposedthe1861-1865secession
最新回复
(
0
)