2022年ASP学习课程研发设计方案.docx
精品学习资源数据库应用课程设计软 件 技 术*202133205高海兵2021 年 11 月 30 日设计题目: 网上购物系统专业:姓名:学号:指导老师: 时间:欢迎下载精品学习资源目 录1 需求分析 错误!未定义书签;1.1 系统需求分析 错误!未定义书签;1.2 可行性分析 错误!未定义书签;2 数据库的概念设计 错误!未定义书签;3 数据库的规律设计 错误!未定义书签;4 数据库的物理设计 错误!未定义书签;5 应用程序设计 错误!未定义书签;5.1 系统功能分析 错误!未定义书签;5.2 系统功能模块设计 错误!未定义书签;5.3 系统目标分析 错误!未定义书签;6 程序实现 错误!未定义书签;总结与体会 错误!未定义书签;参考文献 错误!未定义书签;一、需求分析1 系统需求分析网上购物系统分为前台治理和后台治理;前台治理包括浏览商品、查询商 品、订购商品、购物车、用户信息爱护等功能;后台治理包括公告治理、商品 治理、订单治理、投诉治理和用户治理等模块;流程图如图1-1 和 1-2 所示;欢迎下载精品学习资源欢迎下载精品学习资源2 可行性分析图 1-2前台客户购物流程欢迎下载精品学习资源治理用户身份验证用户信息表公告治理商品治理订单治理投诉治理用户治理Shop 数据库图 1-1 后台系统流程分析图浏未注册用户览 浏浏 览 览商品浏览选商择品商品订购订商购品商选品择注 册已登录注册用户未登录注册用户登 录去购物车去收银台提交订购单对于用户来说,在商场系统里面所购的物品,期望准时收到商品,在商场系统里的投诉,期望准时得到解决,用户的要求能准时得到中意的情形下,商场的信用度才能得到提高,才能更好的进展,所以对用户进行需求分析是很有必要的;对于治理员来说,既要考虑用户的要求,又要更好的治理整个系统,所以他肩欢迎下载精品学习资源负着双重任务;中意用户要求方面,应当准时处理用户的订单,准时发货,尽快的解决客户的投诉等等,才能有更好的经济效益;治理系统的责任也不能忽视,如对市场做调查,准时更新产品,仍有就是对系统进行爱护等等一、数据库的概念设计3 系统功能模块设计在本系统中,用户治理模块功能在系统初始化时,有一个默认的“系统管 理员”用户 Admin ,他可以手动的添加到数据库中; Admin 用户可以创建其他的治理员信息;一般用户就可以修改自己注册信息和密码;在前台治理中我们 只关怀一般用户的信息,治理员信息由后台负责;该网上购物系统的后台治理功能模块图,具体如图1-4 所示;公告治理商品治理网 上 后购 台物 管系 理统投诉治理订单治理用户治理图 1-3 系统功能模块图该网上购物系统的前台治理功能模块图即客户购物流程,具体如图1-4 所示;欢迎下载精品学习资源浏览公告网上购物商城系统浏览商品前台治理查询商品购买商品用户注册图 1-4网上购物系统前台治理功能模块示意图用户治理之一般用户功能模块的关系如图1-5 所示;系统用户信息治理修改自身的密码一般用户创建、修改自身的信息图 1-5一般用户治理功能模块图二、数据库设计1 数据库需求分析数据项和数据结构如下:(1) 公告信息表( Board): 公告编号,公告题目,公告内容,提交时间, 提交人;(2) 商品类别表( GoodsType):分类编号,分类名称;欢迎下载精品学习资源(3) 商品信息表( Goods):商品编号,商品类别,商品名称,商品序列号,生产厂家,包装类型,销售价格,进货价格,商品简介,阅读次数,销售数量,图片上传;(4) 购物车表( Basket):编号,用户名,商品编号,订购时间,订购数量,销售价格,用户确认,订单号,提交时间,治理员确认;(5) 客户投诉表( Complain):投诉编号,投诉时间,用户名,订单号,投诉内容,处理结果,处理标志;(6) 用户表( Users):用户名,用户密码,用户名称,性别,地址,电子邮件系统,移动电话,固定电话;(7) 治理员表 Admin :用户名,密码,用户姓名;2 数据库概念结构设计( E-R 图)E-R 图供应了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形内写明实体名;属性:用椭圆表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1: 1, 1: n或 m:n);那么本系统的 E-R 图如下:欢迎下载精品学习资源图 2-1 网上商品交易系统的E-R 图3 数据库规律结构设计3.1 数据库表的设计公告信息表( Board):表 2-1 公告信息表列名数据类型长度答应空Idint4noTitlevarchar50yesContentvarchar1000yesPostTimedatetime8yesPostervarchar20yes商品信息表( Goods)欢迎下载精品学习资源表 2-2商品信息表列名数据类型长度答应空Idint4noTypeidint4yesNamevarchar50yesSn_Numbervarchar50yesProducervarchar50yesPackagevarchar50yesSalePricefloat8yesStorePricefloat8yesContentvarchar1000yesPostTimedatetime8yesReadCountint4yesBuyCountint4yesImageFilevarchar50yes商品类别表( GoodsType):表 2-3商品类别表列名数据类型长度答应空Idint4noTypevarchar50yes治理员表 Admin :表 2-4治理员表列名数据类型长度答应空AdminIdvarchar20noPassWdvarchar20yesNamevarchar50yes用户表( Users):欢迎下载精品学习资源表 2-5 Users的结构列 名数据类型长 度答应空UserIdvarchar20noPwdvarchar20yesUserNamevarchar50yesSexbit1yesAddressvarchar1000yesEmailvarchar50yesTelephonevarchar100yesMobilevarchar50yes客户投诉表( Complain):表 2-6客户投诉表列名数据类型长度答应空Idint4noPosttimedatatime8yesUserIdvarchar20yesOrderNumbervarchar50yesContentvarchar1000yesResultvarchar1000yesFlagbit购物车表( Basket):1yes表 2-7 Basket的结构列 名数据类型长 度答应空Idint4noUserIdvarchar20yesGoodsIdInt4yesOrderTimeDatetime8yes列 名数据类型长 度答应空OrderCountInt4yes欢迎下载精品学习资源SalePriceFloat8yesUserCheckedChar10yesOrderNumberVarchar50yesPostTimeDatetime8yesAdminCheckedChar10yes3.2 数据库连接依据要求建好数据库后,需要建立网站页面和后台服务器的链接,页面名称为 ConnDB.asp,以后当需要对数据库进行拜望时,只需要用<.-#include File="ConnDB.asp"->命令就可以直接调用该程序,连接数据库,提高程序的可读性,同时也提高程序的便利性,代码如下:<%Dim Conn Dim ConnStrSetConn = Server.CreateObject"ADODB.Connection"创建一个数据库链接对象 Conn,便利以后调用ConnStr="DRIVER=SQL Server ;SERVER=( local);UID=sa;PWD=sa;Database=Shop"创建一个数据库的 recordset对象,便利以后调用Conn.Open ConnStr打开数据库 %>留意:后台治理功能只有治理用户才有权限使用,所以在进入这些页面之 前,需要判定用户是否是治理用户; IsAdmin.asp 的功能是判定当前用户是否是治理用户,假如不是,就跳转到Login.asp,要求用户登陆;假如是,就不执行任何操作,直接进入包含它的网页中;在只有治理用户可以进入的网页,开头都 应包含 IsAdmin.asp,代码如下: <.-#include file="isAdmin.asp"->IsAdmin.asp的代码如下:<%'从 Session变量中读取用户信息AdminId = TrimSession"admin_id" Passwd = TrimSession"admin_pwd" '用户名是否为空If AdminId <> "" Thensql = "Select * From Admin Where AdminId='" & AdminId & "' And欢迎下载精品学习资源PassWd='" & Passwd & "'" '是否存在此用户名Set rs = Conn.ExecutesqlIf rs.EOF Then Response.Redirect "Login.asp" End IfElseResponse.Redirect "Login.asp" End If %>三、数据库的治理1 数据库的安全数据库的安全治理通过对用户权限的把握和数据库的备份与仍原先实现 Shop数据库的用户: Dbo 的用户属性:欢迎下载精品学习资源2 数据完整性设计(1) )给每个表实施主键约束主键约束、非空值约束:公告信息表:公告编号为主键,所以此项非空;商品:商品编号为主键,所以此项非空;购物车:购物车 id 为主键,所以此项非空;客户投诉:投诉编号为主键,所以此项非空;用户:用户 ID 为主键,此项非空;治理员表:治理员 ID 为主键,此项非空;(2) )实施 CHECK 约束用户表中中建立一个检查约束,即用户性别不是男就是女CHECK 性别 IN' 男','女';(3) )惟一约束每个表的主键需定义为惟一性:如:对于商品表,由于商品编号是主键,所以建立唯独性; 对于购物车表,由于购物车编号是主键,所以建立唯独性;对于客户投诉表,由于客户投诉编号是主键,所以建立唯独性;欢迎下载精品学习资源登陆界面对于公告信息表,由于公告信息编号是主键,所以建立唯独性;3 数据库的治理与爱护数据库的治理和爱护通过 asp的后台操作来进行治理和爱护;四、数据库的实施1 网上购物系统模块分析下面是对该系统其中一个模块的分析设计与实现; 登陆界面设计默认治理员账号: admin 密码 111111在 shop数据库 admin 表中数据表示如下图:基本信息模块实现对数据库的操作商品类别添加模块对商品类别添加删除修改操作如下图:欢迎下载精品学习资源单击添加按钮: 添加到商品类别中商品治理,模块对商品进行添加删除与修改操作2 主要代码的实现AdminIndex.asp<.-#include File="./ConnDB.asp"-><.-#include file="isAdmin.asp"-><html><head><meta HTTP-EQUIV="Content-Type" CONTENT="text/html ;欢迎下载精品学习资源charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content="FrontPage.Editor.Document"><title>网上商城订单治理 </title></head><frameset cols="179,*" framespacing="0" border="0" frameborder="0"><frame name="contents" target="main" src="left.asp" scrolling="auto" noresize><frame name="main" src="BoardList.asp" scrolling="auto"><noframes><body topmargin="0" leftmargin="0"><p>此网页使用了框架,但您的浏览器不支持框架;</p></body></noframes></frameset></html>数据库连接 ConnDB.asp<%Dim Conn Dim ConnStrset conn=server.createobject"adodb.connection"' conn.open "Driver=SQL Server;server=local;uid=sa;pwd=sa;database=shop;"'set rs=Server.CreateObject"ADODB.Recordset" conn.open"driver=SQL Server;database=shop;server=local;uid=sa;pwd=sa"%>isAdmin.asp<%'从 Session变量中读取用户信息AdminId = TrimSession"admin_id" Passwd = TrimSession"admin_pwd" '用户名是否为空If AdminId <> "" Thensql = "Select * From Admin Where AdminId='" & AdminId & "' And Passwd='" & Passwd & "'"'是否存在此用户名Set rs = Conn.Executesql If rs.EOF ThenResponse.Redirect "Login.asp"欢迎下载精品学习资源End If ElseResponse.Redirect "Login.asp" End If%>添加商品模块:GoodsAdd.asp<.-#include File="./conndb.asp"-><.-#include file="isAdmin.asp"-><html><head><title>添加商品 </title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link href="./style.css" rel="STYLESHEET" type="text/css"><Script Language="JavaScript"> function ChkFields if document.myform.typeid.selectedIndex < 0 alert"请选择商品类别 ";return false;if document.myform.name.value="" alert"请输入商品名称 ";return false;if document.myform.saleprice.value="" alert"请输入销售价格 ";return false;if document.myform.storeprice.value="" alert"请输入进货价格 ";return false;return true;</Script></head><body bgcolor="#FFFFCC"><form name="myform" method="POST" action="GoodsSave.asp.action=add" onsubmit="return ChkFields"><table border="0" width="100%" cellspacing="1"><tr>欢迎下载精品学习资源<td width="100%">商品类别<select size="1" name="typeid"><%Set rs = Server.CreateObject"ADODB.RECORDSET" '读取商品类别信息sql="SELECT * FROM GoodsType ORDER BY Id"Set rs = Conn.Executesql If rs.EOF Then%><option value=""></option><%ElseDo While Not rs.Eof%><option value="<%=rs"id"%>"><%=rs"type"%></option><%rs.MoveNextLoop End If rs.Close%>欢迎下载精品学习资源size="20"></select></td></tr><tr><td width="100%">商品名称<input type="text" name="name" size="20"></td></tr><tr><td width="100%">商品编号<input type="text" name="number" size="20"></td></tr><tr><td width="100%">生产公司 <input type="text" name="producer"</td></tr><tr><td width="100%">包装型号<input type="text" name="package" size="20"></td></tr>欢迎下载精品学习资源</textarea><tr><td width="100%">销售价格<input type="text" name="saleprice" size="20"></td></tr><tr><td width="100%">进货价格<input type="text" name="storeprice" size="20"></td></tr><tr><td width="100%">商品介绍 </td></tr><tr><td width="100%"><textarea rows="6" name="content" cols="56">暂时没有</td></tr><tr><td width="100%"><iframe frameborder="0" height="40"欢迎下载精品学习资源width="400" scrolling="no" src="upload.asp" ></iframe><input type="hidden" name="upimage"></td></tr><tr><td width="100%" align=center><input type="submit" value=" 提 交" name="B1">  ; ; ; ;<input type="reset" value=" 重 写 " name="B2"></td></tr></table></form></body></html>商品删除模块<.-#include File="./conndb.asp"-><.-#include file="isAdmin.asp"-><html><head><title>删除商品信息 </title></head><body><%Dim idsids = Request.QueryString"id"欢迎下载精品学习资源sql = "Select * From Goods Where id In "&ids&""Set Rs = Conn.ExecutesqlDo While Not Rs.Eof '删除图片filename = Server.MapPath"images"&Rs"imageFile"Set MyFileObject=Server.CreateObject"Scripting.FileSystemObject" If MyFileObject.FileExiststrimfilename Then MyFileObject.DeleteFile trimfilenameEnd IfRs.MoveNextLoop'删除商品记录sql = "Delete From Goods Where id In "&ids&"" Conn.ExecutesqlSet Rs = Nothing Conn.Close%></body><script language="JavaScript"> alert"成功删除! ";location.href = "GoodsList.asp.flag=0";</script></html>商品类别治理GoodsType.asp<.-#include File="./conndb.asp"-><.-#include file="isAdmin.asp"-><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title> 商品类别治理 </title><link rel="stylesheet" href="/shop/style.css"></head><script language="JavaScript"> function newtypeurl var wth=window.screen.width;var hth=window.screen.heigth;var lefth,topth;欢迎下载精品学习资源ifwth=1024hth=200;lefth =212;wth=600;topth=135;else ifwth=800hth=200;lefth =100;wth=600;topth=50;ifwth=6400hth=200var oth="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,res izable=yes,left="+lefth+",top="+topth ;oth = oth+",width="+wth+",height="+hth;var newtype=window.openurl,"newtype",oth;newtype.focus;return false;function SelectChkvar s=false;var typeid,n=0;var strid,strurl;var nn = self.document.all.item"type";for j=0 ;j<nn.length;j+if self.document.all.item"type",j.checkedn = n + 1;s=true;typeid = self.document.all.item"type",j.id+"" ;ifn=1strid = typeid;else欢迎下载精品学习资源strid = strid + "," + typeid ;strurl = "GoodsType.asp.Oper=delete&id=" + strid;if.salert"请选择要删除的商品类别 ." ;return false;if confirm" 你确定要删除这些商品类别吗? " form1.action = strurl;form1.submit;function sltAllvar nn = self.document.all.item"type";forj=0 ;j<nn.length;j+self.document.all.item"type",j.checked = true;function sltNullvar nn = self.document.all.item"type";forj=0 ;j<nn.length;j+self.document.all.item"type",j.checked = false;</script><body link="#000080" vlink="#080080"><form id="form1" name="form1" method="POST"><%'处理添加、修改和删除操作Dim Soperate'读取参数 oper,准备当前要进行的操作Soperate = Request.QueryString"oper" Operid = Request.QueryString"id"'删除记录If Soperate="delete" Thensqldelt = "Delete From GoodsType Where id In"&CstrOperid&""欢迎下载精品学习资源Conn.ExecutesqldeltResponse.Write "商品类别已经成功删除! " '添加记录ElseIf Soperate="add" Then newTitle = Request"txttitle"'判定数据库中是否存在此类别sql = "SELECT * FROM GoodsType WHERE Type='" & newTitle & "'" Set rsInsert = Conn.executesql'假如没有此类别名称,就创建新记录If Not rsInsert.EOF ThenResponse.Write "已经存在此商品类别 ,添加失败 ."Elsesql = "Insert into GoodsTypetype values'"&newTitle&"'" Conn.Executesql欢迎下载精品学习资源Response.Write商"End if'修改记录品类别已经成功添加! "欢迎下载精品学习资源ElseIf Soperate = "edit" Then newTitle = Request"txttitle" orgTitle = Request"sOrgTitle"'假如新类别名称和旧的不同就执行If newTitle<>orgTitle Then'判定数据库中是否存在此类别sql = "Select * from GoodsType where Type='"&newTitle&"'" Set rsInsert = Conn.ExecutesqlIf Not rsInsert.EOF ThenResponse.Write "已经存在此商品类别 ,添加失败 ." ElseConn.Execute"Update GoodsType Set type='"&newTitle&"' Where id="&CintOperidResponse.Write"商品类别已经成功修改! " End IfEnd If End If%><p align='center'><font style="FONT-SIZE: 12pt"><b> 商 品 类 别 管 理</b></font></p><center><table border="1" cellspacing="0" width="90%" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF" style='FONT-SIZE: 9pt'><tr><td width="60%" align="center" bgcolor="#FEEC85"><strong> 类 别</strong></td>欢迎下载精品学习资源<td width="20%" align="center" bgcolor="#FEEC85"><strong> 修 改</strong></td><td width="20%" align="center" bgcolor="#FEEC85"><strong> 选 择</strong></td></tr><%Dim rsSet rs = Server.CreateObject"ADODB.RecordSet" '读取全部的商品类别数据到记录集rs 中sql = "SELECT * FROM GoodsType ORDER BY Id" rs.Open sql,conn,1,1If rs.EOF ThenResponse.Write "<tr><td colspan=3 align=center><font style='COLOR:Red'>目前仍没有记录; </font></td></tr></table>"ElseDo While Not rs.EOF%><tr><td><%=rs"type"%></td><td align="center"><a href="GoodsType.asp.Oper=update&id=<%=rs"id"%>&name=<%=rs"type"%>">修改</a></td><td align="center"><input type="checkbox" name="type" id="<%=rs"id"%>"></td></tr><%rs.MoveNext Loop%></table><p align="center"><% End IfIf rs.RecordCount > 0 Then%><input type="button" value=" 全 选" onclick="sltAll">  ; ;<input type="button" value=" 清 空"onclick="sltNull"> ; ;<input type="submit" value=" 删 除" name="tijiao" onclick="SelectChk"><