摘要:為幫助考生估分,希賽小編為大家整理了2022上半年軟件設(shè)計(jì)師下午真題(五),希望對(duì)大家估分會(huì)有幫助。
為方便廣大考生考后估分對(duì)答案,希賽網(wǎng)特向廣大學(xué)員和網(wǎng)友搜集整理了2022上半年軟件設(shè)計(jì)師下午真題(五),供大家參考。希賽網(wǎng)老師也將在考后進(jìn)行真題答案解析,敬請(qǐng)廣大考生關(guān)注。
試題五(共15分)
閱讀下列說明和C++代碼。將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
在軟件系統(tǒng)中,通常不會(huì)給用戶提供取消、不確定或者錯(cuò)誤操作的選擇,允許將系統(tǒng)恢復(fù)到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實(shí)現(xiàn)該要求,得到如圖5-1所示的類圖。Memcnto 包含了要被恢復(fù)的狀態(tài)。Originator創(chuàng)建并在Memento中存儲(chǔ)狀態(tài)。Caretaker負(fù)責(zé)從Memento中恢復(fù)狀態(tài)。
【C++代碼】
#include <iostream>
#include <string>
#include <vector>
using namespace std;
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;}
相關(guān)推薦:2022上半年軟件設(shè)計(jì)師下午真題及答案解析
熱點(diǎn)推薦:2022上半年軟件設(shè)計(jì)師真題及答案解析
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題