四则运算 结对编程
基本功能:1.一個帶有用戶界面的四則運算程序2.用戶可以自己輸入數據3.支持負數運算4.中間結果同樣符合用戶參數要求
界面效果:1.主界面
2.參數設置界面
原理分析:程序的大致流程為:用戶進入主界面,點集“生成題目”,跳轉到參數設置界面,用戶設置完成后點擊確定,主窗口從子窗口對象中提取各個參數生成算式,用戶點擊“打印題目”后將算式在listbox控件中輸出。
為了方便起見,將生成算式的功能獨自封裝為一個類,在讀取參數后直接調用這個類所實例化的對象的不同方法來生成算式。
生成算式的類主要包括三個方面的功能,即:算式求解、算式判重、生成算式。
(1)算式求解,參數為一個字符串表示具體算式,利用棧對其求解得出結果。
(2)算式判重,直接比較兩個字符串是否相等。
(3)算式生成,為了保證中間結果滿足整除或不為負數的要求,先用字母表示操作數,? 隨機生成運算符,此時得到一個抽象算式,對此算式計算其后綴表達式,以確定其 運算順序,之后一次生成操作數即可,此處依然借助了棧進行實現。
代碼:“生成題目”按鈕的Click時間核心代碼下:
當form窗體關閉后提取參數。之后調用算式類Equation類的對象,生成算式。
Equation類的類圖如下
其中前8個方法為生成不同情況算式所對應的方法,build_suf為構造后綴表達式的方法,其調用如下所示:
e_cmp為比較兩個算式是否重復,參數為兩個字符串。Solve方法為表達式求解方法。屬性的定義及含義如下所示:
MyStack為自己定義的棧類,對象sop存儲操作符,snum存儲操作數。構造抽象算式的代碼以其中一個方法為例,如下所示:
? ? ?這次的作業大部分都是靳嘉豪做的 ,因為是一個組的原因,我的作業得到他許多的幫助,在他積極的幫助下我們完成了這次的作業。雖然我并沒有給與他太多的幫助,但是跟他在一個組我學習了很多。十分感謝
? ? ? ? ? ? ? ? ? ? ??
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?同組人:靳嘉豪
?
轉載于:https://www.cnblogs.com/memorability/p/5360305.html
總結
- 上一篇: 3rd 逻辑运算符的基本用法
- 下一篇: Makefile 7——自动生成依赖关