20182331 2019-2020-1 《數據結構與面向對象程序設計》實驗四報告

課程:《程序設計與數據結構》 班級: 1823
姓名: 高寬讓
學號:20182331
實驗教師:王志強
實驗日期:2019年9月30日
必修/選修: 必修html

1、實驗內容

(一)Java Socket編程

1.學習藍墨雲上教材《Java和Android編程》「第16章 輸入/輸出 」和「第22章 網絡」,學習JavaSocket編程
2.結對編程。結對夥伴A編寫客戶端SocketClient.java,結對夥伴B編寫服務器端。
3.截圖加學號水印上傳藍墨雲,代碼push到碼雲,並撰寫實驗報告。java

(二)Java和密碼學

參考 http://www.cnblogs.com/rocedu/p/6683948.html算法

以結對的方式完成Java密碼學相關內容的學習(帖子中全部代碼和相關知識點須要學習)。提交學習成果碼雲連接和表明性成果截圖,要有學號水印。編程

(三)編寫有理數/複數計算器

結對編程,結對夥伴A編寫有理數計算器。結對夥伴B編寫複數計算器。截圖加水印上傳藍墨雲,代碼push碼雲。數組

(四)遠程有理數計算器

結對編程,結對夥伴A編程實現客戶端,結果夥伴B實現服務器端。
客戶端經過鍵盤輸入一個有理數計算的公式(例如:1/4 + 1/6 = ),並把該公式以字符串的形式發送給夥伴B(服務器端),服務器端根據字符串計算出結果爲5/12,並把結果返回給客戶端A,A收到結果後輸出結果。截圖加水印上傳藍墨雲,代碼push碼雲。服務器

(五)遠程複數計算器

結對編程,結對夥伴B編程實現客戶端,結果夥伴A實現服務器端。
客戶端經過鍵盤輸入一個有理數計算的公式(例如:1/4 + 1/6 = ),並把該公式以字符串的形式發送給夥伴A(服務器端),服務器端根據字符串計算出結果爲5/12,並把結果返回給客戶端B,B收到結果後輸出結果。截圖加水印上傳藍墨雲,代碼push碼雲。
注意實驗四(4)和實驗四(5),一我的不能僅實現客戶端,必須實現一個客戶端和服務器,不然兩個實驗均不得分!!!網絡

2、 實驗過程及結果

1.實驗一和實驗二我是徹底按照王老師給的博客按照步驟一步一步的進行實驗,其中的代碼全是複製博客的,這部分沒有什麼好說的。



數據結構

2.實驗三我被分配的工做是作有理數的計算器,有理數的計算中,加減法和整數相似,分子分母各算各的最後再來個化簡,可是乘法和除法就涉及到了交叉運算,但只要當心一點也能避免出錯
3.由於我作的是有理數計算器,因此我選的就是有理數服務器和複數客戶端,客戶端這方面沒有什麼好說的,照本宣科就是。但服務器這邊要接受數據,要拆分並分析數據,還要調用有理數計算器,最後還要把結果從新組成一個分數發過去,特別的繁瑣,也特別的細緻。我作這一塊的時候老是出現各類各樣的錯誤,但在董其鵬同窗的幫助下全都解決了。socket

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

問題1:編的一部分類的代碼,始終沒有出現綠色的run按鈕,也沒法編譯運行
問題1解決方案:實際上有些代碼並不須要去編譯運行,只要可以被引用就能夠了。可是這類代碼大都沒有main類,要進行編輯和運行的話,只徐要在代碼中加一個空的main類。
問題2:分數的運算直接是最簡單的代數運算了
問題2解決方案:沒有考慮到通分和約分的問題,碰到一些特殊的分數就不能進行運算了
問題3:客戶端發過來的是一個字符串,不能直接運算
問題三解決方案:把字符串按照中間的符號分紅幾段,須要用到循環判斷和字符串數組的相關知識學習

4、 其餘(感悟、思考等)

此次的實驗說實話對我來講難度很大,裏面有好多的知識點我都沒有掌握,連算法都沒有一個清晰思路,編程也有很大的難度,常常出現一些我都沒法理解的錯誤,但幸虧有其餘會的同窗和學長學姐的幫助我才能成功完成此次實驗,此次實驗總之是給我潑了一盆冷水,讓我認識到了本身的真實水平。

參考資料

相關文章
相關標籤/搜索