這是軟件工程的第一次作業!但由於我們python還沒入門,所以這次的要求是‘語言不限’。
小學期做過一個關於MFC的‘資金管理系統’,也正好可以有界面,所以就選擇了自己很熟悉的MFC來做這個作業!
1.題目簡介
花20分鍾寫一個能自動生成小學四則運算題目的“軟件”,要求:除了整數以外,還要支持真分數的四則運算。將代碼上傳至coding.net,並將地址發布至自己的博客。
2.題目分析
軟件要求是自動生成小學生四則運算題目!既然這樣,我首先想到了,四則運算對吧!
那四則運算也分為 四則混合運算(即生成加減乘除的一個等式!例如:2*3+6*9,2/3+9 等等之類的)【這種的特點是操作數不確定】 和 普通的已經確定了操作數的四則運算【這種的特點是操作數定,操作數之間的符號(+,-,*,/)可以隨機生成】 。
剛開始一直以為是第一種思路呢,這樣在不知道操作數是幾個的情況下,要寫成這個東西還真是有些困難吶!
后來仔細閱讀了課后的要求發現是第二種思路,頓時放心了許多呢
3.界面展示
我自己寫的就一個‘雙目運算’,他的下面又包括兩個部分:整形四則運算和分數四則運算。
這個是點整形四則運算之后的截圖:
可以看出,它實現的功能有:開始生成,判斷正誤,核對答案,查看練習結果。【這里需要解釋的是,每個白色框框上面改的‘cstring f’,'e int '的含義,這些是對應的‘edit control’框控制的變量的名字和類型,怕自已之后遺忘,所以就用一個‘靜態文本框’存下來,顯示出來了】
這個是分數部分的截圖,和整數部分長的一樣,連功能就相同,那有疑問了——為啥要這么費勁,直接整一個框不就行了嘛??!
針對這個問題的答案有二
1.如果混合起來的話,那如果小學生想要只做整數的題呢?那樣的程序實現不了
2.這樣分開的話,優點還有‘比如以后要增加新的功能了’,我的這個里面還可以加界面,那混合的豈不是就不能用了嘛!所以考慮到以后(雖然有可能以后就換語言寫了,單考慮到中不是壞事吧!),用了這種方式。
4.難點分析
難點啊!剛開始就遇到了不小的問題!
a)我只會寫只有一個框的,怎么樣才能實現選擇呢??
怎么說吧,這個問題困擾了我將近三個小時,我上網收資料,去圖書館找有關MFC的書看,但都沒有進展!!!一直找不到來着!【信息檢索能力就是不行吶】
后來,后來,真正取得突破性進展的還是因為一份PPT!!
這份PPT不是我做的,確恰恰解決我的疑惑!我就是這點不會啊!看了這份PPT之后,不由得發出感慨‘天無絕人之路’!!
5.具體實現
這個分為兩部分,整數和分數!
怎么說呢,分數部分要考慮的東西比整數的多!
整數需要考慮的是:隨機生成兩個數,隨機生成符號,還有各種按鈕的共能等等。
而分數需要考慮的是:首先需要注意的是,分數的加減乘除運算本身就比整數要難,還需要考慮到每次隨機生成的分數都是真分數,並且加減乘除的結果還要求是一個最簡分數,所以每一次運算后都要化簡約分。那么,譬如:結果是‘1/1’。分母是一的情況,也要單獨考慮等等。
但我這里重點說解釋一個整數:
使用說明: 1,3框是兩個操作數; 2框是要執行的操作; 4框是輸入框,需要手動輸入答案;
開始執行時候,先點擊‘開始生成’按鈕,之后每一次點擊都會重新生成數據。 之后,輸入自己的結果,可以點擊判斷正誤,或者核對答案! 最后,練習結束之后,可以查看自己的分數【一題一分制】以及正答率(正答率使用百分數表示的)等等
6.代碼的鏈接
整個程序的可執行文件(.exe):https://coding.net/s/8f34eca0-beec-4686-8caf-9429f45ac45b
整個項目的鏈接(.rar):https://coding.net/s/4ebe9f1a-3617-4a94-9f7a-51a6a0b7a566
我疏忽了,謝謝一位同學的提醒! 原來Coding上的鏈接直接放上來是訪問不到的,必須要把文件設置成要分享的格式才行。上面鏈接已可以正常運行
軟工的其他作業,請參見另一篇博客:http://www.cnblogs.com/inuyasha1314/p/8628692.html