2022上半年軟件設計師下午真題(五)

軟件設計師 責任編輯:胡媛 2022-05-29

添加老師微信

備考咨詢

加我微信

摘要:為幫助考生估分,希賽小編為大家整理了2022上半年軟件設計師下午真題(五),希望對大家估分會有幫助。

為方便廣大考生考后估分對答案,希賽網(wǎng)特向廣大學員和網(wǎng)友搜集整理了2022上半年軟件設計師下午真題(五),供大家參考。希賽網(wǎng)老師也將在考后進行真題答案解析,敬請廣大考生關注。

試題五(共15分)

閱讀下列說明和C++代碼。將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。

【說明】

在軟件系統(tǒng)中,通常不會給用戶提供取消、不確定或者錯誤操作的選擇,允許將系統(tǒng)恢復到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實現(xiàn)該要求,得到如圖5-1所示的類圖。Memcnto 包含了要被恢復的狀態(tài)。Originator創(chuàng)建并在Memento中存儲狀態(tài)。Caretaker負責從Memento中恢復狀態(tài)。

image.png

【C++代碼】

#include <iostream>

#include <string>

#include <vector>

using namespace std;

image.png

public:

void setState(string state)(this>sate-state;string get

StateO{fretumn state;}Memento saveStateToMemento0){

return  (1)

void getStateFromMemento(MementoMemento){

state=(2)_

class CareTaker{

private:

vector<Memento>mementoList;

pubilc:

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

(4)_;return mementoList(index);}

intmian( ){

Originator*originator=new Originator();

CareTaker*careTaker=new CareTaker();

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

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

careTaker->add(_(5)_);

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

careTaker->add(( 6 ));

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

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

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

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

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

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

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內(nèi)容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!