【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc

上传人:韩长文 文档编号:5121425 上传时间:2020-02-04 格式:DOC 页数:62 大小:949KB
返回 下载 相关 举报
【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc_第1页
第1页 / 共62页
【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc_第2页
第2页 / 共62页
【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc_第3页
第3页 / 共62页
【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc_第4页
第4页 / 共62页
【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc_第5页
第5页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc》由会员分享,可在线阅读,更多相关《【精品课程设计】网上书城模块开发卷宗(系统源代码) .doc(62页珍藏版)》请在三一文库上搜索。

1、模块开 发卷宗 V1.0 December 3 2010 网上书城 1 目录目录 一、登陆注册模块开发卷宗一、登陆注册模块开发卷宗3 1 标题.3 2 模块开发情况表.3 3 功能说明.3 4 设计说明.4 5 原代码清单.6 6 测试说明.23 7 复审的结论.25 二、订单查询模块开发卷宗二、订单查询模块开发卷宗25 1 标题.25 2 模块开发情况表.25 3 功能说明.25 4 设计说明.26 5 原代码清.26 6 测试说明.29 7 复审的结论.30 三、购物车模块开发卷宗三、购物车模块开发卷宗30 1 标题.30 2 模块开发情况表.30 3 功能说明.30 4 设计说明.31

2、5 原代码清单.31 5.1 购物车确认模块代码:31 6 测试说明.40 7 复审的结论.41 四、图书分类模块开发卷宗四、图书分类模块开发卷宗41 1 标题.41 2 模块开发情况表.41 3 功能说明.41 4 设计说明.41 5 原代码清单.42 6 测试说明.45 7 复审的结论.45 五、图书推荐模块开发卷宗五、图书推荐模块开发卷宗45 1 标题.45 2 2 模块开发情况.45 3 功能说明.45 4 设计说明.46 5 原代码清单.46 6 测试说明.48 7 复审的结论.48 六、图书管理模块开发卷宗六、图书管理模块开发卷宗48 1 标题.48 2 模块开发情况表.49 3

3、功能说明.49 4 设计说明.49 5 原代码清单.49 6 测试说明.51 7 复审的结论.51 七、搜索模块开发卷宗七、搜索模块开发卷宗51 1 标题.51 2 模块开发情况表.52 3 功能说明.52 4 设计说明.52 5 原代码清单.52 6 测试说明.53 7 复审的结论.55 八、会员管理模块开发卷宗八、会员管理模块开发卷宗56 1 标题.56 2 模块开发情况表.56 3 功能说明.56 4 设计说明.56 5 原代码清单.56 6 测试说明.58 7 复审的结论.59 九、订单管理模块开发卷宗九、订单管理模块开发卷宗59 1 标题.59 2 模块开发情况表.59 3 功能说明

4、.59 4 设计说明.60 5 原代码清单.60 6 测试说明.62 7 复审的结论.62 3 一、登陆注册模块开发卷宗一、登陆注册模块开发卷宗 1 标题标题 软件系统名称和标识符:网上书城 模块名称和标识符:登录注册模块 程序编制员签名:* 卷宗的修改文本序号 修改完成日期 :2010-11-29 卷宗序号:1 编排日期:2010-11-25 2 模块开发情况表模块开发情况表 由于是课程设计项目,暂不考虑。 3 功能说明功能说明 扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。可以从系 统设计说明书中摘录。同时列出在软件需求说明书中对这些功能的说明的章、条、款。 (1)用户

5、注册功能:用户输入姓名,用户名,密码,性别,邮箱, 真实姓名,邮编, 详细住址。姓名栏以及用户名栏添加了空验证控件,如果用户未填入任何信息则给出 提示提示用户填入信息。邮箱栏设置了格式验证要求用户输入的信息必须符合% %.com 的格式。网页整体设置了错误信息收集控件能够显示所有用户输入信息的错 误提示给出提示。当用户输入的信息全部符合规则后才可进行注册操作。把用户输入 的信息全部装到一个实体类中,然后调用业务逻辑层的插入操作执行注册,注册会先 判断是否已经存在该用户,如果存在则插入失败,如果不存在该用户才会注册成功。 输入项:邮箱,用户名,密码 输出项:成功则更新数据库,跳转主页面;失败则输

6、出错误提示的信息。 (2)会员登录功能:会员登录时,需要填写会员名,密码,和随机动态生成的验证码, 其是为了防止恶意攻击而设置。会员登录后才可以实现购物车,以及查看订单等功 能。 管理员登录功能:管理员登录时,需要填写会员名,密码,和随机动态生成的验证 码,其是为了防止恶意攻击而设置。登陆后的管理员对网站进行管理。 输入项:姓名,密码,验证码 输出项:成功则管理员跳转到管理中心页面,普通会员跳转到主页面;失败则输出 错误提示的信息。 4 4 设计说明设计说明 说明本模块(或本组模块)的设计考虑,包括: a 在系统设计说明书中有关对本模块(或本组模块)设计考虑的叙述,包括本模块 在软件系统中所处

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

8、 表中 IsAdmin 字段的值,如果值为 0,则为普通会员,跳转到系统主页,如果值为 1,则 为管理员,跳转到管理中心页面。 5 5 原代码清单原代码清单 要给出所产生的本模块(或本组模块)的第一份无语法错的源代码清单以及已通过全 部测试的当前有效的源代码清单。 (1)主页 Default.aspx 部分中的 HTML 源码如下(登录的窗体设计代码): 会员: 6 验证码: 密码: 新用户注册 (2)主页 Default.aspx.cs 中的源码如下(登录的窗体实现代码): using System; using System.Data; using System.Configuration

9、; 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 : System.Web.UI.P

10、age /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 = “; /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStrings“SqlServices“); /

12、创建数据库连接 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 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 (Session“UserName“ = null | Session“UserName“.ToString() = “) P_Login.Visible = true; P_SuccessLogin.Visible = false; else P_Login.Visible = false; P_SuccessLogin.Visible = true; lbl_user.Text = Session“UserName“.ToString(); lbl_rank.Text = Session“Level“.ToString(); protected void btn_login_Cli

14、ck(object 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 = “验证码输入错

15、误,请重新输入验证码!“; sValidator = CreateValidateString(6); ValidateImage.ImageUrl = sValidatorImageUrl + sValidator; return; else /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStrings“SqlServices“); 9 /创建数据库连接对象 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 my

16、conn.Open(); /读取用户信息 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);

17、/Response.End(); /创建命令对象 SqlCommand mycmd = new SqlCommand(mysql, myconn); SqlCommand mycmd1 = new SqlCommand(mysql1, myconn); /创建适配器并执行命令 SqlDataReader mydr = mycmd.ExecuteReader(); try if (mydr.Read() /把用户名写入session对象 Session“UserName“ = mydr1; /把权限编号写入session对象 Session“Level“ = mydr“Level“.ToStri

18、ng(); /隐藏登录信息 P_Login.Visible = false; /显示用户信息 P_SuccessLogin.Visible = true; lbl_user.Text = Session“UserName“.ToString(); lbl_rank.Text = Session“Level“.ToString(); string userid = mydr“UserID“.ToString(); Session“UserID“ = userid; /把用户名称添加到身份认证凭据中 /FormsAuthentication.RedirectFromLoginPage(userid

19、, true); /FormsAuthentication. BookStore LoginDB = new BookStore(); string tempCartID = LoginDB.GetShoppingCartId(); LoginDB.TransplantShoppingCart(tempCartID, userid); else /显示错误信息 10 lbl_msg2.Visible = true; lbl_msg2.Text = “用户名或密码错误“; finally /关闭操作 mydr.Close(); SqlDataReader mydr1 = mycmd1.Execu

20、teReader(); try if (mydr1.Read() /把用户名写入session对象 Session“UserName“ = mydr11; /把权限编号写入session对象 Session“Level“ = mydr1“Level“.ToString(); /隐藏登录信息 P_Login.Visible = false; /显示用户信息 P_SuccessLogin.Visible = true; lbl_user.Text = Session“UserName“.ToString(); lbl_rank.Text = Session“Level“.ToString(); s

21、tring userid = mydr1“UserID“.ToString(); Session“UserID“ = userid; /把用户名称添加到身份认证凭据中 /FormsAuthentication.RedirectFromLoginPage(userid, true); /FormsAuthentication. BookStore LoginDB = new BookStore(); string tempCartID = LoginDB.GetShoppingCartId(); LoginDB.TransplantShoppingCart(tempCartID, userid)

22、; Response.Redirect(“/Default.aspx“); else /显示错误信息 lbl_msg2.Visible = true; lbl_msg2.Text = “用户名或密码错误“; 11 finally /关闭操作 mydr1.Close(); myconn.Close(); protected void CancelBtn_Click(object sender, EventArgs e) /清空用户名称和密码输入框以及验证码输入框 tbx_user.Text = tbx_pwd.Text = Validator.Text =“; /创建验证字符串 sValidat

23、or = CreateValidateString(6); ValidateImage.ImageUrl = sValidatorImageUrl + sValidator; private int GetRandomint(int min, int max) Random random = new Random(); return (random.Next(min, max); / / 创建验证字符串 / / / private string CreateValidateString(int nLen) /初始化 InitLetterList(); /创建一个StringBuilder对象

24、StringBuilder sb = new StringBuilder(nLen); for (int i = 0; i / 创建所有字符,为创建验证字符串做准备 / private void InitLetterList() for (int i = 0; i Untitled Page (4)页面 ValidateImage.aspx.cs 中的源码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; 13 using Sys

25、tem.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 V

26、alidateImage : 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.Params“Validator“ != null) /获取验证字符串 sValidato

27、r = Request.Params“Validator“.ToString(); /创建Bmp位图 Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath(ImagePath); Graphics graphicImage = Graphics.FromImage(bitMapImage); /设置画笔的输出模式 graphicImage.SmoothingMode = SmoothingMode.AntiAlias; /添加文本字符串 for(int i = 0; i / 创建一个随机数 / / / / private i

28、nt GetRandomint(int min,int max) Random random = new Random(); return (random.Next(min,max); private int CreateRandomFontStyle(int random) if(random / 初始化Brush列表 / private void InitBrushList() BrushList0 = SystemBrushes.ActiveBorder; BrushList1 = SystemBrushes.ActiveCaption; BrushList2 = SystemBrush

29、es.ActiveCaptionText; BrushList3 = SystemBrushes.AppWorkspace; BrushList4 = SystemBrushes.ButtonFace; BrushList5 = SystemBrushes.ButtonHighlight; BrushList6 = SystemBrushes.ButtonShadow; BrushList7 = SystemBrushes.Control; BrushList8 = SystemBrushes.ControlDark; BrushList9 = SystemBrushes.ControlDar

30、kDark; BrushList10 = SystemBrushes.ControlLight; BrushList11 = SystemBrushes.ControlText; BrushList12 = SystemBrushes.Desktop; BrushList13 = SystemBrushes.GradientActiveCaption; BrushList14 = SystemBrushes.GradientInactiveCaption; BrushList15 = SystemBrushes.GrayText; BrushList16 = SystemBrushes.Hig

31、hlight; BrushList17 = SystemBrushes.HighlightText; BrushList18 = SystemBrushes.HotTrack; BrushList19 = SystemBrushes.InactiveBorder; BrushList20 = SystemBrushes.InactiveCaption; BrushList21 = SystemBrushes.InactiveCaptionText; BrushList22 = SystemBrushes.Info; BrushList23 = SystemBrushes.InfoText; B

32、rushList24 = SystemBrushes.Menu; BrushList25 = SystemBrushes.MenuBar; BrushList26 = SystemBrushes.MenuHighlight; BrushList27 = SystemBrushes.MenuText; BrushList28 = SystemBrushes.ScrollBar; BrushList29 = SystemBrushes.Window; BrushList30 = SystemBrushes.WindowFrame; 16 BrushList31 = SystemBrushes.Wi

33、ndowText; (5)注册页面 Reg.aspx 中的 HTML 源码如下: 无标题页 购物车 | 订单 查询 | 17 GZU605网上书城会员注册 电子邮件: 请填写正确常用的Email以确保充分享受全面的服务 用户名: 请使用英文字母数字和下划线,长度为4-16。 密码: 密码可以使用4-12位的任意的非空白字符 18 确认密码: 请重复密码 *网上书城V2010.0正式版 版权所有 GZU605小组* (6)注册页面 Reg.aspx.cs 中的源码如下: using System; using System.Data; using System.Configuration; us

34、ing 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.HtmlControls; using System.Data.SqlClient; public partial class Reg : System.Web.UI.Page protected void Page_Loa

35、d(object sender, EventArgs e) protected void btn_reg_Click(object sender, EventArgs e) if (Page.IsValid) if (IsUsed() /创建数据库连接对象 SqlConnection myconn = new SqlConnection(settings); /打开数据库连接 myconn.Open(); /创建数据库命令 SqlCommand mycmd = new SqlCommand(“AddUser“, myconn); /设置数据库命令类型为存储过程 mycmd.CommandTyp

36、e = 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; SqlParamet

37、er userpwd = mycmd.Parameters.Add(“UserPwd“, SqlDbType.NVarChar, 50); userpwd.Value = tbx_pwd.Text; 20 SqlParameter userid = mycmd.Parameters.Add(“UserID“, SqlDbType.Int); userid.Direction = ParameterDirection.Output; mycmd.ExecuteNonQuery(); myconn.Close(); Session“Level“ = 1; Session“UserID“ = use

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

39、 = new SqlCommand(“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 i

40、f (mydr.Read() lbl_msg.Text = “该用户名已经被使用“; lbl_msg.Visible = true; return false; else 21 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; el

41、se 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, EventArgs e) tbx_user.Text = “; tbx_email.Text = “; 6 测试说明测试说明 (1)注册功能的测试如下:

42、测试项目名称: 网上书城系统 测试用例编号:TestCase-01 测试项目标题:正常注册流程的功能测试 测试人员: 吴毅 测试时间: 2010-11-29 测试内容: - 输入邮箱 -输入用户名 -输入密码 -重复输入密码 -点击确认 测试环境与系统配置: 软件环境:Micrsoft windowXP2 + Micrsoft IE80 硬件环境:Inter 双核 2.0G + 2G 内存 网络环境:2 人共享 1M 带宽 测试输入 数据 1.全为空,不输入立即点击确认按钮 2.填写不符合格式要求的数据 3.填写正确的是的数据 测试次数:每个测试过程做 3 次。 23 预期结果: 1.全为空,

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

44、9 测试内容: -输入用户名 -输入密码 -输入随机验证码 -点击登录 测试环境与系统配置: 软件环境:Micrsoft windowXP2 + Micrsoft IE80 硬件环境:Inter 双核 2.0G + 2G 内存 网络环境:2 人共享 1M 带宽 测试输入 数据 1.全为空,不输入立即点击登录按钮 2.填写错误的用户名、密码或验证码 3.填写正确的是普通会员 4.填写正确的是管理员 测试次数:每个测试过程做 3 次。 预期结果: 1.全为空,则输出不能为空的出错提示。 2.输出用户名、密码或验证码错误的提示。 3.跳转到主页,显示欢迎该用户登录。 4.跳转到管理中心页面。 24

45、测试过程: 打开主页, 在登录文本框中分别输入用户名和密码以及随机验证码, 点击“登录” 测试结果: 1.全为空,则输出不能为空的出错提示。 2.输出用户名、密码或验证码错误的提示。 3.跳转到主页,显示欢迎该用户登录。 4.跳转到管理中心页面。 测试结论:测试的预期结果和测试的最终结果相符,登录功能得以实现。 实现限制: 备注: 7 复审的结论复审的结论 经过实际测试,得到的结果同软件需求说明书、详细设计说明书、程序设计说明书中 规定的要求相符合,故登陆注册模块的代码编写正确,可以实现系统所要求的注册和功能。 二、订单查询模块开发卷宗二、订单查询模块开发卷宗 1 标题标题 软件系统名称:网上

46、书城 模块名称:订单管理模块 程序编制员签名:王继 卷宗序号:2 修改完成日期 :2010 年 11 月 25 日 2 模块开发情况表模块开发情况表 暂不考虑。 3 功能说明功能说明 该模块用于对用户所有购物订单进行统计并汇总,对订单的详细信息进行加工,给用户反 馈一个总账单。并且对用户提供订单查询义务。List.aspx,orderdetails.aspx。主要输入数据 有,会员信息(名字,等级) ,订单信息(订单编号,订单日期,订单总金额,订单详细信 25 息) 。主要的输出数据有:会员信息,和订单信息。详细数据和输入数据相同。 4 设计说明设计说明 本模块主要提供义务给用户使用,所以在登

47、录模块之前,首先应该检查用户是否登录,用 户是登录状态时,将之前在购物车模块中的数据回馈给用户,用户检查无误后,提交给数 据库。 用户查询订单时,从数据库中提出属于该用户的订单编号,通过订单编号可以查询到每一 张订单的详细信息。 5 原代码清原代码清 5.1订单回馈代码: 请核对和递交您的订单 /显示订单的详细信息 26 总额: 5.2订单提交的关键代码: /提交订单 protected void SubmitBtn_Click(object sender, EventArgs e) BookStore checkoutDB = new BookStore(); / 获取最终用户的购物车ID

48、String cartId = checkoutDB.GetShoppingCartId(); / 获取最终用户的UserID String customerId = User.Identity.Name; if (cartId != null) Header.Text = “结算完成“; OrderMsgLabel.Text = “您的订单编号是: “ + orderId; SubmitBtn.Visible = false; 27 5.3 订单查询页面代码: 5.4订单查询关键代码: /加载本登录用户的订单信息 protected void Page_Load(object sender, EventArgs e) if (Session“UserName“ = null | Session“UserName“.ToString() = “) Response.Redirect(“login.aspx?u

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程管理


经营许可证编号:宁ICP备18001539号-1