全部科目 > 软件设计师 >
null
null2025年下半年 软件设计师 下午试卷 案例


第 5 题
 
阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求,得到如图5-1所示的类图。

【C++代码】
class LibraryVisitor;
class LibraryItemInterface{
public:
(1) :
};
class Article : public LibraryItemInterface {
private:
string m_title; //论文名
string m_author; //论文作者
int m_start_page;
int m_end_page;
public:
Article(string p_author, string p_title, int p_start_page,int p_end_page );
int getNumber()fPages();
void accept(Library Visitor* visitor);
};
class Book : public LibraryItemInterface {
private:
string m_title; //书名
string m_author; //作者
int m_pages; //页数
public:
Book(string p_author, string p_title, int p_pages);
int getNumber()fPages();
void accept(LibraryVisitor* visitor);
};
class LibraryVisitor {
public:
(2) ;
( 3) ;
virtual void printSum() = 0;
};
class LibrarySumPrintVisitor : public LibraryVisitor { //打印总页数
private:
int sum;
public:
LibrarySumPrintVisitor();
void visit(Book* p_book);
void visit(Article* p_article);
void printSum();
};
// visitor.cpp
int Article: :getNumber()fPages(){
retum m_end_page - m_start_page;
}
void Article::accept(LibraryVisitor* visitor) { (4) ;}
Book: :Book(string p_author, string p_title, int p_pages ) {
m_title = p_title;
m_author = p_author;
m_pages = p_pages;
}
int Book::getNumberOfPages(){ return m_pages; }
void Book::accept(LibraryVisitor* visitor){ (5) ; }
//其余代码省略
 
问题:5.1   (15分)
阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
 
 
所属分类:

 
  
   ├  计算机组成与结构
   ├ ├  计算机基本工作原理
   ├ ├  存储系统
   ├ ├  输入输出系统
   ├ ├  总线系统
   ├ ├  指令系统和计算机体系结构
   ├ ├  系统性能评测和可靠性基础
   ├ ├  信息安全和病毒防护
   ├  程序语言
   ├ ├  程序设计语言基本概念
   ├ ├  汇编、编译、解释系统
   ├ ├  文法分析
   ├  操作系统
   ├ ├  操作系统定义、分类及功能
   ├ ├  进程管理
   ├ ├  存储管理
   ├ ├  设备管理
   ├ ├  文件管理
   ├ ├  作业管理
   ├  软件工程基础知识
   ├ ├  软件工程概述
   ├ ├  软件开发项目管理
   ├ ├  软件工具与开发环境
   ├ ├  软件过程管理
   ├ ├  软件质量管理
   ├  系统开发与运行
   ├ ├  结构化分析和设计
   ├ ├  系统设计知识
   ├ ├  系统的测试与维护
   ├  网络与多媒体基础知识
   ├ ├  ISO/OSI网络体系结构
   ├ ├  网络互连硬件
   ├ ├  网络协议
   ├ ├  Internet应用
   ├ ├  网络安全
   ├ ├  声音及其数字化
   ├ ├  图形和图像
   ├ ├  动画与视频
   ├ ├  多媒体计算机
   ├ ├  多媒体网络
   ├  数据库技术
   ├ ├  数据库基础知识
   ├ ├  E-R模型
   ├ ├  关系代数和关系模型
   ├ ├  SQL语言
   ├ ├  关系数据库的规范化
   ├ ├  控制功能
   ├  算法与数据结构
   ├ ├  线性结构
   ├ ├  数组、矩阵和广义表
   ├ ├  树
   ├ ├  图
   ├ ├  查找算法
   ├ ├  排序算法
   ├ ├  算法分析及常用算法
   ├  面向对象技术
   ├ ├  面向对象的基本概念
   ├ ├  面向对象程序设计
   ├ ├  面向对象开发技术
   ├ ├  面向对象分析与设计方法
   ├ ├  设计模式
   ├  标准化和知识产权
   ├ ├  标准化
   ├ ├  知识产权
   ├  专业英语
   ├ ├  专业英语