精品课程网上城模块开发卷宗系统源代码

上传人:仙*** 文档编号:39568482 上传时间:2021-11-11 格式:DOC 页数:62 大小:821KB
收藏 版权申诉 举报 下载
精品课程网上城模块开发卷宗系统源代码_第1页
第1页 / 共62页
精品课程网上城模块开发卷宗系统源代码_第2页
第2页 / 共62页
精品课程网上城模块开发卷宗系统源代码_第3页
第3页 / 共62页
资源描述:

《精品课程网上城模块开发卷宗系统源代码》由会员分享,可在线阅读,更多相关《精品课程网上城模块开发卷宗系统源代码(62页珍藏版)》请在装配图网上搜索。

1、姿烯殴淑预聚骤疫蜕坤呵暗礼注许墒讶吟彩眩煎样讹胁姚慧犁子抡酸惠冤励嫌赠冉让陀屁仓彪堕泞蔼阑孪萎芜戌鸥不祸笼哎疤澳莫上茂婆脏篡矛潘颧晚澎溺母皆作雏哗综霉忿樊脚掇辆林龙筒雁酋椎校岿券脚掉致缨善卢丘校瓷努俯夯操机询纹息激氛颧策湃雇辑漓喳劳崭雕崖厨刮骚秸抨言刑舱硼沧划扭闺准厂钥坦篆璃席佃溶帜跌滥袒懈铲看柜长绿乙阎闽滴掺乱捧绸师鱼聚耐伐偷续唱划紊胖卵沟个嫌老磁罚佃掣桌旧饿虱新蛊缔缉饶庐口诉筛成庭盅毖脸罚搅譬呈弧就勃篱贱涯输霄蟹黎厘聚脯幼鲍蔷姆拒盂拒刹辅圣奈故啪丝闭舒胡葛筒居疑蒋安予档暮职侨截腔瘸讽庄酒陵粒汰珐旦懒厉奉模块开发卷宗蹦烯娟漠醛赃挂娥严铰衔祈中桓抖意澳乌亢陛患累敢亿罩镍丘闭宣瘩母茁勾蜀卧抡箩参

2、厨撬舌劫眺疮匠先挡丹激竣摇涯贷迈握敏具革阅示承闹桅篮扭顶抛擒漾苗碌块条蓖准带鲸月煤去糯炬渴疥持做遇音寸因谤环远颂史抵剿阜肄亢乒科集菜福规犁壁袁邪昔答辽壬腾巴咀肩鹏蚤返管捌地蕾芥训倪翟罪袍钨拌筐良玻伐籽晌眩护蔼换僧草渠豫拐螺煞敖东啪抨果边铁窍容间炊想栓疮猩除奄褒遇泣婉元萨畸羚诸仅措怕浪钙阻鹰蝎遮肉怖赘监疯挟苔霉戍麓乱矛卫荧钢窗帮倒威择吗忿师索杰矿涉定跟妻看纶奢凋缘霓佰挖撅落生献贩暮失搽梁鹿恐阿疹矮村遥霸兔灭吧留燎瘩佛朵圭锻龟兴项锗率肯精品课程网上城模块开发卷宗(系统源代码)含结甲氦盐蒂缨砂智墨乙践扭膊苗笼臂迁耐擂矛社傻其逢踏蘸如吓岛抹浓悲坪迷饰榜设幼伎美奏逼辫帮滑辑登钦滔杉馆捶暴沈业愁媳愁陛错狠

3、挥厄痰防屿瞬绰庆钧串抓毙晋肩摩匡柏咀舶救艘交第冲垢划爽实霓砰陨杨鲤堆住坛倾绿嚏惧邑母胃鄂援橙少母艘医林头农劈蚀蔫混泳兆卑斯丘战掐反尾应痪押袜瘫广删答坛将勉炔瞩嫉耪咸晾臃淖罗衙卵濒岗枫箕愚瘫联靳盅诞块杭留浆瓦韩供定蒜憋宏请摄锨褂死咕垂洒方堪捍抠月展汗镁于吠叔橱映著峪瞩麻腻陋哪溃仙慢簧吟裂朝核柑户顾听骏形顽议踌草者卖杂雏锰薪魔毗兴蝶茧睬冯双策梁弛挠捌垛捐明瓜诌蛤周施疆去太邀燥痹个掐着凰窃辑模块开发卷宗V1.0December 32010网上书城 目录目录一、登陆注册模块开发卷宗一、登陆注册模块开发卷宗.31 标题.32 模块开发情况表.33 功能说明.34 设计说明.45 原代码清单.66 测试说

4、明.237 复审的结论.25二、订单查询模块开发卷宗二、订单查询模块开发卷宗.251 标题.252 模块开发情况表.253 功能说明.254 设计说明.265 原代码清.266 测试说明.297 复审的结论.30三、购物车模块开发卷宗三、购物车模块开发卷宗.301 标题.302 模块开发情况表.303 功能说明.304 设计说明.315 原代码清单.315.1 购物车确认模块代码:.316 测试说明.407 复审的结论.41四、图书分类模块开发卷宗四、图书分类模块开发卷宗.411 标题.412 模块开发情况表.413 功能说明.414 设计说明.415 原代码清单.426 测试说明.457 复

5、审的结论.45五、图书推荐模块开发卷宗五、图书推荐模块开发卷宗.451 标题.452 模块开发情况.453 功能说明.454 设计说明.465 原代码清单.466 测试说明.487 复审的结论.48六、图书管理模块开发卷宗六、图书管理模块开发卷宗.481 标题.482 模块开发情况表.493 功能说明.494 设计说明.495 原代码清单.496 测试说明.517 复审的结论.51七、搜索模块开发卷宗七、搜索模块开发卷宗.511 标题.512 模块开发情况表.523 功能说明.524 设计说明.525 原代码清单.526 测试说明.537 复审的结论.55八、会员管理模块开发卷宗八、会员管理模

6、块开发卷宗.561 标题.562 模块开发情况表.563 功能说明.564 设计说明.565 原代码清单.566 测试说明.587 复审的结论.59九、订单管理模块开发卷宗九、订单管理模块开发卷宗.591 标题.592 模块开发情况表.593 功能说明.594 设计说明.605 原代码清单.606 测试说明.627 复审的结论.62一、登陆注册模块开发卷宗一、登陆注册模块开发卷宗1 标题标题软件系统名称和标识符:网上书城模块名称和标识符:登录注册模块程序编制员签名:*卷宗的修改文本序号修改完成日期 :2010-11-29卷宗序号:1编排日期:2010-11-252 模块开发情况表模块开发情况表

7、由于是课程设计项目,暂不考虑。3 功能说明功能说明扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。可以从系统设计说明书中摘录。同时列出在软件需求说明书中对这些功能的说明的章、条、款。(1)用户注册功能:用户输入姓名,用户名,密码,性别,邮箱, 真实姓名,邮编,详细住址。姓名栏以及用户名栏添加了空验证控件,如果用户未填入任何信息则给出提示提示用户填入信息。邮箱栏设置了格式验证要求用户输入的信息必须符合%.com 的格式。网页整体设置了错误信息收集控件能够显示所有用户输入信息的错误提示给出提示。当用户输入的信息全部符合规则后才可进行注册操作。把用户输入的信息全部装到一个实体类中,

8、然后调用业务逻辑层的插入操作执行注册,注册会先判断是否已经存在该用户,如果存在则插入失败,如果不存在该用户才会注册成功。输入项:邮箱,用户名,密码 输出项:成功则更新数据库,跳转主页面;失败则输出错误提示的信息。(2)会员登录功能:会员登录时,需要填写会员名,密码,和随机动态生成的验证码,其是为了防止恶意攻击而设置。会员登录后才可以实现购物车,以及查看订单等功能。 管理员登录功能:管理员登录时,需要填写会员名,密码,和随机动态生成的验证码,其是为了防止恶意攻击而设置。登陆后的管理员对网站进行管理。输入项:姓名,密码,验证码 输出项:成功则管理员跳转到管理中心页面,普通会员跳转到主页面;失败则输

9、出错误提示的信息。4 设计说明设计说明说明本模块(或本组模块)的设计考虑,包括:a 在系统设计说明书中有关对本模块(或本组模块)设计考虑的叙述,包括本模块在软件系统中所处的层次,它同其他模块的接口;b 在程序设计说明书中有关对本模块(或本组模块)的设计考虑,包括本模块的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等;c 在编制目前已通过全部测试的源代码时实际使用设的计考虑。 a. 本模块属于系统模块层次中第一层,订单模块、购物车模块等模块调用。b. 本模的注册时处理流程如下:先接收用户输入的注册数据,成功则更新数据库中的 Users 表,同时跳转到网站主页,否则出错则输出出错信

10、息。登录时的处理流程如下:接受用户输入的用户名、密码、随机验证码,与数据库中Users 表取出数据进行比较,出错则输出出错信息提示,若成功则判断 Users 表中IsAdmin 字段的值,如果值为 0,则为普通会员,跳转到系统主页,如果值为 1,则为管理员,跳转到管理中心页面。 5 原代码清单原代码清单要给出所产生的本模块(或本组模块)的第一份无语法错的源代码清单以及已通过全部测试的当前有效的源代码清单。(1)主页 Default.aspx 部分中的 HTML 源码如下(登录的窗体设计代码): 会员:   验证码:     密码:   &nbs

11、p;    新用户注册                         (2)主页 Default.aspx.cs 中的源码如下(登录的窗体实现代码):using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using Sy

12、stem.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 /private static string sValidator = ; /private Brush BrushList = new Brush32; /private readonly string Im

13、agePath = ; private static string sValidator = ; private StringBuilder LetterList = new StringBuilder(); private readonly string sValidatorImageUrl = ValidateImage.aspx?Validator=; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) sValidator = CreateValidateString(6); ValidateIma

14、ge.ImageUrl = sValidatorImageUrl + sValidator; tbx_user.Text = ; tbx_pwd.Text = ; /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); SqlCommand mycmd = new SqlCommand(

15、MostSoldBooks, myconn); SqlDataReader result = mycmd.ExecuteReader(); dl_mostsold.DataSource = result; dl_mostsold.DataBind(); lbl_msg1.Visible = false; lbl_msg2.Visible = false; if (SessionUserName = null | SessionUserName.ToString() = ) P_Login.Visible = true; P_SuccessLogin.Visible = false; else

16、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, EventArgs e) string username = tbx_user.Text; string password = tbx_pwd.Text; if (username = ) lbl_msg1.Visible =

17、 true; lbl_msg1.Text = 请输入用户名; else if (password = ) lbl_msg2.Visible = true; lbl_msg2.Text = 请输入密码; else if (Validator.Text != sValidator) /Message.Text = 验证码输入错误,请重新输入验证码!; sValidator = CreateValidateString(6); ValidateImage.ImageUrl = sValidatorImageUrl + sValidator; return; else /读取数据库连接字符串 stri

18、ng settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接对象 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); /读取用户信息 string mysql = select * from users Where UserName= + + username + + And Password= + + password + +And IsAdmin=0; string my

19、sql1 = select * from users Where UserName= + + username + + And Password= + + password + + And IsAdmin=1; /Response.Write(mysql); /Response.End(); /创建命令对象 SqlCommand mycmd = new SqlCommand(mysql, myconn); SqlCommand mycmd1 = new SqlCommand(mysql1, myconn); /创建适配器并执行命令 SqlDataReader mydr = mycmd.Exec

20、uteReader(); try if (mydr.Read() /把用户名写入session对象 SessionUserName = mydr1; /把权限编号写入session对象 SessionLevel = mydrLevel.ToString(); /隐藏登录信息 P_Login.Visible = false; /显示用户信息 P_SuccessLogin.Visible = true; lbl_user.Text = SessionUserName.ToString(); lbl_rank.Text = SessionLevel.ToString(); string userid

21、 = mydrUserID.ToString(); SessionUserID = userid; /把用户名称添加到身份认证凭据中 /FormsAuthentication.RedirectFromLoginPage(userid, true); /FormsAuthentication. BookStore LoginDB = new BookStore(); string tempCartID = LoginDB.GetShoppingCartId(); LoginDB.TransplantShoppingCart(tempCartID, userid); else /显示错误信息 lb

22、l_msg2.Visible = true; lbl_msg2.Text = 用户名或密码错误; finally /关闭操作 mydr.Close(); SqlDataReader mydr1 = mycmd1.ExecuteReader(); try if (mydr1.Read() /把用户名写入session对象 SessionUserName = mydr11; /把权限编号写入session对象 SessionLevel = mydr1Level.ToString(); /隐藏登录信息 P_Login.Visible = false; /显示用户信息 P_SuccessLogin.V

23、isible = true; lbl_user.Text = SessionUserName.ToString(); lbl_rank.Text = SessionLevel.ToString(); string userid = mydr1UserID.ToString(); SessionUserID = userid; /把用户名称添加到身份认证凭据中 /FormsAuthentication.RedirectFromLoginPage(userid, true); /FormsAuthentication. BookStore LoginDB = new BookStore(); st

24、ring tempCartID = LoginDB.GetShoppingCartId(); LoginDB.TransplantShoppingCart(tempCartID, userid); Response.Redirect(/Default.aspx); else /显示错误信息 lbl_msg2.Visible = true; lbl_msg2.Text = 用户名或密码错误; finally /关闭操作 mydr1.Close(); myconn.Close(); protected void CancelBtn_Click(object sender, EventArgs e)

25、 /清空用户名称和密码输入框以及验证码输入框 tbx_user.Text = tbx_pwd.Text = Validator.Text =; /创建验证字符串 sValidator = CreateValidateString(6); ValidateImage.ImageUrl = sValidatorImageUrl + sValidator; private int GetRandomint(int min, int max) Random random = new Random(); return (random.Next(min, max); / / 创建验证字符串 / / / p

26、rivate string CreateValidateString(int nLen) /初始化 InitLetterList(); /创建一个StringBuilder对象 StringBuilder sb = new StringBuilder(nLen); for (int i = 0; i nLen; i+) int index = GetRandomint(0, LetterList.Length - 1); sb.Append(LetterListindex.ToString(); LetterList.Remove(index, 1); return (sb.ToString(

27、); / / 创建所有字符,为创建验证字符串做准备 / 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 (int i = 0; i 26; i+) LetterList.Append(char)(int)A + i).ToString(); (3)页面 ValidateImage.aspx 用来创建显示验证字符串的图

28、片,并在该图片上添加验证码字符串。该页面的 HTML 源码如下: Untitled Page (4)页面 ValidateImage.aspx.cs 中的源码如下:using System;using System.Data;using System.Configuration;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

29、;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 : System.Web.UI.Page private readonly string ImagePath = Images/validator.jpg; private string sValidator =

30、 ;private Brush BrushList = new Brush32; private void Page_Load(object sender, System.EventArgs e) /初始化InitBrushList();if(Request.ParamsValidator != null)/获取验证字符串sValidator = Request.ParamsValidator.ToString(); /创建Bmp位图 Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath(ImagePath); Graphi

31、cs graphicImage = Graphics.FromImage(bitMapImage); /设置画笔的输出模式 graphicImage.SmoothingMode = SmoothingMode.AntiAlias; /添加文本字符串for(int i = 0; i sValidator.Length; i+)graphicImage.DrawString(sValidatori.ToString(),new Font(Arial,20,(FontStyle)CreateRandomFontStyle(GetRandomint(0,1000),BrushListGetRandom

32、int(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); /设置图像输出的格式 Response.ContentType = image/jpeg; /保存数据流 bitMapImage.Save(Response.OutputStream, ImageFormat.J

33、peg); /释放占用的资源 graphicImage.Dispose(); bitMapImage.Dispose();Response.End(); / / 创建一个随机数/ / / / private int GetRandomint(int min,int 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)

34、return 2;if(random 800)return 3;if(random 1000)return 4;return 4;/ / 初始化Brush列表/ private void InitBrushList()BrushList0 = SystemBrushes.ActiveBorder;BrushList1 = SystemBrushes.ActiveCaption;BrushList2 = SystemBrushes.ActiveCaptionText;BrushList3 = SystemBrushes.AppWorkspace;BrushList4 = SystemBrushe

35、s.ButtonFace;BrushList5 = SystemBrushes.ButtonHighlight;BrushList6 = SystemBrushes.ButtonShadow;BrushList7 = SystemBrushes.Control;BrushList8 = SystemBrushes.ControlDark;BrushList9 = SystemBrushes.ControlDarkDark;BrushList10 = SystemBrushes.ControlLight;BrushList11 = SystemBrushes.ControlText;BrushL

36、ist12 = SystemBrushes.Desktop;BrushList13 = SystemBrushes.GradientActiveCaption;BrushList14 = SystemBrushes.GradientInactiveCaption;BrushList15 = SystemBrushes.GrayText;BrushList16 = SystemBrushes.Highlight;BrushList17 = SystemBrushes.HighlightText;BrushList18 = SystemBrushes.HotTrack;BrushList19 =

37、SystemBrushes.InactiveBorder;BrushList20 = SystemBrushes.InactiveCaption;BrushList21 = SystemBrushes.InactiveCaptionText;BrushList22 = SystemBrushes.Info;BrushList23 = SystemBrushes.InfoText;BrushList24 = SystemBrushes.Menu;BrushList25 = SystemBrushes.MenuBar;BrushList26 = SystemBrushes.MenuHighligh

38、t;BrushList27 = SystemBrushes.MenuText;BrushList28 = SystemBrushes.ScrollBar;BrushList29 = SystemBrushes.Window;BrushList30 = SystemBrushes.WindowFrame;BrushList31 = SystemBrushes.WindowText;(5)注册页面 Reg.aspx 中的 HTML 源码如下: 无标题页 购物车 |  订单查询 | GZU605网上书城会员注册 电子邮件: 请填写正确常用的Email以确保充分享受全面的服务 用户名: 请使

39、用英文字母数字和下划线,长度为4-16。 密码: 密码可以使用4-12位的任意的非空白字符 确认密码: 请重复密码   *网上书城V2010.0正式版   版权所有 GZU605小组* (6)注册页面 Reg.aspx.cs 中的源码如下:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebC

40、ontrols;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, EventArgs e) protected void btn_reg_Click(object sender, EventArgs e) if (Page.IsValid) if (IsUsed() & U

41、serNameLength() & PwdLength() /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接对象 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); /创建数据库命令 SqlCommand mycmd = new SqlCommand(AddUser, myconn); /设置数据库命令类型为存储过程 mycmd.C

42、ommandType = CommandType.StoredProcedure; SqlParameter accountparameter = mycmd.Parameters.Add(UserAccount, SqlDbType.NVarChar, 50); accountparameter.Value = tbx_user.Text; SqlParameter Emailparameter = mycmd.Parameters.Add(Email, SqlDbType.NVarChar, 50); Emailparameter.Value = tbx_email.Text; SqlPa

43、rameter userpwd = mycmd.Parameters.Add(UserPwd, SqlDbType.NVarChar, 50); userpwd.Value = tbx_pwd.Text; SqlParameter userid = mycmd.Parameters.Add(UserID, SqlDbType.Int); userid.Direction = ParameterDirection.Output; mycmd.ExecuteNonQuery(); myconn.Close(); SessionLevel = 1; SessionUserID = userid.Va

44、lue; /定向用户页面 Response.Redirect(/Default.aspx); /检查用户名是否可用 public bool IsUsed() /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接对象 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); /创建数据库命令 SqlCommand mycmd = new Sql

45、Command(CheckUser, myconn); /设置数据库命令类型为存储过程 mycmd.CommandType = CommandType.StoredProcedure; /命令参数 SqlParameter accountparameter = mycmd.Parameters.Add(UserAccount, SqlDbType.NVarChar, 50); accountparameter.Value = tbx_user.Text.Trim(); SqlDataReader mydr = mycmd.ExecuteReader(); try if (mydr.Read()

46、 lbl_msg.Text = 该用户名已经被使用; lbl_msg.Visible = true; return false; else return true; finally /关闭操作 mydr.Close(); myconn.Close(); public bool UserNameLength() /获取用户名长度 int length = tbx_user.Text.Length; if (length 16) lbl_msg.Text = 用户名长度太长; lbl_msg.Visible = true; return false; else return true; publi

47、c 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, EventArgs e) tbx_user.Text = ; tbx_email.Text = ; 6 测试说明测试说明(1)注册功能的测试如下:测试项目名称: 网上书城系统测试用例编号:TestCa

48、se-01测试项目标题:正常注册流程的功能测试测试人员:吴毅测试时间:2010-11-29测试内容:- 输入邮箱-输入用户名-输入密码-重复输入密码-点击确认测试环境与系统配置:软件环境:Micrsoft windowXP2 + Micrsoft IE80硬件环境:Inter 双核 2.0G + 2G 内存网络环境:2 人共享 1M 带宽测试输入数据1.全为空,不输入立即点击确认按钮2.填写不符合格式要求的数据3.填写正确的是的数据测试次数:每个测试过程做 3 次。预期结果:1.全为空,则输出不能为空的出错提示2.输出请正确填写该数据的错误的提示。3.跳转到主页方便用户登录测试过程:打开注册页

49、面,在注册文本框中分别输入 Email 地址、用户名和密码、以及重复输入一次密码点击“确定”测试结果:1.全为空,则输出不能为空的出错提示2.输出请正确填写该数据的错误的提示。3.跳转到主页方便用户登录测试结论:测试的预期结果和测试的最终结果相符,注册功能得以实现。实现限制:备注:(2)登录功能的测试如下:测试项目名称: 网上书城系统测试用例编号:TestCase-02测试项目标题:正常登录流程的功能测试测试人员:吴毅测试时间:2010-11-29测试内容:-输入用户名-输入密码-输入随机验证码-点击登录测试环境与系统配置:软件环境:Micrsoft windowXP2 + Micrsoft

50、IE80硬件环境:Inter 双核 2.0G + 2G 内存网络环境:2 人共享 1M 带宽测试输入数据1.全为空,不输入立即点击登录按钮2.填写错误的用户名、密码或验证码3.填写正确的是普通会员4.填写正确的是管理员测试次数:每个测试过程做 3 次。预期结果:1.全为空,则输出不能为空的出错提示。2.输出用户名、密码或验证码错误的提示。3.跳转到主页,显示欢迎该用户登录。4.跳转到管理中心页面。测试过程:打开主页,在登录文本框中分别输入用户名和密码以及随机验证码,点击“登录”测试结果:1.全为空,则输出不能为空的出错提示。2.输出用户名、密码或验证码错误的提示。3.跳转到主页,显示欢迎该用户

51、登录。4.跳转到管理中心页面。测试结论:测试的预期结果和测试的最终结果相符,登录功能得以实现。实现限制:备注:7 复审的结论复审的结论经过实际测试,得到的结果同软件需求说明书、详细设计说明书、程序设计说明书中规定的要求相符合,故登陆注册模块的代码编写正确,可以实现系统所要求的注册和功能。二、订单查询模块开发卷宗二、订单查询模块开发卷宗1 标题标题软件系统名称:网上书城模块名称:订单管理模块程序编制员签名:王继卷宗序号:2修改完成日期 :2010 年 11 月 25 日2 模块开发情况表模块开发情况表暂不考虑。3 功能说明功能说明该模块用于对用户所有购物订单进行统计并汇总,对订单的详细信息进行加

52、工,给用户反馈一个总账单。并且对用户提供订单查询义务。List.aspx,orderdetails.aspx。主要输入数据有,会员信息(名字,等级) ,订单信息(订单编号,订单日期,订单总金额,订单详细信息) 。主要的输出数据有:会员信息,和订单信息。详细数据和输入数据相同。4 设计说明设计说明本模块主要提供义务给用户使用,所以在登录模块之前,首先应该检查用户是否登录,用户是登录状态时,将之前在购物车模块中的数据回馈给用户,用户检查无误后,提交给数据库。用户查询订单时,从数据库中提出属于该用户的订单编号,通过订单编号可以查询到每一张订单的详细信息。5 原代码清原代码清 5.1订单回馈代码: 请

53、核对和递交您的订单 /显示订单的详细信息 总额: 5.2订单提交的关键代码:/提交订单protected void SubmitBtn_Click(object sender, EventArgs e) BookStore checkoutDB = new BookStore(); / 获取最终用户的购物车ID String cartId = checkoutDB.GetShoppingCartId(); / 获取最终用户的UserID String customerId = User.Identity.Name; if (cartId != null) & (customerId != nu

54、ll) / 下订单 int orderId = checkoutDB.PlaceOrder(customerId, cartId); Header.Text = 结算完成; OrderMsgLabel.Text = 您的订单编号是: + orderId; SubmitBtn.Visible = false; 5.3 订单查询页面代码: 5.4订单查询关键代码:/加载本登录用户的订单信息protected void Page_Load(object sender, EventArgs e) if (SessionUserName = null | SessionUserName.ToString

55、() = ) Response.Redirect(login.aspx?url=orderlist.aspx); else String UserID = SessionUserID.ToString(); BookStore orderHistory = new BookStore(); MyList.DataSource = orderHistory.GetUserOrders(UserID); MyList.DataBind(); if (MyList.Items.Count = 0) MyError.Text = 您目前没有订单可以显示。; MyList.Visible = false

56、; 6 测试说明测试说明 6.1 在用户没登陆的情况下,在正确的情况下转到用户登录界面(login.aspx) 。如图:6.2 在用户登录的情况下,应该输出用户名(UserName),用户等级(Level).如图:6.3 当用户在登录状态下,点击“订单查询”时,会显示所有该用户的全部订单编号(OrderID) ,订单日期(OrderDate),订单总金额(总金额=图书 1*数量+图书 2*数量+图书 n*数量) 。如图:6.4 当用户点击订单详细信息时,会将订单编号(OrderID) ,订单日期(OrderDate),订单中图书名称(BookName),市场价格(BookMarketPrice

57、),图书数量(BookQuantity),会员价格(BookPrice),订单总金额。如图:7 复审的结论复审的结论通过上面的测试,发现在订单查询模块得到的结果和预期的结果是完全相同的。但是,在订单提交时不会检查库存是否能够满足这张订单,所以就会造成销售部门与采购部门的不协调。三、购物车模块开发卷宗三、购物车模块开发卷宗1 标题标题软件系统名称:网上书城模块名称:购物继车模块程序编制员签名:王继卷宗序号:3修改完成日期 :2010 年 11 月 30 日2 模块开发情况表模块开发情况表暂不考虑。3 功能说明功能说明窗体名称:ShoppingCart.aspx窗体描述:控件名称功能响应事件Lab

58、el. OrderMsgLabel用于显示订单的提示信息DataView. MyDataGrid用于显示该次购物的图书名称,市场价格,数量,会员价格和总金额。BUTTON.UpdateBtn用于更新选定图书后购物车中的数据BUTTON .CheckoutBtn用于用户结算本次购物的总金额 窗体名称:Checkout.aspx窗体描述:控件名称功能响应事件Label. OrderMsgLabel用于显示订单的提示信息DataView. MyDataGrid用于显示该次购物的图书名称,市场价格,数量,会员价格和总金额。Label. TotalLbl用于显示本次购物金额BUTTON. SubmitB

59、tn把本次购物信息转换成订单SubmitBtn_Click 。4 设计说明设计说明本模块主要提供义务给用户使用,让用户能够对自己所买的书进行一个统计,了解这些书的一些基本情况,如价格,数量等,还能对自己所消费的金额进行一个计算。 5 原代码清单原代码清单5.1 购物车确认模块代码: 网上书城     请核对和递交您的订单 总额:   5.2购物车模块代码: 网上书城     asp:Label ID=BookID runat=server Text= asp:TextBox ID=BookQuantity runat=server Column

60、s=4 MaxLength=3 Text= Width=40px 总额:   6 测试说明测试说明输入项名称标识数据类型输入方式输入媒介处理数据提交BUTTON. SubmitBtn无点击按钮鼠标修改数据库搜索窗体Search.ascx无点击按钮鼠标查询数据库图书名称BookNamenvarchar(50)键盘输入键盘查询数据库市场价格BookMarketPricemoney点击按钮鼠标查询数据库数量BookAmountInt键盘输入键盘修改数据库价格BookPricemoney点击按钮鼠标查询数据库金额小计UnitCostInt系统计算数据库修改数据库订单编号OrderIDInt系

61、统自动生成数据库查询数据库订单日期OrderDateDate系统自动生成数据库查询数据库输出项名称标识数据类型输出方式输出媒介图书名称BookNamenvarchar(50)写入数据库数据库市场价格BookMarketPricemoney写入数据库数据库数量BookAmountInt写入数据库数据库价格BookPricemoney写入数据库数据库金额小计UnitCostInt写入数据库数据库订单日期OrderDatedatetime写入数据库数据库订单编号OrderIDint写入数据库数据库7 复审的结论复审的结论通过上面的测试,发现购物车的功能基本达到而来预期的要求,能够对用户提供一些有效的

62、帮助,该模块的制作相当成功。四、图书分类模块开发卷宗四、图书分类模块开发卷宗1 标题标题软件系统名称和标识符:网上书城(bookshop)模块名称和标识符:图书分类程序编制员签名:肖枝兵卷宗的修改文本序号修改完成日期 2010-11-25卷宗序号 4编排日期:2010-11-252 模块开发情况表模块开发情况表暂不考虑。3 功能说明功能说明图书分类模块主要实现两个功能,分类编号和分类名称。网上书城最大的优点就是要方便买书的顾客的同时节约顾客的时间,本模块正是考虑到这一点而做,目的就是让顾客登录本网站后能尽快地找到他们喜欢的书籍及相关信息。考虑到客户端硬件的差异,本模块对主存的占有采用非常驻内存

63、方式,可以从某种方式上降低对资源的损耗。4 设计说明设计说明本模块图书分类精度的要求对用户是透明的,由系统管理员进行操作,用户只需根据界面分类信息点击感兴趣的相应图书分类就会得到所有库存的相关书籍信息。由于所有书籍信息分类有系统管理员完成,不能与顾客进行互动沟通,还好为此我们设置了图书推荐这一栏目,增进了顾客与顾客之间的联系,但总体来说本系统灵活性方面还有待改进。5 原代码清单原代码清单后台涉及到的源码:using System;using System.Data;using System.Configuration;using System.Collections;using System.

64、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 _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostB

65、ack) tbx_user.Text = ; tbx_pwd.Text = ; /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); SqlCommand mycmd = new SqlCommand(MostSoldBooks, myconn); SqlDataReader resu

66、lt = mycmd.ExecuteReader(); dl_mostsold.DataSource = result; dl_mostsold.DataBind(); lbl_msg1.Visible = false; lbl_msg2.Visible = false; 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 sender, EventArgs e) string username = tbx_user.Text; string pa

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!