20172319 2018.04.11 《Java程序設計教程》第7周課堂測驗(補寫博客)
阿新 • • 發佈:2018-04-12
like 步驟 ide 編寫 代碼實現 工作 設計 適合 void
20172319 2018.04.11 《Java程序設計教程》第7周課堂測驗
- 課程:《程序設計與數據結構》
- 班級:1723
- 學生:唐才銘
- 學號:20172319
- 指導老師:王誌強
- 日期:2018.04.11
- 必修/選修:必修
目錄
- 測試內容
- 測試要求
- 實驗步驟
- 前期準備
- 需求分析
- 代碼實現及解釋
- 程序運行結果及代碼截圖
- 測試過程及遇到的問題
- 參考資料
測試內容
- 完成編程項目PP7.4:具體參考《java程序設計教程》(第八版)
- Compareble接口的實現
測試要求
- 編譯運行項目PP7.4;並截圖(類代碼,測試代碼,運行結果代碼)發送至藍墨雲
- 托管代碼至git@OSC,詳情參考使用開源中國托管代碼
- 返回目錄
實驗步驟
前期準備
- 敲好課本上的例7.3(RationalTester2.java-測試)及例7.4(RationalNumber2.java-類),編譯運行看其是否有誤,若有誤,對照課本對兩個代碼一一進行排查,無誤後即可開始著手編程項目。
需求分析
- 需要理解接口的基本知識
- 掌握如何實現接口
- 理解Comparable接口及其包含的compareTo方法(唯一一個方法)
- 返回目錄
代碼實現及解釋
- 實現接口的類要在類聲明頭部使用保留字implements,接著再給出接口名。在RationalNumber類的頭部尾端加上
implements Comparable<RationalNumber2>
public class RationalNumber2 implements Comparable<RationalNumber2>
- 若類聲明要實現某個接口,必須提供實現這個接口中所有方法的實現代碼。因此,要完整地實現接口需要在RationalNumber2類中提供實現接口中所有方法的代碼。
public int compareTo(RationalNumber2 op2)
將RationalNumber2中的對象數值轉化為浮點值,再與定義好的誤差標準比較(理由:參考week5學習總結中的浮點數值比較時的較好方法)。
double n1, n2, difference; n1 = (double) numerator / denominator; n2 = (double) op2.getNumerator() / op2.getDenominator(); difference = Math.abs(n2 - n1); if(difference < 0.0001) return -1; else if (difference > 0.0001) return 1; else return 0;
測試程序代碼
public class RationalTester2
{
//----------------------------------------------------------------------
// Creates some rational number objects and performs various
// operations on them.
//----------------------------------------------------------------------
public static void main(String[] args)
{
RationalNumber2 r1 = new RationalNumber2(1, 3);
RationalNumber2 r2 = new RationalNumber2(1, 9);
RationalNumber2 r3, r4, r5, r6, r7;
System.out.println("First rational number: " + r1);
System.out.println("Second rational number: " + r2);
if (r1.isLike(r2))
System.out.println("r1 and r2 are equal.");
else
System.out.println("r1 and r2 are NOT equal.");
if (r1.compareTo(r2) == 1 )
System.out.println(" r1 > r2 ");
else
if (r1.compareTo(r2) ==-1)
System.out.println(" r1 < r2 ");
else
System.out.println("r1 = r2");
r3 = r1.reciprocal();
System.out.println("The reciprocal of r1 is: " + r3);
r4 = r1.add(r2);
r5 = r1.subtract(r2);
r6 = r1.multiply(r2);
r7 = r1.divide(r2);
System.out.println("r1 + r2: " + r4);
System.out.println("r1 - r2: " + r5);
System.out.println("r1 * r2: " + r6);
System.out.println("r1 / r2: " + r7);
}
}
- 返回目錄
程序運行結果及代碼截圖
- 返回目錄
測試過程及遇到的問題
- 問題1:條件語句的未知及關系運算符的錯誤使用導致輸出錯誤。
- 解決:學習完條件語句,然後進行代碼調試,找到不合理的地方進行修改。
- 問題2:對類編寫的相關知識還存在模糊、概念不清等情況,導致初期編程工作有阻礙。
- 解決:查找資料,在編類時認真分析思考各個語句的作用,定義適合的方法名以便於調用。
- 返回目錄
參考資料
- 《Java程序設計與數據結構教程(第二版)》
- 《Java程序設計與數據結構教程(第二版)》學習指導
- 構造方法、toString()、this、return
- 返回目錄
20172319 2018.04.11 《Java程序設計教程》第7周課堂測驗(補寫博客)