




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、模塊開發(fā)卷宗v1.0december 32010網(wǎng)上書城1 目錄目錄一、登陸注冊模塊開發(fā)卷宗一、登陸注冊模塊開發(fā)卷宗.31 標(biāo)題.32 模塊開發(fā)情況表.33 功能說明.34 設(shè)計說明.45 原代碼清單.66 測試說明.237 復(fù)審的結(jié)論.25二、訂單查詢模塊開發(fā)卷宗二、訂單查詢模塊開發(fā)卷宗.251 標(biāo)題.252 模塊開發(fā)情況表.253 功能說明.254 設(shè)計說明.265 原代碼清.266 測試說明.297 復(fù)審的結(jié)論.30三、購物車模塊開發(fā)卷宗三、購物車模塊開發(fā)卷宗.301 標(biāo)題.302 模塊開發(fā)情況表.303 功能說明.304 設(shè)計說明.315 原代碼清單.315.1 購物車確認(rèn)模塊代碼:.
2、316 測試說明.407 復(fù)審的結(jié)論.41四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗.411 標(biāo)題.412 模塊開發(fā)情況表.413 功能說明.414 設(shè)計說明.415 原代碼清單.426 測試說明.457 復(fù)審的結(jié)論.45五、圖書推薦模塊開發(fā)卷宗五、圖書推薦模塊開發(fā)卷宗.451 標(biāo)題.4522 模塊開發(fā)情況.453 功能說明.454 設(shè)計說明.465 原代碼清單.466 測試說明.487 復(fù)審的結(jié)論.48六、圖書管理模塊開發(fā)卷宗六、圖書管理模塊開發(fā)卷宗.481 標(biāo)題.482 模塊開發(fā)情況表.493 功能說明.494 設(shè)計說明.495 原代碼清單.496 測試說明.517 復(fù)審的結(jié)論.51
3、七、搜索模塊開發(fā)卷宗七、搜索模塊開發(fā)卷宗.511 標(biāo)題.512 模塊開發(fā)情況表.523 功能說明.524 設(shè)計說明.525 原代碼清單.526 測試說明.537 復(fù)審的結(jié)論.55八、會員管理模塊開發(fā)卷宗八、會員管理模塊開發(fā)卷宗.561 標(biāo)題.562 模塊開發(fā)情況表.563 功能說明.564 設(shè)計說明.565 原代碼清單.566 測試說明.587 復(fù)審的結(jié)論.59九、訂單管理模塊開發(fā)卷宗九、訂單管理模塊開發(fā)卷宗.591 標(biāo)題.592 模塊開發(fā)情況表.593 功能說明.594 設(shè)計說明.605 原代碼清單.606 測試說明.627 復(fù)審的結(jié)論.623一、登陸注冊模塊開發(fā)卷宗一、登陸注冊模塊開發(fā)卷宗
4、1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱和標(biāo)識符:網(wǎng)上書城模塊名稱和標(biāo)識符:登錄注冊模塊程序編制員簽名:*卷宗的修改文本序號修改完成日期 :2010-11-29卷宗序號:1編排日期:2010-11-252 模塊開發(fā)情況表模塊開發(fā)情況表由于是課程設(shè)計項目,暫不考慮。3 功能說明功能說明扼要說明本模塊(或本組模塊)的功能,主要是輸入、要求的處理、輸出??梢詮南到y(tǒng)設(shè)計說明書中摘錄。同時列出在軟件需求說明書中對這些功能的說明的章、條、款。(1)用戶注冊功能:用戶輸入姓名,用戶名,密碼,性別,郵箱, 真實姓名,郵編,詳細(xì)住址。姓名欄以及用戶名欄添加了空驗證控件,如果用戶未填入任何信息則給出提示提示用戶填入信息。郵箱欄設(shè)
5、置了格式驗證要求用戶輸入的信息必須符合%.com 的格式。網(wǎng)頁整體設(shè)置了錯誤信息收集控件能夠顯示所有用戶輸入信息的錯誤提示給出提示。當(dāng)用戶輸入的信息全部符合規(guī)則后才可進行注冊操作。把用戶輸入的信息全部裝到一個實體類中,然后調(diào)用業(yè)務(wù)邏輯層的插入操作執(zhí)行注冊,注冊會先判斷是否已經(jīng)存在該用戶,如果存在則插入失敗,如果不存在該用戶才會注冊成功。輸入項:郵箱,用戶名,密碼 輸出項:成功則更新數(shù)據(jù)庫,跳轉(zhuǎn)主頁面;失敗則輸出錯誤提示的信息。(2)會員登錄功能:會員登錄時,需要填寫會員名,密碼,和隨機動態(tài)生成的驗證碼,其是為了防止惡意攻擊而設(shè)置。會員登錄后才可以實現(xiàn)購物車,以及查看訂單等功能。 管理員登錄功能
6、:管理員登錄時,需要填寫會員名,密碼,和隨機動態(tài)生成的驗證碼,其是為了防止惡意攻擊而設(shè)置。登陸后的管理員對網(wǎng)站進行管理。輸入項:姓名,密碼,驗證碼 輸出項:成功則管理員跳轉(zhuǎn)到管理中心頁面,普通會員跳轉(zhuǎn)到主頁面;失敗則輸出錯誤提示的信息。44 設(shè)計說明設(shè)計說明說明本模塊(或本組模塊)的設(shè)計考慮,包括:a 在系統(tǒng)設(shè)計說明書中有關(guān)對本模塊(或本組模塊)設(shè)計考慮的敘述,包括本模塊在軟件系統(tǒng)中所處的層次,它同其他模塊的接口;b 在程序設(shè)計說明書中有關(guān)對本模塊(或本組模塊)的設(shè)計考慮,包括本模塊的算法、處理流程、牽涉到的數(shù)據(jù)文卷設(shè)計限制、驅(qū)動方式和出錯信息等;c 在編制目前已通過全部測試的源代碼時實際使用
7、設(shè)的計考慮。 a. 本模塊屬于系統(tǒng)模塊層次中第一層,訂單模塊、購物車模塊等模塊調(diào)用。b. 本模的注冊時處理流程如下:先接收用戶輸入的注冊數(shù)據(jù),成功則更新數(shù)據(jù)庫中的 users 表,同時跳轉(zhuǎn)到網(wǎng)站主頁,否則出錯則輸出出錯信息。登錄時的處理流程如下:接受用戶輸入的用戶名、密碼、隨機驗證碼,與數(shù)據(jù)庫中users 表取出數(shù)據(jù)進行比較,出錯則輸出出錯信息提示,若成功則判斷 users 表中isadmin 字段的值,如果值為 0,則為普通會員,跳轉(zhuǎn)到系統(tǒng)主頁,如果值為 1,則為管理員,跳轉(zhuǎn)到管理中心頁面。 55 原代碼清單原代碼清單要給出所產(chǎn)生的本模塊(或本組模塊)的第一份無語法錯的源代碼清單以及已通過全
8、部測試的當(dāng)前有效的源代碼清單。(1)主頁 default.aspx 部分中的 html 源碼如下(登錄的窗體設(shè)計代碼): 會員: 6 驗證碼: 密碼: 新用戶注冊 (2)主頁 default.aspx.cs 中的源碼如下(登錄的窗體實現(xiàn)代碼):using system;using system.data;using syst
9、em.configuration;7using 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 : system.web
10、.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=; prote
11、cted 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); /創(chuàng)建數(shù)據(jù)
12、庫連接 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; if (se
13、ssionusername = 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 sender
14、, 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 = 驗證碼輸入錯誤,請重新輸入驗證碼!; svalidator
15、 = 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(); /讀取用戶信息 string
16、 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 sqlcom
17、mand(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_successlogi
18、n.visible = true; lbl_user.text = sessionusername.tostring(); lbl_rank.text = sessionlevel.tostring(); string userid = mydruserid.tostring(); sessionuserid = userid; /把用戶名稱添加到身份認(rèn)證憑據(jù)中 /formsauthentication.redirectfromloginpage(userid, true); /formsauthentication. bookstore logindb = new bookstore();
19、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對象 sessionusername = myd
20、r11; /把權(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; /把用戶名稱添加到身份認(rèn)證憑據(jù)中 /
21、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_msg2.te
22、xt = 用戶名或密碼錯誤; 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 + svalidator; pr
23、ivate 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 = getran
24、domint(0, letterlist.length - 1); sb.append(letterlistindex.tostring(); letterlist.remove(index, 1); return (sb.tostring();12 / / 創(chuàng)建所有字符,為創(chuàng)建驗證字符串做準(zhǔn)備 / private void initletterlist() for (int i = 0; i 10; i+) letterlist.append(i.tostring(); for (int i = 0; i 26; i+) letterlist.append(char)(int)a + i).
25、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.collections;using system
26、.web;13using 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 system.text;public partial c
27、lass 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 != null)/獲取驗證字符串svalidator =
28、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 svalidator.length; i+)graphicimage
29、.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)getrandomint(0,4),systembrushes.windowte
30、xt, 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 max)random random = new random();return
31、(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;15if(random 1000)return 4;return 4;/ / 初始化brush列表/ private void initbrushlist()brushlist0 = systembrushes.activeborder;brushlist1 = systembru
32、shes.activecaption;brushlist2 = systembrushes.activecaptiontext;brushlist3 = systembrushes.appworkspace;brushlist4 = systembrushes.buttonface;brushlist5 = systembrushes.buttonhighlight;brushlist6 = systembrushes.buttonshadow;brushlist7 = systembrushes.control;brushlist8 = systembrushes.controldark;b
33、rushlist9 = systembrushes.controldarkdark;brushlist10 = systembrushes.controllight;brushlist11 = systembrushes.controltext;brushlist12 = systembrushes.desktop;brushlist13 = systembrushes.gradientactivecaption;brushlist14 = systembrushes.gradientinactivecaption;brushlist15 = systembrushes.graytext;br
34、ushlist16 = systembrushes.highlight;brushlist17 = systembrushes.highlighttext;brushlist18 = systembrushes.hottrack;brushlist19 = systembrushes.inactiveborder;brushlist20 = systembrushes.inactivecaption;brushlist21 = systembrushes.inactivecaptiontext;brushlist22 = systembrushes.info;brushlist23 = sys
35、tembrushes.infotext;brushlist24 = systembrushes.menu;brushlist25 = systembrushes.menubar;brushlist26 = systembrushes.menuhighlight;brushlist27 = systembrushes.menutext;brushlist28 = systembrushes.scrollbar;brushlist29 = systembrushes.window;brushlist30 = systembrushes.windowframe;16brushlist31 = sys
36、tembrushes.windowtext;(5)注冊頁面 reg.aspx 中的 html 源碼如下: 無標(biāo)題頁 購物車 | 訂單查詢 | 17 gzu605網(wǎng)上書城會員注冊 電子郵件: 請?zhí)顚懻_常用的email以確保充分享受全面的服務(wù) 用戶名: 請使用英文字母數(shù)字和下劃線,長度為4-16。 密碼: 密碼可以使用4-12位的任意的非空白字符18 確認(rèn)密碼: 請重復(fù)密碼 *網(wǎng)上書城v2010.0正式版 版權(quán)所有 gzu605小組* (6)注冊頁面 reg.aspx.cs 中的源碼如下:using system;using system.data;usi
37、ng system.configuration;using system.collections;using system.web;19using 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;public partial class reg : system.web.ui.page protec
38、ted void page_load(object sender, eventargs e) protected void btn_reg_click(object sender, eventargs e) if (page.isvalid) if (isused() & usernamelength() & pwdlength() /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstringssqlservices); /創(chuàng)建數(shù)據(jù)庫連接對象 sqlconnection myconn =
39、 new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.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_
40、user.text; sqlparameter emailparameter = mycmd.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, sqldbt
41、ype.int); userid.direction = parameterdirection.output; mycmd.executenonquery(); myconn.close(); sessionlevel = 1; sessionuserid = userid.value; /定向用戶頁面 response.redirect(/default.aspx); /檢查用戶名是否可用 public bool isused() /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstr
42、ingssqlservices); /創(chuàng)建數(shù)據(jù)庫連接對象 sqlconnection myconn = 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(useracco
43、unt, sqldbtype.nvarchar, 50); accountparameter.value = tbx_user.text.trim(); sqldatareader mydr = mycmd.executereader(); try if (mydr.read() lbl_msg.text = 該用戶名已經(jīng)被使用; lbl_msg.visible = true; return false; else21 return true; finally /關(guān)閉操作 mydr.close(); myconn.close(); public bool usernamelength() /獲
44、取用戶名長度 int length = tbx_user.text.length; if (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; prot
45、ected void btn_clear_click(object sender, eventargs e) tbx_user.text = ; tbx_email.text = ; 6 測試說明測試說明(1)注冊功能的測試如下:測試項目名稱: 網(wǎng)上書城系統(tǒng)測試用例編號:testcase-01測試項目標(biāo)題:正常注冊流程的功能測試測試人員:吳毅測試時間:2010-11-29測試內(nèi)容:- 輸入郵箱-輸入用戶名-輸入密碼-重復(fù)輸入密碼-點擊確認(rèn)測試環(huán)境與系統(tǒng)配置:軟件環(huán)境:micrsoft windowxp2 + micrsoft ie80硬件環(huán)境:inter 雙核 2.0g + 2g 內(nèi)存網(wǎng)絡(luò)環(huán)境
46、:2 人共享 1m 帶寬測試輸入數(shù)據(jù)1.全為空,不輸入立即點擊確認(rèn)按鈕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測試項目標(biāo)題:正常登錄流程的功能測試測試人員:吳毅測試時間: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.全為空,則輸出不能為空的出錯提示。2.輸出用戶
48、名、密碼或驗證碼錯誤的提示。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é)果同軟件需求說明書、詳細(xì)設(shè)計說明書、程序設(shè)計說明書中規(guī)定的要求相符合,故登陸注冊模塊的代碼編寫正確,可以實現(xiàn)系統(tǒng)所要求的注冊和功能。二、訂單查詢模塊開發(fā)
49、卷宗二、訂單查詢模塊開發(fā)卷宗1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱:網(wǎng)上書城模塊名稱:訂單管理模塊程序編制員簽名:王繼卷宗序號:2修改完成日期 :2010 年 11 月 25 日2 模塊開發(fā)情況表模塊開發(fā)情況表暫不考慮。3 功能說明功能說明該模塊用于對用戶所有購物訂單進行統(tǒng)計并匯總,對訂單的詳細(xì)信息進行加工,給用戶反饋一個總賬單。并且對用戶提供訂單查詢義務(wù)。list.aspx,orderdetails.aspx。主要輸入數(shù)據(jù)有,會員信息(名字,等級) ,訂單信息(訂單編號,訂單日期,訂單總金額,訂單詳細(xì)信25息) 。主要的輸出數(shù)據(jù)有:會員信息,和訂單信息。詳細(xì)數(shù)據(jù)和輸入數(shù)據(jù)相同。4 設(shè)計說明設(shè)計說明本模塊主
50、要提供義務(wù)給用戶使用,所以在登錄模塊之前,首先應(yīng)該檢查用戶是否登錄,用戶是登錄狀態(tài)時,將之前在購物車模塊中的數(shù)據(jù)回饋給用戶,用戶檢查無誤后,提交給數(shù)據(jù)庫。用戶查詢訂單時,從數(shù)據(jù)庫中提出屬于該用戶的訂單編號,通過訂單編號可以查詢到每一張訂單的詳細(xì)信息。5 原代碼清原代碼清 5.1訂單回饋代碼: 請核對和遞交您的訂單 /顯示訂單的詳細(xì)信息 26 總額: 5.2訂單提交的關(guān)鍵代碼:/提交訂單protected void submitbtn_click(object sender, eventargs e) bookstore checkoutdb = new bookstore(); / 獲取最終用
51、戶的購物車id string cartid = checkoutdb.getshoppingcartid(); / 獲取最終用戶的userid string customerid = user.identity.name; if (cartid != null) & (customerid != null) / 下訂單 int orderid = checkoutdb.placeorder(customerid, cartid); header.text = 結(jié)算完成; ordermsglabel.text = 您的訂單編號是: + orderid; submitbtn.visible = f
52、alse; 275.3 訂單查詢頁面代碼: 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(); m
53、ylist.datasource = 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)下,點擊“訂單查詢”時,會顯示所有該用戶的全部訂單編
54、號(orderid) ,訂單日期(orderdate),訂單總金額(總金額=圖書 1*數(shù)量+圖書 2*數(shù)量+圖書 n*數(shù)量) 。如圖:296.4 當(dāng)用戶點擊訂單詳細(xì)信息時,會將訂單編號(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 標(biāo)題標(biāo)題軟件系統(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 .checkoutbtn用于用戶結(jié)算本次購物的
56、總金額 窗體名稱:checkout.aspx窗體描述:控件名稱功能響應(yīng)事件label. ordermsglabel用于顯示訂單的提示信息dataview. mydatagrid用于顯示該次購物的圖書名稱,市場價格,數(shù)量,會員價格和總金額。label. totallbl用于顯示本次購物金額button. submitbtn把本次購物信息轉(zhuǎn)換成訂單submitbtn_click 。314 設(shè)計說明設(shè)計說明本模塊主要提供義務(wù)給用戶使用,讓用戶能夠?qū)ψ约核I的書進行一個統(tǒng)計,了解這些書的一些基本情況,如價格,數(shù)量等,還能對自己所消費的金額進行一個計算。 5 原代碼清單原代碼清單5.1 購物車確認(rèn)模塊代
57、碼: 網(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 測試說明測試說明輸入項名稱標(biāo)識數(shù)據(jù)類型輸入方式輸入媒介處理數(shù)據(jù)提交button. submitbtn無點擊按鈕鼠標(biāo)修改數(shù)據(jù)庫搜索窗體search
58、.ascx無點擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫圖書名稱booknamenvarchar(50)鍵盤輸入鍵盤查詢數(shù)據(jù)庫市場價格bookmarketpricemoney點擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫數(shù)量bookamountint鍵盤輸入鍵盤修改數(shù)據(jù)庫40價格bookpricemoney點擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫金額小計unitcostint系統(tǒng)計算數(shù)據(jù)庫修改數(shù)據(jù)庫訂單編號orderidint系統(tǒng)自動生成數(shù)據(jù)庫查詢數(shù)據(jù)庫訂單日期orderdatedate系統(tǒng)自動生成數(shù)據(jù)庫查詢數(shù)據(jù)庫輸出項名稱標(biāo)識數(shù)據(jù)類型輸出方式輸出媒介圖書名稱booknamenvarchar(50)寫入數(shù)據(jù)庫數(shù)據(jù)庫市場價格bookmarketpricemo
59、ney寫入數(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)購物車的功能基本達(dá)到而來預(yù)期的要求,能夠?qū)τ脩籼峁┮恍┯行У膸椭?,該模塊的制作相當(dāng)成功。四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱和標(biāo)識符:網(wǎng)上書城(bookshop)模塊名稱和標(biāo)識符:圖書分類程序編制員簽名:肖枝兵卷宗的修改文本序號修改完成日期 2010-11
60、-25卷宗序號 4編排日期:2010-11-25412 模塊開發(fā)情況表模塊開發(fā)情況表暫不考慮。3 功能說明功能說明圖書分類模塊主要實現(xiàn)兩個功能,分類編號和分類名稱。網(wǎng)上書城最大的優(yōu)點就是要方便買書的顧客的同時節(jié)約顧客的時間,本模塊正是考慮到這一點而做,目的就是讓顧客登錄本網(wǎng)站后能盡快地找到他們喜歡的書籍及相關(guān)信息??紤]到客戶端硬件的差異,本模塊對主存的占有采用非常駐內(nèi)存方式,可以從某種方式上降低對資源的損耗。4 設(shè)計說明設(shè)計說明本模塊圖書分類精度的要求對用戶是透明的,由系統(tǒng)管理員進行操作,用戶只需根據(jù)界面分類信息點擊感興趣的相應(yīng)圖書分類就會得到所有庫存的相關(guān)書籍信息。由于所有書籍信息分類有系統(tǒng)
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年保健按摩師(按摩保健操練習(xí))職業(yè)技能鑒定試卷
- 2025年評茶員(二級)茶葉投資分析與風(fēng)險評估考試試卷
- 2025年電子商務(wù)師(中級)考試試卷:電商數(shù)據(jù)分析方法與應(yīng)用試題解析
- 2025年德語TestDaF閱讀真題試卷(德語考試)攻略
- 2025年小學(xué)英語畢業(yè)考試模擬卷(英語綜合實踐口語與寫作)
- 2025年電子商務(wù)師(高級)考試試卷:電商數(shù)據(jù)分析與用戶畫像
- 軟件業(yè)軟件開發(fā)流程優(yōu)化與管理方法研究
- 農(nóng)村合作社與農(nóng)戶土地使用權(quán)流轉(zhuǎn)協(xié)議
- 線上直播帶貨平臺合作協(xié)議
- 2025年大學(xué)英語四級考試模擬試卷:翻譯能力提升與真題分析
- 縱隔腫物護理
- 房屋建筑與市政工程重大事故安全隱患判定標(biāo)準(zhǔn)解讀課件
- DB43-T 1267-2023 機動車檢驗機構(gòu)建設(shè)和運行管理規(guī)范
- 公司稅務(wù)注銷協(xié)議書
- 2025年人力資源管理專業(yè)期末考試卷及答案
- 防溺水安全家長會課件
- 第四單元:促銷問題(方案選擇問題)專項練習(xí)(學(xué)生版+解析)-2024-2025學(xué)年六年級數(shù)學(xué)上冊培優(yōu)精練(北師大版)
- 放射科實習(xí)生入科教育
- 國家開放大學(xué)國開電大《幼兒園課程基礎(chǔ)》形考任務(wù)1~4答案
- 2025至2030中國翡翠市場經(jīng)營績效與投資狀況研究報告
- 神經(jīng)可塑性在教育中的應(yīng)用探索-全面剖析
評論
0/150
提交評論