1. 程式人生 > >2017-2018-2 《程序設計與數據結構》實驗三報告

2017-2018-2 《程序設計與數據結構》實驗三報告

出現 資料 subject 同學 stringbu i++ new inf AR

學號 2017-2018-2 《程序設計與數據結構》實驗三報告

課程:《程序設計與數據結構》

班級: 1723
姓名: 康皓越
學號:20172326
實驗教師:王誌強
實驗日期:2018年5月16日
必修/選修: 必修

1.實驗內容

  1. 代碼規範
  2. 協同測試
  3. 重構
  4. 密碼學應用

    2. 實驗過程及結果

  5. 代碼規範
  • 可以看到在使用代碼規範之前,我的代碼幾乎都存在許多問題,以standardcode作為使用代碼規範的例子
public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append(‘S‘);
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}

打開代碼實時規範掃描,(圖)技術分享圖片

可以看出,許多“紅色”,每一條都會有詳細的錯誤問題,一一改正後,顯示正確。技術分享圖片

  • 喜歡的功能是code-generator功能(圖)技術分享圖片

,這個功能能夠迅速有效的幫助構建方法或使用junit。

  1. 協同測試
  • 我下載的是余坤鵬同學的Complex代碼,在通過對他的代碼理解後,使用junit進行了測試,並獲得了結果。技術分享圖片
  1. 重構
  • 這次依舊是這次依舊是余坤鵬同學的代碼通過對他代碼的理解,我對他的代碼進行了重構。(圖)技術分享圖片

4.密碼學應用

  • 參考 http://www.cnblogs.com/rocedu/p/6683948.html,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。本節內容較為復雜,主要是實踐,通過實踐,了解了Java中的加密方法。碼雲鏈接

3. 實驗過程中遇到的問題和解決過程

  1. 阿裏巴巴的代碼插件下載問題
  • 出現下載速度極慢的問題,在重復下載後,通過拷貝其他同學下好的插件得以成功。
  1. 如何下載搭檔的代碼
  • 使用搭檔的代碼進行測試時,需要首先獲得權限,也就是加入對方的項目時,需要對方的允許。技術分享圖片

(圖)之後,新建項目即可。

  1. 密碼學應用的問題
  • 當運行如下代碼後

    import java.io.*;
    import javax.crypto.*;
    public class Skey_DES{ 
     public static void main(String args[])
     throws Exception{ 
    KeyGenerator kg=KeyGenerator.getInstance("DESede");
            kg.init(168); 
            SecretKey k=kg.generateKey( );
            FileOutputStream  f=new FileOutputStream("key1.dat");
            ObjectOutputStream b=new  ObjectOutputStream(f);
            b.writeObject(k);
         }
    }

    生成了一個.dat文件,打開後可以看到是一堆亂碼。開始以為是UTF-8未轉化成GBK的緣故。轉化後,依舊是亂碼。查詢後可知,dat文件使用記事本打開後就是如此,需要特殊的方式運行方可運行。

其他(感悟、思考等)

  • 密碼學知識較為復雜,用到了許許多多的之前聞所未聞的方法,對於以後的幫助很大,有機會希望能夠繼續學習

參考資料

  • Intellj IDEA 簡易教程
  • 《Java程序設計與數據結構教程(第二版)》學習指導
  • Java 密碼學算法
  • 實驗三 敏捷開發與XP實踐

2017-2018-2 《程序設計與數據結構》實驗三報告