摘要:希賽網(wǎng)為大家整理了2017上半年程序員考試案例分析真題,以下為第六部分。 試題六(共15分) 閱讀下列說明和C++代碼,填補代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。 【說明】 以下C++代碼實現(xiàn)
希賽網(wǎng)為大家整理了2017上半年程序員考試案例分析真題,以下為第六部分。
試題六(共15分)
閱讀下列說明和C++代碼,填補代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
以下C++代碼實現(xiàn)一個簡單客戶關(guān)系管理系統(tǒng)(CrM)中通過工廠(Customerfactory)對象來創(chuàng)建客戶(Customer)對象的功能??蛻舴譃閯?chuàng)建成功的客戶(realCustomer)和空客戶(NullCustomer)??湛蛻魧ο笫钱?dāng)不滿足特定條件時創(chuàng)建或獲取的對象。類間關(guān)系如圖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上半年程序員考試案例分析真題(匯總)
>>>>進(jìn)入估分:2017上半年軟考分?jǐn)?shù)早知道,在線估分+真題解析
>>>>點擊查看:2017上半年程序員上午真題答案和解析
軟考備考資料免費領(lǐng)取
去領(lǐng)取