国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

軟件構(gòu)造lab2

孫吉亮 / 988人閱讀

摘要:本次實驗訓(xùn)練抽象數(shù)據(jù)類型的設(shè)計規(guī)約測試,并使用面向?qū)ο缶幊碳夹g(shù)實現(xiàn)。改成泛型將函數(shù)聲明和調(diào)用等修改一下即可調(diào)用之前我們實現(xiàn)的一個圖結(jié)構(gòu)實現(xiàn)方法如下讀取文件輸入,識別序列,構(gòu)建圖結(jié)構(gòu)。

本次實驗訓(xùn)練抽象數(shù)據(jù)類型(ADT)的設(shè)計、規(guī)約、測試,并使用面向?qū)ο缶幊蹋∣OP)技術(shù)實現(xiàn) ADT。

3.1 Poetic Walks
建立對ADT的基本印象,比如如何設(shè)計一個能夠泛型化的ADT。
加深對AF,RI,rep exposure 這些抽象概念的理解
這個實驗給出了一個如何設(shè)計泛型ADT的方法,首先先針對某一個特定實例設(shè)計具體的ADT:

給出接口Graph
通過不同方法實現(xiàn)該接口,對于該類的實現(xiàn)遵循ADT設(shè)計的基本方法,寫好Spec,AF,RI,并避免泄露,
3.1.1 Get the code
實驗報告中給出了github倉庫的的地址

3.1.2 Problem 1: Test Graph
進行測試。

3.1.3 Problem 2: Implement Graph
兩種方式實現(xiàn)Graph。

3.1.3.1 Implement ConcreteEdgesGraph

Edge類實現(xiàn)
Edge包含兩個String類型,source和target存放每個邊的起點終點,一個int類型weight保存權(quán)重。

ConcreteEdgesGraph實現(xiàn)
ConcreteEdgeGraph類中含有成員變量:
vertices
edges

3.1.3.2 Implement ConcreteVerticesGraph

Vertex類:
包含一個String類型 label存放該頂點的標(biāo)簽名稱,
Map類用于存放以該點為起點的邊的信息,即終點和權(quán)重

ConcreteVerticesGraph類
ConcreteEdgeGraph類中含有一個成員變量
vertices頂點列表。

3.1.4 Problem 3: Implement generic Graph
改成泛型:將函數(shù)聲明和調(diào)用等修改一下即可

3.1.5 Problem 4: Poetic walks
調(diào)用之前我們實現(xiàn)的一個GraphADT圖結(jié)構(gòu)實現(xiàn)

3.1.5.1 Implement GraphPoet
方法如下:
GraphPoet
讀取文件輸入,識別序列,構(gòu)建圖結(jié)構(gòu)。相鄰元素,在圖中新增邊。
poem
兩個連續(xù)單詞A B,利用sources函數(shù),檢查圖中B的前一個單詞,比如存在C到B的邊,還存在D到B的邊,那就檢查C的前一個單詞,比方說A到C沒有邊,A到D有邊,那就說明有路徑ADB,那么打印詩句的時候就打印ADB

3.2 Re-implement the Social Network in Lab1
利用前面實現(xiàn)的graph,重新實現(xiàn)Social Network。

3.2.1 FriendshipGraph類
函數(shù)聲明:
addVertex
addEdge
getDistance
多調(diào)用Gragh中的函數(shù),很容易改寫

3.2.2 Person類
只需要一個label表示姓名即可:

3.3 Playing Chess
ADT設(shè)計/實現(xiàn)方案
ACTION BOARD PIECE PLAYER POSITION
PIECE類,int belong記錄是哪一方的子,String label記錄KING.QUEEN等

POSITION類,記錄坐標(biāo),每個position都有一個piece,當(dāng)然棋子的起始設(shè)為0,隱形子,相當(dāng)于沒有子

PLAYER類,記個名字就好

BOARD類,構(gòu)造方法中參數(shù)決定棋盤的大小

ACTION類,按指導(dǎo)書的要求完成
心得:
面向ADT的編程和直接面向應(yīng)用場景編程,需要適應(yīng)它們的區(qū)別
初步體會使用泛型的好處
一個ADT可以在多個應(yīng)用場景下使用,這種復(fù)用,很舒服
為ADT撰寫specification, invariants, RI, AF,時刻注意ADT是否有rep exposure,是很重要的

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/77899.html

相關(guān)文章

  • 三年半Java后端面試經(jīng)歷

    摘要:經(jīng)過半年的沉淀,加上對,和分布式這塊的補齊,終于開始重拾面試信心,再次出征。面試官提示沒有提到線程的有內(nèi)核態(tài)的切換,程只在用戶態(tài)調(diào)度。三面綜合技術(shù)面這面面的是陣腳大亂,面試官采用刨根問底的方式提問,終究是面試經(jīng)驗不夠,導(dǎo)致面試的節(jié)奏有點亂。 經(jīng)過半年的沉淀,加上對MySQL,redis和分布式這塊的補齊,終于開始重拾面試信心,再次出征。 鵝廠 面試職位:go后端開發(fā)工程師,接受從Jav...

    kviccn 評論0 收藏0
  • 第6章:可維護性軟件構(gòu)建方法 6.1可維護性的度量和構(gòu)造原則

    摘要:設(shè)計方案的容易改變這就是所謂的軟件構(gòu)建的可維護性,可擴展性和靈活性。這也可能表明類型或方法可能難以維護。基于源代碼中不同運算符和操作數(shù)的數(shù)量的合成度量。對修改的封閉這種模塊的源代碼是不可侵犯的。 大綱 軟件維護和演變可維護性度量模塊化設(shè)計和模塊化原則OO設(shè)計原則:SOLIDOO設(shè)計原則:GRASP總結(jié) 軟件維護和演變 什么是軟件維護? 軟件工程中的軟件維護是交付后修改軟件產(chǎn)品以糾正故障...

    chanjarster 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<