当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2020年11月程序员模拟题下午(二)之九

2020年11月程序员模拟题下午(二)之九

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

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

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



1、试题五(16分)  阅读下列说明和C++代码,将应填入  (n)  处的字句写在对应栏内。【说明】    已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。    当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某些方法。    已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;    2.创建文档对象;    3.通过文档对象打开文档;    4.通过文档对象读取文档信息;    5.将文档对象加入到Application的文档对象集合中。【C++代码】    #include<iostream>    #include<vector>    using namespace std;    class Document{    public:      void save(){/*存储文档数据,此处代码省略*/)      void open(string docName){ /*打开文档,此处代码省略*/)      void close(){  /*关闭文档,此处代码省略*/)      virtual void read(string docName) =0;    };    class Appplication{    private:      vector<  (1)  >  docs;  /*文档对象集合*/    public:      bool canOpenDocument(string docName){        /*判断是否可以打开指定文档,返回真值时表示可以打开,        返回假值表示不可打开,此处代码省略*/       }      void addDocument(Document * aDocument){        /*将文档对象添加到文档对象集合中*/        docs.push_back(  (2)  );      }      virtual Document * doCreateDocument()=0;/*创建一个文档对象*/      void openDocument(string docName){/*打开文档*/        if  (  (3)  ){          cout<<“文档无法打开!”<<endl;          return;        }          (4)   adoc=   (5)  ;          (6)  ;          (7)  ;          (8)  ;      }    };
答案:

(1)Document*    (2)aDocument    (3)!canOpenDocument(docName)

    (4)Document*    (5)doCreateDocument()  (6)adoc->open(docName)

    (7)adoc->read(docName)  (8)addDocument(adoc)


答题解析:

本题考查了C++语言的应用能力和模板方法设计模式。空(1)考查了C++标准库中Vector模板类的使用,由于Vector模板类可以存储任意类型,在定义时需要指定其存储类型,根据后面的代码,能够加入到该文档集合对象中的元素是各个文档的指针,因此空(1)处的类型应该为文档指针类型。空(2)处将文档指针加入文档集合对象中。从空(3)开始的代码属于图中Application类的OpenDocument方法,该方法是模板方法,因此,需根据题目给出的步骤一一对应填空。空(3)处判断能否打开文档,需要调用父类自己的方法canOpenDocument。其次需要创建文档对象,调用doCreateDocument方法,接着通过文档对象打开和读取文档,最后通过addDocument方法将该文档对象加入到文档对象集合中。所有这些方法都是在父类或文档对象中进行定义,不涉及到具体的子类,子类负责要实现这些模板方法中需要调用的方法以便运行时被调用。



查看完整试题>>>


代理合作学习群