軟件設(shè)計(jì)模式A卷期末考核_第1頁(yè)
軟件設(shè)計(jì)模式A卷期末考核_第2頁(yè)
軟件設(shè)計(jì)模式A卷期末考核_第3頁(yè)
軟件設(shè)計(jì)模式A卷期末考核_第4頁(yè)
軟件設(shè)計(jì)模式A卷期末考核_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上東 北 大 學(xué) 繼 續(xù) 教 育 學(xué) 院 軟件設(shè)計(jì)模式 試 卷(作業(yè)考核 線上) A 卷學(xué)習(xí)中心:黑龍江漠河奧鵬學(xué)習(xí)中心17 院校學(xué)號(hào): C015 姓名 牟雷 (共 5 頁(yè)) 總分題號(hào)一二三四五六七八九十得分一:?jiǎn)芜x題(共40分,20小題,每小題2分。請(qǐng)將答案填入下表)題號(hào)12345678910答案ADABADDBAD題號(hào)11121314151617181920答案AADDCCBCDA1. C#語(yǔ)言的核心是面向?qū)ο缶幊蹋∣OP),所有OOP語(yǔ)言都應(yīng)至少具有三個(gè)特性:A、封裝、繼承和多態(tài) B、類、對(duì)象和方法C、封裝、繼承和派生 D、封裝、繼承和接口2. 下列語(yǔ)句創(chuàng)建了多少

2、個(gè)string 對(duì)象?string, strArray = new string34;A. 0 B. 3 C. 4 D. 12 3. 關(guān)于結(jié)構(gòu)類型,下列說法哪些是正確的?A. 結(jié)構(gòu)是值類型B. 結(jié)構(gòu)中不允許定義帶參數(shù)的實(shí)例構(gòu)造函數(shù);C. 結(jié)構(gòu)中不允許定義析構(gòu)函數(shù)D. 結(jié)構(gòu)中可以定義成員方法,但是方法內(nèi)不能使用this 指針4. 在c#程序中,入口函數(shù)的正確聲明為:A. static int main()B. static void Main()C. static void main()D. void Main()5. 在C#中,引用命名空間system 的正確語(yǔ)句是:A. using Syst

3、em;B. #import <System>C. uses System;D. #include <System>6. MyClass為一個(gè)自定義的類,則下列語(yǔ)句創(chuàng)建了多少個(gè)類MyClass的對(duì)象? MyClass , myArray = new MyClass23;A. 0 B. 2 C. 3 D. 67. 已知a、b、c的值分別是4、5、6,執(zhí)行下面的程序段后,判斷變量n的值為:int a,b,c,n;if (c < b) n = a + b + c; else if (a + b < c) n = c - a - b; else n = a + b;A

4、. 3 B. -3 C. 9 D. 158. 下列說法哪個(gè)正確?A. 不需要定義類,就能創(chuàng)建對(duì)象 B. 屬性可以定義為抽象的C. 對(duì)象中必須有屬性和方法 D. 常量不能作為類成員9. 在類的外部可以被訪問的成員是:A. public成員 B. private成員 C. protected成員 D. protected internal成員10. C#語(yǔ)言源代碼文件的后綴名為:A. .C# B. .CC C. .CSP D. .CS11. C#中導(dǎo)入某一個(gè)命名空間的關(guān)鍵字是:A. using B. use C. import D. include12. 方法中的值參數(shù)是_的參數(shù)。A. 按值傳遞

5、B. 按引用傳遞 C. 按地址傳遞 D. 不傳遞任何值13. 結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是:A. 順序結(jié)構(gòu)、if結(jié)構(gòu)、for結(jié)構(gòu)B. if結(jié)構(gòu)、ifelse結(jié)構(gòu)、else if結(jié)構(gòu)C. while結(jié)構(gòu)、dowhile結(jié)構(gòu)、foreach結(jié)構(gòu)D. 順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)14. 以下關(guān)于類和對(duì)象的說法中,不正確的是:A. 類包含了數(shù)據(jù)和對(duì)數(shù)據(jù)的操作 B. 一個(gè)對(duì)象一定屬于某個(gè)類C. 類是同一類對(duì)象的抽象 D. 可由抽象類生成對(duì)象15.下列關(guān)于構(gòu)造函數(shù)的描述正確的是:A. 構(gòu)造函數(shù)可以聲明返回類型 B. 構(gòu)造函數(shù)不可以用private修飾C. 構(gòu)造函數(shù)必須與類名相同 D. 構(gòu)造函數(shù)不能帶參數(shù)16

6、. 分析下列C#語(yǔ)句,注意類MyClass 沒有訪問修飾符:namespace ClassLibrary1class MyClasspublic class subclassint i;若必須為類MyClass添加訪問修飾符,并使MyClass的可訪問域保持不變,則應(yīng)選擇:A. private B. protected C. internal D. public17. 在類的定義中,類的_描述了該類的對(duì)象的行為特征。A. 類名 B. 方法 C. 所屬的名字空間 D. 私有域18.C#語(yǔ)言中,下列能夠作為變量名的是_。A. if B. 3ab C. a_3b D. a-bc19.能正確表示邏輯關(guān)

7、系“a>=10 或a<=0”的C#語(yǔ)言表達(dá)式是_。A. a>=10 or a<=0 B. a>=10|a<=0C. a>=10&&a<=0 D. a>=10|a<=0 20.以下關(guān)于for循環(huán)的說法不正確的是_。A. for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B. for循環(huán)是先判定表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句C. for循環(huán)中,可以用break語(yǔ)句跳出循環(huán)體D. for循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但要用花括號(hào)括起來。二:判斷題(共20分,20小題,每小題1分。請(qǐng)將答案或×填入下表)題號(hào)12345678910答

8、案××××××題號(hào)11121314151617181920答案×××××××1軟件危機(jī)是二十一世紀(jì)軟件領(lǐng)域出現(xiàn)的新問題。 2數(shù)據(jù)流分析技術(shù)是結(jié)構(gòu)化分析方法的核心技術(shù)。 3從提出軟件開發(fā)計(jì)劃的那一刻起開始直到軟件投入實(shí)際應(yīng)用為止可以認(rèn)為是一個(gè)完整的軟件生存周期。4噴泉模型主要用于面向過程的軟件項(xiàng)目。5類是所有某一類對(duì)象的共同的行為和不同狀態(tài)的集合體。6利用多重繼承雖然可以提高類的共享程度,但也會(huì)增加系統(tǒng)的復(fù)雜程度。7面向?qū)ο蟪绦蛟O(shè)計(jì)應(yīng)該遵循低內(nèi)聚、高耦合的原則。8人機(jī)

9、交互子系統(tǒng)的設(shè)計(jì)內(nèi)容就是用戶如何命令系統(tǒng)。9作為一種建模語(yǔ)言,UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。10狀態(tài)圖、順序圖、協(xié)作圖和部署圖屬于動(dòng)態(tài)建模機(jī)制。11順序圖和協(xié)作圖雖然都是用來描述交互的,但順序圖強(qiáng)調(diào)的是空間,而協(xié)作圖強(qiáng)調(diào)的是時(shí)間。12面向?qū)ο笤O(shè)計(jì)中的"開閉"原則指的是軟件對(duì)修改應(yīng)該是開放的,對(duì)擴(kuò)展應(yīng)該是關(guān)閉的。13單一職責(zé)原則、里氏代換原則、依賴倒置原則等,都可以看成是“開放-封閉”原則的實(shí)現(xiàn)方法。14一般來說,繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立。15當(dāng)一個(gè)超類的實(shí)例能夠替換任何其子類的實(shí)例時(shí),它們之間才具有is-A關(guān)系。16工廠方法是抽象工廠

10、模式的擴(kuò)展。17結(jié)構(gòu)型模式在破壞類的封裝性的基礎(chǔ)上,實(shí)現(xiàn)新的功能。18數(shù)組作為函數(shù)的參數(shù)時(shí)默認(rèn)的傳遞形式是按值傳遞。19具有抽象方法的類必須聲明為abstract。20重載是進(jìn)行基類中函數(shù)的重寫。三:簡(jiǎn)答題(共25分,5小題,每小題5分。)1. 什么是設(shè)計(jì)模式?答:設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。2. 面向?qū)ο笤O(shè)計(jì)中需要遵循哪些原則?為什么要遵循這些原則?答:(1)"開閉"原則:軟件對(duì)擴(kuò)展應(yīng)該是開放的,對(duì)修改應(yīng)該是關(guān)閉的。(2)單

11、一職責(zé)原則:就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。(3)里氏代換原則:繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立(4)依賴倒置原則:如果一個(gè)類的一個(gè)成員或參數(shù)為一個(gè)具體類型,那么這個(gè)類就依賴于那個(gè)具體類型。3. 什么是面向?qū)ο筌浖_發(fā)的“開放-封閉”原則?其優(yōu)點(diǎn)有哪些?答:所謂開放封閉原則就是軟件實(shí)體應(yīng)該對(duì)擴(kuò)展開發(fā),而對(duì)修改封閉。 優(yōu)點(diǎn):按照開放-封閉原則設(shè)計(jì)出來的系統(tǒng),降低了程序各部分之間的耦合性,其適應(yīng)性、靈活性、穩(wěn)定性都比較好。當(dāng)已有軟件系統(tǒng)需要增加新的功能時(shí),不需要對(duì)作為系統(tǒng)基礎(chǔ)的抽象層進(jìn)行修改,只需要在原有基礎(chǔ)上附加新的模塊就能實(shí)現(xiàn)所需要添加的功能。增加的新模塊對(duì)原有的模塊完

12、全沒有影響或影響很小,這樣就無(wú)須為原有模塊進(jìn)行重新測(cè)試。4. 結(jié)構(gòu)型模式的功能有哪些?答:結(jié)構(gòu)型模式能夠解決如下幾個(gè)方面的問題:(1)在不破壞類的封裝性的基礎(chǔ)上,實(shí)現(xiàn)新的功能;(2)在不破壞類的封裝性的基礎(chǔ)上,使得類可以同不曾估計(jì)到的系統(tǒng)進(jìn)行交互;(3)創(chuàng)建對(duì)一組類的統(tǒng)一的訪問接口;(4)對(duì)同一類,創(chuàng)建不同的訪問界面,提供給不同的訪問者5. 試簡(jiǎn)述抽象工廠模式。答:抽象工廠模式是所有形態(tài)的工廠模式中最為抽象和最具一般性的一種形態(tài)。抽象工廠模式是指當(dāng)有多個(gè)抽象角色時(shí),使用的一種工廠模式。抽象工廠模式可以向提供一個(gè)接口,使客戶端在不必指定產(chǎn)品的具體的情況下,創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象。四:綜合題(

13、共15分)假設(shè)你現(xiàn)在是一家快餐店的的管理者,要給顧客提供一系列的食品,如雞翅、雞腿等,顧客每要求一種食品,快餐店應(yīng)當(dāng)很快“生產(chǎn)”出來。請(qǐng)采用工廠模式來實(shí)現(xiàn)這個(gè)過程,用C#語(yǔ)言編寫相應(yīng)的類代碼。答: /抽象的KFC食品,Product角色 public abstract class KFCFood public abstract void show(); /下面兩個(gè)類表示兩種具體的KFC食品,它們繼承了抽象的KFC食品Concrete Product1角色public class Chicken: KFCFood public override void show() Console.Write

14、Line(“雞腿+1”); /Concrete Product2角色public class Wings: KFCFood public override void show() Console.WriteLine(“雞翅+1”); /產(chǎn)品工廠,F(xiàn)actory角色interface IKFCFactory KFCFood CreatFood();/雞翅膀工廠,ConcreteFactory角色public class WingsFactory: IKFCFactory public KFCFood CreateFood() return new Wings(); /雞腿工廠,ConcreteFactory角色public class ChickenFactory: IKFCFactory public KFCFood CreateFood() return new Chicken(); Static void Main(String args) /定義一個(gè)雞腿工廠 IKF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論