2022年软考软件设计师历年案例分析真题详析视频课程
19598 人在学
为帮助考生估分,课课家小编为大家整理了2022上半年软件设计师下午真题(五),希望对大家估分会有帮助。
为方便广大考生考后估分对答案,课课家软考学院老师特向广大学员和网友搜集整理了2022上半年软件设计师下午真题(五),供大家参考。课课家软考学院老师也将在考后进行真题答案解析,想知道答案和解析的考生请进入课课家在线题库,估算自己的考试成绩,敬请广大考生关注。
试题五(共15分)
阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
在软件系统中,通常不会给用户提供取消、不确定或者错误操作的选择,允许将系统恢复到原先的状态。现使用备忘录(Memento)模式实现该要求,得到如图5-1所示的类图。Memcnto 包含了要被恢复的状态。Originator创建并在Memento中存储状态。Caretaker负责从Memento中恢复状态。
【C++代码】
#include
#include
#include
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:
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:"<<"+" <getState( )<<endl;< p="">
originator->getStateFromMemento(careTaker->get(0);
cout<<"First saved State:"<getStatee( )<<endl;< p="">
originator->getStateFromMemento(careTaker->get(1);
cout<<"second save State"<<"+" <getState( )<<endl;return p="" 0;}<="">
>>>>>>点击进入软考报名专题
共65节 · 5小时32分钟套餐优惠
¥199.0019598人在学
共71节 · 26小时53分钟套餐优惠
¥299.0039331人在学
共26节 · 4小时21分钟套餐优惠
¥199.0020236人在学
共89节 · 8小时14分钟套餐优惠
¥199.0023779人在学