2022年09月19日来源:信管网 作者:cnitpm
软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2022/9/18)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2022/9/18
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2022/9/18)
试题六(共15分)
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各
种促销活动,如打折、返利(例如,满300返1 00)等等。现采用策略( Strategy)模式实
现该要求,得到如图6-1所示的类图。
【Java代码】
import java util*;
enum TYPE { NORMAL, CASH_DISCOUNT, CASH_RETURN};
interface CashSuper {
Public (1) ;
}
class CashNormal imp lements CashSuper{ //正常收费子类
Public double accptCash(double money){
return money;
}
}
class CashDiscount implements CashSuper {
private double moneyDiscoMt; //折扣率
public CashDiscount(double moneyDiscount) {
This moneyDiscount = moneyDiscount;
}
public double acceptCash(double money) {
Return money* moneyDiscount;
}
}
class CashReturn im plements CashSuper { //满额返利
private double moneyCondition;
private double moneyRetum;
public CashReturn(double moneyCondition, double moneyRetum) {
thismoneyCondition =moneyCondition; // 满额数额
thismoneyReturn =moneyReturn; //返利数额
public double acceptCash(double money) {
double result = money;
if(money >= moneyCondition )
result =money -Math.floor(nioney/moneyCondition ) * moneyReturn;
return result;
}
}
class CashContext_{
private CashSuper cs;
private TYPE t;
public CashContext(TYPE t) {
switch(t){
case NORMAL: // 正常收费
(2) ;
break;
case CASH_DISCOUNT: // 满 300返 100
(3) ;
break;
case CASH_DISCOUNT: // 打八折
(4)
break;
}
}
public double GetResult(double money) {
(5) ;
}
∥此处略去main()函数
}
信管网考友试题答案分享:
信管网cnitpm475547856609:
cs=new cashnormal()
cs=new cashreturn(300,100)
cs=new cashdisCOUNT(0.8)
cs.acceptcash(money)
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关推荐