欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      體系結(jié)構實驗報告5篇

      時間:2019-05-14 23:07:35下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《體系結(jié)構實驗報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《體系結(jié)構實驗報告》。

      第一篇:體系結(jié)構實驗報告

      中南大學軟件學院

      學生姓名:所在學院:學生學號:學生班級:指導老師:完成日期:

      軟件體系結(jié)構 設計模式實驗報告

      宋昂

      軟件學院 3901080115 軟件0801 劉偉 2010-12-7

      一、實驗目的

      熟練使用PowerDesigner和任意一種面向?qū)ο缶幊陶Z言實現(xiàn)幾種常見的設計模式,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式和適配器模式,理解每一種設計模式的模式動機,掌握模式結(jié)構,學習如何使用代碼實現(xiàn)這些模式,并學會分析這些模式的使用效果。

      二、實驗內(nèi)容

      使用PowerDesigner和任意一種面向?qū)ο缶幊陶Z言實現(xiàn)簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式和適配器模式,包括根據(jù)實例繪制模式結(jié)構圖、編寫模式實例實現(xiàn)代碼,運行并測試模式實例代碼。

      (1)簡單工廠模式

      使用簡單工廠模式設計一個可以創(chuàng)建不同幾何形狀(Shape)的繪圖工具類,如可創(chuàng)建圓形(Circle)、方形(Rectangle)和三角形(Triangle)對象,每個幾何圖形都要有繪制draw()和擦除erase()兩個方法,要求在繪制不支持的幾何圖形時,提示一個UnsupportedShapeException,繪制類圖并編程實現(xiàn)。

      (2)簡單工廠模式

      使用簡單工廠模式模擬女媧(Nvwa)造人(Person),如果傳入?yún)?shù)“M”,則返回一個Man對象,如果傳入?yún)?shù)“W”,則返回一個Woman對象,使用任意一種面向?qū)ο缶幊陶Z言實現(xiàn)該場景?,F(xiàn)需要增加一個新的Robot類,如果傳入?yún)?shù)“R”,則返回一個Robot對象,對代碼進行修改并注意女媧的變化。

      (3)工廠方法模式

      某系統(tǒng)日志記錄器要求支持多種日志記錄方式,如文件記錄、數(shù)據(jù)庫記錄等,且用戶可以根據(jù)要求動態(tài)選擇日志記錄方式,現(xiàn)使用工廠方法模式設計該系統(tǒng)。用代碼實現(xiàn)日志記錄器實例,如果在系統(tǒng)中增加一個中的日志記錄方式——控制臺日志記錄(ConsoleLog),繪制類圖并修改代碼,注意增加新日志記錄方式過程中原有代碼的變化。

      ClientLogFactory+createLog(): Log...Log+writeLog(): void...FileLogFactory+createLog(): Log...DatabaseLogFactory+createLog(): Log...<>FileLog+writeLog(): void...<>DatabaseLog+writeLog(): void.........return new FileLog();......return new DatabaseLog();(4)工廠方法模式

      現(xiàn)需要設計一個程序來讀取多種不同類型的圖片格式,針對每一種圖片格式都設計一個圖片讀取器(ImageReader),如GIF圖片讀取器(GifReader)用于讀取GIF格式的圖片、JPG圖片讀取器(JpgReader)用于讀取JPG格式的圖片。圖片讀取器對象通過圖片讀取器工廠ImageReaderFactory來創(chuàng)建,ImageReaderFactory是一個抽象類,用于定義創(chuàng)建圖片讀取器的工廠方法,其子類GifReaderFactory和JpgReaderFactory用于創(chuàng)建具體的圖片讀取器對象。使用工廠方法模式實現(xiàn)該程序的設計。

      (5)抽象工廠模式

      某系統(tǒng)為了改進數(shù)據(jù)庫操作的性能,自定義數(shù)據(jù)庫連接對象Connection和語句對象Statement,可針對不同類型的數(shù)據(jù)庫提供不同的連接對象和語句對象,如提供Oracle或SQL Server專用連接類和語句類,而且用戶可以通過配置文件等方式根據(jù)實際需要動態(tài)更換系統(tǒng)數(shù)據(jù)庫。使用抽象工廠模式設計該系統(tǒng)。用代碼模擬實現(xiàn)數(shù)據(jù)庫操作工廠實例,要求可以通過配置文件改變數(shù)據(jù)庫類型。

      DBFactory+createConnection(): Connection+createStatement(): Statement...ConnectionOracleFactory+createConnection(): Connection+createStatement(): Statement...OracleConnectionMySQLConnectionMySQLFactory+createConnection(): Connection+createStatement(): Statement...OracleStatementStatementMySQLStatement(6)抽象工廠模式

      計算機包含內(nèi)存(RAM)、CPU等硬件設備,根據(jù)下面的“產(chǎn)品等級結(jié)構-產(chǎn)品族”示意圖,使用抽象工廠模式實現(xiàn)計算機設備創(chuàng)建過程并繪制相應的類圖。

      產(chǎn)品族一個產(chǎn)品族PcCPUPcRAMPcMacMacCPUMacRAMCPU(7)單例模式

      RAM產(chǎn)品等級結(jié)構

      使用單例模式的思想實現(xiàn)多例模式,確保系統(tǒng)中某個類的對象只能存在有限個,如兩個或三個,設計并編寫代碼實現(xiàn)一個多例類。

      (8)單例模式

      使用單例模式設計一個多文檔窗口(注:在Java AWT/Swing開發(fā)中可使用JDesktopPane和JInternalFrame來實現(xiàn)),要求在主窗體中某個內(nèi)部子窗體只能實例化一次,即只能彈出一個相同的子窗體,如下圖所示:

      (注:用C#或C++實現(xiàn)類似功能也可以)

      (9)適配器模式

      現(xiàn)有一個接口DataOperation定義了排序方法sort(int[])和查找方法search(int[], int),已知類QuickSort的quickSort(int[])方法實現(xiàn)了快速排序算法,類BinarySearch 的binarySearch(int[], int)方法實現(xiàn)了二分查找算法?,F(xiàn)使用適配器模式設計一個系統(tǒng),在不修改源代碼的情況下將類QuickSort和類BinarySearch的方法適配到DataOperation接口中。繪制類圖并編程實現(xiàn)。(要求實現(xiàn)快速排序和二分查找)

      (10)適配器模式

      使用任意一種面向?qū)ο缶幊陶Z言實現(xiàn)一個雙向適配器實例,使得貓可以學狗叫,狗可以學貓抓老鼠。繪制相應類圖并使用代碼編程模擬。

      三、實驗要求

      1.正確無誤繪制簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式和適配器模式實例的模式結(jié)構圖;

      2.使用任意一種面向?qū)ο缶幊陶Z言實現(xiàn)簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式和適配器模式實例,代碼運行正確無誤。

      四、實驗步驟

      1.熟悉PowerDesigner15的常用功能;

      2.使用PowerDesigner繪制簡單工廠模式實例結(jié)構圖并用面向?qū)ο缶幊陶Z言實現(xiàn)該模式實例;

      3.使用PowerDesigner繪制工廠方法模式實例結(jié)構圖并用面向?qū)ο缶幊陶Z言實現(xiàn)該模式實例;

      4.使用PowerDesigner繪制抽象工廠模式實例結(jié)構圖并用面向?qū)ο缶幊陶Z言實現(xiàn)該模式實例;

      5.使用PowerDesigner繪制單例模式實例結(jié)構圖并用面向?qū)ο缶幊陶Z言實現(xiàn)該模式實例; 6.使用PowerDesigner繪制適配器模式結(jié)構圖并用面向?qū)ο缶幊陶Z言實現(xiàn)該模式。

      五、實驗結(jié)果

      (1)簡單工廠模式1:

      類圖:

      結(jié)果:

      (2)簡單工廠模式2: 類圖:

      結(jié)果:

      (3)工廠方法模式1 類圖:

      結(jié)果:

      (4)工廠方法模式2 類圖:

      結(jié)果:

      (5)抽象工廠模式1 類圖:

      結(jié)果:

      (6)抽象工廠模式2 類圖:

      結(jié)果:

      (7)單例模式1 類圖:

      結(jié)果:

      (8)單例模式1 類圖:

      結(jié)果:

      (9)適配器模式1 類圖:

      結(jié)果:

      (10)適配器模式2 類圖:

      結(jié)果:

      六、實驗總結(jié)

      通過一段時間的對設計模式的學習和練習,我深刻的意識到了一個好的軟件往往是設計模式巧妙運用的結(jié)果。要學好設計模式,就必須得徹底理解設計模式,要能夠看懂設計模式中的類圖,如果要是設計模式中的類圖都看不懂,那學好設計模式只是天方夜譚了。從開始學習設計模式到現(xiàn)在我們大概已經(jīng)學了10種左右的設計模式了,每一種都有著它獨特的優(yōu)點,但是事情往往都是有兩面性的,它們也存在著缺點,怎么去用好設計模式對我們來說是一門學問,我們有必要花時間和精力去學好它。

      第二篇:0837嵌入式體系結(jié)構綜合實驗報告

      重慶理工大學

      嵌入式體系結(jié)構綜合實驗報告

      題目:基于LPC2114的定時數(shù)據(jù)采集與通訊程序設計

      二級學院 計算機科學與工程學院 專 業(yè) 計算機科學與技術

      班 級 0837-1 學生姓名 冉晨 學號 10803070119 教 師 劉政 時 間 2010/11/14 成 績

      目錄

      一、實驗名稱-------------3

      二、實驗目的-------------3

      三、實驗設備與環(huán)境----3

      四、實驗基本原理-------3

      五、實驗內(nèi)容(包括主要算法分析與流程圖)--4

      六、實驗源程序及分析-5

      七、實驗運行結(jié)果及分析-----------------------------7

      八、實驗心得體會-------8

      一、實驗名稱

      基于LPC2114的定時數(shù)據(jù)采集與通訊程序設計

      二、實驗目的

      使用EasyARM2114板上AIN0和AIN1輸入模擬量, 定時1mS中斷采樣,然后采樣的電壓每秒通過UART串口傳送到PC機串口助手顯示.三、實驗設備與環(huán)境

      EasyARM2114實驗板,PC機,Windows XP操作系統(tǒng), H-JTAG串口,實驗相關數(shù)據(jù)線, ARM Developer Suite相關軟件,串口調(diào)試助手.四、實驗基本原理

      本設計任務選用了Philips的LPC2114微處理器作為現(xiàn)場控制的核心。設計采用定時中斷方式,要求每1ms采集一點,LPC2114將采集所轉(zhuǎn)換的數(shù)據(jù)存儲在ADDR(A/D數(shù)據(jù)存儲器)中, A/D采樣結(jié)果也采用中斷讀取.然后程序通過SPI實現(xiàn)UART通訊, 傳送到PC機串口助手顯示, 其中的電壓值為實際采樣值,每秒顯示完后換行,同時要求串口發(fā)送采用中斷.五、實驗內(nèi)容(包括主要算法分析與流程圖)

      設置P0,P1,P0.27,P0.28連接定時器初始化初始化串口模式A/D初始化數(shù)據(jù)采集并傳送顯示(每秒換行)中斷 該實驗最主要的算法實現(xiàn)在于中斷的實現(xiàn)(包括實現(xiàn)UART的中斷和數(shù)據(jù)采集后的A/D采樣結(jié)果),結(jié)合代碼分析: void __irq IRQ_ADC(){

      count++;

      if(count%2==1)

      {

      ADC_Data=ADDR;//存入寄存器數(shù)據(jù)

      ADC_Data=(ADC_Data>>6)&0x3FF;

      ADC_Data=ADC_Data*3300;

      ADC_Data=ADC_Data/1024;//換算

      sum1+=ADC_Data;//存入電壓AIN0總值

      }

      else

      {

      ADC_Data=ADDR;

      ADC_Data=(ADC_Data>>6)&0x3FF;

      ADC_Data=ADC_Data*3300;

      ADC_Data=ADC_Data/1024;//換算

      sum2+=ADC_Data;// 存入電壓AIN1總值

      }

      VICVectAddr=0x00;//通知VIC中斷處理結(jié)束 } 關于ADC的初始化: void ADC_Init(){

      ADCR=

      (3)

      //選擇通道

      ((Fpclk/1000000-1)<<8)

      (0<<16)

      (0<<17)

      (1<<21)

      //PDN=1模式為正常工作

      (0<<22)

      (1<<26)

      (1<<27)

      //EDGE=1

      VICVectCntl2=0x32;

      VICVectAddr=(uint32)IRQ_ADC;

      VICVIntEnable |=0x00040000;

      }

      六、實驗源程序及分析

      #include“config.h” #include“stdio.h” #define UART_BPS 115200 uint8 comERR;int count=0;uint32 ADC_Data;long sun1=0,sum2=0;int v1=0,v2=0;int pSd=0,pRd=0;char SdBuff[100],RdBuff[20];void Time0Init()//定時器初始化 {

      T0PR=9;

      T0MCR=0x03;

      T0MR1=1106/2;

      T0TCR=0x03;

      T0TCR=0x01;

      T0EMR=0xC0;

      } void __irq IRQ_UART_Exception()//通訊發(fā)送中斷 {

      switch(U0IIR&0x0f)

      {

      case 0x06:

      comERR=U0LSR;

      break;

      case 0x04:

      while((U0LSR & 0x01)==1)

      {

      RdBuff[pRd++]=U0RBR;

      if(pRd>=100)pRd=0;

      }

      break;

      case 0x0c:

      while((U0LSR&0x01)==1)

      {

      RdBuff[pRd++]=U0RBR;

      if(pRd>=100)pRd=0;

      }

      break;

      case 0x02:

      if(SdBuff[pSd]!='