1. 程式人生 > >201621123063《JAVA課程設計報告》

201621123063《JAVA課程設計報告》

元素 markdown 程序 pan 針對 任務 通過 remove 情況

一、需求分析

完成一個單機版的購物車
(1)先建立一個文本文件,定義出自己想要的商品。以商品編號;商品名稱;商品品牌;價格作為文件的內容,中間要求用分號或者分割
(2)編寫程序,定義一個商品類,文件中的內容為該類的所有屬性,當程序運行起來的時候,文件中每一條記錄,對應該類的每一個實例,並將所有商品加載到內存中。
(3)將所有商品顯示到圖形界面上,提供1.購買,2.查看,3.結賬(退出),4.刪除,5.修改 5種方法,客戶可以通過編號進行選擇。
(4)當選擇購買的時候,要提示客戶輸入要購買的商品,並將購買後的商品加入到購物車中(必須要支持購買同樣的商品多次),購買後要顯示出客戶之前已放入購物車中的所有商品價格總和。
(5)刪除和修改都是針對購物車中的商品而定的,而不是針對已經存在的商品。
(6)結賬表示退出,程序結束。

二、本組課題及本人任務

課題:購物車

任務:

①從文件中讀入商品信息
②將所有商品顯示到圖形界面上
③提供1.購買,2.查看,3.結賬(退出),4.刪除,5.修改 5種方法
④將購買的商品加入購物車
⑤刪除和修改購物車中商品
⑥結賬計算購物車中商品總價並退出

三、總體設計(概要設計)

①從文件中讀入商品信息並載入內存中,每條信息對應一個商品Good類的實例,使用Map進行保存
②JScrollPane中裝載JTable來展示所有商品
③購物車中商品用ArrayList來存放,購買商品即調用add()方法加入ArrayList中(購物車中無此商品的情況下),刪除即ArrayList移除某元素,修改則調用Good類中的setNum()方法進行數量的修改
④購物車中商品的展示也使用JScrollPane中裝載JTable的方式
⑤每個界面都有自己的背景圖片,設置在LayeredPane層中,其他容器均設置透明使背景圖片可見

四、本人負責的主要功能展示與代碼分析

主界面:

技術分享圖片

代碼分析:點擊按鈕時new出相應的界面

技術分享圖片

商城:

技術分享圖片

代碼分析:根據輸入的商品編號獲得Map中對應key的商品類Good實例,如果購物車的ArrayList中沒有這個Good,則直接加入,如果已經存在,則只設置他的數量為原數量加上新輸入的數量

技術分享圖片

購物車:

技術分享圖片

代碼分析:提供計算購物車中商品總價的方法,點擊對應button時產生對應反應

技術分享圖片

技術分享圖片

結賬:

技術分享圖片

代碼分析:調用getTotalMoney()方法獲得總價,使用系統方法exit()退出程序

技術分享圖片

修改:

技術分享圖片

代碼分析:遍歷存放購物車中商品的ArrayList,找到對應編號的Good實例,對其num屬性進行修改

技術分享圖片

刪除:

技術分享圖片

代碼分析:遍歷存放購物車中商品的ArrayList,找到對應編號的Good類實例,調用remove方法將其從中移除

技術分享圖片

四、測試與改進

測試:可實現需求中的要求

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

改進:使用try-catch塊處理可能拋出異常的代碼段,如輸入的編號或數量不是數字時彈出消息框對用戶進行提示並清空文本框。

技術分享圖片
技術分享圖片

技術分享圖片
技術分享圖片

201621123063《JAVA課程設計報告》