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)時間:



實驗內容、步驟與體會


1、實驗內容:

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

程序設計思路:

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

步驟 耗時 百分比
需求分析 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:一、ADD 二、MINUS 三、MULTIPLY 四、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");
          }
        }
       }
    }數據庫

 

運行結果爲:編程



 


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



3、實驗體會(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('*')){app

            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("沒法識別該運算符");
            }
    }
}


運行結果:

eclipse

 







調試代碼(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的調用,雖然中途有一些問題,但最後也成功了。之後不止要多敲代碼,還要多「主動」的敲代碼,這纔是重點,不要盲目的抄書,要把書上的東西最終都變成本身的!編輯器

相關文章
相關標籤/搜索