试题详情

试题内容

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

图5-1 Visitor模式类图

【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 getNumberOfPages();
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 getNumberOfPages();
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: :getNumberOfPages(){
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)     ;  }
//其余代码省略
查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

1题:阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某学校欲开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。主要功能的具体描述如下:
(1)处理借阅。借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。
(2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。
(3)处
2题:

[试题2]
阅读下列说明和图,回答下列问题。
[说明]
某会议策划公司为了方便客户,便于开展和管理各项业务活动,需要构建一个基于网络的会议预定系统。
[需求分析]
1.会议策划公司设有受理部、策划部和其他部门。部门信息包括部门号、部门名称、部门主管、电话和邮箱号。每个部门有多名员工处理部门的日常事务,每名员工只能在一个部门工作。每个部门有一名主管负责管理本部门的事务和人员。
2.员工信息包括员工号、姓名、部门号、职位、联系方式和工资;其中,职位包括主管、业务员、策划员等。业务员负责受理会议申请。若申请符合公司规定,则置受理标志并填写业务员的员工号。策划部主管为已受理的会议申请制定策划任务,包括策划内容、参与人数、要求完成时间等。一个已受理的会议申请对应一个策划任务,一个策划任务只对应一个已受理的会议申请,但一个策划任务可由多名策划员参与执行,且一名策划员可以参与多项策划任务。
3.客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号。其中,一个客户号唯一标识一个客户。一个客户可以提交多
1题:

试题一
阅读以下说明和图,回答问题1至问题4,将解答填入对应栏内。
【说明】
某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下;
1.每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的千时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2.学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3.在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的:如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩足有效的,否则无效。
4.对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。
5.若一门课程的所有有效的平时成绩和考试
3题:

[试题3]

阅读下列说明和图,回答下列问题。

[说明]

某城市的各国家公园周边建造了许多供游客租用的小木屋和营地,为此,该城市设置了一个中心售票处和若干个区域售票处。游客若想租用小木屋或营地,必须前往中心售票处进行预定并用现金支付全额费用。所有的预定操作全部由售票处的工作人员手工完成。现欲开发一信息系统,实现小木屋和营地的预定及管理功能,以取代手工操作。该系统的主要功能描述如下。

1.管理预定申请。游客可以前往任何一个售票处提出预定申请。系统对来自各个售票处的预定申请进行统一管理。

2.预定。预定操作包含登记游客预定信息、计算租赁费用、付费等步骤。

3.支付管理。游客付费时可以选择现金和信用卡付款两种方式。4题:阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
在一块电路板的上下两端分别有n个接线柱。根据电路设计,用(i,π(i))表示将上端接线柱i与下端接线柱π(i)相连,称其为该电路板上的第i条连线。如图4-1所示的π(i)排列为{8,7,4,2,5,1,9,3,10,6}。对于任何1≤iπ(j)。
在制作电路板时,要求将这n条连线分布到若干绝缘层上,在同一层上的连线不相交。现在要确定将哪些连线安排在一层上,使得该层上有尽可能多的连线,即确定连线集Nets={(i,π(i)),1≤i≤n}的最大不相交子集。

【分析问题】
记N(i,j)={t|(t,π(t))∈Nets,t≤i,π(t)≤j}。N(i,j)的最大不相交
4题:

试题4
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。
P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
V(S):S:=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。


【问题1】
在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。


【问题2】
若系统中有多