首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
以下C++代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条
admin
2018-04-19
138
问题
以下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://www.kaotiyun.com/show/79jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
______不属于企业信息系统存在的问题。
在Excel2007中,单元格中的绝对地址在被复制或移动到其他单元格时,其单元格地址(42)________________。
在计算机网络的数据通信中广泛使用的校验方式是(15)。
在Word中可以用“编辑”→“定位”命令对需要寻找的位置进行快速定位,(48)不属于定位目标。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
对同一事物进行多次测量所得的结果可能不一致,这是幽测量误差所致。利用______可使误差基本抵消。
Windows系统运行时,按功能键__________可调出帮助系统。
从功能上说,计算机由输入设备、输出设备、______和CPU组成。
某企业对各部门有5个量化考核指标,每个指标都有达标要求。每个部门的考核结果宜用(67)来展现,既能反映各个指标的达标情况,又能反映该部门整体达标状况。
传统意义上的计算机病毒具有哪些特征?实施数据库服务器的病毒防护时,主要需要保护哪些元素?
随机试题
Childrenalllikefilms______fromfairytales.
患者腹泻1d,日达4~5次,水样便,无明显里急后重。便常规:脓细胞0~2个/HP,红细胞1~3个/HP,便涂片染色见革兰阴性弯曲且排列成鱼群状细菌,悬滴法见运动快的细菌,该患者最可能诊断为
胃十二指肠溃疡急性大出血的主要表现是
项目管理中的资源管理的含义不包括( )。
根据下列资料,回答下题。2012年1-4月份,民间固定资产投资46869亿元。比上年同期增长27.3%,增速较1-3月份回落1.6个百分点,比同期固定资产投资(不含农户)增速高7.1个百分点。民间固定资产投资占固定资产投资的比重为62%,比1-3
根据以下资料,回答111-115题。作为耐用商品,售后服务质量已经成为左右用户购买行为的重要因素,国内各汽车厂商的服务质量究竟如何,从过去一年用户的投诉中可见端倪。以下说法错误的是()。
Undertherightcircumstances,choosingtospendtimealonecanbeahugepsychologicalblessing.Inthe1980s,theItalianjour
Atschoolwewentoveroursocialnetworkingguidelines.【C1】______theobvious—don’tbeinappropriatewithstudentsthroughtexti
调整当前图标系列的次序为:马宇、杜青、赵刚、孙晓晓、赵刚。
Fearanditscompanionpainaretwoofthemostusefulthingsthatmenandanimalspossess,iftheyareproperlyused.Iffired
最新回复
(
0
)