![精品課程設(shè)計(jì)】網(wǎng)上書城模塊開發(fā)卷宗(系統(tǒng)源代碼)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/e6a9efc5-4035-4e4e-ab67-eba46a2c820a/e6a9efc5-4035-4e4e-ab67-eba46a2c820a1.gif)
![精品課程設(shè)計(jì)】網(wǎng)上書城模塊開發(fā)卷宗(系統(tǒng)源代碼)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/e6a9efc5-4035-4e4e-ab67-eba46a2c820a/e6a9efc5-4035-4e4e-ab67-eba46a2c820a2.gif)
![精品課程設(shè)計(jì)】網(wǎng)上書城模塊開發(fā)卷宗(系統(tǒng)源代碼)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/e6a9efc5-4035-4e4e-ab67-eba46a2c820a/e6a9efc5-4035-4e4e-ab67-eba46a2c820a3.gif)
![精品課程設(shè)計(jì)】網(wǎng)上書城模塊開發(fā)卷宗(系統(tǒng)源代碼)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/e6a9efc5-4035-4e4e-ab67-eba46a2c820a/e6a9efc5-4035-4e4e-ab67-eba46a2c820a4.gif)
![精品課程設(shè)計(jì)】網(wǎng)上書城模塊開發(fā)卷宗(系統(tǒng)源代碼)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/e6a9efc5-4035-4e4e-ab67-eba46a2c820a/e6a9efc5-4035-4e4e-ab67-eba46a2c820a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、模塊開發(fā)卷宗v1.0december 32010網(wǎng)上書城 目錄目錄一、登陸注冊(cè)模塊開發(fā)卷宗一、登陸注冊(cè)模塊開發(fā)卷宗.31 標(biāo)題.32 模塊開發(fā)情況表.33 功能說明.34 設(shè)計(jì)說明.45 原代碼清單.66 測(cè)試說明.237 復(fù)審的結(jié)論.25二、訂單查詢模塊開發(fā)卷宗二、訂單查詢模塊開發(fā)卷宗.251 標(biāo)題.252 模塊開發(fā)情況表.253 功能說明.254 設(shè)計(jì)說明.265 原代碼清.266 測(cè)試說明.297 復(fù)審的結(jié)論.30三、購物車模塊開發(fā)卷宗三、購物車模塊開發(fā)卷宗.301 標(biāo)題.302 模塊開發(fā)情況表.303 功能說明.304 設(shè)計(jì)說明.315 原代碼清單.315.1 購物車確認(rèn)模塊代碼:.3
2、16 測(cè)試說明.407 復(fù)審的結(jié)論.41四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗.411 標(biāo)題.412 模塊開發(fā)情況表.413 功能說明.414 設(shè)計(jì)說明.415 原代碼清單.426 測(cè)試說明.457 復(fù)審的結(jié)論.45五、圖書推薦模塊開發(fā)卷宗五、圖書推薦模塊開發(fā)卷宗.451 標(biāo)題.452 模塊開發(fā)情況.453 功能說明.454 設(shè)計(jì)說明.465 原代碼清單.466 測(cè)試說明.487 復(fù)審的結(jié)論.48六、圖書管理模塊開發(fā)卷宗六、圖書管理模塊開發(fā)卷宗.481 標(biāo)題.482 模塊開發(fā)情況表.493 功能說明.494 設(shè)計(jì)說明.495 原代碼清單.496 測(cè)試說明.517 復(fù)審的結(jié)論.51七、
3、搜索模塊開發(fā)卷宗七、搜索模塊開發(fā)卷宗.511 標(biāo)題.512 模塊開發(fā)情況表.523 功能說明.524 設(shè)計(jì)說明.525 原代碼清單.526 測(cè)試說明.537 復(fù)審的結(jié)論.55八、會(huì)員管理模塊開發(fā)卷宗八、會(huì)員管理模塊開發(fā)卷宗.561 標(biāo)題.562 模塊開發(fā)情況表.563 功能說明.564 設(shè)計(jì)說明.565 原代碼清單.566 測(cè)試說明.587 復(fù)審的結(jié)論.59九、訂單管理模塊開發(fā)卷宗九、訂單管理模塊開發(fā)卷宗.591 標(biāo)題.592 模塊開發(fā)情況表.593 功能說明.594 設(shè)計(jì)說明.605 原代碼清單.606 測(cè)試說明.627 復(fù)審的結(jié)論.62一、登陸注冊(cè)模塊開發(fā)卷宗一、登陸注冊(cè)模塊開發(fā)卷宗1 標(biāo)
4、題標(biāo)題軟件系統(tǒng)名稱和標(biāo)識(shí)符:網(wǎng)上書城模塊名稱和標(biāo)識(shí)符:登錄注冊(cè)模塊程序編制員簽名:*卷宗的修改文本序號(hào)修改完成日期 :2010-11-29卷宗序號(hào):1編排日期:2010-11-252 模塊開發(fā)情況表模塊開發(fā)情況表由于是課程設(shè)計(jì)項(xiàng)目,暫不考慮。3 功能說明功能說明扼要說明本模塊(或本組模塊)的功能,主要是輸入、要求的處理、輸出??梢詮南到y(tǒng)設(shè)計(jì)說明書中摘錄。同時(shí)列出在軟件需求說明書中對(duì)這些功能的說明的章、條、款。(1)用戶注冊(cè)功能:用戶輸入姓名,用戶名,密碼,性別,郵箱, 真實(shí)姓名,郵編,詳細(xì)住址。姓名欄以及用戶名欄添加了空驗(yàn)證控件,如果用戶未填入任何信息則給出提示提示用戶填入信息。郵箱欄設(shè)置了格
5、式驗(yàn)證要求用戶輸入的信息必須符合%.com 的格式。網(wǎng)頁整體設(shè)置了錯(cuò)誤信息收集控件能夠顯示所有用戶輸入信息的錯(cuò)誤提示給出提示。當(dāng)用戶輸入的信息全部符合規(guī)則后才可進(jìn)行注冊(cè)操作。把用戶輸入的信息全部裝到一個(gè)實(shí)體類中,然后調(diào)用業(yè)務(wù)邏輯層的插入操作執(zhí)行注冊(cè),注冊(cè)會(huì)先判斷是否已經(jīng)存在該用戶,如果存在則插入失敗,如果不存在該用戶才會(huì)注冊(cè)成功。輸入項(xiàng):郵箱,用戶名,密碼 輸出項(xiàng):成功則更新數(shù)據(jù)庫,跳轉(zhuǎn)主頁面;失敗則輸出錯(cuò)誤提示的信息。(2)會(huì)員登錄功能:會(huì)員登錄時(shí),需要填寫會(huì)員名,密碼,和隨機(jī)動(dòng)態(tài)生成的驗(yàn)證碼,其是為了防止惡意攻擊而設(shè)置。會(huì)員登錄后才可以實(shí)現(xiàn)購物車,以及查看訂單等功能。 管理員登錄功能:管理
6、員登錄時(shí),需要填寫會(huì)員名,密碼,和隨機(jī)動(dòng)態(tài)生成的驗(yàn)證碼,其是為了防止惡意攻擊而設(shè)置。登陸后的管理員對(duì)網(wǎng)站進(jìn)行管理。輸入項(xiàng):姓名,密碼,驗(yàn)證碼 輸出項(xiàng):成功則管理員跳轉(zhuǎn)到管理中心頁面,普通會(huì)員跳轉(zhuǎn)到主頁面;失敗則輸出錯(cuò)誤提示的信息。4 設(shè)計(jì)說明設(shè)計(jì)說明說明本模塊(或本組模塊)的設(shè)計(jì)考慮,包括:a 在系統(tǒng)設(shè)計(jì)說明書中有關(guān)對(duì)本模塊(或本組模塊)設(shè)計(jì)考慮的敘述,包括本模塊在軟件系統(tǒng)中所處的層次,它同其他模塊的接口;b 在程序設(shè)計(jì)說明書中有關(guān)對(duì)本模塊(或本組模塊)的設(shè)計(jì)考慮,包括本模塊的算法、處理流程、牽涉到的數(shù)據(jù)文卷設(shè)計(jì)限制、驅(qū)動(dòng)方式和出錯(cuò)信息等;c 在編制目前已通過全部測(cè)試的源代碼時(shí)實(shí)際使用設(shè)的計(jì)考
7、慮。 a. 本模塊屬于系統(tǒng)模塊層次中第一層,訂單模塊、購物車模塊等模塊調(diào)用。b. 本模的注冊(cè)時(shí)處理流程如下:先接收用戶輸入的注冊(cè)數(shù)據(jù),成功則更新數(shù)據(jù)庫中的 users 表,同時(shí)跳轉(zhuǎn)到網(wǎng)站主頁,否則出錯(cuò)則輸出出錯(cuò)信息。登錄時(shí)的處理流程如下:接受用戶輸入的用戶名、密碼、隨機(jī)驗(yàn)證碼,與數(shù)據(jù)庫中users 表取出數(shù)據(jù)進(jìn)行比較,出錯(cuò)則輸出出錯(cuò)信息提示,若成功則判斷 users 表中isadmin 字段的值,如果值為 0,則為普通會(huì)員,跳轉(zhuǎn)到系統(tǒng)主頁,如果值為 1,則為管理員,跳轉(zhuǎn)到管理中心頁面。 5 原代碼清單原代碼清單要給出所產(chǎn)生的本模塊(或本組模塊)的第一份無語法錯(cuò)的源代碼清單以及已通過全部測(cè)試的當(dāng)
8、前有效的源代碼清單。(1)主頁 default.aspx 部分中的 html 源碼如下(登錄的窗體設(shè)計(jì)代碼): 會(huì)員: 驗(yàn)證碼: 密碼: 新用戶注冊(cè) (2)主頁 default.aspx.cs 中的源碼如下(登錄的窗體實(shí)現(xiàn)代碼):using system;using system.data;using system.conf
9、iguration;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 : system.web.ui.page
10、 /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=; protected voi
11、d 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ù)庫連接 sqlc
12、onnection 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; lbl_msg2.visible = false; if (sessionuser
13、name = 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, eventar
14、gs e) string username = tbx_user.text; string password = tbx_pwd.text; if (username = ) lbl_msg1.visible = true; lbl_msg1.text = 請(qǐng)輸入用戶名; else if (password = ) lbl_msg2.visible = true; lbl_msg2.text = 請(qǐng)輸入密碼; else if (validator.text != svalidator) /message.text = 驗(yàn)證碼輸入錯(cuò)誤,請(qǐng)重新輸入驗(yàn)證碼!; svalidator = create
15、validatestring(6); validateimage.imageurl = svalidatorimageurl + svalidator; return; else /讀取數(shù)據(jù)庫連接字符串 string settings = convert.tostring(configurationmanager.connectionstringssqlservices); /創(chuàng)建數(shù)據(jù)庫連接對(duì)象 sqlconnection myconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.open(); /讀取用戶信息 string mysql = s
16、elect * 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)建命令對(duì)象 sqlcommand mycmd = new sqlcommand(mysql
17、, myconn); sqlcommand mycmd1 = new sqlcommand(mysql1, myconn); /創(chuàng)建適配器并執(zhí)行命令 sqldatareader mydr = mycmd.executereader(); try if (mydr.read() /把用戶名寫入session對(duì)象 sessionusername = mydr1; /把權(quán)限編號(hào)寫入session對(duì)象 sessionlevel = mydrlevel.tostring(); /隱藏登錄信息 p_login.visible = false; /顯示用戶信息 p_successlogin.visible
18、= 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(); string tem
19、pcartid = logindb.getshoppingcartid(); logindb.transplantshoppingcart(tempcartid, userid); else /顯示錯(cuò)誤信息 lbl_msg2.visible = true; lbl_msg2.text = 用戶名或密碼錯(cuò)誤; finally /關(guān)閉操作 mydr.close(); sqldatareader mydr1 = mycmd1.executereader(); try if (mydr1.read() /把用戶名寫入session對(duì)象 sessionusername = mydr11; /把權(quán)限編號(hào)寫
20、入session對(duì)象 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ù)中 /formsauthent
21、ication.redirectfromloginpage(userid, true); /formsauthentication. bookstore logindb = new bookstore(); string tempcartid = logindb.getshoppingcartid(); logindb.transplantshoppingcart(tempcartid, userid); response.redirect(/default.aspx); else /顯示錯(cuò)誤信息 lbl_msg2.visible = true; lbl_msg2.text = 用戶名或密碼錯(cuò)
22、誤; finally /關(guān)閉操作 mydr1.close(); myconn.close(); protected void cancelbtn_click(object sender, eventargs e) /清空用戶名稱和密碼輸入框以及驗(yàn)證碼輸入框 tbx_user.text = tbx_pwd.text = validator.text =; /創(chuàng)建驗(yàn)證字符串 svalidator = createvalidatestring(6); validateimage.imageurl = svalidatorimageurl + svalidator; private int getra
23、ndomint(int min, int max) random random = new random(); return (random.next(min, max); / / 創(chuàng)建驗(yàn)證字符串 / / / private string createvalidatestring(int nlen) /初始化 initletterlist(); /創(chuàng)建一個(gè)stringbuilder對(duì)象 stringbuilder sb = new stringbuilder(nlen); for (int i = 0; i nlen; i+) int index = getrandomint(0, lette
24、rlist.length - 1); sb.append(letterlistindex.tostring(); letterlist.remove(index, 1); return (sb.tostring(); / / 創(chuàng)建所有字符,為創(chuàng)建驗(yàn)證字符串做準(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).tostring(); for (
25、int i = 0; i 26; i+) letterlist.append(char)(int)a + i).tostring(); (3)頁面 validateimage.aspx 用來創(chuàng)建顯示驗(yàn)證字符串的圖片,并在該圖片上添加驗(yàn)證碼字符串。該頁面的 html 源碼如下: untitled page (4)頁面 validateimage.aspx.cs 中的源碼如下:using system;using system.data;using system.configuration;using system.collections;using system.web;using system
26、.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 class validateimage
27、: 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)/獲取驗(yàn)證字符串svalidator = request.paramsvalid
28、ator.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.drawstring(svalida
29、tori.tostring(),new font(arial,20,(fontstyle)createrandomfontstyle(getrandomint(0,1000),brushlistgetrandomint(0,brushlist.length - 1),new pointf(i * 15,getrandomint(-5,5);/graphicimage.drawstring(svalidator, new font(arial, 20, (fontstyle)getrandomint(0,4),systembrushes.windowtext, new point(0, 0);
30、/設(shè)置圖像輸出的格式 response.contenttype = image/jpeg; /保存數(shù)據(jù)流 bitmapimage.save(response.outputstream, imageformat.jpeg); /釋放占用的資源 graphicimage.dispose(); bitmapimage.dispose();response.end(); / / 創(chuàng)建一個(gè)隨機(jī)數(shù)/ / / / private int getrandomint(int min,int max)random random = new random();return (random.next(min,max)
31、;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;if(random 1000)return 4;return 4;/ / 初始化brush列表/ private void initbrushlist()brushlist0 = systembrushes.activeborder;brushlist1 = systembrushes.activecaption;brus
32、hlist2 = systembrushes.activecaptiontext;brushlist3 = systembrushes.appworkspace;brushlist4 = systembrushes.buttonface;brushlist5 = systembrushes.buttonhighlight;brushlist6 = systembrushes.buttonshadow;brushlist7 = systembrushes.control;brushlist8 = systembrushes.controldark;brushlist9 = systembrush
33、es.controldarkdark;brushlist10 = systembrushes.controllight;brushlist11 = systembrushes.controltext;brushlist12 = systembrushes.desktop;brushlist13 = systembrushes.gradientactivecaption;brushlist14 = systembrushes.gradientinactivecaption;brushlist15 = systembrushes.graytext;brushlist16 = systembrush
34、es.highlight;brushlist17 = systembrushes.highlighttext;brushlist18 = systembrushes.hottrack;brushlist19 = systembrushes.inactiveborder;brushlist20 = systembrushes.inactivecaption;brushlist21 = systembrushes.inactivecaptiontext;brushlist22 = systembrushes.info;brushlist23 = systembrushes.infotext;bru
35、shlist24 = systembrushes.menu;brushlist25 = systembrushes.menubar;brushlist26 = systembrushes.menuhighlight;brushlist27 = systembrushes.menutext;brushlist28 = systembrushes.scrollbar;brushlist29 = systembrushes.window;brushlist30 = systembrushes.windowframe;brushlist31 = systembrushes.windowtext;(5)
36、注冊(cè)頁面 reg.aspx 中的 html 源碼如下: 無標(biāo)題頁 購物車 | 訂單查詢 | gzu605網(wǎng)上書城會(huì)員注冊(cè) 電子郵件: 請(qǐng)?zhí)顚懻_常用的email以確保充分享受全面的服務(wù) 用戶名: 請(qǐng)使用英文字母數(shù)字和下劃線,長(zhǎng)度為4-16。 密碼: 密碼可以使用4-12位的任意的非空白字符 確認(rèn)密碼: 請(qǐng)重復(fù)密碼 *網(wǎng)上書城v2010.0正式版 版權(quán)所有 gzu605小組* (6)注冊(cè)頁面 reg.aspx.cs 中的源碼如下:using system;using system.data;using system.configuration;using
37、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;public partial class reg : system.web.ui.page protected void page_load(object sender
38、, 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ù)庫連接對(duì)象 sqlconnection myconn = new sqlconnection(settings); /打
39、開數(shù)據(jù)庫連接 myconn.open(); /創(chuàng)建數(shù)據(jù)庫命令 sqlcommand mycmd = new sqlcommand(adduser, myconn); /設(shè)置數(shù)據(jù)庫命令類型為存儲(chǔ)過程 mycmd.commandtype = commandtype.storedprocedure; sqlparameter accountparameter = mycmd.parameters.add(useraccount, sqldbtype.nvarchar, 50); accountparameter.value = tbx_user.text; sqlparameter emailpar
40、ameter = 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; sqlparameter userid = mycmd.parameters.add(userid, sqldbtype.int); userid.direction = param
41、eterdirection.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ù)庫連接對(duì)象 sqlco
42、nnection myconn = new sqlconnection(settings); /打開數(shù)據(jù)庫連接 myconn.open(); /創(chuàng)建數(shù)據(jù)庫命令 sqlcommand mycmd = new sqlcommand(checkuser, myconn); /設(shè)置數(shù)據(jù)庫命令類型為存儲(chǔ)過程 mycmd.commandtype = commandtype.storedprocedure; /命令參數(shù) sqlparameter accountparameter = mycmd.parameters.add(useraccount, sqldbtype.nvarchar, 50); acco
43、untparameter.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 return true; finally /關(guān)閉操作 mydr.close(); myconn.close(); public bool usernamelength() /獲取用戶名長(zhǎng)度 int length = tbx_user.text.le
44、ngth; if (length 16) lbl_msg.text = 用戶名長(zhǎng)度太長(zhǎng); lbl_msg.visible = true; return false; else return true; public bool pwdlength() /獲取用戶名長(zhǎng)度 int length = tbx_pwd.text.length; if (length 12) lbl_msg.text = 密碼太長(zhǎng); lbl_msg.visible = true; return false; else return true; protected void btn_clear_click(object se
45、nder, eventargs e) tbx_user.text = ; tbx_email.text = ; 6 測(cè)試說明測(cè)試說明(1)注冊(cè)功能的測(cè)試如下:測(cè)試項(xiàng)目名稱: 網(wǎng)上書城系統(tǒng)測(cè)試用例編號(hào):testcase-01測(cè)試項(xiàng)目標(biāo)題:正常注冊(cè)流程的功能測(cè)試測(cè)試人員:吳毅測(cè)試時(shí)間:2010-11-29測(cè)試內(nèi)容:- 輸入郵箱-輸入用戶名-輸入密碼-重復(fù)輸入密碼-點(diǎn)擊確認(rèn)測(cè)試環(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 帶寬測(cè)試輸入數(shù)據(jù)1.全為空,不輸入立即點(diǎn)擊確認(rèn)按鈕2
46、.填寫不符合格式要求的數(shù)據(jù)3.填寫正確的是的數(shù)據(jù)測(cè)試次數(shù):每個(gè)測(cè)試過程做 3 次。預(yù)期結(jié)果:1.全為空,則輸出不能為空的出錯(cuò)提示2.輸出請(qǐng)正確填寫該數(shù)據(jù)的錯(cuò)誤的提示。3.跳轉(zhuǎn)到主頁方便用戶登錄測(cè)試過程:打開注冊(cè)頁面,在注冊(cè)文本框中分別輸入 email 地址、用戶名和密碼、以及重復(fù)輸入一次密碼點(diǎn)擊“確定”測(cè)試結(jié)果:1.全為空,則輸出不能為空的出錯(cuò)提示2.輸出請(qǐng)正確填寫該數(shù)據(jù)的錯(cuò)誤的提示。3.跳轉(zhuǎn)到主頁方便用戶登錄測(cè)試結(jié)論:測(cè)試的預(yù)期結(jié)果和測(cè)試的最終結(jié)果相符,注冊(cè)功能得以實(shí)現(xiàn)。實(shí)現(xiàn)限制:備注:(2)登錄功能的測(cè)試如下:測(cè)試項(xiàng)目名稱: 網(wǎng)上書城系統(tǒng)測(cè)試用例編號(hào):testcase-02測(cè)試項(xiàng)目標(biāo)題:正
47、常登錄流程的功能測(cè)試測(cè)試人員:吳毅測(cè)試時(shí)間:2010-11-29測(cè)試內(nèi)容:-輸入用戶名-輸入密碼-輸入隨機(jī)驗(yàn)證碼-點(diǎn)擊登錄測(cè)試環(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 帶寬測(cè)試輸入數(shù)據(jù)1.全為空,不輸入立即點(diǎn)擊登錄按鈕2.填寫錯(cuò)誤的用戶名、密碼或驗(yàn)證碼3.填寫正確的是普通會(huì)員4.填寫正確的是管理員測(cè)試次數(shù):每個(gè)測(cè)試過程做 3 次。預(yù)期結(jié)果:1.全為空,則輸出不能為空的出錯(cuò)提示。2.輸出用戶名、密碼或驗(yàn)證碼錯(cuò)誤的提示。3.跳轉(zhuǎn)到主頁,顯示歡迎該用戶登錄。4.跳轉(zhuǎn)到管
48、理中心頁面。測(cè)試過程:打開主頁,在登錄文本框中分別輸入用戶名和密碼以及隨機(jī)驗(yàn)證碼,點(diǎn)擊“登錄”測(cè)試結(jié)果:1.全為空,則輸出不能為空的出錯(cuò)提示。2.輸出用戶名、密碼或驗(yàn)證碼錯(cuò)誤的提示。3.跳轉(zhuǎn)到主頁,顯示歡迎該用戶登錄。4.跳轉(zhuǎn)到管理中心頁面。測(cè)試結(jié)論:測(cè)試的預(yù)期結(jié)果和測(cè)試的最終結(jié)果相符,登錄功能得以實(shí)現(xiàn)。實(shí)現(xiàn)限制:備注:7 復(fù)審的結(jié)論復(fù)審的結(jié)論經(jīng)過實(shí)際測(cè)試,得到的結(jié)果同軟件需求說明書、詳細(xì)設(shè)計(jì)說明書、程序設(shè)計(jì)說明書中規(guī)定的要求相符合,故登陸注冊(cè)模塊的代碼編寫正確,可以實(shí)現(xiàn)系統(tǒng)所要求的注冊(cè)和功能。二、訂單查詢模塊開發(fā)卷宗二、訂單查詢模塊開發(fā)卷宗1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱:網(wǎng)上書城模塊名稱:訂單管理
49、模塊程序編制員簽名:王繼卷宗序號(hào):2修改完成日期 :2010 年 11 月 25 日2 模塊開發(fā)情況表模塊開發(fā)情況表暫不考慮。3 功能說明功能說明該模塊用于對(duì)用戶所有購物訂單進(jìn)行統(tǒng)計(jì)并匯總,對(duì)訂單的詳細(xì)信息進(jìn)行加工,給用戶反饋一個(gè)總賬單。并且對(duì)用戶提供訂單查詢義務(wù)。list.aspx,orderdetails.aspx。主要輸入數(shù)據(jù)有,會(huì)員信息(名字,等級(jí)) ,訂單信息(訂單編號(hào),訂單日期,訂單總金額,訂單詳細(xì)信息) 。主要的輸出數(shù)據(jù)有:會(huì)員信息,和訂單信息。詳細(xì)數(shù)據(jù)和輸入數(shù)據(jù)相同。4 設(shè)計(jì)說明設(shè)計(jì)說明本模塊主要提供義務(wù)給用戶使用,所以在登錄模塊之前,首先應(yīng)該檢查用戶是否登錄,用戶是登錄狀態(tài)時(shí)
50、,將之前在購物車模塊中的數(shù)據(jù)回饋給用戶,用戶檢查無誤后,提交給數(shù)據(jù)庫。用戶查詢訂單時(shí),從數(shù)據(jù)庫中提出屬于該用戶的訂單編號(hào),通過訂單編號(hào)可以查詢到每一張訂單的詳細(xì)信息。5 原代碼清原代碼清 5.1訂單回饋代碼: 請(qǐng)核對(duì)和遞交您的訂單 /顯示訂單的詳細(xì)信息 總額: 5.2訂單提交的關(guān)鍵代碼:/提交訂單protected void submitbtn_click(object sender, eventargs e) bookstore checkoutdb = new bookstore(); / 獲取最終用戶的購物車id string cartid = checkoutdb.getshoppin
51、gcartid(); / 獲取最終用戶的userid string customerid = user.identity.name; if (cartid != null) & (customerid != null) / 下訂單 int orderid = checkoutdb.placeorder(customerid, cartid); header.text = 結(jié)算完成; ordermsglabel.text = 您的訂單編號(hào)是: + orderid; submitbtn.visible = false; 5.3 訂單查詢頁面代碼: 5.4訂單查詢關(guān)鍵代碼:/加載本登錄用戶的訂單信息
52、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 = orderhistory.getuserorders(u
53、serid); mylist.databind(); if (mylist.items.count = 0) myerror.text = 您目前沒有訂單可以顯示。; mylist.visible = false; 6 測(cè)試說明測(cè)試說明 6.1 在用戶沒登陸的情況下,在正確的情況下轉(zhuǎn)到用戶登錄界面(login.aspx) 。如圖:6.2 在用戶登錄的情況下,應(yīng)該輸出用戶名(username),用戶等級(jí)(level).如圖:6.3 當(dāng)用戶在登錄狀態(tài)下,點(diǎn)擊“訂單查詢”時(shí),會(huì)顯示所有該用戶的全部訂單編號(hào)(orderid) ,訂單日期(orderdate),訂單總金額(總金額=圖書 1*數(shù)量+圖書
54、2*數(shù)量+圖書 n*數(shù)量) 。如圖:6.4 當(dāng)用戶點(diǎn)擊訂單詳細(xì)信息時(shí),會(huì)將訂單編號(hào)(orderid) ,訂單日期(orderdate),訂單中圖書名稱(bookname),市場(chǎng)價(jià)格(bookmarketprice),圖書數(shù)量(bookquantity),會(huì)員價(jià)格(bookprice),訂單總金額。如圖:7 復(fù)審的結(jié)論復(fù)審的結(jié)論通過上面的測(cè)試,發(fā)現(xiàn)在訂單查詢模塊得到的結(jié)果和預(yù)期的結(jié)果是完全相同的。但是,在訂單提交時(shí)不會(huì)檢查庫存是否能夠滿足這張訂單,所以就會(huì)造成銷售部門與采購部門的不協(xié)調(diào)。三、購物車模塊開發(fā)卷宗三、購物車模塊開發(fā)卷宗1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱:網(wǎng)上書城模塊名稱:購物繼車模塊程序編制員
55、簽名:王繼卷宗序號(hào):3修改完成日期 :2010 年 11 月 30 日2 模塊開發(fā)情況表模塊開發(fā)情況表暫不考慮。3 功能說明功能說明窗體名稱:shoppingcart.aspx窗體描述:控件名稱功能響應(yīng)事件label. ordermsglabel用于顯示訂單的提示信息dataview. mydatagrid用于顯示該次購物的圖書名稱,市場(chǎng)價(jià)格,數(shù)量,會(huì)員價(jià)格和總金額。button.updatebtn用于更新選定圖書后購物車中的數(shù)據(jù)button .checkoutbtn用于用戶結(jié)算本次購物的總金額 窗體名稱:checkout.aspx窗體描述:控件名稱功能響應(yīng)事件label. ordermsgl
56、abel用于顯示訂單的提示信息dataview. mydatagrid用于顯示該次購物的圖書名稱,市場(chǎng)價(jià)格,數(shù)量,會(huì)員價(jià)格和總金額。label. totallbl用于顯示本次購物金額button. submitbtn把本次購物信息轉(zhuǎn)換成訂單submitbtn_click 。4 設(shè)計(jì)說明設(shè)計(jì)說明本模塊主要提供義務(wù)給用戶使用,讓用戶能夠?qū)ψ约核I的書進(jìn)行一個(gè)統(tǒng)計(jì),了解這些書的一些基本情況,如價(jià)格,數(shù)量等,還能對(duì)自己所消費(fèi)的金額進(jìn)行一個(gè)計(jì)算。 5 原代碼清單原代碼清單5.1 購物車確認(rèn)模塊代碼: 網(wǎng)上書城 請(qǐng)核對(duì)和遞交您的訂單 總額: 5.2購物車模塊代碼:
57、 網(wǎng)上書城 asp:label id=bookid runat=server text= asp:textbox id=bookquantity runat=server columns=4 maxlength=3 text= width=40px 總額: 6 測(cè)試說明測(cè)試說明輸入項(xiàng)名稱標(biāo)識(shí)數(shù)據(jù)類型輸入方式輸入媒介處理數(shù)據(jù)提交button. submitbtn無點(diǎn)擊按鈕鼠標(biāo)修改數(shù)據(jù)庫搜索窗體search.ascx無點(diǎn)擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫圖書名稱booknamenvarchar(50)鍵盤輸入鍵盤查詢數(shù)據(jù)庫市場(chǎng)價(jià)格bookmarketpricemoney
58、點(diǎn)擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫數(shù)量bookamountint鍵盤輸入鍵盤修改數(shù)據(jù)庫價(jià)格bookpricemoney點(diǎn)擊按鈕鼠標(biāo)查詢數(shù)據(jù)庫金額小計(jì)unitcostint系統(tǒng)計(jì)算數(shù)據(jù)庫修改數(shù)據(jù)庫訂單編號(hào)orderidint系統(tǒng)自動(dòng)生成數(shù)據(jù)庫查詢數(shù)據(jù)庫訂單日期orderdatedate系統(tǒng)自動(dòng)生成數(shù)據(jù)庫查詢數(shù)據(jù)庫輸出項(xiàng)名稱標(biāo)識(shí)數(shù)據(jù)類型輸出方式輸出媒介圖書名稱booknamenvarchar(50)寫入數(shù)據(jù)庫數(shù)據(jù)庫市場(chǎng)價(jià)格bookmarketpricemoney寫入數(shù)據(jù)庫數(shù)據(jù)庫數(shù)量bookamountint寫入數(shù)據(jù)庫數(shù)據(jù)庫價(jià)格bookpricemoney寫入數(shù)據(jù)庫數(shù)據(jù)庫金額小計(jì)unitcostint寫入數(shù)據(jù)庫
59、數(shù)據(jù)庫訂單日期orderdatedatetime寫入數(shù)據(jù)庫數(shù)據(jù)庫訂單編號(hào)orderidint寫入數(shù)據(jù)庫數(shù)據(jù)庫7 復(fù)審的結(jié)論復(fù)審的結(jié)論通過上面的測(cè)試,發(fā)現(xiàn)購物車的功能基本達(dá)到而來預(yù)期的要求,能夠?qū)τ脩籼峁┮恍┯行У膸椭撃K的制作相當(dāng)成功。四、圖書分類模塊開發(fā)卷宗四、圖書分類模塊開發(fā)卷宗1 標(biāo)題標(biāo)題軟件系統(tǒng)名稱和標(biāo)識(shí)符:網(wǎng)上書城(bookshop)模塊名稱和標(biāo)識(shí)符:圖書分類程序編制員簽名:肖枝兵卷宗的修改文本序號(hào)修改完成日期 2010-11-25卷宗序號(hào) 4編排日期:2010-11-252 模塊開發(fā)情況表模塊開發(fā)情況表暫不考慮。3 功能說明功能說明圖書分類模塊主要實(shí)現(xiàn)兩個(gè)功能,分類編號(hào)和分類名
60、稱。網(wǎng)上書城最大的優(yōu)點(diǎn)就是要方便買書的顧客的同時(shí)節(jié)約顧客的時(shí)間,本模塊正是考慮到這一點(diǎn)而做,目的就是讓顧客登錄本網(wǎng)站后能盡快地找到他們喜歡的書籍及相關(guān)信息??紤]到客戶端硬件的差異,本模塊對(duì)主存的占有采用非常駐內(nèi)存方式,可以從某種方式上降低對(duì)資源的損耗。4 設(shè)計(jì)說明設(shè)計(jì)說明本模塊圖書分類精度的要求對(duì)用戶是透明的,由系統(tǒng)管理員進(jìn)行操作,用戶只需根據(jù)界面分類信息點(diǎn)擊感興趣的相應(yīng)圖書分類就會(huì)得到所有庫存的相關(guān)書籍信息。由于所有書籍信息分類有系統(tǒng)管理員完成,不能與顧客進(jìn)行互動(dòng)溝通,還好為此我們?cè)O(shè)置了圖書推薦這一欄目,增進(jìn)了顧客與顧客之間的聯(lián)系,但總體來說本系統(tǒng)靈活性方面還有待改進(jìn)。5 原代碼清單原代碼清
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 果園擴(kuò)建項(xiàng)目承包合同新規(guī)定
- 商業(yè)綜合體弱電系統(tǒng)承包合同
- 勞務(wù)派遣合同范本(全新版)
- 境外就業(yè)服務(wù)合同范本
- 廠房租賃保密合同范例
- 企業(yè)三人合資經(jīng)營(yíng)合同協(xié)議
- 城市排水系統(tǒng)承包合同范本
- 五個(gè)類似合同范文
- 貨物買賣合同印花稅改革趨勢(shì)分析
- 機(jī)械設(shè)備租賃合同權(quán)利義務(wù)轉(zhuǎn)讓協(xié)議
- 偶函數(shù)講課課件
- 中醫(yī)治療“濕疹”醫(yī)案72例
- 《X公司應(yīng)收賬款管理研究14000字(論文)》
- 交通工程公司乳化瀝青儲(chǔ)油罐拆除工程安全協(xié)議書
- YS/T 441.1-2014有色金屬平衡管理規(guī)范第1部分:銅選礦冶煉
- GB/T 23791-2009企業(yè)質(zhì)量信用等級(jí)劃分通則
- 員工自主報(bào)告和舉報(bào)事故隱患獎(jiǎng)勵(lì)匯總表
- 清代文學(xué)緒論
- 阿里云數(shù)字化轉(zhuǎn)型生態(tài)介紹課件
- 《控軋控冷》課件
- KET詞匯表(英文中文完整版)
評(píng)論
0/150
提交評(píng)論