2017-2018-2 《程序設計與數據結構》實驗三報告
阿新 • • 發佈:2018-05-29
出現 資料 subject 同學 stringbu i++ new inf AR
學號 2017-2018-2 《程序設計與數據結構》實驗三報告
課程:《程序設計與數據結構》
班級: 1723
姓名: 康皓越
學號:20172326
實驗教師:王誌強
實驗日期:2018年5月16日
必修/選修: 必修
1.實驗內容
- 代碼規範
- 協同測試
- 重構
密碼學應用
2. 實驗過程及結果
- 代碼規範
- 可以看到在使用代碼規範之前,我的代碼幾乎都存在許多問題,以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。
- 協同測試
- 我下載的是余坤鵬同學的Complex代碼,在通過對他的代碼理解後,使用junit進行了測試,並獲得了結果。
- 重構
- 這次依舊是這次依舊是余坤鵬同學的代碼通過對他代碼的理解,我對他的代碼進行了重構。(圖)
4.密碼學應用
- 參考 http://www.cnblogs.com/rocedu/p/6683948.html,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。本節內容較為復雜,主要是實踐,通過實踐,了解了Java中的加密方法。碼雲鏈接
3. 實驗過程中遇到的問題和解決過程
- 阿裏巴巴的代碼插件下載問題
- 出現下載速度極慢的問題,在重復下載後,通過拷貝其他同學下好的插件得以成功。
- 如何下載搭檔的代碼
- 使用搭檔的代碼進行測試時,需要首先獲得權限,也就是加入對方的項目時,需要對方的允許。
(圖)之後,新建項目即可。
- 密碼學應用的問題
當運行如下代碼後
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 《程序設計與數據結構》實驗三報告