結對程式設計-個人專案程式碼分析
一、 簡介
本篇部落格主要是對結對程式設計隊友肖穎珂的個人專案程式碼進行評價。
二、 整體分析
程式碼語言為C++,程式功能實現完整,註釋詳細規範,可讀性較高。整體思路和我的差不多,但是在實現方法上我們有不同之處。綜合來看,我覺得隊友的個人專案完成度很好。
三、 具體分析
(此處只對重點部分進行分析)
1、 整體結構
(1) 分析:Teacher類中只保留與Teacher類聯絡緊密的功能實現函式,其他函式在類外定義和實現。函式之間層層呼叫。
(2) 優點:使Teacher類的功能更加明確,結構更嚴謹。
(3) 缺點:建立的函式有些多,感覺有點複雜了,且全部程式碼都放在一個cpp檔案中,模組性較差。
注:我的程式碼也存在這個模組性差的問題,以後需要多加註意。
2、 主函式
(1) 分析:程式使用了物件陣列生成九個教師物件,進行初始化並按照已有的教師列表設定每個教師的資訊和建立對應的資料夾。
(2) 優點:教師物件的姓名等資訊完整清晰,容易理解;同時方便修改教師的某個資訊,可見程式碼的可複用性較強。
(3) 缺點:無。
3、 登陸成功函式
(1) 分析:在使用者成功登入後,系統會提示是否切換出題型別,然後才生成試卷。這裡我和隊友實現的不同,我的是在登入成功並且試卷生成後才選擇是否切換出題型別。
(2) 優點:程式介面的中文提示友好準確,且使用者在登入後馬上能自主選擇出題型別,體驗性更好,更具有人性化。
(3) 缺點:無。
4、 題目生成函式
(因程式碼過長,圖略)
(1) 分析:隊友將這部分分為小學、初中、高中三種情況處理,進而又對運算元數量、有無括號等情況進行細分後再進行相應處理。而我的處理是先對運算元數量分情況考慮再對三種試卷型別進行細分,感覺隊友的這種邏輯更加合理、完整。
(2) 優點:程式碼邏輯結構清晰、緊密,考慮得很細緻全面,不易出現某種特殊情況未考慮的情況,非常值得我學習。
(3) 缺點:程式碼重複太多。
5、 括號選擇函式
(因程式碼過長,圖略)
(1) 分析:根據運算元個數隨機生成括號的定位引數,利用窮舉法列出所有可能的括號位置的情況,此處只考慮了最多兩對括號,函式以陣列形式返回。
(2) 優點:不會出現只有一對括號且這對括號括住整道題目的情況。
(3) 缺點:括號不能巢狀使用,且窮舉法導致程式碼實現過於繁多,可讀性較差。
四、總結
經過測試,隊友的程式功能完整準確,邏輯性強,結構嚴謹,但程式碼量有些多。而我的程式碼量雖然相對較少但功能實現不夠完整,邏輯性不夠強,總而言之,隊友的程式碼讓我學到了許多。最後,相信通過這次的結對程式設計我們都能有進步和收穫。