20145326 《Java程序設計》實驗一實驗報告


北京電子科技學院(besti)實驗報告

課程:Java程序設計
班級:1453
指導教師:婁嘉鵬
實驗日期:2016.04.08
實驗名稱:Java開發環境的熟悉(Linux + Eclipse)
實驗內容:
1.使用JDK編譯、運行簡單的Java程序;
2.使用Eclipse 編輯、編譯、運行、調試Java程序。
實驗目的與要求:
1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程;
2.完成實驗、撰寫實驗報告,實驗報告模板見QQ群,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如“查網絡”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什么啟示,有什么收獲,教訓等);
3.實驗報告中統計自己的PSP(Personal Software Process)時間:



實驗內容、步驟與體會


一、實驗內容:

使用JDK和IDE編譯、運行簡單的Java程序,
題目: 實現四則運算,並進行測試。

程序設計思路:

四則運算顧名思義,就是加、減、乘、除四種運算,因為一開始要有輸入,所以我就調用了Scanner實例,當用戶選擇不同運算時,我打算用switch與case語句來實現,這就是我一開始憑感覺想到的東西,於是我做了個比較基礎的:先讓用戶輸入兩個數,然后選擇一種運算方式,然后得出結果,就這么簡單。
將這兩個數分別定義成雙精度浮點型數據,分別為a和b。接着就是選擇運算方式,用switch與case語法來實現,然后進入switch的case里面,直接System.out.println()出相應的式子就可以了。

步驟 耗時 百分比
需求分析 30分鍾 16%
設計 1小時 33%
代碼實現 30分鍾 16%
測試 30分鍾 16%
分析總結 30分鍾 16%








程序代碼:


         package field; 
         import java.util.Scanner;  
         public class Main {  

            while(true)
            {
            System.out.println("PLEASE INPUT TWO NUMBERS");
            Scanner scanner =new Scanner(System.in);
            Double a=scanner.nextDouble();
            Double b=scanner.nextDouble();

            System.out.println("PLEASE CHOOSE:1、ADD 2、MINUS 3、MULTIPLY 4、DIVIDE");
            int choice=scanner.nextInt();

            switch (choice) {
            case 1:
            System.out.print("結果為");
            System.out.println(a+b);
            break;
            case 2:
            System.out.print("結果為");
            System.out.println(a-b);
            break;
            case 3:
            System.out.print("結果為");
            System.out.println(a*b);
            break;
            case 4:
            if(b==0)System.out.println("ERROR");
            System.out.print("結果為");
            System.out.println(a/b);
            break;
            default:System.out.println("ERROR");
          }
        }
       }
    }

 

運行結果為:



 


二、調試代碼(1):一開始確實編譯成功了,不過突然發現沒有考慮到除數為0的情況,這在邏輯上是不嚴謹的。於是在除法那塊加上了判斷除數是否為0,最開始不知道什么是斷點,也沒有用斷點來調試,不過后來百度知道了在eclipse中設置斷點的方法:在方法內部選擇要打斷點的代碼,雙擊,左邊會出現一個點。然后在工具欄中找debug,點擊后也許會出現切換窗口的對話框,點擊YES,一般按F8來一步步調試。



三、實驗體會(1)實驗課下來以后,覺得自己之前編的那個四則運算確實太基礎太簡單了,沒有挑戰性,不大滿意。又因為自己想嘗試一些新的東西,所以以玩的心態,在原有代碼的思想上做了一些改進。首先先判斷用戶輸入的數字是否符合運算要求,如果不考慮這一點的話萬一用戶不小心輸入了錯誤的數字,那么就會導致運算發生錯誤。這讓我想到了第八章的知識,使用try、catch語法,如果發生錯誤,執行流程會跳離錯誤發生點,顯示更友好的錯誤信息。其次,主程序依舊用了循環。這次整個程序運用了do while語法,使整個程序可以不斷地循環,避免用戶需要不斷編譯程序,在這個循環中,用戶能夠根據自己的需要選擇繼續還是結束,給了用戶更多的選擇空間。




                  
程序代碼:

                   package field;
                   import java.util.Scanner;
                  import java.text.DecimalFormat;
            public class Zhidao {

          public static void main(String[] args) {
          String condition = "";
          Zhidao zhidao = new Zhidao();
            
do{                       
            Scanner scanner = new Scanner(System.in);
            try{
                System.out.print("輸入第一個數:");
                double x = scanner.nextDouble();
                System.out.print("輸入第二個數:");
                double y = scanner.nextDouble();
                System.out.print("輸入運算符:");
                String s = scanner.next();
               
 char z = s.charAt(0);
                zhidao.yunsuan(x, y, z);
            }catch(Exception e)
            {
                System.out.println("請輸入正確的數據!");
            }
            System.out.print("是否繼續?continue:繼續,任意字符:結束");
            condition = scanner.next();

      
  }while("continue".equals(condition));
    }

    public static void yunsuan(double x,double y,Character z){
        DecimalFormat r=new DecimalFormat();
        r.applyPattern("#0.00");
        if(z.equals('+')){
            System.out.println(x+"+"+y+"=" + r.format((x+y)));
        } else if(z.equals('-')){
            System.out.println(x+"-"+y+"=" + r.format((x-y)));
        } else if(z.equal
s('*')){

            System.out.println(x+"*"+y+"=" + r.format((x*y)));
        } else if(z.equals('/')){
         
   if(y==0)
            {
                System.out.println("被除數不能為0");
            } 
            else{
                System.out.println(x+"/"+y+"=" + r.format((x/y)));
                }

        }
        else{
            System.out.println("無法識別該運算符");
            }
    }
}


運行結果:

 







調試代碼(2):由於對Java的知識掌握得並不是爐火純青,所以剛開始只是有好的設計思路但卻不會設計,后來就網上查閱,又看了書上的相應的程序,整理思緒,一步步逐漸實現代碼。我最開始就在類那里出現了問題, 程序中顯示的是
>
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: 
at cc.openhome.Zhidao.main(Zhidao.java:11)
C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1


后來才發現原來是沒有數據庫操作,哎,還是自己主動動手編程太少了,這點意識都沒有。后來加上了數據庫操作,程序就跑起來了。


實驗體會(2):本次實驗是第一次實驗,相對來說我抽的題目——四則運算還比較簡單,還好這次的程序代碼沒有太大的問題,自己都能夠解決。但是不得不承認,我感覺我還是很缺乏Java的實戰經驗,第一次的代碼沒啥難度,思路也清晰易懂,第二次嘗試了一些不一樣的東西,比如try、catch的調用,雖然中途有一些問題,但最后也成功了。以后不止要多敲代碼,還要多“主動”的敲代碼,這才是重點,不要盲目的抄書,要把書上的東西最終都變成自己的!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM