软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2023/8/7)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2023/8/7
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2023/8/7)
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图6-1所示的类图。
图6-1 策略模式类图
【Java代码】
import java.util.*;
enum TYPE { NORMAL, CASH_DISCOUNT, CASH_RETURN};
interface CashSuper {
public (1) ;
}
class CashNormal implements CashSuper{ // 正常收费子类
public double accptCash(double money){
return money;
}
}
class CashDiscount implements CashSuper {
private double moneyDiscount; // 折扣率
public CashDiscount(double moneyDiscount) {
this moneyDiscount = moneyDiscount;
}
public double acceptCash(double money) {
return money* moneyDiscount;
}
}
class CashReturn implements CashSuper { // 满额返利
private double moneyCondition;
private double moneyReturn;
public CashReturn(double moneyCondition, double moneyReturn) {
this.moneyCondition =moneyCondition; // 满额数额
this.moneyReturn =moneyReturn; // 返利数额
}
public double acceptCash(double money) {
double result = money;
if(money >= moneyCondition )
result=money-Math.floor(money/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: // 打8折
(3) ;
break;
case CASH_RETURN: // 满300返100
(4) ;
break;
}
}
public double GetResult(double money) {
(5) ;
}
//此处略去main()函数
}
信管网试题答案与解析:www.cnitpm.com/st/3816226871.html
信管网考友试题答案分享:
信管网cnitpm537653968867:
1、public double acceptcash(double money);
2、cs = new cashdiscount(1);
3、cs = new cashdiscount(0.8);
4、cs = new cashreturn(300,100);
5、return cs.acceptcash(money);
信管网试题答案与解析:
www.cnitpm.com/st/3816226871.html