日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结队编程项目——四则运算

發(fā)布時間:2024/7/5 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结队编程项目——四则运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、項目與分析

項目功能

自動生成小學(xué)四則運算題目(加、減、乘、除)并統(tǒng)計正確率

  • 支持整數(shù)
  • 支持多運算符(比如生成包含100個運算符的題目)
  • 支持真分?jǐn)?shù)

分析

  • 生成整數(shù)與真分?jǐn)?shù):實現(xiàn)了生成真分?jǐn)?shù)即可利用分?jǐn)?shù)的約分機制使其生成整數(shù)。
  • 生成四則運算:最初想的方法是四則運算的生成可利用加減乘除的符號分別與數(shù)字1、2、3、4相對應(yīng),隨機生成四個數(shù)字再利用switch多分支語法即可生成相應(yīng)符號。但在后來的實踐過程中發(fā)現(xiàn)這種方法并不能很好的實現(xiàn),因為讀取字符串的時候最好直接能讀取符號和數(shù)字,避免二者交叉,所以采取了先在一個數(shù)組中定義好四個符號,然后在生成算式的時候,利用rand產(chǎn)生隨機數(shù),然后指向數(shù)組中不同位置的符號,即可生成
  • 支持多運算符:運算符的數(shù)量是通過源代碼來決定的,可根據(jù)修改源代碼來更改生成運算符的個數(shù)。

    二、設(shè)計思路

    代碼應(yīng)該包含四個方面:可產(chǎn)生隨機分?jǐn)?shù)、可產(chǎn)生字符串(即算術(shù)題)、可計算產(chǎn)生的字符串、可對分?jǐn)?shù)進(jìn)行約分與加減乘除操作。
  • 產(chǎn)生隨機分?jǐn)?shù),在主函數(shù)中先隨機產(chǎn)生兩個整數(shù),再在一個類中進(jìn)行約分,因此我們設(shè)置了Rational類。
  • 產(chǎn)生字符串,有了分?jǐn)?shù),我們只需要再找個符號就可以了,我們在主函數(shù)中利用分析中生成四則運算的思路利用rand產(chǎn)生了符號,最后在輸出的時候設(shè)置固定的括號位置,最后一個算式就誕生了。
  • 計算產(chǎn)生的字符串,我們把輸出的字符串再讀入到電腦中,利用老師給的思路,構(gòu)建一個計算器,分別利用數(shù)字棧和符號棧來讀字符串,根據(jù)運算符的先后順序執(zhí)行了彈棧,即遇到加號先存,遇到右括號則執(zhí)行之前的算式,遇到乘除則彈出棧頂兩個數(shù)字進(jì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); //計算最大公約數(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)); //計算最大公約數(shù)denominator = b/c;if(numerator<0&&denominator<0) {numerator = -numerator;denominator = -denominator;}}

四、遇到的困難及解決辦法

  • 問題1:如何解決讀取算式的問題
  • 解決方法:將算式放入字符串變量中,再用數(shù)組訪問的方法挨個訪問

五、功能展示

六、對小伙伴文航的評價:

做項目最重要的不是積極,熱情,而是能夠一直積極,熱情,在最初的興奮退卻后,只有堅持不懈,才能成功,而小謝就是這樣的人,我相信,我們在這一學(xué)期的結(jié)對之中都能夠收獲頗豐。

七、PSP圖

PSP2.1Personal Software Process Stages預(yù)估耗時(分鐘)實際耗時(分鐘)
Planning計劃2030
· Estimate· 估計這個任務(wù)需要多少時間3030
Development開發(fā)300200
· Analysis· 需求分析 (包括學(xué)習(xí)新技術(shù))300100
· Design Spec· 生成設(shè)計文檔3020
· Design Review· 設(shè)計復(fù)審 (和同事審核設(shè)計文檔)3020
· Coding Standard· 代碼規(guī)范 (為目前的開發(fā)制定合適的規(guī)范)3030
· Design· 具體設(shè)計18090
· Coding· 具體編碼100120
· Code Review· 代碼復(fù)審6040
· Test· 測試(自我測試,修改代碼,提交修改)3040
Reporting報告6060
· Test Report· 測試報告6060
· Size Measurement· 計算工作量3020
· Postmortem & Process Improvement Plan· 事后總結(jié), 并提出過程改進(jìn)計劃6040
合計1320900

轉(zhuǎn)載于:https://www.cnblogs.com/wxhblogs/p/10657262.html

總結(jié)

以上是生活随笔為你收集整理的结队编程项目——四则运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。