OO隨筆

第一次做業——多項式計算

1.自我程序分析

  第一次做業是多項式計算,只使用了一個多項式類。第一次接觸面向對象的程序,還比較生疏,不是很能理解面向對象的思想。將讀入,處理,計算,都放到了main函數中,結果main函數寫的過於冗餘。正則表達式

  這是第一次做業的度量分析,分析發現第一次做業的main函數,寫的過於複雜,沒有體現出面向對象高內聚,低耦合的思想。函數

  我在第一次做業中創建了兩個對象,polyNow和polyAns,每次將新的多項式 polyNow 經過poly類的add或者sub方法加或者減到 polyAns 中。最後polyAns中存放的即爲最後答案。測試

  

  在讀入方面,我使用了正則表達式來判斷是否合法,以後再用正則的find方法來獲取各個多項式。spa

 

2.自我bug分析

  在作第一次的程序時,曾出現過當讀入層次複雜,項數多,個數多的多項式時,會出現程序爆棧的問題。經檢查後發現是正則表達式過於複雜,致使迭代層數過多,以致於崩棧。以後採起了將讀入的字符串分割後再進行正則表達式匹配的方法,解決了問題。設計

 

3.互測策略

  第一次做業,互測時主要從測試對方輸入格式是否判斷正確的方面來測試。測試各類特殊狀況如前導零,正號等。3d

第二次做業——傻瓜電梯

1.自我程序分析

  第二次做業,我對面向對象的思想有了必定的理解,將整個電梯程序分紅了6個類,電梯類負責控制電梯狀態,樓層類負責控制樓層內外的按鈕和指示燈,請求類負責解析請求,請求隊列類負責對須要執行的請求進行存儲,判斷等,最後經過電梯控制類來對各個類進行交互協調,進行電梯的調度和樓層燈的控制。對象

  

 

 

  對於電梯的調度方法,我使用了兩個隊列,一個隊列用來儲存執行隊列,一個隊列儲存還未發出的請求。當執行隊列爲空時,從請求隊列中取出一個合法請求加入執行隊列。當電梯運行時,判斷當前過程當中有那些請求被髮出,並判斷是不是同質指令,而後將合法指令加入執行隊列。最後更新電梯狀態,而後取出執行隊列第一個命令繼續運行。blog

 

2.自我bug分析

  第二次做業寫的比較順利,在作出正確的設計後,寫完後沒什麼bug了。易錯的地方可能在一些電梯開關門的邊界處理。隊列

 

3.互測策略

  第二次做業,我寫了一個自動生成隨機輸入數據的程序,而後經過批處理指令來將本身的程序和對方比對。然而沒跑出對面什麼bug。。字符串

 

第三次做業——ALS電梯

1.自我程序分析

  第三次做業在第二次做業上加入了捎帶的功能。

  對於新加入的捎帶功能,個人理解是:由於在每次電梯運行過程當中,必定會捎帶運行中電梯內發出的指令的最高層。因此我將每次電梯運行再也不以主指令爲單位,而是在每次運行中,找到當前方向上能捎帶的最高層,當次電梯運行就從當前樓層直接運行到最高層,而且將這一次運行中須要捎帶的請求轉化爲此次運行中須要停靠的樓層。

  因而一次運行流程就轉化成:首先尋找本次運行方向上的最遠樓層,而後在運行過程當中判斷同質指令,並將各個停靠的樓層的請求輸出,而後再執行下一條指令,進行下一次運行。

2.自我bug分析

  這一次在作做業的過程當中,我在電梯開關門的過程當中的同質指令判斷有些問題,在對邊界問題進行分析後解決了問題。

3.互測策略

  對方在數字前的正號的判斷處理出現了問題,其他在程序運行方面沒有出現什麼bug。

這三次oo做業的心得體會

  經過這三次的oo做業,我對面向對象的思想有了更深入的認識,瞭解了高內聚低耦合的設計理念。在第三次做業中,我對於程序的設計還不是很完善就草草開寫,然而我在寫完以後發現本身的設計有着許多沒法解決的問題,致使我又對程序進行了從新設計並書寫。但願本身在之後作做業的過程當中,更重視本身的設計,先設計好再開寫,每每會事半功倍。

  祝你們假期快樂,oo加油!互測能少點戾氣多點和諧~祝oo課程能順利運行

相關文章
相關標籤/搜索