標籤:tee git 參數 瞭解 https 錯誤 過程 運算 子節點
借鑒文章:
一.需求分析
1.使用者畫像
使用者群體:小學生
使用者特徵:年齡小、處於數學初級學習階段
使用者需求:擷取四則運算題目、答題、查看統計結果
2.功能需求
1. 使用 -n 參數控制產生題目的個數,使用 -r 參數控制題目中數值(自然數、真分數和真分數分母)的範圍
2.每道題目中的運算子個數不超過3個
3. 題目和運算結果中如果出現假分數應用真分數表示
4.將產生的題目存入Exercise.txt,題目答案存入Answer.txt,使用者做題結果存入Grade.txt
5.程式支援1萬道題目的產生
6.對產生的題目進行查重
二.功能設計
準系統:產生運算式、運算式查重、產生標準答案、提交答案、統計結果
拓展功能:輸入參數合法性檢測及錯誤提示、buttonclick快捷開啟txt檔案
進階功能:軟體圖形互動介面
三.設計實現
(部分代碼)
1.產生運算式二叉樹:
構建二叉樹,將運算數放入葉子節點,運算子放入非葉子節點,遞迴產生運算式tree.getroot().s
2.產生標準答案:後序遍曆二叉樹產生四則運算運算式,並計算出答案tree.getroot().value
3.運算式查重:樹結構調整為左子樹永遠比右子樹大,再依次比較樹的高度、運算子數量、樹的結構
4.將運算式、答案、統計結果分別存入Exercises.txt、Answers.txt、Grade.txt
5.假分數轉換成真分數:
四.測試結果
五.原始碼
項目地址:https://gitee.com/Linzhiyuan666/math.git
六.小結
本實驗加深了我對資料結構、編譯原理知識、物件導向思想的理解與掌握,在實驗過程中也遇到了諸多問題,尤其是如何做到準確且高效率地實現對10000道題目的查重,通過調整樹結構、最佳化查重演算法最終解決了該問題。由於對C#比較瞭解故採用.Net Framwork架構順便實現了軟體圖形互動介面,使其使用起來更加方便、體驗感更好,在設計圖形互動介面過程中做了諸多體驗感的最佳化,如參數合法性檢測與錯誤提示、ButtonClick快捷開啟txt檔案、運算式與答案內容預覽的ListView、介面排版等,這些都加深了我對產品設計的理解與掌握。
個人作業1——四則運算題目產生程式(Windows傳統型應用程式)