2009年上半年軟考軟件設(shè)計師下午試卷[10]

軟件設(shè)計師 責(zé)任編輯:angelkhf 2009-05-24

添加老師微信

備考咨詢

加我微信

摘要:試題六(共15分)閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。【說明】現(xiàn)欲實現(xiàn)一個圖像瀏覽系統(tǒng),要求該系統(tǒng)能夠顯示BMP、JPEG和GIF三種格式的文件,并且能夠在Windows和Linux兩種操作系統(tǒng)上運(yùn)行。系統(tǒng)首先將BMP、JPEG和GIF三種格式的文件解析為像素矩陣,然后將像素矩陣顯示在屏幕上。系統(tǒng)需具有較

  試題六(共15分)

  閱讀下列說明和C++代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)。

  【說明】

  現(xiàn)欲實現(xiàn)一個圖像瀏覽系統(tǒng),要求該系統(tǒng)能夠顯示BMP、JPEG 和GIF三種格式的文件,并且能夠在Windows和Linux兩種操作系統(tǒng)上運(yùn)行。系統(tǒng)首先將BMP、JPEG 和GIF三種格式的文件解析為像素矩陣,然后將像素矩陣顯示在屏幕上。系統(tǒng)需具有較好的擴(kuò)展性以支持新的文件格式和操作系統(tǒng)。為滿足上述需求并減少所需生成的子類數(shù)目,采用橋接(Bridge)設(shè)計模式進(jìn)行設(shè)計所得類圖如圖6-1所示。

  采用該設(shè)計模式的原因在于:系統(tǒng)解析BMP、GIF與JPEG文件的代碼僅與文件格式相關(guān),而在屏幕上顯示像素矩陣的代碼則僅與操作系統(tǒng)相關(guān)。

  【C++代碼】

  class Matrix{ //各種格式的文件最終都被轉(zhuǎn)化為像素矩陣
  //此處代碼省略
  };
  class ImageImp{
  public:
  virtual void doPaint(Matrix m) = 0;  //顯示像素矩陣m
  };
  class WinImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*調(diào)用windows系統(tǒng)的繪制函數(shù)繪制像素矩陣*/ }
  };
  class LinuxImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*調(diào)用Linux系統(tǒng)的繪制函數(shù)繪制像素矩陣*/  }
  };
  class Image {
  public:
  void setImp(ImageImp *imp){ (1)  = imp;}
  virtual void parseFile(string fileName) = 0;
  protected:
  (2)  *imp;
  };
  class  BMP : public Image{
  public:
  void parseFile(string fileName){
  //此處解析BMP 文件并獲得一個像素矩陣對象m
  (3)  ;// 顯示像素矩陣m
  }
  };
  class  GIF : public Image{
  //此處代碼省略
  };
  class  JPEG : public Image{
  //此處代碼省略
  };
  void main(){
  //在windows操作系統(tǒng)上查看demo.bmp圖像文件
  Image *image1 = (4)  ;
  ImageImp *imageImp1 = (5)  ;
  (6)  ;
  image1->parseFile("demo.bmp");
  }

  現(xiàn)假設(shè)該系統(tǒng)需要支持10種格式的圖像文件和5種操作系統(tǒng),不考慮類Matrix,若采用橋接設(shè)計模式則至少需要設(shè)計(7)個類。
[答案討論] 

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢在線老師!