阅读下列函数说明和C++代码,回答问题
[说明]
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。
[图5-1]
[C++代码]
template (1) >
class Iterator{
public:
virtual bool hasNext() = 0;
(2) Object* next() = 0;
};
class Book{
//省略具体方法和属性
};
class BookShelf{
private:
vector books;
public:
BookShelf(){
}
Book* getBookAt(int index){
return &booksindex;
}
int getLength(){
return books. size();
}
};
template
class BookshelfIterator : public (3) {
private:
BookShelf * bookShelf;
int index;
public:
BookshelfIterator(BookShelf *bookShelf){
this->bookShelf = bookShelf;
index = 0;
}
bool hasNext(){//判断是否还有下一个元素
if(index < bookShelf->getLength()){
return true;
}else{
return false;
}
}
Objeot* next(){//取得下一个元素
return bookShelf->getBookAt(index++);
}
};
int main()
{
BookShelf bookShelf;
//将书籍上架,省略代码
Book *book;
Iterator *it = new BookShelfIterator((4) );
while((5) ){//遍历书架,输出书名
book=(Book*)it->next();
/*访问元素*/
}
return 0;
}
第2题
阅读下列说明和代码,回答问题1和问题2,将解答卸载答题纸的对应栏内。
【说明】
某一本地口令验证函数(C语言环境,X86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。
【问题1】
用户在调用gets()函数时输入什么样式的字符串,可以在不知道原始口令“Secret”的情况下绕过该口令验证函数的限制?
【问题2】
上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。
第3题
第4题
阅读以下说明和关系表,回答问题1~3。
[说明]
已知关系R(A,B,C,D) 和函数依赖集F为{AB—>D,C—>,A,D—>C}。
找出关系R的候选键,一共有几个?
第5题
阅读以下说明和关系表,回答问题1~3。
[说明]
关系R中有如下函数依赖关系:
DC→E
DB→E
BA→F
BC→DF
AC→D
DA→F
D→B
求此模型的最小函数依赖集。
第7题
请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1~问题2。 [说明] 传输门是传输系统中的重要装置。传输门具有Open()空缺处的语句填写完整。
第8题
阅读以下关于嵌入式操作系统软件编码优化的技术说明,根据要求回答问题1至问题5。
【说明】
由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。图6-22给出了两个算术运算的程序段(a)、(b)。
在嵌入式系统设计过程中,给定一份软件设计规格说明书后,下一步的工作就是编写代码。通常编码工作包含哪些步骤?
第9题
阅读下列说明,回答问题1至问题3,将解答填入对应栏内。 【说明】 某银行的转账业务分为如下两类操作: ()
第10题
阅读下列说明,回答问题1至问题3。
[说明]
某测试小组对两个网站进行了系统测试。以下是连接速度的测试界面。
右图是该测试小组对网站制定的测试流程图,请将其补充完整。
第11题
阅读下列说明,回答问题1至问题2,将解答填入对应栏内。
【说明】
利用Windows Server 2008架设邮件服务器,回答相应问题。
邮件服务器通常提供POP3和SMTP两种服务,它们各有什么作用?
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!