我的做業1——四則運算題目生成程序(Windows桌面應用程序)

借鑑文章:html

 

數據結構基礎溫故-4.樹與二叉樹(下

 

一.需求分析git

1.用戶畫像算法

用戶羣體:小學生數據結構

用戶特徵:年齡小、處於數學初級學習階段框架

用戶需求:獲取四則運算題目、答題、查看統計結果post

2.功能需求學習

1. 使用 -n 參數控制生成題目的個數,使用 -r 參數控制題目中數值(天然數、真分數和真分數分母)的範圍
2.每道題目中的運算符個數不超過3個
3. 題目和運算結果中若是出現假分數應用真分數表示
4.將生成的題目存入Exercise.txt,題目答案存入Answer.txt,用戶作題結果存入Grade.txt
5.程序支持1萬道題目的生成
6.對生成的題目進行查重
測試

二.功能設計優化

基本功能:生成表達式、表達式查重、生成標準答案、提交答案、統計結果spa

拓展功能:輸入參數合法性檢測及錯誤提示、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、界面排版等,這些都加深了我對產品設計的理解與掌握。

相關文章
相關標籤/搜索