|
|
51CTO旗下网站
|
|
移动端

试题五(共15 分)

《软件设计师历年真题解析》本书针对软件设计师2014—2017年共8次真题进行了试题的分析和解答,帮助考生熟悉试题形式,了解重点、掌握解答问题的方法和技巧等。本节为试题五(共15 分)。

作者:薛大龙来源:电子工业出版社|2018-08-21 18:46

试题五(共15 分)

阅读下列说明和C++代码,将应填入( )处的字句写在答题纸的对应栏内。

【说明】

某图像预览程序要求能够查看BMP、JPEG 和GIF 三种格式的文件,且能够Windows 和Linux 两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1 所示的类图。

【C++代码】

  1. #include <iostream> 
  2. #include<:string> ;  
  3. Using namespace std;  
  4. class Matrix{//各种格式的文件最终都被转化为像素矩阵  
  5. //此处代码省略  
  6. };  
  7. class Implementor{  
  8. public:  
  9. ( );显示像素矩阵 m  
  10. };  
  11. class WinImp:public Implementor{  
  12. public:  
  13. Viod doPaint(Matrix m){/*调用 Windows 系统的绘制函数绘制像素矩阵*/  
  14. };  
  15. class LinuxImp:public Implementor{/*调用 Linux 系统的绘制函数绘制像素矩阵*/}  
  16. };  
  17. class Image{  
  18. public:  
  19. viod setImp(Implement*imp) {this->impimp=imp;}  
  20. Virtual viod parseFile(string fileName)=0  
  21. protected:  
  22. Implementor*imp;  
  23. };  
  24. class BMPImage:public Image{  
  25. //此处省略代码  
  26. };  
  27. class GIFImage:public Image{  
  28. Public:  
  29. viod parseFile(string fileName) {  
  30. //此处解析 GIF 文件并获得一个像素矩阵对象 m  
  31. ( );显示像素矩阵 m  
  32. }  
  33. };  
  34. class JPEGImage:public Image{  
  35. //此处代码省略  
  36. };  
  37. int main(){  
  38. //在 linux 操作系统上查看 demo.gif 图像文件  
  39. Image*image=( );  
  40. Implementor*imageImp=( );  
  41. ( )  
  42. Image->parseFile(〝demo.gif〝);  
  43. return0;  
  44. } 

【参考答案】

1. virtual void doPaint(Matrix m) = 0

2. imp->doPaint(m)

3. new GIFImage()

4. new LinuxImp()

5. image->setImp(imageImp)


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

鸟哥的Linux私房菜——服务器架设篇(第二版)

本书是对连续三年蝉联畅销书排行榜前10名的《Linux鸟哥私房菜——服务器架设篇》的升级版,新版本根据目前服务器与网络环境做了大幅度修订...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊