軟件設(shè)計師案例分析當天每日一練試題地址:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:www.jazzmuze.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2021/8/25)在線測試:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4&day=2021/8/25
點擊查看:更多軟件設(shè)計師習題與指導
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2021/8/25)
閱讀下列說明和C++代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。
【說明】
某大型購物中心欲開發(fā)一套收銀軟件,要求其能夠支持購物中心在不同時期推出的各種促銷活動,如打折、返利(例如,滿300返100)等等?,F(xiàn)采用策略(Strategy)模式實現(xiàn)該要求,得到如圖5-1所示的類圖。
圖5-1 策略模式類圖
【C++代碼】
#include <iostream>
using namespace std;
enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN};
class CashSuper{
public:
(1);
};
class CashNormal : public CashSuper { //正常收費子類
public:
double acceptCash(double money) { retum money; }
};
class CashDiscount : public CashSuper {
private:
double moneyDiscount; // 折扣率
public:
CashDiscount(double discount) { moneyDiscount= discount; }
double acceptCash(double money) { retum money * moneyDiscount; }
};
class CashRetum : public CashSuper { // 滿額返利
private:
double moneyCondition; // 滿額數(shù)額
double moneyReturn; // 返利數(shù)額
public:
CashRetnm(double motieyCondition, double moneyReturn) {
this->moneyCondition=moneyCondition;
this->moneyReturn=moneyReturn;
}
double acceptCash(double money) {
double result = money;
if(money>=moneyCondition)
result=money-(int)(money/moneyCondition ) * moneyReturn;
return result ;
}
};
class CashContext {
private:
CashSuper *cs;
public:
CashContext(int type) {
switch(type) {
case NORMAL: //正常收費
(2) ;
break;
case CASH_RETURN: //滿300返100
(3) ;
break;
case CASH_DISCOUNT: //打八折
(4) ;
break;
}
}
double GetResult(double money) {
(5) ;
}
};
//此處略去main()函數(shù)
信管網(wǎng)試題答案與解析:www.jazzmuze.com/st/3816115424.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.jazzmuze.com/st/3816115424.html