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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20172305 结对编程项目-四则运算 第二周 阶段总结

發(fā)布時間:2024/1/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20172305 结对编程项目-四则运算 第二周 阶段总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

結(jié)對編程的好麗友

  • 20172323 王禹涵:中綴轉(zhuǎn)后綴
  • 20172314 方藝雯:后綴表達式的計算
  • 20172305 譚鑫:中綴表達式的輸出

遇到的困難和解決方案

  • 問題1:括號的添加方法
  • 解決方案:
    (1)對于括號的添加,我在最開始通過每一個字符的掃面方式,進行逐一的判斷,遇到乘除號就添加一個括號,或是替代的方式,將一個乘除符號用一個乘除符號加一半的括號就可以了,想到了String類里面的方法replace,但是注意到了那個方法是所有的都要換,這樣的話就和預(yù)期的效果不一樣。所以針對這個是否有改變一個的方法去問老師,老師說可以嘗試去重寫replace方法,通過繼承的方式就可以解決,是一個很棒的想法。但是在我著手編寫的過程中,發(fā)現(xiàn)如果你要是進行添加的話,那么還得在重寫的方法里面繼續(xù)使用方法進行替換一個乘除符號,這樣的話還是繞不開這個replace的方法,所以此路不通,添加括號的方式也就擱淺了。

    • replace(CharSequence target, CharSequence replacement)
      使用指定的字面值替換序列替換此字符串所有匹配字面值目標序列的子字符串。

    (2)在問老師的同時,老師介紹了同為String類的又一個方法subSequence,通過截取整個字符串的一小部分來,在兩側(cè)進行添加括號,再給補回來的方式進行添加。所以,在五一放假期間一直在編,通過等差數(shù)列的運算方式,我成功的編寫出完整的加括號的方式,但是突然發(fā)現(xiàn)自己的只適用于10以內(nèi)的加減乘除的方式,不適用100以內(nèi)的運算,所以編出的東西全白費。(心痛,還沒有留下照片......)不過,可以以這個基礎(chǔ)進行改動就應(yīng)該適用100以內(nèi)的方法了。通過截取位置的隨機進行判斷,判斷那個位置是為數(shù)字還是字符進行添加括號,這就基本形成了我自己的一個加括號的方式。

    • subSequence(int beginIndex, int endIndex)
      返回一個新的字符序列,它是此序列的一個子序列。

    (3)但是在這種情況下,我產(chǎn)生添加括號的問題仍是漏洞百出,在右括號前面的是運算符,或是多了一個空字符,或是在數(shù)字中進行添加括號,麻煩特別多,而且自己的是隨機和循環(huán),不知道如何解決。所以,自己就是一點點的看代碼,從每一個代碼的含義進行解釋,進行重新的計算,但是這樣的效率特別低,有時候一個晚上硬是找不出問題。在經(jīng)歷了好幾天這樣的日子,開始找助教幫助解決,助教用調(diào)試的方法進行解決,由于自己的隨機和循環(huán),有時候還遇不到問題,解決起來特別棘手,再次特別表示感謝對于助教的幫助。通過助教的幫助,自己的問題解決了一大半,但在不斷的進行輸出題目的時候,仍有一個特別小的問題,而且這個問題還有時候遇不到,所以很難抓住這個,助教對此也無能為力。于是,開始尋求老師的幫助,待在老師辦公室的一下午,找出了我問題的解決辦法

    if((String.valueOf(b.charAt(b.length()-1)).equals(" ")))
    b = (String) b.subSequence(0, b.length()-1);

    最后的成品--括號方法終于成型了(喜大普奔)
  • 錯誤結(jié)果
  • 正確結(jié)果

  • 問題2:式子的產(chǎn)生
  • 解決方案:按照之前的討論,我們的想法是進行隨機數(shù)和字符的交替產(chǎn)生,但是那樣的話,我想了半天不知道如何進行添加,所以,在開始時就PASS掉了,然后想出來數(shù)字和字符的隨機循環(huán),這樣的話最后在進行一個隨機數(shù)的補充就行了。然后我就進行了編寫,在編寫的過程中,我就行了三位數(shù)的運算、四位數(shù)的運算、最大的五位數(shù)的運算,但是在編寫的過程中,我看到學(xué)長們的博客中進行著壓力測試,而自己編寫明顯不適合,不適合后期的制作,所以就在for循環(huán)上改了點,可以出現(xiàn)很長很長的運算式(估計這樣的話,小學(xué)生的運算快崩潰了吧!!)

關(guān)鍵代碼

  • 進行加括號的靜態(tài)類
package test;import java.util.Random;public class Brackets {public static String Brackets(String stance1){Random generator = new Random();String b ="" ,c = "";int a = 0,e ,d;while(a <= stance1.length()){if(("*".equals(String.valueOf((stance1.charAt(a))))) || "÷".equals((String.valueOf((stance1.charAt(a)))))){if(a + 5 < stance1.length()){e = stance1.length() - a;d = generator.nextInt(e - 12 ) + 9;if(" ".equals(String.valueOf(stance1.charAt(a + d)))){if(("+".equals(String.valueOf(stance1.charAt(a + d - 1)))) || ("-".equals(String.valueOf(stance1.charAt(a + d -1)))) || ("*".equals(String.valueOf(stance1.charAt(a + d - 1)))) || ("÷".equals(String.valueOf(stance1.charAt(a + d - 1))))){b = (String)stance1.subSequence(a + 1, a + d - 2);if((String.valueOf(b.charAt(b.length()-1)).equals(" ")))b = (String) b.subSequence(0, b.length()-1);c = stance1.subSequence(0,a + 1) + " (" + b.concat(" )") + stance1.subSequence(a + d - 2,(stance1.length()));}else{b = (String)stance1.subSequence(a + 1, a + d );if((String.valueOf(b.charAt(b.length()-1)).equals(" ")))b = (String) b.subSequence(0, b.length()-1);c = stance1.subSequence(0,a + 1) + " (" + b.concat(" )") + stance1.subSequence(a + d,(stance1.length()));}}else{if(("+".equals(String.valueOf(stance1.charAt(a + d)))) || ("-".equals(String.valueOf(stance1.charAt(a + d)))) || ("*".equals(String.valueOf(stance1.charA
  • 生成中綴表達式的類
package test;import test.Character;import java.util.Random;public class NifixExpression extends Character {String result = "",res;Random generator = new Random();int numer,denom;public String Level(int num,int sum)//num 等級 sum =1代表整式,sum= 2代表分式{if (num == 1&&sum == 1)//一級整式{int a = generator.nextInt(100);int b = generator.nextInt(100);result = a + super.character() + b + " = ";}else if (num != 1&&sum == 1)//多級整式{for (int e = 0; e < num ; e++){int d = generator.nextInt(100);result += d + super.character();}int f = generator.nextInt(100);result += f + " = ";}else{if (num == 1&&sum == 2)//一級分式{int o = generator.nextInt(100);int p = generator.nextInt(100);int q = generator.nextInt(100);int r = generator.nextInt(100);result = RationalNumber(o, p) + super.character() + RationalNumber(q,r) + " = ";}else if (num != 1&&sum == 2) //多級分式{for(int g = 0;g < num ;g++){int h = generator.nextInt(100);int i = generator.nextInt(100);result += RationalNumber(h,i) + super.character();}int j = generator.nextInt(100);int k = generator.nextInt(100);result += RationalNumber(j,k) + " = ";}}return result;}public String Level(String num) {// 單獨的加法運算if (num.equals("+")) {int sum = generator.nextInt(5) + 1;for (int a = 0; a < sum; a++) {int k = generator.nextInt(100);result += k + super.character(1);}int l = generator.nextInt(100);result +=

四則運算中個人負責的部分

自己負責產(chǎn)生題目和添加括號的編寫以及一部分的產(chǎn)品代碼。

貢獻度

方藝雯王禹涵譚鑫
貢獻度33.4%33.3%33.3%

待辦事項

結(jié)對伙伴評價

  • 20172314方藝雯 負責的是后綴轉(zhuǎn)為數(shù)字,也就是正確答案。感覺這部分比較難,而且是產(chǎn)生正確答案的關(guān)鍵,能夠很出色的完成很厲害。
  • 20172323王禹涵負責的是中綴轉(zhuǎn)后綴的問題。這部分算是整個式子承前啟后的部分,沒有這部分,我和方藝雯的內(nèi)容就全白費。
  • 兩位小伙伴完成的都很出色,遇到問題也不放棄,熬夜看代碼,不斷的在群里進行分析和探討,和兩位合作很愉快、輕松。

碼云鏈接

  • 四則運算

給出小組結(jié)對編程照片

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

總結(jié)

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

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