2022年上半年軟件設計師下午案例分析真題已經發(fā)布!為方便廣大考生估分及備考練習,信管網將不斷為大家更新2022年上半年軟件設計師下午真題答案及解析至完畢,以下是2022年上半年軟件設計師下午案例分析真題答案及解析試題六。
【點擊查看:2022年上半年軟件設計師下午案例分析真題答案及解析完整版】
【點擊查看:歷年軟件設計師真題在線做題及PDF下載】
2022年上半年軟件設計師下午案例分析真題答案及解析(試題五)
試題五(共15分)
閱讀下列說明和C++代碼。將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
在軟件系統(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)。
【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:
vectormementoList;
pubilc:
void ( 3 ) {mementoList.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;}
【參考答案】
(1) new Memento(state);
(2) Memento->getState();
(3) add(Memento * state)
(4) Memento * get(int index)
(5) originator->saveStateToMemento()
(6) originator->saveStateToMemento()
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |