2014年上半年(下午)《软件设计师》真题.docxVIP

2014年上半年(下午)《软件设计师》真题.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2014年上半年(下午)《软件设计师》真题 注意:图片可根据实际需要调整大小 卷面总分:6分 答题时间:240分钟 试卷题量:6题 练习次数:0次 问答题 (共6题,共6分) 1.某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新。 现在采用观察者(Observer)模式来开发该系统。观察者模式的类图如图5-1所示。 【C++代码】 #include<iostream #include<vector using namespace std; class Observer{ public: virtual void update(float temp,float humidity,float cleanness)=0; }; class Subject{ public: virtual void registerObserver(Observer*o)=0;//注册对主题感兴趣的观察者 virtual void removeObserver(Observer*o)=0;//删除观察者 virtual void notifyObservers(  )=0;//当主题发生变化时通知观察者 }; class EnvironmentData:public(1){ private: vector<Observer*observers; float temperature,humidity,cleanness; public: void registerObserver(Observer*o){observers.push_back(o);} void removeObserver(Observer*o){/*代码省略*/} void notifyObservers(  ){ for(vector<Observer*::const_iterator it=observers.begin(  );it!=observers.end(  );it++) {(2);} } Void measurementsChanged(  ){(3);} void setMeasurements(float temperature,float humidity,float cleanness){ this-temperature=temperature; this-humidity=humidity; this-cleanness=cleanness; (4); } }; class CurrentConditionsDisplay:public(5){ private: float temperature,humidity,cleanness; Subject*envData; public: CurrentConditionsDisplay(Subject*envData){ this-envData=envData; (6); } void update(float temperature,float humidity,float cleanness){this-temperature=temperature; this-humidity=humidity; this-cleanness=cleanness; display(  ); } void display(  ){/*代码省略*/} }; int main(  ){ EnvironmentData*envData=new EnvironmentData(  ); CurrentConditionsDisplay*currentDisplay=new CurrentConditionsDisplay(envData); envData-setMeasurements(80,65,30.4f); return 0; } 正确答案: 本题解析: (1)Subject (2)(*it)-update(temperature,humidity,cleanness) (3)notifyObservers() (4)measurementsChanged() (5)Observer() (6)envData-registerObserver(this) EnvironmentData是环境数据,也就是我们要监测的对象,即主题(Subject),因此(1)处为Subject。 (2)处为通知观察者,因此遍历观察者容器,遍历到一个观察者对象,则更新该观察者的数据,即调用观察者

文档评论(0)

山水教育[全国可咨询] + 关注
官方认证
服务提供商

山水教育专注行业研报、成人教育、自考、考研考博培训,建筑行业职业资格证书考试、卫生系统职业资格考试、大学专业考核试题等等,欢迎垂询,助您考试成功!

认证主体成都梦创星野科技有限公司
IP属地河北
统一社会信用代码/组织机构代码
91510114MACPUY5K3K

1亿VIP精品文档

相关文档