亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

5.1(封裝,測試)

2019-11-15 00:00:12
字體:
來源:轉載
供稿:網友
5.1(封裝,測試)

程序源代碼(簡單java版):

package arrays.myArray;import java.util.Scanner;public class SortObject { PRivate static int intercePosition = 0; // 記錄單個運算數據的長度 private static int[] intercePositionIndex = null; // 記錄“(”的下標 private static int[] intercePositionEnd = null; // 記錄“)”的下標 public static void main(String[] args) {  Scanner input = new Scanner(System.in);  do {   System.out.println("請輸入你要計算的字符串(注意:只能輸入數字和加,減,乘除符號;輸入完畢后,請直接回車):");   String numberString = input.next().trim();   // 判斷輸入的運算字符串是否符合規定   if (ispassString(numberString) == false) {    System.out.println("您輸入的計算字符串有誤,請正確輸入!");   } else {    // 計算結果返回    System.out.println(interceResult(numberString));   }  } while (true); } // 判斷是否有帶括號的運算字符串存在 private static String interceResult(String str) {  String result = str;  char[] numberString = str.toCharArray(); // 1+2+(1*2+1-1*2+5)+2+(1+5+9+10-11)+1*5/2+3  // 1+8-9+(1*8/2-5+(1+2+8))+4/5*8/3*2  int IndexStart = 0; // 記錄“(”的實際數量  int EndStart = 0; // 記錄“)”的實際數量  for (int i = 0; i < numberString.length; i++) {   if ('(' == numberString[i]) {    // 記錄最后一個正括號的位置    IndexStart = i;   }   if (')' == numberString[i]) {    // 記錄反括號的最初始下標的位置    EndStart = i;    // 截取最里面一個括號里的運算字符串    result = result.substring(IndexStart + 1, EndStart);    // 截取括號的運算字符串進行運算,生成新的運算字符串    result = str.substring(0, IndexStart)      + interceptOperation(result, '*', '/')      + str.substring(EndStart + 1, str.length());    // 回調執行,其它小括號的運算字符串    return interceResult(result);   }   if (i == numberString.length - 1)    if (EndStart == 0)     break;  }  // 不存在括號了,再進行混合運算  result = interceptOperation(str, '*', '/');  return result; } // 不帶括號的四則運算 private static String interceptOperation(String operationNumber, char a,   char b) {  String mess = operationNumber;  char[] stringOperation = mess.toCharArray();  // 循環遍歷運算字符串,并做相應的運算  for (int i = 0; i < stringOperation.length; i++) {   // 判斷運算符所在的索引   if (stringOperation[i] == a || stringOperation[i] == b) {    if (i != 0) {     // 運算符前的第一個數     double num1 = interceptNumIndex(mess.substring(0, i));     // 記錄第一個數據的長度     int frontPosition = intercePosition;     // 運算符前的第二個數     double num2 = interceptNumEnd(mess.substring(i + 1,       stringOperation.length));     // 記錄第二個數據的長度     int backPosition = intercePosition;     // 算完乘除,將結果替換到原來運算的位置,得到新的運算字符串     String IndexMess = mess.substring(0, i - frontPosition + 1);     String IndexResult = "";     // 判斷是否運算到最后的結果了     if (IndexMess.indexOf('+') == -1       && IndexMess.indexOf('*') == -1       && IndexMess.indexOf('/') == -1       && IndexMess.lastIndexOf('-') == -1)      IndexMess = "";     if (IndexMess != "")      IndexResult = IndexMess.lastIndexOf('-') == IndexMess        .length() - 1 ? IndexMess.substring(0, i        - frontPosition) : IndexMess;     // 組裝新的運算字符串     mess = IndexResult// mess.substring(0,i-frontPosition+1)       + reslutString("" + stringOperation[i], num1, num2)       + mess.substring(i + backPosition + 1);     // 0.111/1212/2/2/2/2/2/2/2     if (mess.lastIndexOf('-') == 0 && mess.indexOf('+') == -1       && mess.indexOf('*') == -1       && mess.indexOf('/') == -1) {      break;     }     // 回調,繼續運算     return interceptOperation(mess, a, b);// 1+7-5+89/3+4-6*8/2+4-6    } else     continue;   }   if (i == stringOperation.length - 1) {    // 遞歸出口,判斷是否還有運算字符串在    if (mess.indexOf('+') != -1 || mess.indexOf('-') != -1)     return interceptOperation(mess, '+', '-');    break;   }  }  return mess; } // 截取第二個數 private static double interceptNumEnd(String str) {  double a = 0;  int InrerceIndex = 0;  char[] stringOperation = str.toCharArray();  boolean ispas = false; // 記錄是否為負數  for (int i = 0; i < stringOperation.length; i++) {   switch (stringOperation[i]) {   case '*':   case '/':   case '+':   case '-':    InrerceIndex = i;    if (i != 0) // 判斷該數是否為負數     ispas = true;    break;   default:    break;   }   if (ispas)    break;  }  // 判斷此數據是否在運算字符串的最后一位  if (InrerceIndex == 0) {   a = Double.parseDouble(str);   intercePosition = str.length();   if (ispas)    intercePosition++;  } else {   a = Double.parseDouble(str.substring(0, InrerceIndex));   // 記錄數據的真實長度   intercePosition = str.substring(0, InrerceIndex).length();  }  return a; } // 截取第一個數 private static double interceptNumIndex(String str) {  double a = 0; // 記錄數據  int InrerceIndex = 0; // 記錄運算符的位置  boolean temp = false; // 記錄數據前運算符的狀態  char[] stringOperation = str.toCharArray();  for (int i = stringOperation.length - 1; i >= 0; i--) {   switch (stringOperation[i]) {   case '*':   case '/':   case '+':   case '-':    InrerceIndex = i;    temp = true;    break;   default:    break;   }   if (temp)    break;  }  // 判斷此數據是否在運算字符串的第一位  if (InrerceIndex == 0) {   a = Double.parseDouble(str);   intercePosition = str.length();   // if(temp)   // intercePosition++;  } else {   a = Double.parseDouble(str.substring(InrerceIndex, str.length()));   // 記錄數據的真實長度   intercePosition = str.substring(InrerceIndex, str.length())     .length();  }  return a; } // 計算結果 private static double reslutString(String operation, double num1,   double num2) {  double sumResult = 0;  if (operation.equals("*"))   sumResult = num1 * num2;  if (operation.equals("-"))   sumResult = num1 - num2;  if (operation.equals("/"))   sumResult = num1 / num2;  if (operation.equals("+"))   sumResult = num1 + num2;  return sumResult; } // 判斷是否正確輸入運算方式 private static boolean ispassString(String messString) {  boolean ispass = false;  boolean operationIspass = true; // 記錄被除數的狀態  int ai = 0; // 記錄是否有運算符號的存在  char[] IsString = messString.toCharArray();  int num1 = 0;  int num2 = 0;  for (int i = 0; i < IsString.length; i++) {   // 記錄有幾對小括號的存在   if ('(' == IsString[i])    num1++;   if (')' == IsString[i])    num2++;   // 判斷除數是否為零   if ('/' == IsString[i] && IsString[i + 1] == '0')    operationIspass = false;   // 判斷是否輸入了運算符合   if (IsString[i] == '+' || IsString[i] == '-' || IsString[i] == '*'     || IsString[i] == '/')    ai++;   if (i == IsString.length - 1)    if (ai == 0)     num2++;  }  if (operationIspass)   if (num1 == num2)    ispass = true;  return ispass; }}

封裝代碼:

package test.test;public class Core {    int sumResult=0;    static double test1(String operation, double num1,double num2) {              double sumResult = 0;              if (operation.equals("*"))               sumResult = num1 * num2;              if (operation.equals("-"))               sumResult = num1 - num2;              if (operation.equals("/"))               sumResult = num1 / num2;              if (operation.equals("+"))               sumResult = num1 + num2;              return sumResult;             }}

測試代碼:

package test.test;import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class CoreTest {    @Before    public void setUp() throws Exception {    }    @Test    public void test() {        Core core = new Core();        double a = core.test1("+",1,3);        assertEquals(4,a);    }}

對于這次實驗的“測試方法”還在摸索之中。。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久影院优| 欧美成人免费全部| 久久免费视频这里只有精品| 8090理伦午夜在线电影| 国产欧美日韩精品丝袜高跟鞋| 亚洲香蕉av在线一区二区三区| 91精品视频观看| 中文字幕九色91在线| 国产成人精品视频在线观看| 欧美视频在线免费| 国产精品爱啪在线线免费观看| 国产欧美日韩免费看aⅴ视频| 亚洲精品美女久久久| 国产欧美日韩最新| 国产精品偷伦免费视频观看的| 国产精品专区第二| 日韩高清免费在线| 久久久精品久久久| 久久久午夜视频| 精品电影在线观看| 国产伦精品一区二区三区精品视频| 97视频国产在线| 91欧美视频网站| 亚洲最大福利视频| 日韩精品高清在线| 国产主播精品在线| 亚洲乱亚洲乱妇无码| 精品调教chinesegay| 国产精品久久9| 欧美成人激情在线| 亚洲精品美女免费| www.欧美精品| 久久久久久久久久久av| 精品成人av一区| 成人激情综合网| 97在线免费视频| 久久亚洲精品毛片| 日韩精品欧美国产精品忘忧草| 亚洲精品xxx| 欧美在线视频a| 午夜精品久久久久久久久久久久| 久久国产视频网站| 懂色av中文一区二区三区天美| 91av在线不卡| 久久久久国产精品免费| 欧美激情精品久久久久久| 69视频在线播放| 国产精品1区2区在线观看| 国精产品一区一区三区有限在线| 亚洲色图色老头| 亚洲欧美日韩国产中文| 日韩av电影在线免费播放| 国外成人在线视频| 97精品国产91久久久久久| 欧美中文在线视频| 国产精品久久电影观看| 亚洲国产一区二区三区四区| 久久精品亚洲94久久精品| 国产乱人伦真实精品视频| 久久99久久99精品免观看粉嫩| 欧美重口另类videos人妖| 成人啪啪免费看| 亚洲精品一区二区在线| 97视频在线观看免费高清完整版在线观看| 91超碰caoporn97人人| 日本午夜人人精品| 91tv亚洲精品香蕉国产一区7ujn| 精品爽片免费看久久| 日韩福利伦理影院免费| 亚洲一区二区三区在线视频| 日韩精品在线观| 亚洲自拍高清视频网站| 精品无人区太爽高潮在线播放| 日韩欧美国产黄色| 91久久嫩草影院一区二区| 国产精品天天狠天天看| 久久精品国产96久久久香蕉| 欧美性开放视频| 久久在精品线影院精品国产| 粉嫩av一区二区三区免费野| 国产999精品| 亚洲精品小视频在线观看| 久久精品成人动漫| 国语自产精品视频在免费| 日韩不卡中文字幕| 久久影院模特热| 亚洲欧美激情视频| 欲色天天网综合久久| 亚洲第一免费播放区| 欧美中文字幕在线视频| 欧美性猛交xxxx免费看久久久| 欧美日韩中文字幕在线| 国产精品国产福利国产秒拍| 红桃av永久久久| 亚洲美女av电影| 欧美性猛交xxxx免费看久久久| 亚洲激情视频网站| 中文字幕欧美精品日韩中文字幕| 国产精品1区2区在线观看| 欧美精品video| 亚洲天堂av在线免费观看| 69av在线视频| 国产又爽又黄的激情精品视频| 欧美成人免费视频| 日本午夜精品理论片a级appf发布| 国产精品久久久久久久午夜| 欧美日韩加勒比精品一区| 国产日韩视频在线观看| 欧美国产精品va在线观看| 日韩国产精品亚洲а∨天堂免| 亚洲天堂av女优| 成人激情视频在线| 欧美中文字幕在线视频| 97精品久久久| 欧美日韩免费在线| 国产在线精品一区免费香蕉| 欧美成人精品在线播放| 久久精品久久久久电影| 久久精品成人动漫| 福利一区福利二区微拍刺激| 久久91亚洲人成电影网站| 日本精品久久电影| 久久精品国产2020观看福利| 欧美寡妇偷汉性猛交| 亚洲国产成人爱av在线播放| 日韩精品黄色网| 国产精品高精视频免费| 成人精品网站在线观看| 亚洲天堂男人天堂| 91夜夜未满十八勿入爽爽影院| 成人写真视频福利网| 亚洲图中文字幕| 成人a级免费视频| 国产日韩精品在线观看| 亚洲精品国产精品自产a区红杏吧| 一区二区日韩精品| 日本精品性网站在线观看| 永久免费毛片在线播放不卡| 亚洲精品国精品久久99热| 日韩中文视频免费在线观看| 日韩激情av在线免费观看| 91精品国产综合久久香蕉| 中文字幕日韩综合av| 成人精品福利视频| 亚洲天堂av网| 欧美精品久久久久久久免费观看| 国产精品久久久久久久久借妻| 国产日本欧美一区二区三区在线| 亚洲国产精品99| 精品视频偷偷看在线观看| 成人黄色在线播放| 日韩成人激情影院| 欧美激情综合色综合啪啪五月| 国产成人精品av在线| 亚洲精品成人av| 国产亚洲欧洲高清一区| 亚洲天堂男人的天堂| 中日韩午夜理伦电影免费| 久久免费视频在线| 亚洲国产私拍精品国模在线观看| 亚洲精品自拍视频| 精品福利樱桃av导航| 亚洲肉体裸体xxxx137| 国产小视频91|