操做系統:Ubuntu16.04
開發語言:C++
開發環境:Qt Creator 4.0.2 ,Based on Qt 5.7.0 (GCC 4.9.1 20140922 (Red Hat 4.9.1-10), 64 bit)前端
這是一個軟件工程做業,題目要求以下:git
一些說明,考慮到小學生的計算水平,不能有負數。。。。同時,不只僅是參與運算的數據要在要求的範圍內,運算完成的結果也要在要求的範圍內。算法
依據面向對象的設計原則,總共有下面幾個類:編程
Calculator
:完成後臺的邏輯處理,輸出用戶須要的數據。Widget
:主要的框架,包含了其餘的一些UI類,至關於一個總的框架,組合了前端的各種顯示控件,同時又擔負着前端顯示控件與後端邏輯處理通訊的角色。SaveData
:用於存儲數據到相應的文件Bridge
:至關於一個數據通訊的橋樑,獲取顯示輸出的數據,並把獲取的數據傳遞給SaveData
類,用於保存。經過Qt獨有的信號和槽機制,進行類之間的通訊。用戶選擇了須要的操做後,進行數據生成,並顯示。若是想要保存數據的話,須要選擇相應的目錄進行數據存儲。也能夠清空以前的數據。後端
Github暫時壞掉啦,全部的代碼在Coding.net上:https://coding.net/u/Erick_Lv/p/Qt_Calculator/git/tree/master/software_homework?public=true設計模式
基本文件的結構:
數據結構
具體操做以下
架構
軟件初始化。默認10之內的運算,默認10道題目框架
假設咱們要選擇混合有括號的計算,20道100之內的題目,並輸出結果:
機器學習
上述圖片輸出告終果。
如今要把數據保存到桌面上:
以後保存成功,咱們去桌面上查看:
打開記事本,文件已經保存到裏面了:
斷斷續續花了大約一天半到兩天的時間,學習了一下Qt基本操做,並寫了這麼一個做業。其實,感受真正困難的不是編程語言,而是軟件架構的設計。這個軟件雖然代碼量不是特別多,可是卻包含了一些很經典的軟甲設計思想。平時寫算法和數據結構或者其餘一些機器學習的程序,主要是面向過程的,注重的更可能是程序的過程和結果。在本次設計時,這樣的思想卻讓我在剛開始的翻車了,,,第一次的架構設計使得類之間的耦合度過高,只能從新設計。。。最後這個發佈版本是第二次設計的。。。
正如老師在課上說的,軟件工程不只僅是寫代碼那麼簡單,,咱們須要學習的東西還有不少。像設計模式、軟件測試等咱們都須要不斷的去學習。經過本次做業,我體會到了那張大學生與工做幾年軟件工程師在編碼時間所佔比例差異的緣由了。其實代碼只是個工具,固然,熟練使用工具確定是有用的。可是當熟練度到達必定程度的時候,考察的更是一個軟件工程師的綜合能力了。
仍是太菜了。。。。滾去學習。。。。。。。。軟件上添加了吾王的圖片,感受就是不同啊,,蟲合蟲合。。。