摘要:希賽網(wǎng)軟考頻道小編為大家整理了2019上半年軟考程序員下午真題第六部分,供大家參考。
6、閱讀下列說(shuō)明和C++代碼,將應(yīng)填入(n)處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
現(xiàn)如今線下支付系統(tǒng)可以使用現(xiàn)金(Cash)、移動(dòng)支付、銀行卡(Card)(信用卡 (CreditCard)和儲(chǔ)蓄卡(DebitCard))等多種支付方式(PaymentMethod)對(duì)物品(Item) 賬單(Bill)進(jìn)行支付。圖6-1是某支付系統(tǒng)的簡(jiǎn)略類圖。
問(wèn)題內(nèi)容:
【 C++代碼 】
#include <iostream>
#include〈vector〉
#include〈string〉
using namespace std;
class PaymentMethod {
public: virtual void pay(int cents)=0;
};
// Cash、DebitCard和Item實(shí)現(xiàn)略,Item中g(shù)etPrice( )獲取當(dāng)前物品對(duì)象的價(jià)格
class Card : public PaymentMethod {
private: string name, num;
public:
Card(string name, string num) {this->name = name; this->num = num; }
string toString( ) {
return this->getType( ) + " card[name = "+ name + ",num = " + num + "]"; )
}
void pay(int cents) {
cout<< "Payed " <<cents << " cents using " <<toString( ) <<end1;
this->executeTransaction(cents);
}
protected:
virtual string getType( )=0;
virtual void (1) =0:
};
class CreditCard (2) {
public:
CreditCard(stringname, stringnum) (3) {
}
protected:
string getType( ) { return " CREDIT " ; }
void executeTransaction(int cents) {
cout<<cents << " paid using " <<getType( )<< " Card." << end1;
}
};
class Bill {//包含所有購(gòu)買商品的賬單
private:
vector< Item*> items; //包含物品的 vector
public:
void add(Item* item){ items.push_back(item); }
int getTotalPrice( ){ /*計(jì)算所有item的總價(jià)格,代碼略*/}
void pay(PaymentMethod* paymentMethod) {//用指定的支付方式完成支付
(4) (getTotalPrice( ));
}
};
class PaymentSystem{
public:
void pay( ) {
Bill* bill = new Bill( );
Item* item1= new Item"1234",10); Item* item2 = new Item("5678",40);
bill->add(item1); bill->add(item2); //將物品添加到賬單中
(5) (new CreditCard("LI SI", "98765432101")); //信用卡支付
}
};
Intmain( ) {
(6) = new PaymentSystem( );
payment->pay( );
return 0;
}
相關(guān)推薦:2019上半年程序員下午真題及答案
在線題庫(kù):程序員歷年真題自測(cè)估分
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題