题目

试题五(共 15分)

阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在软件系统中,通常部会给用户提供取消、不确定或者错误操作的选择,允许将系统恢复到原先的状态。现使用备忘录(Memento)模式实现该要求,得到如图 5-1 所示的类图。Memcnto 包含了要被恢复的状态。Originator创建并在 Memento 中存储状态。Caretaker 负责从 Memento 中恢复状态。

image.png

【C++代码】

#include <iostream>

#include <string>

#inchude <vector>

using namespace std;

image.png

public:

void setState(string state)(this>sate-state;string getStateO{retumn state;}Memento saveStateToMemento0){

return ___(1)

void getStateFromMemento(Memento Memento){

state=( )_

class CareTaker{

private :

vector<Memento> mementoList;

pubilc:

viod( ){ mementoL ist.push back(state)

( ) _;return mementoList(index];}

intmian( ){

Originator* originator= new Originator( );

CareTaker*careTaker= new CareTaker( );

originator->setState("State #1");

originator->setState("State #2");

careTaker->add(_( )__);

originator->setState("State #3");

careTaker->add(( ));

originator->setState("State #4");


cout <<"Current State:"<<"+"<<originator->getState( )<<endl;

originator->getStateFromMemento(careTaker->get( );

cout<<"First saved State:"<<""<<originator>getState( )<<endl;

originator->getStateFromMemento(careTaker->get( );

cout<<"second save State "<<"+"<< originator>getState( )<<endl;return 0;}


【软考达人-回忆版】

试题五(共 15分)

阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在软件系统中,通常部会给用户提供取消、不确定或者错误操作的选择,允许将系统恢复到原先的状态。现使用备忘录(Memento)模式实现该要求,得到如图 5-1 所示的类图。Memcnto 包含了要被恢复的状态。Originator创建并在 Memento 中存储状态。Caretaker 负责从 Memento 中恢复状态。

image.png

【C++代码】

#include <iostream>

#include <string>

#inchude <vector>

using namespace std;

image.png

public:

void setState(string state)(this>sate-state;string getStateO{retumn state;}Memento saveStateToMemento0){

return ___(1)

void getStateFromMemento(Memento Memento){

state=( )_

class CareTaker{

private :

vector<Memento> mementoList;

pubilc:

viod( ){ mementoL ist.push back(state)

( ) _;return mementoList(index];}

intmian( ){

Originator* originator= new Originator( );

CareTaker*careTaker= new CareTaker( );

originator->setState("State #1");

originator->setState("State #2");

careTaker->add(_( )__);

originator->setState("State #3");

careTaker->add(( ));

originator->setState("State #4");


cout <<"Current State:"<<"+"<<originator->getState( )<<endl;

originator->getStateFromMemento(careTaker->get( );

cout<<"First saved State:"<<""<<originator>getState( )<<endl;

originator->getStateFromMemento(careTaker->get( );

cout<<"second save State "<<"+"<< originator>getState( )<<endl;return 0;}

作答
本题暂不支持做答,请点击“解析“以对比解题思路
答案/解析
查看试卷及答案