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

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

課程:《程序設計與數據結構》
班級: 1723
姓名: 譚鑫
學號:20172305
實驗教師:王志強
實驗日期:2018年5月27日
必修/選修: 必修html

1.實驗內容

  • 1.代碼規範 Eclipse的內容替換成IDEA並安裝alibaba 插件,解決代碼中的規範問題。
    在IDEA中使用工具(Code->Reformate Code)把下面代碼從新格式化,再研究一下Code菜單,找出一項讓本身感受最好用的功能。提交截圖,加上本身學號水印。
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));
}
}
  • 2.協同測試 在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例,測試成功後git add .; git commit -m "本身學號 添加內容";git push;
    提交搭檔項目git log的截圖,包含上面git commit的信息,並加上本身的學號水印信息。java

  • 3.重構 Eclipse的內容替換成IDEA完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上本身的學號水印。提交搭檔的碼雲項目連接。
  • 4.密碼學應用 以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。git

2. 實驗過程及結果

  • 敏捷開發與XP實踐-1:編程標準使代碼更容易閱讀和理解,甚至能夠保證其中的錯誤更少。程序的版式追求清晰、美觀,是程序風格的重要因素。好的代碼不可是要結構清晰,並且排版整潔不亂。就拿if語句的嵌套來講,若是if後面有跟else有不跟else的,如何判斷還得經過具體的分析,不能一眼就瞅出來。在之前的編寫代碼的過程,就照着書上的規範進行編寫,public class XXXpublic static void main(String[[] args)的「{」總會是空一行處理,每個方法內部的代碼都會盡可能是一行進行一個小步驟,還有根據代碼邏輯加入一些空行(能夠使本身的代碼變得更長)。
    算法

  • 敏捷開發與XP實踐-2:在作此實踐的時候,本身的IDEA又崩盤了,仍是那個巨噁心UTF-8和GDK,還得刪了下新的,好在實驗二的操做不是很繁瑣,就是和實踐二相似進行JUnit單元測試,只不過是搭檔的代碼。在操做過程當中,加進去搭檔的項目後,但偷工減料直接複製搭檔的代碼進行操做,並上傳到本身的碼雲上。
    編程

  • 敏捷開發與XP實踐-3:實驗3的要求就是理解重構的內涵。可以下降項目的耦合度,使項目更加模塊化,有利於項目的開發效率和後期的維護。安全

    • 使用重構的方式,不改變系統的外部功能,只對內部的結構進行從新的整理。經過重構,不斷的調整系統的結構,使系統對於需求的變動始終具備較強的適應能力。
  • 敏捷開發與XP實踐-4:學習的是java的密碼學的部分,頗有意思,終於接觸到了加密、解密的過程了,凱撒密碼、對稱加密的DES算法、非對稱加密的RSA算法等。經過代碼的理解,知道了凱撒密碼就是對每一個字符的移位操做,DES和RSA的獲取公鑰、對明文進行加密、解密等方式。網絡

    • JCA( Java Cryptography Architecture, Java加密體系結構):JCA提供基本的加密框架, 如證書、 數字簽名、消息摘要和密鑰對產生器。
    • JCE( Java Cryptography Extension, Java加密擴展包):JCE在JCA的基礎上做了擴展, 提供了各類加密算法、消息摘要算法和密鑰管理等功能。JCE的實現主要在javax.crypto包( 及其子包) 中
    • JSSE( Java Secure Sockets Extension, Java安全套接字擴展包):JSSE提供了基於SSL( Secure Sockets Layer,安全套接字層) 的加密功能。 在網絡的傳輸過程當中, 信息會通過多個主機(頗有可能其中一臺就被竊聽) , 最終傳送給接收者, 這是不安全的。這種確保網絡通訊安全的服務就是由JSSE來提供的。
    • JAAS( Java Authentication and Authentication Service, Java鑑別與安全服務):JAAS提供了在Java平臺上進行用戶身份鑑別的功能。

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

  • 問題1:重構的改寫
  • 問題1的解決方案:重構的問題剛開始很混亂,認爲是對類明的重構但還不是該寫不了,還有就是找不到改寫的方法,搭檔寫的太完美了。後來,在重構的按鍵下,對文件明的那個進行改寫就成功了。Shape類中,搭檔終於缺乏兩個set方法,針對這個進行重構改寫。

    數據結構

  • 問題2:java與密碼學
  • 問題2的解決方案:在公務員課上接觸過凱撒密碼,其實質就是對字符的移位,在當時密碼學的發展過程起到了很大影響。可加密也可解密的凱撒密碼很難適應科技的不斷髮展,誕生了DES算法和RSA算法,使密碼的傳輸更安全。
    app

其餘

實踐三的內容感受都很簡單,學的都是一些思路和代碼的規範性,我在整個實踐的過程當中感受最麻煩的就是實驗四密碼的理解部分。感受這個密碼學的部分看似簡單,可是一個密碼的造成是很艱難的。就像學習同樣,艱難......框架

參考資料

相關文章
相關標籤/搜索