版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、模塊開 發(fā)卷宗 v1.0 december 3 2010 網(wǎng)上書城 1 目錄目錄 一、登陸注冊模塊開發(fā)卷宗一、登陸注冊模塊開發(fā)卷宗.3 1 標題.3 2 模塊開發(fā)情況表.3 3 功能說明.3 4 設(shè)計說明.4 5 原代碼清單.6 6 測試說明.23 7 復(fù)審的結(jié)論.25 二、訂單查詢模塊開發(fā)卷宗二、訂單查詢模塊開發(fā)卷宗.25 1 標題.25 2 模塊開發(fā)情況表.25 3 功能說明.25 4 設(shè)計說明.26 5 原代碼清.26 6 測試說明.29 7 復(fù)審的結(jié)論.30 三、購物車模塊開發(fā)卷宗三、購物車模塊開發(fā)卷宗.30 1 標題.30 2 模塊開發(fā)情況表.30 3 功能說明.30 4 設(shè)計說明.
2、31 5 原代碼清單.31 5.1 購物車確認模塊代碼:.31 6 測試說明.40 7 復(fù)審的結(jié)論.41 四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗.41 1 標題.41 2 模塊開發(fā)情況表.41 3 功能說明.41 4 設(shè)計說明.41 5 原代碼清單.42 6 測試說明.45 7 復(fù)審的結(jié)論.45 五、圖書推薦模塊開發(fā)卷宗五、圖書推薦模塊開發(fā)卷宗.45 1 標題.45 2 2 模塊開發(fā)情況.45 3 功能說明.45 4 設(shè)計說明.46 5 原代碼清單.46 6 測試說明.48 7 復(fù)審的結(jié)論.48 六、圖書管理模塊開發(fā)卷宗六、圖書管理模塊開發(fā)卷宗.48 1 標題.48 2 模塊開發(fā)情況
3、表.49 3 功能說明.49 4 設(shè)計說明.49 5 原代碼清單.49 6 測試說明.51 7 復(fù)審的結(jié)論.51 七、搜索模塊開發(fā)卷宗七、搜索模塊開發(fā)卷宗.51 1 標題.51 2 模塊開發(fā)情況表.52 3 功能說明.52 4 設(shè)計說明.52 5 原代碼清單.52 6 測試說明.53 7 復(fù)審的結(jié)論.55 八、會員管理模塊開發(fā)卷宗八、會員管理模塊開發(fā)卷宗.56 1 標題.56 2 模塊開發(fā)情況表.56 3 功能說明.56 4 設(shè)計說明.56 5 原代碼清單.56 6 測試說明.58 7 復(fù)審的結(jié)論.59 九、訂單管理模塊開發(fā)卷宗九、訂單管理模塊開發(fā)卷宗.59 1 標題.59 2 模塊開發(fā)情況表
4、.59 3 功能說明.59 4 設(shè)計說明.60 5 原代碼清單.60 6 測試說明.62 7 復(fù)審的結(jié)論.62 3 一、登陸注冊模塊開發(fā)卷宗一、登陸注冊模塊開發(fā)卷宗 1 標題標題 軟件系統(tǒng)名稱和標識符:網(wǎng)上書城 模塊名稱和標識符:登錄注冊模塊 程序編制員簽名:* 卷宗的修改文本序號 修改完成日期 :2010-11-29 卷宗序號:1 編排日期:2010-11-25 2 模塊開發(fā)情況表模塊開發(fā)情況表 由于是課程設(shè)計項目,暫不考慮。 3 功能說明功能說明 扼要說明本模塊(或本組模塊)的功能,主要是輸入、要求的處理、輸出??梢詮南?統(tǒng)設(shè)計說明書中摘錄。同時列出在軟件需求說明書中對這些功能的說明的章、
5、條、款。 (1)用戶注冊功能:用戶輸入姓名,用戶名,密碼,性別,郵箱, 真實姓名,郵編, 詳細住址。姓名欄以及用戶名欄添加了空驗證控件,如果用戶未填入任何信息則給出 提示提示用戶填入信息。郵箱欄設(shè)置了格式驗證要求用戶輸入的信息必須符合% %.com 的格式。網(wǎng)頁整體設(shè)置了錯誤信息收集控件能夠顯示所有用戶輸入信息的錯 誤提示給出提示。當(dāng)用戶輸入的信息全部符合規(guī)則后才可進行注冊操作。把用戶輸入 的信息全部裝到一個實體類中,然后調(diào)用業(yè)務(wù)邏輯層的插入操作執(zhí)行注冊,注冊會先 判斷是否已經(jīng)存在該用戶,如果存在則插入失敗,如果不存在該用戶才會注冊成功。 輸入項:郵箱,用戶名,密碼 輸出項:成功則更新數(shù)據(jù)庫,
6、跳轉(zhuǎn)主頁面;失敗則輸出錯誤提示的信息。 (2)會員登錄功能:會員登錄時,需要填寫會員名,密碼,和隨機動態(tài)生成的驗證碼, 其是為了防止惡意攻擊而設(shè)置。會員登錄后才可以實現(xiàn)購物車,以及查看訂單等功 能。 管理員登錄功能:管理員登錄時,需要填寫會員名,密碼,和隨機動態(tài)生成的驗證 碼,其是為了防止惡意攻擊而設(shè)置。登陸后的管理員對網(wǎng)站進行管理。 輸入項:姓名,密碼,驗證碼 輸出項:成功則管理員跳轉(zhuǎn)到管理中心頁面,普通會員跳轉(zhuǎn)到主頁面;失敗則輸出 錯誤提示的信息。 4 4 設(shè)計說明設(shè)計說明 說明本模塊(或本組模塊)的設(shè)計考慮,包括: a 在系統(tǒng)設(shè)計說明書中有關(guān)對本模塊(或本組模塊)設(shè)計考慮的敘述,包括本模
7、塊 在軟件系統(tǒng)中所處的層次,它同其他模塊的接口; b 在程序設(shè)計說明書中有關(guān)對本模塊(或本組模塊)的設(shè)計考慮,包括本模塊的算 法、處理流程、牽涉到的數(shù)據(jù)文卷設(shè)計限制、驅(qū)動方式和出錯信息等; c 在編制目前已通過全部測試的源代碼時實際使用設(shè)的計考慮。 a. 本模塊屬于系統(tǒng)模塊層次中第一層,訂單模塊、購物車模塊等模塊調(diào)用。 b. 本模的注冊時處理流程如下:先接收用戶輸入的注冊數(shù)據(jù),成功則更新數(shù)據(jù)庫中 的 users 表,同時跳轉(zhuǎn)到網(wǎng)站主頁,否則出錯則輸出出錯信息。 登錄時的處理流程如下:接受用戶輸入的用戶名、密碼、隨機驗證碼,與數(shù)據(jù)庫中 users 表取出數(shù)據(jù)進行比較,出錯則輸出出錯信息提示,若成
8、功則判斷 users 表中 isadmin 字段的值,如果值為 0,則為普通會員,跳轉(zhuǎn)到系統(tǒng)主頁,如果值為 1,則 為管理員,跳轉(zhuǎn)到管理中心頁面。 5 5 原代碼清單原代碼清單 要給出所產(chǎn)生的本模塊(或本組模塊)的第一份無語法錯的源代碼清單以及已通過全 部測試的當(dāng)前有效的源代碼清單。 (1)主頁 default.aspx 部分中的 html 源碼如下(登錄的窗體設(shè)計代碼): 會員: 6 驗證碼: 密碼: 新用戶注冊 (2)主頁 default.aspx.cs 中的源碼如下(登錄的窗體實現(xiàn)代碼): using system; using system.data; using system.con
9、figuration; 7 using system.collections; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.data.sqlclient; using system.text; public partial class _default : syste
10、m.web.ui.page /private static string svalidator = ; /private brush brushlist = new brush32; /private readonly string imagepath = ; private static string svalidator = ; private stringbuilder letterlist = new stringbuilder(); private readonly string svalidatorimageurl = validateimage.aspx?validator=;
11、protected void page_load(object sender, eventargs e) if (!ispostback) svalidator = createvalidatestring(6); validateimage.imageurl = svalidatorimageurl + svalidator; tbx_user.text = ; tbx_pwd.text = ; /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstringssqlservices);
12、/創(chuàng)建數(shù)據(jù)庫連接 sqlconnection myconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.open(); sqlcommand mycmd = new sqlcommand(mostsoldbooks, myconn); sqldatareader result = mycmd.executereader(); dl_mostsold.datasource = result; dl_mostsold.databind(); lbl_msg1.visible = false; 8 lbl_msg2.visible = false;
13、if (sessionusername = null | sessionusername.tostring() = ) p_login.visible = true; p_successlogin.visible = false; else p_login.visible = false; p_successlogin.visible = true; lbl_user.text = sessionusername.tostring(); lbl_rank.text = sessionlevel.tostring(); protected void btn_login_click(object
14、sender, eventargs e) string username = tbx_user.text; string password = tbx_pwd.text; if (username = ) lbl_msg1.visible = true; lbl_msg1.text = 請輸入用戶名; else if (password = ) lbl_msg2.visible = true; lbl_msg2.text = 請輸入密碼; else if (validator.text != svalidator) /message.text = 驗證碼輸入錯誤,請重新輸入驗證碼!; sval
15、idator = createvalidatestring(6); validateimage.imageurl = svalidatorimageurl + svalidator; return; else /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstringssqlservices); 9 /創(chuàng)建數(shù)據(jù)庫連接對象 sqlconnection myconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.open(); /讀取用戶信息
16、 string mysql = select * from users where username= + + username + + and password= + + password + +and isadmin=0; string mysql1 = select * from users where username= + + username + + and password= + + password + + and isadmin=1; /response.write(mysql); /response.end(); /創(chuàng)建命令對象 sqlcommand mycmd = new
17、 sqlcommand(mysql, myconn); sqlcommand mycmd1 = new sqlcommand(mysql1, myconn); /創(chuàng)建適配器并執(zhí)行命令 sqldatareader mydr = mycmd.executereader(); try if (mydr.read() /把用戶名寫入session對象 sessionusername = mydr1; /把權(quán)限編號寫入session對象 sessionlevel = mydrlevel.tostring(); /隱藏登錄信息 p_login.visible = false; /顯示用戶信息 p_succ
18、esslogin.visible = true; lbl_user.text = sessionusername.tostring(); lbl_rank.text = sessionlevel.tostring(); string userid = mydruserid.tostring(); sessionuserid = userid; /把用戶名稱添加到身份認證憑據(jù)中 /formsauthentication.redirectfromloginpage(userid, true); /formsauthentication. bookstore logindb = new bookst
19、ore(); string tempcartid = logindb.getshoppingcartid(); logindb.transplantshoppingcart(tempcartid, userid); else /顯示錯誤信息 10 lbl_msg2.visible = true; lbl_msg2.text = 用戶名或密碼錯誤; finally /關(guān)閉操作 mydr.close(); sqldatareader mydr1 = mycmd1.executereader(); try if (mydr1.read() /把用戶名寫入session對象 sessionuserna
20、me = mydr11; /把權(quán)限編號寫入session對象 sessionlevel = mydr1level.tostring(); /隱藏登錄信息 p_login.visible = false; /顯示用戶信息 p_successlogin.visible = true; lbl_user.text = sessionusername.tostring(); lbl_rank.text = sessionlevel.tostring(); string userid = mydr1userid.tostring(); sessionuserid = userid; /把用戶名稱添加到身
21、份認證憑據(jù)中 /formsauthentication.redirectfromloginpage(userid, true); /formsauthentication. bookstore logindb = new bookstore(); string tempcartid = logindb.getshoppingcartid(); logindb.transplantshoppingcart(tempcartid, userid); response.redirect(/default.aspx); else /顯示錯誤信息 lbl_msg2.visible = true; lbl
22、_msg2.text = 用戶名或密碼錯誤; 11 finally /關(guān)閉操作 mydr1.close(); myconn.close(); protected void cancelbtn_click(object sender, eventargs e) /清空用戶名稱和密碼輸入框以及驗證碼輸入框 tbx_user.text = tbx_pwd.text = validator.text =; /創(chuàng)建驗證字符串 svalidator = createvalidatestring(6); validateimage.imageurl = svalidatorimageurl + svalid
23、ator; private int getrandomint(int min, int max) random random = new random(); return (random.next(min, max); / / 創(chuàng)建驗證字符串 / / / private string createvalidatestring(int nlen) /初始化 initletterlist(); /創(chuàng)建一個stringbuilder對象 stringbuilder sb = new stringbuilder(nlen); for (int i = 0; i nlen; i+) int index
24、= getrandomint(0, letterlist.length - 1); sb.append(letterlistindex.tostring(); letterlist.remove(index, 1); return (sb.tostring(); 12 / / 創(chuàng)建所有字符,為創(chuàng)建驗證字符串做準備 / private void initletterlist() for (int i = 0; i 10; i+) letterlist.append(i.tostring(); for (int i = 0; i 26; i+) letterlist.append(char)(in
25、t)a + i).tostring(); for (int i = 0; i 26; i+) letterlist.append(char)(int)a + i).tostring(); (3)頁面 validateimage.aspx 用來創(chuàng)建顯示驗證字符串的圖片,并在該圖片上添加驗證碼 字符串。該頁面的 html 源碼如下: untitled page (4)頁面 validateimage.aspx.cs 中的源碼如下: using system; using system.data; using system.configuration; using system.collection
26、s; using system.web; 13 using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.drawing.drawing2d; using system.drawing.imaging; using system.drawing.text; using system.drawing; using sy
27、stem.text; public partial class validateimage : system.web.ui.page private readonly string imagepath = images/validator.jpg; private string svalidator = ; private brush brushlist = new brush32; private void page_load(object sender, system.eventargs e) /初始化 initbrushlist(); if(request.paramsvalidator
28、 != null) /獲取驗證字符串 svalidator = request.paramsvalidator.tostring(); /創(chuàng)建bmp位圖 bitmap bitmapimage = new system.drawing.bitmap(server.mappath(imagepath); graphics graphicimage = graphics.fromimage(bitmapimage); /設(shè)置畫筆的輸出模式 graphicimage.smoothingmode = smoothingmode.antialias; /添加文本字符串 for(int i = 0; i s
29、validator.length; i+) graphicimage.drawstring(svalidatori.tostring(), new font(arial,20,(fontstyle)createrandomfontstyle(getrandomint(0,1000), brushlistgetrandomint(0,brushlist.length - 1), new pointf(i * 15,getrandomint(-5,5); 14 /graphicimage.drawstring(svalidator, new font(arial, 20, (fontstyle)g
30、etrandomint(0,4),systembrushes.windowtext, new point(0, 0); /設(shè)置圖像輸出的格式 response.contenttype = image/jpeg; /保存數(shù)據(jù)流 bitmapimage.save(response.outputstream, imageformat.jpeg); /釋放占用的資源 graphicimage.dispose(); bitmapimage.dispose(); response.end(); / / 創(chuàng)建一個隨機數(shù) / / / / private int getrandomint(int min,int
31、 max) random random = new random(); return (random.next(min,max); private int createrandomfontstyle(int random) if(random 200) return 0; if(random 400) return 1; if(random 600) return 2; if(random 800) return 3; 15 if(random 1000) return 4; return 4; / / 初始化brush列表 / private void initbrushlist() bru
32、shlist0 = systembrushes.activeborder; brushlist1 = systembrushes.activecaption; brushlist2 = systembrushes.activecaptiontext; brushlist3 = systembrushes.appworkspace; brushlist4 = systembrushes.buttonface; brushlist5 = systembrushes.buttonhighlight; brushlist6 = systembrushes.buttonshadow; brushlist
33、7 = systembrushes.control; brushlist8 = systembrushes.controldark; brushlist9 = systembrushes.controldarkdark; brushlist10 = systembrushes.controllight; brushlist11 = systembrushes.controltext; brushlist12 = systembrushes.desktop; brushlist13 = systembrushes.gradientactivecaption; brushlist14 = syst
34、embrushes.gradientinactivecaption; brushlist15 = systembrushes.graytext; brushlist16 = systembrushes.highlight; brushlist17 = systembrushes.highlighttext; brushlist18 = systembrushes.hottrack; brushlist19 = systembrushes.inactiveborder; brushlist20 = systembrushes.inactivecaption; brushlist21 = syst
35、embrushes.inactivecaptiontext; brushlist22 = systembrushes.info; brushlist23 = systembrushes.infotext; brushlist24 = systembrushes.menu; brushlist25 = systembrushes.menubar; brushlist26 = systembrushes.menuhighlight; brushlist27 = systembrushes.menutext; brushlist28 = systembrushes.scrollbar; brushl
36、ist29 = systembrushes.window; brushlist30 = systembrushes.windowframe; 16 brushlist31 = systembrushes.windowtext; (5)注冊頁面 reg.aspx 中的 html 源碼如下: 無標題頁 購物車 | 訂單 查詢 | 17 gzu605網(wǎng)上書城會員注冊 電子郵件: 請?zhí)顚懻_常用的email以確保充分享受全面的服務(wù) 用戶名: 請使用英文字母數(shù)字和下劃線,長度為4-16。 密碼: 密碼可以使用4-12位的任意的非空白字符 18 確認密碼: 請重復(fù)密碼 *網(wǎng)上書城v2010.0正式版 版權(quán)
37、所有 gzu605小組* (6)注冊頁面 reg.aspx.cs 中的源碼如下: using system; using system.data; using system.configuration; using system.collections; using system.web; 19 using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcont
38、rols; using system.data.sqlclient; public partial class reg : system.web.ui.page protected void page_load(object sender, eventargs e) protected void btn_reg_click(object sender, eventargs e) if (page.isvalid) if (isused() /創(chuàng)建數(shù)據(jù)庫連接對象 sqlconnection myconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn
39、.open(); /創(chuàng)建數(shù)據(jù)庫命令 sqlcommand mycmd = new sqlcommand(adduser, myconn); /設(shè)置數(shù)據(jù)庫命令類型為存儲過程 mycmd.commandtype = commandtype.storedprocedure; sqlparameter accountparameter = mycmd.parameters.add(useraccount, sqldbtype.nvarchar, 50); accountparameter.value = tbx_user.text; sqlparameter emailparameter = mycm
40、d.parameters.add(email, sqldbtype.nvarchar, 50); emailparameter.value = tbx_email.text; sqlparameter userpwd = mycmd.parameters.add(userpwd, sqldbtype.nvarchar, 50); userpwd.value = tbx_pwd.text; 20 sqlparameter userid = mycmd.parameters.add(userid, sqldbtype.int); userid.direction = parameterdirect
41、ion.output; mycmd.executenonquery(); myconn.close(); sessionlevel = 1; sessionuserid = userid.value; /定向用戶頁面 response.redirect(/default.aspx); /檢查用戶名是否可用 public bool isused() /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstringssqlservices); /創(chuàng)建數(shù)據(jù)庫連接對象 sqlconnection m
42、yconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.open(); /創(chuàng)建數(shù)據(jù)庫命令 sqlcommand mycmd = new sqlcommand(checkuser, myconn); /設(shè)置數(shù)據(jù)庫命令類型為存儲過程 mycmd.commandtype = commandtype.storedprocedure; /命令參數(shù) sqlparameter accountparameter = mycmd.parameters.add(useraccount, sqldbtype.nvarchar, 50); accountparamet
43、er.value = tbx_user.text.trim(); sqldatareader mydr = mycmd.executereader(); try if (mydr.read() lbl_msg.text = 該用戶名已經(jīng)被使用; lbl_msg.visible = true; return false; else 21 return true; finally /關(guān)閉操作 mydr.close(); myconn.close(); public bool usernamelength() /獲取用戶名長度 int length = tbx_user.text.length; i
44、f (length 16) lbl_msg.text = 用戶名長度太長; lbl_msg.visible = true; return false; else return true; public bool pwdlength() /獲取用戶名長度 int length = tbx_pwd.text.length; if (length 12) lbl_msg.text = 密碼太長; lbl_msg.visible = true; return false; else return true; protected void btn_clear_click(object sender, e
45、ventargs e) tbx_user.text = ; tbx_email.text = ; 6 測試說明測試說明 (1)注冊功能的測試如下: 測試項目名稱: 網(wǎng)上書城系統(tǒng) 測試用例編號:testcase-01 測試項目標題:正常注冊流程的功能測試 測試人員: 吳毅 測試時間: 2010-11-29 測試內(nèi)容: - 輸入郵箱 -輸入用戶名 -輸入密碼 -重復(fù)輸入密碼 -點擊確認 測試環(huán)境與系統(tǒng)配置: 軟件環(huán)境:micrsoft windowxp2 + micrsoft ie80 硬件環(huán)境:inter 雙核 2.0g + 2g 內(nèi)存 網(wǎng)絡(luò)環(huán)境:2 人共享 1m 帶寬 測試輸入 數(shù)據(jù) 1.全為
46、空,不輸入立即點擊確認按鈕 2.填寫不符合格式要求的數(shù)據(jù) 3.填寫正確的是的數(shù)據(jù) 測試次數(shù):每個測試過程做 3 次。 23 預(yù)期結(jié)果: 1.全為空,則輸出不能為空的出錯提示 2.輸出請正確填寫該數(shù)據(jù)的錯誤的提示。 3.跳轉(zhuǎn)到主頁方便用戶登錄 測試過程: 打開注冊頁面, 在注冊文本框中分別輸入 email 地址、用戶名和密碼、以及重復(fù)輸入一次密碼 點擊“確定” 測試結(jié)果: 1.全為空,則輸出不能為空的出錯提示 2.輸出請正確填寫該數(shù)據(jù)的錯誤的提示。 3.跳轉(zhuǎn)到主頁方便用戶登錄 測試結(jié)論:測試的預(yù)期結(jié)果和測試的最終結(jié)果相符,注冊功能得以實現(xiàn)。 實現(xiàn)限制: 備注: (2)登錄功能的測試如下: 測試項
47、目名稱: 網(wǎng)上書城系統(tǒng) 測試用例編號:testcase-02 測試項目標題:正常登錄流程的功能測試 測試人員: 吳毅 測試時間: 2010-11-29 測試內(nèi)容: -輸入用戶名 -輸入密碼 -輸入隨機驗證碼 -點擊登錄 測試環(huán)境與系統(tǒng)配置: 軟件環(huán)境:micrsoft windowxp2 + micrsoft ie80 硬件環(huán)境:inter 雙核 2.0g + 2g 內(nèi)存 網(wǎng)絡(luò)環(huán)境:2 人共享 1m 帶寬 測試輸入 數(shù)據(jù) 1.全為空,不輸入立即點擊登錄按鈕 2.填寫錯誤的用戶名、密碼或驗證碼 3.填寫正確的是普通會員 4.填寫正確的是管理員 測試次數(shù):每個測試過程做 3 次。 預(yù)期結(jié)果: 1.
48、全為空,則輸出不能為空的出錯提示。 2.輸出用戶名、密碼或驗證碼錯誤的提示。 3.跳轉(zhuǎn)到主頁,顯示歡迎該用戶登錄。 4.跳轉(zhuǎn)到管理中心頁面。 24 測試過程: 打開主頁, 在登錄文本框中分別輸入用戶名和密碼以及隨機驗證碼, 點擊“登錄” 測試結(jié)果: 1.全為空,則輸出不能為空的出錯提示。 2.輸出用戶名、密碼或驗證碼錯誤的提示。 3.跳轉(zhuǎn)到主頁,顯示歡迎該用戶登錄。 4.跳轉(zhuǎn)到管理中心頁面。 測試結(jié)論:測試的預(yù)期結(jié)果和測試的最終結(jié)果相符,登錄功能得以實現(xiàn)。 實現(xiàn)限制: 備注: 7 復(fù)審的結(jié)論復(fù)審的結(jié)論 經(jīng)過實際測試,得到的結(jié)果同軟件需求說明書、詳細設(shè)計說明書、程序設(shè)計說明書中 規(guī)定的要求相符合
49、,故登陸注冊模塊的代碼編寫正確,可以實現(xiàn)系統(tǒng)所要求的注冊和功能。 二、訂單查詢模塊開發(fā)卷宗二、訂單查詢模塊開發(fā)卷宗 1 標題標題 軟件系統(tǒng)名稱:網(wǎng)上書城 模塊名稱:訂單管理模塊 程序編制員簽名:王繼 卷宗序號:2 修改完成日期 :2010 年 11 月 25 日 2 模塊開發(fā)情況表模塊開發(fā)情況表 暫不考慮。 3 功能說明功能說明 該模塊用于對用戶所有購物訂單進行統(tǒng)計并匯總,對訂單的詳細信息進行加工,給用戶反 饋一個總賬單。并且對用戶提供訂單查詢義務(wù)。list.aspx,orderdetails.aspx。主要輸入數(shù)據(jù) 有,會員信息(名字,等級) ,訂單信息(訂單編號,訂單日期,訂單總金額,訂單
50、詳細信 25 息) 。主要的輸出數(shù)據(jù)有:會員信息,和訂單信息。詳細數(shù)據(jù)和輸入數(shù)據(jù)相同。 4 設(shè)計說明設(shè)計說明 本模塊主要提供義務(wù)給用戶使用,所以在登錄模塊之前,首先應(yīng)該檢查用戶是否登錄,用 戶是登錄狀態(tài)時,將之前在購物車模塊中的數(shù)據(jù)回饋給用戶,用戶檢查無誤后,提交給數(shù) 據(jù)庫。 用戶查詢訂單時,從數(shù)據(jù)庫中提出屬于該用戶的訂單編號,通過訂單編號可以查詢到每一 張訂單的詳細信息。 5 原代碼清原代碼清 5.1訂單回饋代碼: 請核對和遞交您的訂單 /顯示訂單的詳細信息 26 總額: 5.2訂單提交的關(guān)鍵代碼: /提交訂單 protected void submitbtn_click(object se
51、nder, eventargs e) bookstore checkoutdb = new bookstore(); / 獲取最終用戶的購物車id string cartid = checkoutdb.getshoppingcartid(); / 獲取最終用戶的userid string customerid = user.identity.name; if (cartid != null) header.text = 結(jié)算完成; ordermsglabel.text = 您的訂單編號是: + orderid; submitbtn.visible = false; 27 5.3 訂單查詢頁面代
52、碼: 5.4訂單查詢關(guān)鍵代碼: /加載本登錄用戶的訂單信息 protected void page_load(object sender, eventargs e) if (sessionusername = null | sessionusername.tostring() = ) response.redirect(login.aspx?url=orderlist.aspx); else string userid = sessionuserid.tostring(); bookstore orderhistory = new bookstore(); mylist.datasource
53、= orderhistory.getuserorders(userid); mylist.databind(); 28 if (mylist.items.count = 0) myerror.text = 您目前沒有訂單可以顯示。; mylist.visible = false; 6 測試說明測試說明 6.1 在用戶沒登陸的情況下,在正確的情況下轉(zhuǎn)到用戶登錄界面(login.aspx) 。如圖: 6.2 在用戶登錄的情況下,應(yīng)該輸出用戶名(username),用戶等級(level).如圖: 6.3 當(dāng)用戶在登錄狀態(tài)下,點擊“訂單查詢”時,會顯示所有該用戶的全部訂單編號 (orderid) ,訂
54、單日期(orderdate),訂單總金額(總金額=圖書 1*數(shù)量+圖書 2*數(shù)量+圖 書 n*數(shù)量) 。如圖: 29 6.4 當(dāng)用戶點擊訂單詳細信息時,會將訂單編號(orderid) ,訂單日期(orderdate),訂單 中圖書名稱(bookname),市場價格(bookmarketprice),圖書數(shù)量(bookquantity),會員 價格(bookprice),訂單總金額。如圖: 7 復(fù)審的結(jié)論復(fù)審的結(jié)論 通過上面的測試,發(fā)現(xiàn)在訂單查詢模塊得到的結(jié)果和預(yù)期的結(jié)果是完全相同的。但是, 在訂單提交時不會檢查庫存是否能夠滿足這張訂單,所以就會造成銷售部門與采購部門的 不協(xié)調(diào)。 30 三、購物
55、車模塊開發(fā)卷宗三、購物車模塊開發(fā)卷宗 1 標題標題 軟件系統(tǒng)名稱:網(wǎng)上書城 模塊名稱:購物繼車模塊 程序編制員簽名:王繼 卷宗序號:3 修改完成日期 :2010 年 11 月 30 日 2 模塊開發(fā)情況表模塊開發(fā)情況表 暫不考慮。 3 功能說明功能說明 窗體名稱:shoppingcart.aspx 窗體描述: 控件名稱功能響應(yīng)事件 label. ordermsglabel用于顯示訂單的提示信息 dataview. mydatagrid用于顯示該次購物的圖書名 稱,市場價格,數(shù)量,會員 價格和總金額。 button.updatebtn用于更新選定圖書后購物車 中的數(shù)據(jù) button .check
56、outbtn用于用戶結(jié)算本次購物的總 金額 窗體名稱:checkout.aspx 窗體描述: 控件名稱功能響應(yīng)事件 label. ordermsglabel用于顯示訂單的提示信息 dataview. mydatagrid用于顯示該次購物的圖書名 稱,市場價格,數(shù)量,會員 價格和總金額。 label. totallbl用于顯示本次購物金額 button. submitbtn把本次購物信息轉(zhuǎn)換成訂單submitbtn_click 。 31 4 設(shè)計說明設(shè)計說明 本模塊主要提供義務(wù)給用戶使用,讓用戶能夠?qū)ψ约核I的書進行一個統(tǒng)計,了解這些書 的一些基本情況,如價格,數(shù)量等,還能對自己所消費的金額進行
57、一個計算。 5 原代碼清單原代碼清單 5.1 購物車確認模塊代碼: 網(wǎng)上書城 32 33 請核對和遞交您的訂單 34 總額: 35 5.2購物車模塊代碼: 網(wǎng)上書城 36 37 asp:label id=bookid runat=server text= 38 asp:textbox id=bookquantity runat=server columns=4 maxlength=3 text= width=40px 總額: 6 測試說明測試說明 輸入項 名稱標識數(shù)據(jù)類型輸入方式輸入媒介處理數(shù)據(jù) 提交button. submitbtn 無點擊按鈕鼠標修改數(shù)據(jù)庫 搜索窗體search.ascx無
58、點擊按鈕鼠標查詢數(shù)據(jù)庫 圖書名稱booknamenvarchar(50)鍵盤輸入鍵盤查詢數(shù)據(jù)庫 市場價格bookmarketpricemoney點擊按鈕鼠標查詢數(shù)據(jù)庫 數(shù)量bookamountint鍵盤輸入鍵盤修改數(shù)據(jù)庫 40 價格bookpricemoney點擊按鈕鼠標查詢數(shù)據(jù)庫 金額小計unitcostint系統(tǒng)計算數(shù)據(jù)庫修改數(shù)據(jù)庫 訂單編號orderidint系統(tǒng)自動生 成 數(shù)據(jù)庫查詢數(shù)據(jù)庫 訂單日期orderdatedate系統(tǒng)自動生 成 數(shù)據(jù)庫查詢數(shù)據(jù)庫 輸出項 名稱標識數(shù)據(jù)類型輸出方式輸出媒介 圖書名稱booknamenvarchar(50)寫入數(shù)據(jù)庫數(shù)據(jù)庫 市場價格bookmar
59、ketpricemoney寫入數(shù)據(jù)庫數(shù)據(jù)庫 數(shù)量bookamountint寫入數(shù)據(jù)庫數(shù)據(jù)庫 價格bookpricemoney寫入數(shù)據(jù)庫數(shù)據(jù)庫 金額小計unitcostint寫入數(shù)據(jù)庫數(shù)據(jù)庫 訂單日期orderdatedatetime寫入數(shù)據(jù)庫數(shù)據(jù)庫 訂單編號orderidint寫入數(shù)據(jù)庫數(shù)據(jù)庫 7 復(fù)審的結(jié)論復(fù)審的結(jié)論 通過上面的測試,發(fā)現(xiàn)購物車的功能基本達到而來預(yù)期的要求,能夠?qū)τ脩籼峁┮恍?有效的幫助,該模塊的制作相當(dāng)成功。 四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗 1 標題標題 軟件系統(tǒng)名稱和標識符:網(wǎng)上書城(bookshop) 模塊名稱和標識符:圖書分類 程序編制員簽名:肖枝兵
60、 卷宗的修改文本序號 修改完成日期 2010-11-25 卷宗序號 4 編排日期:2010-11-25 41 2 模塊開發(fā)情況表模塊開發(fā)情況表 暫不考慮。 3 功能說明功能說明 圖書分類模塊主要實現(xiàn)兩個功能,分類編號和分類名稱。網(wǎng)上書城最大的優(yōu)點就是要 方便買書的顧客的同時節(jié)約顧客的時間,本模塊正是考慮到這一點而做,目的就是讓顧客 登錄本網(wǎng)站后能盡快地找到他們喜歡的書籍及相關(guān)信息。 考慮到客戶端硬件的差異,本模塊對主存的占有采用非常駐內(nèi)存方式,可以從某種方 式上降低對資源的損耗。 4 設(shè)計說明設(shè)計說明 本模塊圖書分類精度的要求對用戶是透明的,由系統(tǒng)管理員進行操作,用戶只需根據(jù) 界面分類信息點擊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年版模具鋼材原材料追溯與供應(yīng)鏈追溯合同3篇
- 2025年度個人二手房交易貸款擔(dān)保合同樣本4篇
- 二零二五年度互聯(lián)網(wǎng)廣告發(fā)布合同樣本4篇
- 2025年度汽車短期租賃合同模板4篇
- 工廠保安協(xié)議書(2篇)
- 2025年度個人房屋租賃定金協(xié)議及租賃雙方權(quán)利義務(wù)2篇
- 二零二五年度苗木種植與森林防火合作協(xié)議4篇
- 2025年度二手車買賣雙方責(zé)任界定協(xié)議3篇
- 2025年度個人房產(chǎn)抵押貸款合同風(fēng)險評估報告4篇
- 2024年中級經(jīng)濟師考試題庫含解析答案
- 2024版?zhèn)€人私有房屋購買合同
- 2024爆炸物運輸安全保障協(xié)議版B版
- 《食品與食品》課件
- 讀書分享會《白夜行》
- 光伏工程施工組織設(shè)計
- DB4101-T 121-2024 類家庭社會工作服務(wù)規(guī)范
- 智研咨詢發(fā)布-2023年中國智能驅(qū)鳥裝置行業(yè)現(xiàn)狀、發(fā)展環(huán)境及深度分析報告
- 不抱怨的世界-讀后感課件
- 安慶時聯(lián)新材料有限責(zé)任公司10000噸年抗氧劑系列產(chǎn)品及抗紫外線吸收劑生產(chǎn)項目環(huán)境影響報告
- 中醫(yī)師承申請表
- 臨床微生物檢查課件 第2章細菌的生理
評論
0/150
提交評論