軟件工程課程設計網(wǎng)上購物_第1頁
軟件工程課程設計網(wǎng)上購物_第2頁
軟件工程課程設計網(wǎng)上購物_第3頁
軟件工程課程設計網(wǎng)上購物_第4頁
軟件工程課程設計網(wǎng)上購物_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 軟件工程課程設計報告軟件工程課程設計報告 目目錄錄 1.設計內(nèi)容設計內(nèi)容.1 1.1 問題概述 .1 1.2 系統(tǒng)的數(shù)據(jù)流程圖及數(shù)據(jù)字典 .1 1.2.1數(shù)據(jù)流圖.1 1.2.2數(shù)據(jù)字典.4 1.3e-r 圖 .8 2.概要設計概要設計.10 2.1 主要功能 .10 2.2 模塊定義 .10 3.詳細設計詳細設計.11 3.1 詳細設計說明書 .11 3.2 數(shù)據(jù)庫設計 .12 3.3 程序流程圖.12 3.4 輸入項目 .14 4.程序源碼程序源碼.14 5.程序運行與調(diào)試程序運行與調(diào)試.21 5.1 模塊測試 .21 5.2 總體測試 .23 6.總結(jié)總結(jié).23 7.參考文獻參考文獻.

2、24 1 1.設計內(nèi)容設計內(nèi)容 1.11.1 問題概述問題概述 網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng)。它向用戶提供靜態(tài)和動態(tài) 兩類信息資源。所謂靜態(tài)信息是指那些比經(jīng)常變動或更新的資源,如公司簡介、 管理規(guī)范和公司制度等等;動態(tài)信息是指隨時變化的信息,如商品報價,會議 安排和培訓信息等。網(wǎng)上購物系統(tǒng)具有強大的交互功能,可使商家和用戶方便 的傳遞信息,完成電子貿(mào)易或 edi 交易。這種全新的交易方式實現(xiàn)了公司間文 檔與資金的無紙化交換。 現(xiàn)在流行的網(wǎng)上購物系統(tǒng)不僅要有漂亮的網(wǎng)頁,更要有嚴謹?shù)囊?guī)劃。每一 個細小的環(huán)節(jié)都和重要。這樣才能使得在電子交易時避免不必要錯誤發(fā)生。本 系統(tǒng)使用 html、j

3、sp 等技術來編輯網(wǎng)頁,并運用 hibernate 技術把數(shù)據(jù)庫和動 態(tài)網(wǎng)頁相關聯(lián)。傳統(tǒng)的管理信息系統(tǒng)信息獲取方法是由專業(yè)文字錄入人員將信 息輸入到管理系統(tǒng)的數(shù)據(jù)庫中,這種方法在數(shù)據(jù)量不大時有很多的應用場合。當 數(shù)據(jù)量比較大,并且有較強的專業(yè)性時,錄入的費用和出錯的可能性都相應上升。 本文在實際應用開發(fā)中解決方案是建立網(wǎng)站, 以及自己的數(shù)據(jù)庫,使得所需商 品信息可以及時的保存、更新??梢愿玫募皶r了解商品買賣的情況。為此我 根據(jù)當前的網(wǎng)上購物情況編寫了網(wǎng)上購物系統(tǒng)的設計與開發(fā) 。 1.21.2 系統(tǒng)的數(shù)據(jù)流程圖及數(shù)據(jù)字典系統(tǒng)的數(shù)據(jù)流程圖及數(shù)據(jù)字典 1.2.1 數(shù)據(jù)流圖 矩形表示實體,橢圓表示處

4、理,平行線表示存儲,箭頭表示數(shù)據(jù)流系統(tǒng)的數(shù)據(jù) 流圖如下所示: 2 商 家 會 員 管理商品商品信息 個 體 商 家 網(wǎng)上購物系 統(tǒng) 圖 1-1 系統(tǒng)頂層數(shù)據(jù)流程圖 定單信息列表 f7 類別信息 f6 用戶信息 f1 留言信息 f2 訂單信息 f3 新聞信息列表 f12 留言信息列表 f10 商品信息列表 f9 f9 定單信息列表 f7 新聞信息 f4 游戲類別信息 f5 商品信息 f5 用 戶 管 理 員 顧 客 新聞信息列表 f12 用戶信息列表 f11 留言信息列表 f10 商品信息列表 f9 類別信息列表 f12 管 理 員 網(wǎng)上 購物 系統(tǒng) 網(wǎng)上 購物 系 統(tǒng) 圖 1-2 系統(tǒng)頂層數(shù)據(jù)

5、流程圖詳細說明 3 商 家 會 員 f5 d2 商品信息 個 人 會 員 f1 d1 個人信息 f9 f11 管 理 員 d1 用戶信息 p2 商 品信息 p2 商 品管理 p2 會 員管理 p2 用 戶管理 圖 1-3 一層數(shù)據(jù)流程圖 具體操作 類型對比 累計 p1 商家 管理 p2.1 庫 存管理 p2.2 訂 單管理 p5 已經(jīng) 處理 p2.3 已 經(jīng)處理 2.4 未處 理 圖 1-4 二層商家商品管理數(shù)據(jù)流程圖 4 1.2.2 數(shù)據(jù)字典 1)數(shù)據(jù)元素 名稱:name 別名:用戶名 描述:用來標示用戶和管理員的用戶名 數(shù)據(jù)類型:vrchar2 長度:15 名稱:description 別

6、名:留言內(nèi)容 描述:用來標示留言的具體內(nèi)容 類型:text 長度:1000 名稱:type 別名:類別 描述:用來標示類別的具體內(nèi)容 類型:char(1) 長度:15 名稱:registered_time 別名:上架時間 描述:用來標示商品的錄入時間 類型:timestamp 長度:15 5 名稱:number 別名:訂單數(shù)量 描述:用來標示訂單的數(shù)量 類型:integer 長度:15 名稱:title 別名:標題 描述:用來標示新聞的主題 類型:integer 長度:50 2)數(shù)據(jù)存儲 名字:用戶信息 描述:紀錄用戶的個人信息 編號:d1 組成:用戶 id,用戶名,密碼,用戶級別,email

7、,電話,地址,注冊時間,備注 名字:商品信息 描述:紀錄商品的屬性信息 編號:d2 組成:商品 id,商品型號,商品類別,是否新品,查看級別,訂貨件數(shù),訂貨次數(shù),入庫 時間 名字:留言信息 描述:紀錄留言的具體信息 編號:d3 組成:留言 id,留言主題,留言用戶,留言時間,留言內(nèi)容 6 名字:類別信息 描述:紀錄類別的設置信息 編號:d4 組成:類別 id,類別名,所屬大區(qū)域,該類別商品種類 名字:訂單信息 描述:紀錄訂單的具體信息 編號:d5 組成:訂單 id,訂單號,下訂單的客戶,訂貨時間,訂貨具體內(nèi)容 名字:新聞信息 描述:紀錄新聞具體信息 編號:d6 組成:新聞 id,新聞主題,發(fā)布

8、時間,具體內(nèi)容 3)數(shù)據(jù)流 名字:用戶信息 描述:紀錄用戶的個人信息 編號:f1 組成:用戶 id,用戶名,密碼,用戶級別,email,電話,地址,注冊時間,備注 名字:留言信息 描述:紀錄留言的具體信息 編號:f2 組成:留言 id,留言主題,留言用戶,留言時間,留言內(nèi)容 名字:訂單信息 描述:紀錄訂單的具體信息 編號:f3 7 組成:訂單 id,訂單號,下訂單的客戶,訂貨時間,訂貨具體內(nèi)容 名字:新聞信息 描述:紀錄新聞具體信息 編號:f4 組成:新聞 id,新聞主題,發(fā)布時間,具體內(nèi)容 名字:商品信息 描述:紀錄商品的屬性信息 編號:f5 組成:商品 id,商品型號,商品類別,是否新品,

9、查看級別,訂貨件數(shù),訂貨次數(shù),入庫 時間 名字:類別信息 描述:紀錄類別的設置信息 編號:f6 組成:類別 id,類別名,所屬大區(qū)域,該類別商品種類 4)數(shù)據(jù)處理 名字:用戶管理 描述:管理員對管理員和用戶信息的添加,刪改等 編號:p1 輸入/輸出數(shù)據(jù)流:用戶或管理員基本信息 名字:商品管理 描述:管理員對商品信息的添加,刪改等 編號:p2 輸入/輸出數(shù)據(jù)流:商品基本信息 8 名字:留言管理 描述:管理員對留言信息的添加,刪改等 編號:p3 輸入/輸出數(shù)據(jù)流:留言信息 名字:類別管理 描述:管理員對類別信息的添加,刪改等 編號:p4 輸入/輸出數(shù)據(jù)流:類別基本信息 名字:訂單管理 描述:管理員

10、對訂單信息的刪改等 編號:p5 輸入/輸出數(shù)據(jù)流:訂單基本信息 名字:新聞管理 描述:管理員對新聞信息的添加,刪改等 編號:p6 輸入/輸出數(shù)據(jù)流:新聞基本信息 1.3e-r1.3e-r 圖圖 9 圖 1-5 前臺用戶局部 e-r 圖 圖 1-6 后臺管理員局部 e-r 圖 10 2.概要設計概要設計 2.12.1 主要功能主要功能 該系統(tǒng)的目標可以實現(xiàn)用戶通過網(wǎng)絡選購自己喜歡的商品,而且還可以為 其進行郵寄。保證產(chǎn)品質(zhì)量,信息安全,提供最好服務1,系統(tǒng)的主要功能如 下: 1 查看產(chǎn)品信息 用戶可以根據(jù)自己的需求分類查看所有產(chǎn)品信息,選擇自己喜歡的產(chǎn)品購 買。 2 查看新聞 用戶可以查看網(wǎng)站的

11、所有新聞,新聞內(nèi)容包括商品廠商的信息,以及新產(chǎn) 品的發(fā)布信息等,以方便用戶更直觀的了解產(chǎn)品動向及信息。 3 填寫訂單 用戶填寫要購買商品的信息到訂單中去,并可以刪除已填寫但最終不想購 買的產(chǎn)品。 2.22.2 模塊定義模塊定義 用戶管理自然是每個網(wǎng)站必不可少的,在本系統(tǒng)中,要求這部分管理安全 可靠,權(quán)限分明,且其在前臺和后臺的表現(xiàn)不同,下面將分別進行介紹。 1)前臺表現(xiàn) 用戶注冊,此時要保證系統(tǒng)不受注冊機的攻擊,要采用驗證碼技術。要確 保權(quán)限為普通用戶,要有密碼保護措施,保證用戶設定之后可以找回遺忘的密 碼。 2)后臺表現(xiàn) 系統(tǒng)管理員可以添加用戶。系統(tǒng)管理員可以動態(tài)的給用戶賦予權(quán)限,保證 系統(tǒng)

12、信息不外泄。系統(tǒng)管理員可以修改和刪除用戶信息。系統(tǒng)管理員可以給用 戶建立備注信息,其僅對具有權(quán)限的用戶可以進行信息的檢查與修改。 11 2.32.3 體系結(jié)構(gòu)設計體系結(jié)構(gòu)設計 網(wǎng)上購物系統(tǒng) 登 錄 模 塊 新 聞 發(fā) 布 模 塊 注 冊 模 塊 購 物 車 模 塊 訂 單 模 塊 商 品 管 理 模 塊 用 戶 管 理 模 塊 留 言 評 價 模 塊 3.詳細設計詳細設計 3.13.1 詳細設計說明書詳細設計說明書 網(wǎng)上購物系統(tǒng)網(wǎng)上購物系統(tǒng) 客客 戶戶 注注 冊冊 系系 統(tǒng)統(tǒng) 客戶登陸系統(tǒng)客戶登陸系統(tǒng) 選選 購購 物物 品品 查查 詢詢 選選 購購 記記 錄錄 會會 員員 注注 銷銷 管理員登

13、陸系統(tǒng)管理員登陸系統(tǒng) 訂訂 單單 處處 理理 會會 員員 管管 理理 物物 品品 入入 庫庫 管管 理理 員員 注注 銷銷 會會 員員 修修 改改 資資 料料 12 3.23.2 數(shù)據(jù)庫設計數(shù)據(jù)庫設計 物品表(物品編號,物品名,價格) ,主鍵為物品編號,符合三范式。 客戶表(客戶編號,姓名,性別,購買記錄,購買信譽) ,主鍵為客戶編號, 符合三范式。 表 3-1 物品表 book 表 3-2 客戶表 member 3.33.3 程序流程圖程序流程圖 用戶登錄流程圖 列名列名含義含義長度長度類型類型 nullnulldefaultdefault bno 物品編號 10char()nono bna

14、me 物品名稱 15char()nono price 價格 8char()nono 列名列名含義含義長度長度類型類型 nullnulldefaultdefault mno 客戶編號 15char()nono mname 客戶姓名 15char()nono sex 客戶性別 5char()nono record 購買記錄 15char()nono credit 購買信譽 15char()nono 13 物品搜索流程圖 14 3.43.4 輸入項目輸入項目 輸入本系統(tǒng)中的數(shù)據(jù)如下所示: 1)用戶信息需要有用戶親自注冊,管理員帳號由系統(tǒng)自動生成。 2)產(chǎn)品信息需要有管理員手動進行添加。 3)留言標題

15、、內(nèi)容由用戶輸入,留言者、留言時間由系統(tǒng)自動檢驗生 成。 4)新聞標題、英文標題、內(nèi)容、英文內(nèi)容由管理員添加,發(fā)布時間由 系統(tǒng)自動檢驗生成。 5)訂單信息需要由用戶填寫。 4.程序源碼程序源碼 import java.util.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; import java.io.*; class 商品 extends panel string 代號,名稱;int 庫存;float 單價; 商品(string 代號,string 名稱,int 庫存,float 單價) this.代

16、號=代號;this.名稱=名稱;this.庫存=庫存;this.單價=單價; class showwin extends jframe implements actionlistener hashtable hashtable=null; jtextfield 代號文本框=new jtextfield(), 名稱文本框=new jtextfield(), 15 庫存文本框=new jtextfield(), 單價文本框=new jtextfield(), 查詢文本框=new jtextfield(), 查詢信息文本框=new jtextfield(), 刪除文本框=new jtextfield

17、(); jbutton b_add=new jbutton(添加商品), b_del=new jbutton(刪除商品), b_xun=new jbutton(查詢商品), b_xiu=new jbutton(修改商品), b_show=new jbutton(顯示商品清單); jtextarea 顯示區(qū)=new jtextarea(25,10); showwin() super(倉庫管理窗口); hashtable=new hashtable(); container con=getcontentpane(); jscrollpane pane=new jscrollpane(顯示區(qū)); 顯

18、示區(qū).seteditable(false); jpanel save=new jpanel(); save.setlayout(new gridlayout(8,2); save.add(new label(輸入代號:); save.add(代號文本框); save.add(new label(輸入名稱:); save.add(名稱文本框); save.add(new label(輸入庫存:); save.add(庫存文本框); save.add(new label(輸入單價:); save.add(單價文本框); save.add(new label(單擊添加:); save.add(b_a

19、dd); 16 save.add(new label(單擊修改:); save.add(b_xiu); save.add(new label(輸入查詢代號:); save.add(查詢文本框); save.add(new label(單擊查詢:); save.add(b_xun); jpanel del=new jpanel(); del.setlayout(new gridlayout(2,2); del.add(new label(輸入刪除的代號:); del.add(刪除文本框); del.add(new label(單擊刪除:); del.add(b_del); jpanel show

20、=new jpanel(); show.setlayout(new borderlayout(); show.add(pane,borderlayout.center); show.add(b_show,borderlayout.south); jsplitpane split_one,split_two; split_one=new jsplitpane(jsplitpane.vertical_split,save,del); split_two=new jsplitpane(jsplitpane.horizontal_split,true,split_one,show); con.add(

21、split_two,borderlayout.center); jpanel xun=new jpanel(); xun.add(new label(所得信息:); xun.add(查詢信息文本框); xun.setlayout(new gridlayout(2,1); con.add(xun,borderlayout.south); b_add.addactionlistener(this); b_del.addactionlistener(this); b_xun.addactionlistener(this); 17 b_xiu.addactionlistener(this); b_sh

22、ow.addactionlistener(this); public void actionperformed(actionevent e) if(e.getsource()=b_add) string daihao=null,mingcheng=null;int kucun=0;float danjia=0.0f; daihao=代號文本框.gettext();mingcheng=名稱文本框.gettext(); kucun=integer.parseint(庫存文本框.gettext(); danjia=float.valueof(單價文本框.gettext().floatvalue();

23、 商品 goods=new 商品(daihao,mingcheng,kucun,danjia); hashtable.put(daihao,goods); tryfileoutputstream file=new fileoutputstream(goods.txt); objectoutputstream out=new objectoutputstream(file); out.writeobject(hashtable); out.close(); catch(ioexception event) else if(e.getsource()=b_del) string daihao1=刪

24、除文本框.gettext(); tryfileinputstream come_in=new fileinputstream(goods.txt); objectinputstream in=new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 temp=(商品)hashtable.get(daihao1); hashtable.remove(daihao

25、1); tryfileoutputstream file=new fileoutputstream(goods.txt); 18 objectoutputstream out =new objectoutputstream(file); out.writeobject(hashtable);/ out.close(); catch(ioexception event) / else if(e.getsource()=b_xun) string aa; aa=查詢文本框.gettext(); 查詢信息文本框.settext(null); tryfileinputstream come_in=ne

26、w fileinputstream(goods.txt); objectinputstream in =new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 a=(商品)hashtable.get(aa); 查詢信息文本框.settext( 代號:+a.代號+ 名稱:+a.名稱+ 庫存: +a.庫存+ 單價:+a.單價); / else if(e.gets

27、ource()=b_xiu) string bb; bb=代號文本框.gettext(); tryfileinputstream come_in=new fileinputstream(goods.txt); objectinputstream in=new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / 19 in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 temp=(商品)hashtable.get(

28、bb); hashtable.remove(bb); tryfileoutputstream file=new fileoutputstream(goods.txt); objectoutputstream out =new objectoutputstream(file); out.writeobject(hashtable);/ out.close(); catch(ioexception event) string daihao1=null,mingcheng1=null;int kucun1=0;float danjia1=0.0f; daihao1=代號文本框.gettext();m

29、ingcheng1=名稱文本框.gettext(); kucun1=integer.parseint(庫存文本框.gettext(); danjia1=float.valueof(單價文本框.gettext().floatvalue(); 商品 goods1=new 商品(daihao1,mingcheng1,kucun1,danjia1); hashtable.put(daihao1,goods1); tryfileoutputstream file=new fileoutputstream(goods.txt); objectoutputstream out=new objectoutpu

30、tstream(file); out.writeobject(hashtable); out.close(); catch(ioexception event) / else if(e.getsource()=b_show) 顯示區(qū).settext(null); 20 tryfileinputstream come_in=new fileinputstream(goods.txt); objectinputstream in =new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / catch(classn

31、otfoundexception event) catch(ioexception event) enumeration enumeration = hashtable.elements(); while(enumeration.hasmoreelements() 商品 te=(商品)enumeration.nextelement(); 顯示區(qū).append(商品代號:+te.代號+ ); 顯示區(qū).append(商品名稱:+te.名稱+ ); 顯示區(qū).append(商品庫存:+te.庫存+ ); 顯示區(qū).append(商品單價:+te.單價+ ); 顯示區(qū).append(n ); public

32、 class linklistfour public static void main(string args) showwin win=new showwin(); win.setsize(400,350); win.setvisible(true); win.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0);); 21 5.程序運行與調(diào)試程序運行與調(diào)試 5.15.1 模塊測試模塊測試 在模塊測試時我們主要從以下幾個方面考慮: 1. 模塊接口; 2. 局部數(shù)據(jù)結(jié)構(gòu); 3. 重要執(zhí)行通道; 4. 出錯處理通道; 5. 影響上述方面的邊界條件。 測試時進行代碼審查,從數(shù)據(jù)類型,變量聲明,數(shù)據(jù)結(jié)構(gòu)進行審查,然后 進行功能測試,從輸入一些簡單的數(shù)據(jù)開始執(zhí)行一遍,觀測運行期間變量的變 化,運行中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論