实验2报告 胡泊
20182316胡泊 2019-2020-1 《數(shù)據(jù)結(jié)構(gòu)與面向?qū)ο蟪绦蛟O(shè)計》實驗2報告
課程:《程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)》
班級: 1823
姓名: 胡泊
學(xué)號:20182316
實驗教師:王志強(qiáng)
實驗日期:2019年[9月16日]
必修/選修: 必修
1.實驗內(nèi)容
- (1) 編寫簡單的計算器,完成加減乘除模運算。
- (2) 要求從鍵盤輸入兩個數(shù),使用判定語句選擇一種操作,計算結(jié)果后輸出,然后使用判定和循環(huán)語句選擇繼續(xù)計算還是退出。
- (3) 編寫測試代碼,測試驗證。(https://www.cnblogs.com/rocedu/p/4472842.html)
2. 實驗過程及結(jié)果
編寫簡單的計算器程序,掌握數(shù)據(jù)的定義和表達(dá)式求解的基礎(chǔ)知識, 掌握循環(huán)和判定語句的使用
, 掌握單元測試,上傳到碼云,掌握后由學(xué)長學(xué)姐驗收。
編寫簡單的計算器程序
單元測試
上傳碼云
3. 實驗過程中遇到的問題和解決過程
- 問題1:在編寫計算器時,很簡單的加法會出現(xiàn) .00000000001或者.9999999999
- 問題1解決方案: 將double定義的變量改為用float定義,小數(shù)問題就沒有了
- 但是,后來我又得知這其實是java中Double類型的運算精度丟失的問題,我沒有從正面解決這個問題,原諒我實在是看不懂,先貼個原網(wǎng)站,等之后學(xué)習(xí)保留位數(shù)時,再好好鉆研。
- 問題2:吃回車問題(可能是吧,反正C語言是的)
- 問題2解決方案:當(dāng)要輸入字符或字符串時,如果前面不是字符或字符串類型的輸入,那么就會出現(xiàn)吃回車問題,此時就多打一個op=scan.nextLine();將緩沖器清理掉。
- 問題3:return只能返回一種類型的數(shù)據(jù)。
- 問題3解決方法:我使用的是double來返回數(shù)據(jù),而在程序中為了其實用性,增加了糾錯,比如“can not divide 0","unrecognizeable demand"等等,針對這個問題,有兩種解決方法:
- 將返回的double型浮點數(shù)轉(zhuǎn)化為字符串
- 將報錯語句換成-1,-2等數(shù)字,作為返回值返回。
- 問題4:編譯時找不到文件
- 問題4解決方案:文件名與創(chuàng)建的類名不同,所以雖然有這個文件卻無法編譯,更改類名與文件名一致。
感悟
- 當(dāng)編譯出現(xiàn)錯誤時,我可能通過一種或一些奇怪的方法誤打誤撞編譯成功,甚至運行成功了,但是這些小小的問題背后可能有很多深層的知識,如果不想辦法解決,就只能一知半解,所以要有探索精神。
- 在自學(xué)的過程中,按照博客一步步操作,到最終完成,雖然過程艱難,但讓我有了很強(qiáng)的成就感,在幫助別人以及向別人請教的時候,都收獲很大。
- 感謝學(xué)長學(xué)姐的指導(dǎo),一直待到了最后,給了我們很大的幫助,十分感謝。 (⊙ω⊙)
參考資料
- java中Double類型的運算精度丟失的問題 (小數(shù)點多出99999999999999)
轉(zhuǎn)載于:https://www.cnblogs.com/hp12138/p/11530757.html
總結(jié)
- 上一篇: 艺赛旗开发技巧-根据文本点击网页元素
- 下一篇: 东南亚的超级APP是如何用Go打造Gra