簡體   English   中英

Java:為多項式類創建toString方法

[英]Java: Creating a toString method for Polynomial class

public String toString(){
    String mytoString="";
    if(!a.equals(0)){
        mytoString = a.toString() + "x^2";
    }
    if(!b.equals(0)){
        mytoString += b.toString() + "x";
    }
    if(!c.equals(0)){
        mytoString += c.toString(); 
    }
    return mytoString;
}

這是我的代碼。 該項目的發布測試表明我無法實現StringPositive。 我在弄清楚代碼到底出了什么問題時遇到了麻煩。 任何幫助表示贊賞。

好吧,一個明顯的問題-就我所知,您的代碼從不添加任何“ +”號...

聽起來您必須提交此文件以進行自動化測試-我建議您創建自己的單元測試,以查看在各種情況下會發生什么。 (您可能想從需求中的每個示例開始。)

這樣一來,您將能夠准確地看到實際輸出與預期輸出的出問題,而不僅僅是知道失敗的“ toStringPositive”。

好吧,第一件事突然出現在我身上:對於肯定的術語,沒有任何東西可以創建將它們鏈接到表達式其余部分的“ +”號。

我認為最好的測試方法是將大量不同的測試輸入輸入函數,然后查看結果是否符合規范。

一個明顯的問題是您永遠不會在字符串中包含任何加號,這很可能會使很多測試失敗。

您忘記了+或-。

是的,沒有+-號。 您應該測試方法的a,b,c的簡單,通用值,以1,2,3開頭,而不是(0,1,1),(0,0,0)和(1,0, 0)和(-1,-2,-3)轉化為火箭科學:(0,-1,-0.0)。

乍看之下:

  1. 對於積極的用語,我認為您不會在這些用語之間添加“ +”。
  2. 如果所有項均為零,則應返回“ 0”,但返回“”。
  3. 不確定是否會觸發測試,但是當系數為1時,a和b的輸出應類似於“ x”或“ x ^ 2”,而不是“ 1x”或“ 1x ^ 2”。
  4. 不確定MyDouble類的工作方式,但是對於tosString的值,其tosString返回什么? 23? 您的測試期望什么? (例如,您的班級處理的精度/准確度是多少,測試期望的水平是什么?)。

也許這對您有幫助

public String toString(){
    String mytoString="";
    if(!a.equals(0)){
        mytoString = a.toString() + "x^2";
    }
    if(!b.equals(0)){
        if (b > 0)
              mytoString += "+";
        mytoString += b.toString() + "x";
    }
    if(!c.equals(0)){
        if (c > 0)
              mytoString += "+";
        mytoString += c.toString(); 
    }
    return mytoString;
}

您應該注意加正號的符號

您的程序無法滿足的一項要求:

如果所有3個系數均為0,則字符串應為“ 0”

並且如上所述,您沒有在條款后加或減。

請勿在任何系數上添加符號。

因此,例如,如果您的輸入是: {a=1, b=2, c=3} ,那么您的輸出將是: 1x^22x3 ,而不是預期的1x^2+2x+3

更不用說當{a=0, b=0, c=0} ,您返回""而不是0時遇到錯誤

編寫一些JUnit測試-如果不確定該怎么做,請從測試團隊那里獲取。 您可以在此處創建數十種不同的方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM