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


實驗一 Java開發環境的熟悉

實驗內容及步驟

使用JDK編譯、運行簡單的Java程序

命令行下程序開發:

  • 在命令行下建立實驗目錄,進入該目錄后創建exp1目錄
  • 敲入以下代碼:
package exp1;
import java.util.Scanner;
public class Hello{
      public static void main(String[] args){
              System.out.println("Input your first name, please:");
              Scanner s = new Scanner(System.in);
              String name = s.next();
              System.out.println("Hello " + name + " !");
           }
     }

將Hello.java代碼保存到exp1目錄后,用命令行編譯運行通過

使用IDEA編輯、編譯、運行、調試Java程序

  • 創建HelloJDB文件,輸入下面代碼:
package exp1;
public class HelloJDB {
       public static void main(String[] args) {
               int i = 5;
               int j = 6;
               int sum = add(i, j);
               System.out.println(sum);
               sum = 0;
              for(i=0; i< 100; i++)
                      sum += i;
              System.out.println(sum);
          }

              public static int add(int augend, int addend){
              int sum = augend + addend;
              return sum;
          }
}

編譯運行結果如下:

  • IDEA的斷點設置比較簡單,如果你想在某行代碼處設置斷點,只需在該行代碼的最左端鼠標左鍵點一下即可:

  • 接着使用Debug進行調試,代碼運行到第14行停止:

練習-1

實現凱撒密碼,並進行測試

  • 實現凱撒密碼代碼如下:
package exp1;
import java.io.*;
public class Caesar{
    public static void main(String[] args){
        String s="";
        int k=0;
        char a[];
        System.out.print( "請問:需要加密(0)or解密(1):" );
        s=input();
        k=Integer.parseInt(s);
        if(k==0){
            System.out.print("請輸入你需要加密的密鑰(K):");
            s=input();
            k=Integer.parseInt(s);
            System.out.print( "請輸入你需要加密的明文(a-z):" );
            s=input();
            a=s.toCharArray();
            System.out.println("加密成功!!");
            System.out.print("密文是:");
            int i=0;
            while(i<a.length) {
                if(a[i]==' '){
                    System.out.print(' ');
                    i++;
                    continue;
                }
                if(a[i]>='a'&&a[i]<='z') {
                    System.out.print((char) ((a[i] + k - 'a') % 26 + 'a'));
                }
                i++;
            }
        }
        else{
            System.out.print("請輸入你需要解密的密鑰(K):");
            s=input();
            k=Integer.parseInt(s);
            System.out.print( "請輸入你需要解密的密文(a-z):");
            s=input();
            a=s.toCharArray();
            System.out.println( "解密成功!!" );
            System.out.print("明文是:");
            int i=0;
            while(i<a.length) {
                if(a[i]==' '){
                    System.out.print(' ');
                    i++;
                    continue;
                }
                if(a[i]>='a'&&a[i]<='z') {
                    System.out.print((char) ((a[i] - k - 'a' + 26) % 26 + 'a'));
                }
                i++;
            }
        }
    }
    public static String input(){
        String s="";
        try{
            BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
            s=in.readLine();
        }
        catch(IOException e){}
        return s;
    }
}
  • 運行結果如下:

設計過程

凱撒密碼實質就是移位密碼,密鑰為3,而字符在計算機中的存儲都是以ASCII碼的形式存儲的,所以只要在用戶輸入的字符串每位加3便能得加密到一串密文,解密的過程也與這類似,這兩點都是比較好實現的。關鍵在於要取得用戶輸入的字符串,在之前的學習中我們學過用Scanner讓用戶輸入字符,而在本周的學習中又學習了IO流的輸入輸出,因此為了檢驗自己對新的知識的掌握程度,我決定用IO流來讓用戶輸入,再將字符串轉換成字符數組,這樣操作起來便方便了許多。最終我在原來的凱撒密碼的基礎上進行了改進,讓用戶自己輸入密鑰,並且成功實現了加解密的功能。

PSP時間

步驟 耗時 百分比
需求分析 20min 13.8%
設計 30min 20.7%
代碼實現 60min 41.4%
測試 15min 10.3%
分析總結 20min 13.8%

心得體會

第一次做Java實驗,總體來講過程還是比較順利,題目也相對比較簡單。我覺得做實驗的時候,首先應該保持自己的思路清晰,心中要有個大概的框架,知道自己應該分幾步去做,哪些地方容易實現,難點在哪。接下來就是攻破難點,通過教材或者百度解決自己的問題所在,當難點解決之后,這個實驗基本就成功一大半了,剩下的問題可能就是自己在編譯過程中的粗心所導致的一些小問題,這些都比較容易解決。此外,我們以后在編代碼的時候要盡量模塊化,這樣能使得代碼的可讀性較強,修改起來也比較容易,不要把所有代碼都寫到一個main()函數里。


免責聲明!

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



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