本次實驗是軟體構造課程當中工作量最大,且最為複雜的乙個。主要工作是實現乙個多軌道系統,在這個系統的基礎上完成三個應用。
track game
atom structure
social network circle
三種應用都具有一定的多軌道結構。track game 中的軌道是跑道, atom structure當中是不同的原子軌道,social network circle中的軌道承載著不同親密度的好友。共同操作包括移動物體到其他軌道,增刪物體等等。但social network circle還需要有計算邏輯距離等特殊操作。
正規表示式的設計是本實驗的核心內容之一。設計過程中充分考慮了多於空格,多於空行等情況的存在。具體設計方案如下。
track game的正規表示式設計
讀入遊戲型別:「game ::= (100|200|400)」
讀入軌道數量:「numoftracks ::= (4|5|6|7|8|9|10)」
讀入運動員資訊:「athlete ::= 」
atom structure的正規表示式設計
讀入元素名稱:「elementname ::= ([a-za-z])」
讀入原子軌道數目:「numberoftracks ::= (\d+)」
讀入各層原子數目:"(\d+)/(\d+)"
因為各層原子數目的表達較為複雜。軌道數目是不確定的,因而採用了一種較為簡單的實現方式,即只通過」/」符號來區分各個軌道的資料。
social network circle的正規表示式設計
讀入中心使用者"centraluser ::= "
讀入朋友使用者"friend ::= "
讀入社交關係"socialtie ::= "
實驗當中難度最大的是圖形化,這部分工作我利用的中國大學mooc上《物件導向程式設計》課程的圖形繪製庫。實現效果如下
總而言之,此次實驗是我構造過的規模最大的軟體,對提公升程式設計能力很有幫助。
軟體構造 Lab3
遇到的一些問題 按鈕 覆寫 由於我的gui的實現是由乙個基礎類和三個子類組成,其中基礎類的一些按鈕的 實現要在子類中覆寫,但是我一直找不到好的方法去覆寫,所以我直接在子類中遍歷了該按鈕的所有 把它們都刪了然後重加 正規表示式匹配 在這個實驗裡我發現了正規表示式的乙個好用的功能,比如在匹配如下資訊時 ...
哈工大軟體構造lab3總結
軟構的課程已經結束一段落了,如今回顧起來,收穫頗豐。這篇部落格主要是回顧一下lab3自己出現的一些問題,總結一下教訓,幫接下來需要做實驗的同學們避避坑。第一點 不要拖延症,不要拖延症,不要拖延症。不要開始的時候覺得時間還很長,不抓緊。拖延症晚期的同學要注意!不要等最後一周的時候才開始寫 這樣會導致你...
哈工大軟體構造lab3
3.1 待開發的三個應用場景 首先請列出你要完成的具體應用場景 至少3個,1和2中選一,3必選,4和5中選一,鼓勵完成更多的應用場景 行星系統 原子系統 社交網路 分析你所選定的多個應用場景的異同,理解需求 它們在哪些方面有共性 哪些方面有差異。他們都具有軌道,中心物體,軌道物體等屬性,但是各自具體...