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

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

blog 進行 detail 運算 uri TP 接受 思考 返回

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

課程:《程序設計與數據結構》
班級: 1723
姓名: 於欣月
學號:20172332
實驗教師:王誌強
實驗日期:2018年6月13日
必修/選修: 必修

1.實驗內容

  • ①結對實現中綴表達式轉後綴表達式的功能 MyBC.java
    結對實現從上面功能中獲取的表達式中實現後綴表達式求值的功能,調用MyDC.java
    上傳測試代碼運行結果截圖和碼雲鏈接

  • ②結對編程:1人負責客戶端,一人負責服務器
    註意責任歸宿,要會通過測試證明自己沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
    客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式通過網絡發送給服務器
    服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
    客戶端顯示服務器發送過來的結果
    上傳測試結果截圖和碼雲鏈接

  • ③加密結對編程:1人負責客戶端,一人負責服務器
    註意責任歸宿,要會通過測試證明自己沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
    客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密後通過網絡把密文發送給服務器
    服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,可以用數組保存),然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
    客戶端顯示服務器發送過來的結果
    上傳測試結果截圖和碼雲鏈接

  • ④密鑰分發結對編程:1人負責客戶端,一人負責服務器
    註意責任歸宿,要會通過測試證明自己沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
    客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文發送給服務器
    客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
    服務器接收到後綴表達式表達式後,進行解密,然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
    客戶端顯示服務器發送過來的結果
    上傳測試結果截圖和碼雲鏈接

  • ⑤完整性校驗結對編程:1人負責客戶端,一人負責服務器
    註意責任歸宿,要會通過測試證明自己沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
    客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文和明文的MD5値發送給服務器
    客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
    服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
    客戶端顯示服務器發送過來的結果
    上傳測試結果截圖和碼雲鏈接

2. 實驗過程及結果

前期準備:

  • 1.查找到自己的IP地址,為進行服務器和客戶端之間的連接做準備。(Windows:先用win+R打開,輸入cmd,再輸入IPconfig查找IP地址)

  • 2.搭建服務器和客戶端,並成功連接。

過程:

因為我們是三人一組,所以客戶端和服務器都有相應的代碼。
一.作為客戶端。

  • 1.(1)
    • 技術分享圖片
    • 技術分享圖片
    • MyDC的代碼就是四則運算中Cal類的代碼,具體碼雲中有。
  • 2.(2)
    • 20172313輸入中綴轉後綴,20172332接受後綴並計算結果返回給20172313
    • 技術分享圖片
    • 技術分享圖片
  • 3.(3)
    • 20172332給20172313傳加密後的後綴,20172313解密後計算結果並返回給20172332
    • 技術分享圖片
    • 技術分享圖片
  • 4.(4)
    • 20172332給20172313傳,20172313給20172332傳結果
    • 技術分享圖片
    • 技術分享圖片
  • 5.(5)
    • 技術分享圖片
    • 技術分享圖片

二.作為服務器。

  • 1.(1)
    • 第一個實驗不需要服務器和客戶端。
  • 2.(2)
    • 第二個實驗只需要把技術分享圖片write的內容改為需要返回的結果。
  • 3.(3)
    • 技術分享圖片
    • 技術分享圖片
  • 4.(4)
    • 技術分享圖片
    • 技術分享圖片
  • 5.(5)
    • 技術分享圖片
    • 技術分享圖片

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

  • 問題1:

    技術分享圖片

  • 問題1解決方案:詳情見

其他(感悟、思考等)

  • 這次的實驗與Android有關,因為都是基礎且還與課本息息相關,感覺不是很難。
  • 主要問題就是好多知識都是新的,比如跳轉活動所用的Intent,不知道它就對於活動跳轉這種東西無從下手,所以還是需要多多學習和練習。

參考資料

  • [Java 密碼學算法]http://www.cnblogs.com/rocedu/p/6683948.html)

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