当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2018年11月软件设计师考试模拟题下午(二)之六

2018年11月软件设计师考试模拟题下午(二)之六

作者:mb64e70626def822023-12-24 01:00:13
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2018年11月软件设计师考试模拟题下午(二)】部分试题的详解,一起来看看吧~1、阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2018年11月软件设计师考试模拟题下午(二)】部分试题的详解,一起来看看吧~



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

    public void accept(Visitor visitor);

    public double getPrice();

}



class Book  (1){

    private double price;

    public Book(double price){(2);}

    public void accept(Visitor visitor){    //访问本元素

          (3);

    }

    public double getPrice() {

         return price;

    }

}

//其它物品类略

    interface Visitor {

        public void visit(Book book);

        //其它物品的visit方法

    }



    class Cashier(4){

        private  double totalForCart;

        //访问Book类型对象的价格并累加

        (5){

           //假设Book类型的物品价格超过10元打8折

          
if(book.getPrice()<10.0){

             
totalForCart+=book.getPrice();

           } else

              
totalForCart+=book.getPrice()*0.8;

    }

    //其它visit方法和折扣策略类似,此处略



    public double getTotal() {

        return totalForCart;

    }

}

 

class ShoppingCart {

     //normal shopping cart stuff

     private java.util.ArrayList<Item>items=new
java.util.ArrayList<>();

     public double calculatePrice() {

          Cashier visitor=new
Cashier();



          for(Item item:items) {

                 
(6);

          }

          double
total=visitor.getTotal();

          return total;

     }

     public void add(Item e) {

         this.items.add(e);

     }

}
答案:

(5)(1)implements Item
(2)this.price=price
(3)visitor.visit(this)
(4)implements Visitor
(5)public void visit(Book book)
(6)item.accept(visitor)


答题解析:

这里考察的是访问者模式。其定义如下:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。<br /> 第一、四空为接口与实现,接口使用Interface,实现使用implements。第二空this表示类实例本身。第三空为访问本元素。第五空实现接口里面的方法。第六空调用accept方法。



查看完整试题>>>


代理合作学习群