首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
admin
2018-04-19
82
问题
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条件时创建或获取的对象。类间关系如图6.1所示。
【C++代码】
#include
#include
using namespace std;
clasS Customer{
protected:
string name;
public:
(1)__________bool isNil()=0;
(2)__________string getName()=0;
};
clasS RealCustomer (3)__________{
public:
RealCustomer(string name){this一>name=name;)
bool isNil() { return falSe; )
string getName(){ return name;)
},
class NuliCustomer(4)__________{
public:
bool isNil(){ return true; )
string getName(){ return"Not Available in Customer Database"; )
);
class CustomerFactory {
public:
string names[3]={"Rob","Joe","Julie");
public:
Customer~getCustomer(string name){
for(int i=0;i<3 ;i++) {
if(names
.(5)__________ ){
return new RealCustomer(name);
}
}
return (6)__________;
}
};
Class CRM{
public:
void getCustomer() {
CustomerFactory*(7)__________;
Customer* customerl =cf一>ge七Customer("Rob");
Customer* customer2 =cf一>getCustomer("Bob");
Customer*customer3=cf一>getCustomer("Julie”);
Customer*customer4=cf一>getCustomer("Laura");
cout<< "Customers" <
cout<
getName()<
cout<
getName()<
cout<
getName()<
cout<
getName()<
delete Cf;
}
};
int main() {
CRM*crs=new CRM();
crs一>getCustomer();
delete crs;
return 0;
}
/*程序输出为:
CuStomers
Rob
Not Available in CuStomer Database
Julie
Not Available in Customer Database
*/
选项
答案
(1)virtual (2)virtual (3):public Customer (4):public Customer (5)compare(name)=0或其等价形式 (6)new NullCustomer() (7)cf=new CustomerFactory()
解析
本题考查用C++语言进行程序设计的能力,涉及类、对象、函数的定义和使用。要求考生根据给出的案例和代码说明,认真阅读以理清程序思路,然后完成题目。题目所给代码清晰,易于理清思路。
先考查题目说明,实现一个简单的客户关系管理系统(CRM),其中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条件时创建或获名称Rob和Bob为例,即:
Customer*customerl=cf一>getCustomer("Rob");
Customer* customer2 = cf一>getCustomer("Bob");
cout<
getName()<
cout<
getName()<
因为names中有Rob而无Bob,所以对应的输出结果为:
Rob
Not Available in Customer DatabaSe
整个系统的入口main()函数中,创建CRM对象,并调用getCustomer()创建客户。
综上所述,空(1)和空(2)需要标识虚拟函数,并且在子类中方法均为public,所以为virtual;空(3)和空(4)需要表示RealCustomer和NullCustomer继承抽象类Customer,即:public Customer;空(5)处为进行字符串判等,即compare(name)=0;
空(6)处为客户名称不存在时返回新创建的NullCustomer对象,即new NullCustomer();
空(7)处为采用new关键字调用CustomerFactory的缺省构造器来创建对象,通过上下文判断对象引用名称为cf,即cf=new CustomerFactory()。
转载请注明原文地址:https://jikaoti.com/ti/FHW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Word2010“查找和替换”文本框中,输入()符号可以搜索0到9的数字。
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
在Excel的A1单元格中输入函数“=6+16+MAX(16,6)”,按回车键后,A1单元格中显示的值为__________。
在Word2007的绘图工具栏上选定矩形工具,按住(36)________________按钮可绘制正方形。
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
编译程序的作用是将高级程序语言源程序翻译为(4)。
以下定性的分类变量中,(9)属于有序变量(能排序)。
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。为满足公司要求,通常选用什么类型的信息插座?
ASP是(1)网页制作技术。A.动态B.静态从以下备选答案内为程序中(5)~(9)处空缺部分选择正确答案。(5)A.CreatObjectB.ConnectC.ExecuteSQLD.Open()(6)A.<body>
随机试题
男,32岁,因患再生障碍性贫血需要输血,当输入红细胞悬液约200毫升时,突然畏寒,发热,呕吐一次,尿呈酱油样,血压10.0/6.0kPa(75/45mmHg)。该患者最有可能是下列哪一种输血不良反应(并发症)
高血压患者伴有隐性糖尿病,不宜选用哪种药物
根据《中华人民共和国城乡规划法》,近期建设规划应当以()为重点内容,明确近期建设的时序、发展方向和空间布局。①重要基础设施;②公共服务设施;③中低收入居民住房建设;④生态环境保护
基金管理人依法发售基金份额,募集基金,应当向国务院证券监管机构提交(),并经管理机构核准。
旅行社在组织旅游者旅游之前应与其签订合同。合同中应约定()等内容。
王某,男性,33岁,已婚,硕士研究生,单身在外工作(夫妻分居)。自我陈述:担心、紧张、烦躁不安、怀疑自己生病2年,自己就诊。2年前,由于工作应酬陪客人喝酒。可能是喝多的原因,我糊涂地与一个歌厅小姐发生了一次性关系,以后再未往来,也无其他类似经历,但我在
法国著名教育家卢梭的教育著作是()
某学生学习英语“t”时,发出的总是汉语拼音“t”的音,这种心理现象是()。
刑法分则条文的结构是()。
【B1】【B6】
最新回复
(
0
)