软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2017年下半年程序员考试下午真题试题(案例分析)
考试中心《2017年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2017年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。

图5-1类图
问题:5.1【Java代码】
interfaceItem{
publicvoidaccept(Visitorvisitor);
publicdoublegetPrice();
}

classBook(1){
privatedoubleprice;
publicBook(doubleprice){(2);}
publicvoidaccept(Visitorvisitor){//访问本元素
(3);
}
publicdoublegetPrice(){
returnprice;
}
}
//其它物品类略
interfaceVisitor{
publicvoidvisit(Bookbook);
//其它物品的visit方法
}

classCashier(4){
privatedoubletotalForCart;
//访问Book类型对象的价格并累加
(5){
//假设Book类型的物品价格超过10元打8折
if(book.getPrice()<10.0){
totalForCart+=book.getPrice();
}else
totalForCart+=book.getPrice()*0.8;
}
//其它visit方法和折扣策略类似,此处略

publicdoublegetTotal(){
returntotalForCart;
}
}

classShoppingCart{
//normalshoppingcartstuff
privatejava.util.ArrayList<Item>items=newjava.util.ArrayList<>();
publicdoublecalculatePrice(){
Cashiervisitor=newCashier();

for(Itemitem:items){
(6);
}
doubletotal=visitor.getTotal();
returntotal;
}
publicvoidadd(Iteme){
this.items.add(e);
}
}


相关试题

推荐文章
合作网站内容