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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Java程序设计》实验二 实验报告

發布時間:2025/5/22 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java程序设计》实验二 实验报告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗二 Java面向對象程序設計

實驗內容

  • 初步掌握單元測試和TDD

  • 理解并掌握面向對象三要素:封裝、繼承、多態

  • 初步掌握UML建模

  • 熟悉S.O.L.I.D原則

  • 了解設計模式

  • 實驗要求

    1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程

    2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如“查網絡”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什么啟示,有什么收獲,教訓等)。報告可以參考范飛龍老師的指導

  • 嚴禁抄襲,有該行為者實驗成績歸零,并附加其他懲罰措施。

  • 請大家先在實驗樓中的~/Code目錄中用自己的學號建立一個目錄,代碼和UML圖要放到這個目錄中,截圖中沒有學號的會要求重做,然后跟著下面的步驟練習。

  • 實驗步驟

    (一)單元測試

    (1) 三種代碼

    ·偽代碼可以是中文,自己程序的架構理解
    ·產品代碼

    public class MyUtil{public static String percentage2fivegrade(int grade){//如果成績小于60,轉成“不及格”if (grade < 60)return "不及格";//如果成績在60與70之間,轉成“及格”else if (grade < 70)return "及格";//如果成績在70與80之間,轉成“中等”else if (grade < 80)return "中等";//如果成績在80與90之間,轉成“良好”else if (grade < 90)return "良好";//如果成績在90與100之間,轉成“優秀”else if (grade < 100)return "優秀";//其他,轉成“錯誤”else return "錯誤";} }

    ·編寫MyUtilTest的測試模塊

    public class MyUtilTest { public static void main(String[] args) {// 百分制成績是50時應該返回五級制的“不及格”if(MyUtil.percentage2fivegrade(50) != "不及格")System.out.println("test failed!");else System.out.println("test passed!");} }

    編譯結果如下:

    ·只有一組輸入的測試是不充分的,我們把一般情況都測試一下,代碼如下:

    public class MyUtilTest {public static void main(String[] args) {//測試正常情況if(MyUtil.percentage2fivegrade(55) != "不及格")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(65) != "及格")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(75) != "中等")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(85) != "良好")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(95) != "優秀")System.out.println("test failed!");else System.out.println("test passed!");} }

    ·代碼運行結果如下:

    (2) TDD(Test Driven Devlopment, 測試驅動開發)

    (1)a.先寫測試代碼,然后再寫產品代碼的開發方法叫“測試驅動開發”(TDD)。
    TDD的一般步驟如下:
    ·明確當前要完成的功能,記錄成一個測試列表
    ·快速完成編寫針對此功能的測試用例
    ·測試代碼編譯不通過(沒產品代碼呢)
    ·編寫產品代碼
    ·測試通過
    ·對代碼進行重構,并保證測試通過(重構下次實驗練習)
    ·循環完成所有功能的開發
    b.基于TDD,我們不會出現過度設計的情況,需求通過測試用例表達出來了,我們的產品代碼只要讓測試通過就可以了。 Java中有單元測試工具JUnit來輔助進行TDD, 紅叉說明代碼存在語法錯誤,原因很簡單,MyUtil類還不存在,類中的percentage2fivegrade方法也不存在,我們在TDDDemo的src目錄中新建一個MyUtil的類,并實現percentage2fivegrade方法
    c.測試結果出現了一個綠條(green bar),說明測試通過了。

    (2)TDD的編碼節奏是:
    增加測試代碼、JUnit出現紅條、修改產品代碼、JUnit出現綠條,任務完成。

    (二)面向對象三要素

    (1)抽象

    (2)封裝、繼承與多態

    (三)設計模式初步

    (1)S.O.L.I.D原則

    面向對象三要素是“封裝、繼承、多態”,任何面向對象編程語言都會在語法上支持這三要素。如何借助抽象思維用好三要素特別是多態還是非常困難的,S.O.L.I.D類設計原則是一個很好的指導:

    SRP(Single Responsibility Principle,單一職責原則)
    OCP(Open-Closed Principle,開放-封閉原則)
    LSP(Liskov Substitusion Principle,Liskov替換原則)
    ISP(Interface Segregation Principle,接口分離原則)
    DIP(Dependency Inversion Principle,依賴倒置原則)

    ·范例代碼如下

    public abstract class Animal {private String color;public String getColor() {return color;}public void setColor(String color) {this.color = color;}public abstract String shout(); } public class Dog extends Animal{public String shout(){return "汪汪";}public String toString(){return "The Dog's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";} } public class Cat extends Animal{public String shout(){return "喵喵";}public String toString(){return "The Cat's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";} }

    (四)練習

    練習內容:

    寫一個類測試編寫的復數類的方法
    構造函數,將實部,虛部都置為0
    構造函數,創建復數對象的同時完成復數的實部,虛部的初始化
    設置實部,設置虛部:復數相加、復數相減、復數相乘

    產品代碼:

    public class Complex {

    protected int a;protected int b;public Complex(int a, int b) {this.a = a;this.b = b; }public String toString() {return this.a + " + " + this.b + "i"; }public static Complex addition(Complex complex1, Complex complex2) {int a = complex1.a + complex2.a;int b = complex1.b + complex2.b;return new Complex(a, b); }public static Complex subtract(Complex complex1, Complex complex2) {int a = complex1.a - complex2.a;int b = complex1.b - complex2.b;return new Complex(a, b); }public static Complex multiplication(Complex complex1, Complex complex2) {int a = complex1.a * complex2.a - complex1.b * complex2.b;int b = complex1.b * complex2.a + complex1.a * complex2.b;return new Complex(a, b); }

    }

    import java.util.Scanner;

    public class ComplexMain {
    public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    System.out.println("請輸入兩個復數的實部和虛部:(a+bi、c+di)");
    System.out.printf("a =");
    int a=scanner.nextInt();
    System.out.printf("b =");
    int b=scanner.nextInt();
    System.out.printf("c =");
    int c=scanner.nextInt();
    System.out.printf("d =");
    int d=scanner.nextInt();
    Complex fushu1=new Complex(a,b);
    Complex fushu2=new Complex(c,d);
    while(true) {
    System.out.println("請輸入需要進行的運算:1、ADD 2、SUBTRACT 3、MULTIPLY ");
    int choice = scanner.nextInt();
    switch (choice) {
    case 1:
    System.out.println(Complex.addition(fushu1, fushu2));
    break;
    case 2:
    System.out.println(Complex.subtract(fushu1, fushu2));
    break;
    case 3:
    System.out.println(Complex.multiplication(fushu1, fushu2));
    break;

    default:System.out.println("ERROR!!!");}} }

    }
    ```



    PSP(Personal Software Process)

    步驟耗時百分比
    需求分析2 mins10%
    設計4 mins20%
    代碼實現8 mins40%
    測試6 mins30%
    分析總結10 mins50%

    轉載于:https://www.cnblogs.com/20145224kevs/p/5392292.html

    總結

    以上是生活随笔為你收集整理的《Java程序设计》实验二 实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。