2025信息系统项目管理师视频教程
128068 人在学
课课家小编为大家整理了2017上半年程序员考试案例分析真题,以下为第六部分。
试题六(共15分)
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下C++代码实现一个简单客户关系管理系统(CrM)中通过工厂(Customerfactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(realCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条件时创建或获取的对象。类间关系如图6-1所示。
【C++代码】
#include<iostream>
#include<string>
using namespace std;
class Customer{
protected:
string name;
public:
(1)boll 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 NullCustomer(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[i].(5)){
return new realCustomer(name);
﹜
﹜
return(6);
﹜
﹜;
class CrM{
public:
void getCustomer(){
Customerfactory*(7);
Customer*customer1=cf->getCustomer(〝rob〞);
Customer*customer2=cf->getCustomer(〝Bob〞);
Customer*customer3=cf->getCustomer(〝Julie〞);
Customer*customer4=cf->getCustomer(〝Laura〞);
cout<<〝Customers〞<<endl;
cout<<Customer1->getName()<<endl;delete customer1;
cout<<Customer2->getName()<<endl;delete customer2;
cout<<Customer3->getName()<<endl;delete customer3;
cout<<Customer4->getName()<<endl;delete customer4;
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
*/
>>>>返回目录:2017上半年程序员考试案例分析真题(汇总)
想要报考2018年软考的朋友现在就可以开始备考了,可以报名课课家软考学院,课课家软考学院含有软考各科目赠送考试:辅导教材、历年真题、考前冲剌资料、在线模拟测试题库,还有老师专属答疑指导等,帮助大家顺利通过考试。
>>>>>>点击进入软考报名专题