首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
admin
2018-04-19
143
问题
以下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://kaotiyun.com/show/79jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
《信息技术汉字字型要求和检测方法》(GB/T11460一一2009)属于______。
评价信息系统时需要听取各有关方面的意见。在听取系统操作人员的意见时,主要讨论信息系统的______。
计算机病毒是一段程序,一般隐藏在______中。
在Word2003中,若需在一张8开纸上打印两页16开文档,则恰当的打印方式是(38)。
用户为将修改的文档以不同文件名存储,可用______命令。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
在Windows7系统运行时,用户为了获得联机帮助,可以直接按功能键(24)________________。
信息处理工作前期,首先需要收集所需的数据,常常要做原始统计记录。做原始统计记录需要注意的事项中一般不包括(32)。
传统意义上的计算机病毒具有哪些特征?实施数据库服务器的病毒防护时,主要需要保护哪些元素?
网页留言效果如下图所示,网页文档如下,请参照表格给出的说明在下划线处填写正确的答案到答题纸对应的栏内。[上图网页中的元素说明] [HTML文本]<!DOCrYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
一般来说,市场利率与债券价格成________变化。
下列除哪项外,均为妊娠病的发病机理
根据《电气装置安装工程高压电器施工及验收规范》,户外用的紧固件应使用()。
凭证中不同行输入的摘要()。
个人健康保险与团体健康保险的划分是基于( )的结果。
下列属于证券经纪业务管理风险的防范措施有()。Ⅰ.严格执行经纪业务操作规程Ⅱ.加强经纪业务营销管理Ⅲ.建立经纪业务营销和账户管理操作信息管理系统Ⅳ.建立健全各项规章制度
]A公司2015年12月31日的股本为5000万股,每股面值为1元,资本公积(股本溢价)为1500万元,盈余公积为1500万元。经股东大会批准,A公司以银行存款回购本公司股票500万股并注销,假定A公司按每股5元的价格回购股票。不考虑其他因素,关于注销本公
下列各项中,可以免征个人所得税的是()。
以下是一位思想品德课教师在教学《理智面对学习压力》一课时的教学片段。师:面对学习压力,同学们会有一些什么样的心理、生理反应呢?生:不知道为什么,我在课堂回答问题时声音会发抖。生:每次考试前,我都会焦虑不安,经常失眠。生:考试中,有些熟悉的知识,我会
A、Housesalescompany.B、Motorsalescompany.C、Foodsalescompany.D、Travelagency.BWhatkindofcompanydoesthemanworkfor
最新回复
(
0
)