一、前言
學習數據結構已經有很長時間了,加上之前搞過一段時間的ACM,雖然搞得并不怎么樣吧,但是喜歡的東西不能放棄,一直打算寫一個算法模擬系統,對常用的一些算法進行簡單的模擬,于是我的畢業設計就這樣誕生了。我相信這個簡單的系統可以給初學數據結構和算法的人帶來一定的幫助。在此做個介紹并留個紀念。另外,我很喜歡一個朋友的作品,分享給大家,希望你們也能喜歡。
二、項目中用到的設計模式
mvc模式+觀察者模式
其中Model需要繼承Observalbe類,充當被觀察者,View需要實現Obsever接口,充當觀察者。
被觀察者類要添加它的觀察者類,調用addObserver(Observer o)方法來添加觀察者,addObserver()方法把觀察者對象添加到觀察者對象列表中。如果被觀察事件發生了,需要通知觀察者事件發生了,然后觀察者會做出相應的處理,要執行的語句是setChanged()和notifyObservers()。其中setChange()方法將內部的一個標志位變動一下,表示內容已經發生了變化,?notifyObservers()方法會去調用觀察者對象列表中所有的Observer的update()方法,通知它們數據發生了變化。只有在setChange()被調用后,notifyObservers()才會去調用update()。
三、數據結構中一些模型的設計
?
四、項目功能模塊
1.系統前臺設計
?
2.系統后臺設計
?
五、效果展示
界面很丑啊,沒辦法,藝術細菌太少了......
?
? ? ? ? ? ? ? ? 模擬系統之選擇算法分類 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?模擬系統之選擇具體的算法進行模擬
?
?模擬系統之點擊開始 ? ? 模擬系統之輸入算法所需要的數據
?
?模擬系統之算法模擬開始 練習系統之查看算法題目
?
練習系統之編輯代碼并提交運行 用戶交流之登錄
?
用戶交流之注冊 用戶交流之發送消息
?
用戶交流之發送模板郵件 用戶交流之收到模板郵件
六、秀一下朋友的作品
如果無法顯示,請使用火狐或者谷歌瀏覽器或者請戳 這里 瀏覽。作品很好,我很喜歡,你們呢?這藝術細胞,嘎嘎的啊!
作者: 常雪
聯系方式(qq或微信):
? ? ? ? 1141884216
第一次利用github來部署靜態網頁,在這里記錄一下:
用 GitHub 來部署靜態網頁:?https://segmentfault.com/a/1190000002765287
部署成功的demo:?https://github.com/hjzgg/picChangeTest
demo演示效果:?http://hjzgg.github.io/picChangeTest
3D圖片切換demo:?https://github.com/hjzgg/3D_PictureChange
如果你想修改這個例子中的圖片,看一下?3D圖片切換demo?這個demo,我這里簡單封裝了一個jquery插件,直接引用插件并修改參數就可以了。?
七、完整項目地址
? 這里介紹了項目如何配置運行,以及項目的源碼,請詳細閱讀README.md這個文件。如果有什么疑問,歡迎留言或者qq聯系我。
我的畢設: https://github.com/hjzgg/Graduation_Design
八、感受
這個畢設項目持續了2個多月,每個算法的模擬實現都是根據個人的想法,簡單的1天就搞定了,復雜的3,4天才搞定。因為時間有限,只是將數據結構大學課本中的一些常用算法進行了模擬,完成之后感覺對javase的使用更加熟練了,期間更嘗試了mvc+觀察者的設計模式。由于做畢設期間還在實習,所以項目的后臺工程也就是本次實習用到的java web技術,例如maven,springmvc,springdata jpa等等。整個項目用到了大學里編程中的大部分知識,也用到了實習過程中的一些知識,對我來這個畢設真是大學四年期間和實習期間知識與技術積累的一個總結,無論好與壞,這都是自己的進步。慢慢積累,慢慢成長。