结队编程项目——四则运算
生活随笔
收集整理的這篇文章主要介紹了
结队编程项目——四则运算
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、項(xiàng)目與分析
項(xiàng)目功能
自動(dòng)生成小學(xué)四則運(yùn)算題目(加、減、乘、除)并統(tǒng)計(jì)正確率
- 支持整數(shù)
- 支持多運(yùn)算符(比如生成包含100個(gè)運(yùn)算符的題目)
- 支持真分?jǐn)?shù)
分析
- 生成整數(shù)與真分?jǐn)?shù):實(shí)現(xiàn)了生成真分?jǐn)?shù)即可利用分?jǐn)?shù)的約分機(jī)制使其生成整數(shù)。
- 生成四則運(yùn)算:最初想的方法是四則運(yùn)算的生成可利用加減乘除的符號分別與數(shù)字1、2、3、4相對應(yīng),隨機(jī)生成四個(gè)數(shù)字再利用switch多分支語法即可生成相應(yīng)符號。但在后來的實(shí)踐過程中發(fā)現(xiàn)這種方法并不能很好的實(shí)現(xiàn),因?yàn)樽x取字符串的時(shí)候最好直接能讀取符號和數(shù)字,避免二者交叉,所以采取了先在一個(gè)數(shù)組中定義好四個(gè)符號,然后在生成算式的時(shí)候,利用rand產(chǎn)生隨機(jī)數(shù),然后指向數(shù)組中不同位置的符號,即可生成
支持多運(yùn)算符:運(yùn)算符的數(shù)量是通過源代碼來決定的,可根據(jù)修改源代碼來更改生成運(yùn)算符的個(gè)數(shù)。
二、設(shè)計(jì)思路
代碼應(yīng)該包含四個(gè)方面:可產(chǎn)生隨機(jī)分?jǐn)?shù)、可產(chǎn)生字符串(即算術(shù)題)、可計(jì)算產(chǎn)生的字符串、可對分?jǐn)?shù)進(jìn)行約分與加減乘除操作。- 產(chǎn)生隨機(jī)分?jǐn)?shù),在主函數(shù)中先隨機(jī)產(chǎn)生兩個(gè)整數(shù),再在一個(gè)類中進(jìn)行約分,因此我們設(shè)置了Rational類。
- 產(chǎn)生字符串,有了分?jǐn)?shù),我們只需要再找個(gè)符號就可以了,我們在主函數(shù)中利用分析中生成四則運(yùn)算的思路利用rand產(chǎn)生了符號,最后在輸出的時(shí)候設(shè)置固定的括號位置,最后一個(gè)算式就誕生了。
計(jì)算產(chǎn)生的字符串,我們把輸出的字符串再讀入到電腦中,利用老師給的思路,構(gòu)建一個(gè)計(jì)算器,分別利用數(shù)字棧和符號棧來讀字符串,根據(jù)運(yùn)算符的先后順序執(zhí)行了彈棧,即遇到加號先存,遇到右括號則執(zhí)行之前的算式,遇到乘除則彈出棧頂兩個(gè)數(shù)字進(jìn)行運(yùn)算。
UML類圖
三、關(guān)鍵代碼
題目生成
for(int i=1;i<=n;i++) {System.out.println("題目"+i+":");// calculator.a=read.nextLine();a = rand.nextInt(100);b = rand.nextInt(100);c = rand.nextInt(100);calculator1.a = "("+a+""+ch[rand.nextInt(ch.length)]+ b+""+")"+ch[rand.nextInt(ch.length)]+c+"";約分
double numerator = 1 ; //分子double denominator = 1; //分母void setNumerator(double a) { //設(shè)置分子double c=f(Math.abs(a),denominator); //計(jì)算最大公約數(shù)numerator = a/c;//約分if(numerator<0&&denominator<0) { //分子分母負(fù)數(shù)情況numerator = -numerator;denominator = -denominator;}}void setDenominator(double b) { //設(shè)置分母double c=f(numerator,Math.abs(b)); //計(jì)算最大公約數(shù)denominator = b/c;if(numerator<0&&denominator<0) {numerator = -numerator;denominator = -denominator;}}
四、遇到的困難及解決辦法
- 問題1:如何解決讀取算式的問題
- 解決方法:將算式放入字符串變量中,再用數(shù)組訪問的方法挨個(gè)訪問
五、功能展示
六、對小伙伴文航的評價(jià):
做項(xiàng)目最重要的不是積極,熱情,而是能夠一直積極,熱情,在最初的興奮退卻后,只有堅(jiān)持不懈,才能成功,而小謝就是這樣的人,我相信,我們在這一學(xué)期的結(jié)對之中都能夠收獲頗豐。
七、PSP圖
| Planning | 計(jì)劃 | 20 | 30 |
| · Estimate | · 估計(jì)這個(gè)任務(wù)需要多少時(shí)間 | 30 | 30 |
| Development | 開發(fā) | 300 | 200 |
| · Analysis | · 需求分析 (包括學(xué)習(xí)新技術(shù)) | 300 | 100 |
| · Design Spec | · 生成設(shè)計(jì)文檔 | 30 | 20 |
| · Design Review | · 設(shè)計(jì)復(fù)審 (和同事審核設(shè)計(jì)文檔) | 30 | 20 |
| · Coding Standard | · 代碼規(guī)范 (為目前的開發(fā)制定合適的規(guī)范) | 30 | 30 |
| · Design | · 具體設(shè)計(jì) | 180 | 90 |
| · Coding | · 具體編碼 | 100 | 120 |
| · Code Review | · 代碼復(fù)審 | 60 | 40 |
| · Test | · 測試(自我測試,修改代碼,提交修改) | 30 | 40 |
| Reporting | 報(bào)告 | 60 | 60 |
| · Test Report | · 測試報(bào)告 | 60 | 60 |
| · Size Measurement | · 計(jì)算工作量 | 30 | 20 |
| · Postmortem & Process Improvement Plan | · 事后總結(jié), 并提出過程改進(jìn)計(jì)劃 | 60 | 40 |
| 合計(jì) | 1320 | 900 |
轉(zhuǎn)載于:https://www.cnblogs.com/wxhblogs/p/10657262.html
總結(jié)
以上是生活随笔為你收集整理的结队编程项目——四则运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos jdk
- 下一篇: jQuery使用():Deferred有