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

下載本文檔

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

文檔簡介

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

2、個string 對象?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ù)的實例構(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 的正確語句是:A. using Syst

3、em;B. #import <System>C. uses System;D. #include <System>6. MyClass為一個自定義的類,則下列語句創(chuàng)建了多少個類MyClass的對象? 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. 下列說法哪個正確?A. 不需要定義類,就能創(chuàng)建對象 B. 屬性可以定義為抽象的C. 對象中必須有屬性和方法 D. 常量不能作為類成員9. 在類的外部可以被訪問的成員是:A. public成員 B. private成員 C. protected成員 D. protected internal成員10. C#語言源代碼文件的后綴名為:A. .C# B. .CC C. .CSP D. .CS11. C#中導入某一個命名空間的關(guān)鍵字是:A. using B. use C. import D. include12. 方法中的值參數(shù)是_的參數(shù)。A. 按值傳遞

5、B. 按引用傳遞 C. 按地址傳遞 D. 不傳遞任何值13. 結(jié)構(gòu)化程序設(shè)計的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)于類和對象的說法中,不正確的是:A. 類包含了數(shù)據(jù)和對數(shù)據(jù)的操作 B. 一個對象一定屬于某個類C. 類是同一類對象的抽象 D. 可由抽象類生成對象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#語句,注意類MyClass 沒有訪問修飾符:namespace ClassLibrary1class MyClasspublic class subclassint i;若必須為類MyClass添加訪問修飾符,并使MyClass的可訪問域保持不變,則應選擇:A. private B. protected C. internal D. public17. 在類的定義中,類的_描述了該類的對象的行為特征。A. 類名 B. 方法 C. 所屬的名字空間 D. 私有域18.C#語言中,下列能夠作為變量名的是_。A. if B. 3ab C. a_3b D. a-bc19.能正確表示邏輯關(guān)

7、系“a>=10 或a<=0”的C#語言表達式是_。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)是先判定表達式,后執(zhí)行循環(huán)體語句C. for循環(huán)中,可以用break語句跳出循環(huán)體D. for循環(huán)體語句中,可以包含多條語句,但要用花括號括起來。二:判斷題(共20分,20小題,每小題1分。請將答案或×填入下表)題號12345678910答

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

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

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

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

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

13、共15分)假設(shè)你現(xiàn)在是一家快餐店的的管理者,要給顧客提供一系列的食品,如雞翅、雞腿等,顧客每要求一種食品,快餐店應當很快“生產(chǎn)”出來。請采用工廠模式來實現(xiàn)這個過程,用C#語言編寫相應的類代碼。答: /抽象的KFC食品,Product角色 public abstract class KFCFood public abstract void show(); /下面兩個類表示兩種具體的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) /定義一個雞腿工廠 IKF

溫馨提示

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

評論

0/150

提交評論