购物系统详细设计Word格式文档下载.docx
- 文档编号:20781843
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:31
- 大小:594.81KB
购物系统详细设计Word格式文档下载.docx
《购物系统详细设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《购物系统详细设计Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
EDITPLUS:
EditPlus是一款由韩国SangilKim(ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的32位编辑器。
WindowsXP:
运行环境
1.4参考资料
《网络购物系统详细设计说明书》
2程序系统的组织结构
用一系列的图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
2.1注册模块
注册:
用户在购物前需要做的第一个步骤,程序获取用户注册过程中的必填信息,进行有效性验证,然后存入数据库,作为用户以后登录和信息修改的依据.
注册功能可采用“输入——处理——输出图”的形式
2.1.1算法:
rs=stmt.executeQuery("
select*fromuserwhereusername='
"
+username+"
'
);
//获得满足条件的数集
if(rs.next()){response.sendRedirect("
../myweb/register.jsp"
//检测是否有重名}
stmt.executeUpdate("
insertintouser(username,userpass,sex,email)values('
'
+userpass+"
+sex+"
+email+"
)"
//将注册的用户信息插入数据库当中去
response.sendRedirect("
../myweb/afterlogin.jsp"
//跳转到指定的页面中
主要验证算法放在客户端的JavaScript来处理,对已注册的用户名及时提示用户换用其他用户名.
验证失败,则阻止提交表单,提示用户输入正确的信息.
涉及用户表(user)
用户名是否为空检测:
if(document.form1.username.value=="
)
{alert("
请输入用户名。
document.form1.username.focus();
returnfalse;
}
检查密码是否为空:
if(document.form1.userpass.value=="
{
alert("
请输入密码。
document.form1.userpass.focus();
}
检查两次输入密码是否相同if(document.form1.userpass.value!
=document.form1.userpass1.value)
两次输入密码不同"
检查电子邮件地址是否为空if(document.form1.email.value=="
请输入电子邮件地址"
document.form1.email.focus();
return(false);
检查邮箱地址if(document.form1.email.value.indexOf("
@"
)==-1)
电子邮件格式不正确"
2.1.2注册界面
Username:
String(50),,输入用户名不能为数据库中存在的用户名,长度不能大于规定长度
Userpass:
String(50)
确认密码:
String(50)与userpass一致.
Sex:
String(50),下拉菜单男女供选择
Email:
String(50)有效邮箱地址.
2.1.5输出项
输入为空时提示用户名为空,重新输入
密码不能为空
前后密码要一致
必须选择男或女
不能为空,填入有效邮箱地址.
ID:
自动编号类型
用户名,密码,邮箱地址,性别存入用户表
(6)流程逻辑
2.1.6限制条件
需要windows系统,Tomcat服务器端,jsp以及access数据库的支持.本程序的运行环境必须与开发要求的硬件软件环境相一致。
2.1.7测试计划
序号
输入说明
期望结果
1
用户名为空
提示信息“此项为必填项,请设置你的用户名”
2
用户名:
sdasdas(存在的用户名),点击检测用户名
弹出提示窗口“网络有重名请重新注册!
!
”。
3
adasdas(不存在的用户名),点击检测用户名
直接返回主页
4
adasdas(不存在的用户名)
密码:
***(长度大于20)
导出错误界面“注册失败!
5
(空)
导出错误界面“此项为必填项,请设置你的密码”。
7
***
重复密码:
***(不一致)
导出错误界面“您设置的密码有误,请重新设置你的密码”。
8
邮箱格式不符
提示信息“格式有误,请重新填写您的E-mail地址”
2.1.8尚未解决的问题
运行该模块时,当用户输入用户名长度过长的话,不能提示出错误信息
Email检测不全面
登陆:
该程序是每个用户购买东西必须的步骤,用户通过注册后的数据存储在数据库后,调用数据库中数据后的信息。
登录步骤可分为:
输入用户信息——数据库验证——跳转到登录页面(信息验证错误)——提示信息错误重新登录(信息验证正确)
2.2.1算法:
登录模块程序通过对login.jsp文件中的enter变量的判断,当enter的值为退出时,关闭页面;
当enter的值为login,对其在登录页面输入的username变量的值及userpass的值进行判断,如果验证通过,如果是前台操作人员就进入系afterlogin.jsp界面,如果是后台操作人员就进入guanli.jsp界面。
否则提示“登录失败,返回到登录页面。
”
把符合的用户信息用户表中调出来:
anduserpass='
if(rs.next())
传递用户名参数,方便登录成功的页面使用:
session.setAttribute("
yonghuming"
username.toString());
跳转到登录成功的页面:
http:
//localhost:
8080/myweb/afterlogin.jsp"
else
登录失败,重新登录:
8080/myweb/login.jsp"
管理员登录代码与用户登录代码相同
验证登录的账号和密码的正确性;
数据库的录入要保持一致性。
2.2.2页面
登录成功后:
2.2.4输入项
username:
String(50),必须为数据库中存在的用户名
userpass:
String(50),与相应用户名匹配的密码.
managername:
String(50),必须为数据库中存在的管理员
managerpass:
String(50),与相应管理员名ID匹配的密码.
2.2.5输出项
输出的情况分为两种:
I:
登陆出现错误,请重新登录;
II:
进入登录成功后的用户个人空间;
2.2.6流程逻辑
2.2.7限制条件
2.2.8测试计划
sa(存在的用户名)
***(不正确)
提示“您设置的密码有误,请重新设置您的密码。
”以及弹出提示窗口“网络有重名请重新注册!
csa(存在的用户名)
***(正确)
正常登陆,显示操作界面。
点击注册按钮。
导向注册界面。
2.3用户中心模块
用户中心:
用户管理自己信息的必要模块,用户拥有对自己一些信息修改的权利,该模块通过对用户输入信息的存储到数据库,从而让用户的信息确定下来,具有验证登录系统的功能。
2.3.1算法
1.用户基本信息修改后将正确的信息传送到数据库保存,如果修改错误则返回修改面。
2.用户注册的修改后将正确的信息传送到数据库保存,如果修改错误则返回修改页面。
在gerenxinxi.jsp中,通过以下语句从数据库中调出用户相关信息:
<
tr>
td>
%=rs.getString("
username"
)%>
/td>
userpass"
sex"
email"
ahref="
xiugaigerenxinxi.jsp?
username=<
%=username%>
>
修改个人信息<
/a>
<
/tr>
通过以下语句将修改后的信息插入到数据库中:
Stringsql1="
updateusersetuserpass='
whereusername='
;
Stringsql2="
updateusersetsex='
Stringsql3="
updateusersetemail='
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
stmt.executeUpdate(sql3);
个人信息修改成功后提示并跳转到afterlogin.jsp:
alert("
修改成功!
location.href="
afterlogin.jsp"
用户可以进入购物车查看自己的订单信息
2.3.3输入项
String(50),不能与原密码相同
Email:
String(50),有效的邮箱地址
2.3.4输出项
用户信息:
.
1.用户注册:
输入在限制以内则输出帐户修改成功;
如果其中一项错误则显示修改失败,修改的密码清空,其他正确的信息保留。
流程逻辑
2.3.5限制条件
2.3.6测试计划
点击用户信息修改
导向修改界面
修改时邮箱不符合要求
提示邮箱输入有误,重新输入
修改信息时密码不符合要求
提示密码格式错误,重新输入
2.4搜索模块
程序的意义:
给予用户提供商品搜索功能,用户输入所需要商品的名称或者类别,输入后会显示用户所需要的商品和以及该商品相关的商品,以方便用户购买;
对于商品的搜索,分别按照三类来搜索,I:
按名称搜索;
按类别搜索;
按名称搜索:
用户输入自己所需要的商品名称,搜索后会显示用户输入名称的商品,最后会显示商品信息表。
2.4.1算法
给予access数据库分词搜索的实现方法,利用SQL语言进行模糊搜索,进行搜索时,调出数据库中存在搜索关键字全部或者几个的相关产品,忽略搜索时输入的空格符
获取搜索栏输入的关键字:
Stringgoodsname=request.getParameter("
search"
。
如何输入为空则显示提示:
if(goodsname==null){%>
center>
p>
请输入要查询的内容~亲!
/p>
/center>
%}
对输入的关键字进行拆分,转存到字符数组中:
intn=goodsname.length();
chararray[]=newchar[n];
goodsname.getChars(0,n,array,0);
for(inti=0;
i<
n;
i++)
{if(array[i]=='
'
)str=str;
elsestr=str+array[i]+"
%"
goodsname=str;
拆分之后,在数据库中进行查找:
select*fromgoodswheregoodsnamelike'
+goodsname+"
%'
从数据库中调出相应产品后,如果要查看商品的详细信息,可以通过链接进入detail.jsp,
在detail.jsp中通过商品ID来调用数据库中相应的商品信息:
%Stringdongtai01=null;
try{rs=stmt.executeQuery("
select*fromgoodswherebianhao='
30'
if(rs.next()){dongtai01=rs.getString("
img"
}%>
detail.jsp?
id=<
%=dongtai01%>
imgwidth="
490"
height="
300"
alt="
奥运刮起英伦风"
src="
/>
2.4.2相关数据库
2.4.3输入项
用户选择的商品种类sort1:
String
用户选择的商品名称goodsname:
String,用户浏览商品时,系统返回的id号,与商品在数据库中的id号相对应。
2.4.4输出项
数据库中存在的商品信息(goods):
商品名称:
(goodsname)String(50);
商品价格:
(price1)String(50);
商品库存:
(number1)String(50);
商品类别:
(sort1)String(50);
商品图片
查询错误或者数据库中没有此商品则返回暂无此商品信息;
输入为空提示输入。
2.4.5流程逻辑
2.4.6限制条件
需要windows系统,Tomcat服务器,jsp以及mysql数据库的支持.
2.4.7测试计划
输入商品名称,中间加入空格
输出与搜索信息匹配的商品信息
输入商品名称,插入不存在的字符字段
2.5购物车模块
购物车:
记录用户需要购买的货物,数量。
获取到添加请求以及商品id时进行添加操作,获取到删除请求以及商品id时进行删除操作,方便用户统一购买。
在添加商品时需要验证数据库中商品的信息,如无库存,则拒绝添加操作。
如要购买,则转向支付页面。
2.5.1算法:
程序获得用户的请求后,判断操作码,如添加操作,则获取商品id号,查询数据库获取信息,重新构建购物车,刷新购物车。
如删除操作,则获取商品id,删除商品,刷新购物车。
如购买,重新全部查询商品信息,确认信息的正确性,计算总额和应付金额,则转向支付页面,输出购物车具体信息。
涉及商品信息表(goodsneme)
购买信息表(buyerlist)
购买信息表2(buyerlist2)
订单表orderlist
订单表2(orderlist2)
相关代码:
detail.jsp传送订单
formname="
form1"
method="
post"
action="
cart02.jsp"
<
tablewidth="
50%"
200"
border="
0"
>
%Stringbianhao=null;
try{if(rs.next()){
//bianhao=rs.getString("
bianhao"
%>
<
商品名称:
goodsname"
商品价格:
price1"
商品品牌:
logo"
商品种类:
sort1"
商品剩余量:
number1"
%}
session.putValue("
rs.getString("
));
rs.close();
stmt.close();
conn.close();
catch(SQLExceptionex){
out.print("
购买不成功"
+ex);
}
finally{}
/table>
br>
请输入购买数量:
inputtype="
text"
name="
num"
&
nbsp;
&
inputTYPE="
submit"
value="
加入购物车"
!
--onclick="
location.href='
cart02.jsp?
bianhao=<
%=bianhao%>
-->
<
/form>
由以上语段可以看出,购买物品时,先从detail中传递商品的信息,并且可以从中输入购买数量,将得到的信息传递给cart02,在cart02中对其进行处理。
Cart02相关代码:
Stringbianhao=session.getValue("
).toString();
………………………………
select*fromgoodswherebianhao='
+bianhao+"
{
newnumber=request.getParameter("
number2=rs.getString("
if(newnumber==null||newnumber=="
)a=1;
elsea=Integer.parseInt(newnumber);
b=Integer.parseInt(number2);
newbuyer=session.getAttribute("
buyer=null;
newgood=rs.getString("
newprice1=rs.getString("
newnumber=String.valueOf(a);
if(a>
b){
response.sendRedirect("
8080/myweb/detail.jsp?
id="
+rs.getString("
else{
selectIDfromuserwhereusername='
+newbuyer+"
if(rs.next())buyer=rs.getString("
ID"
insertintobuyerlist(buyer,goodsname,num,price1)values('
+buyer+"
+newgood+"
+newnumber+"
+newprice1+"
}//第一个else的结尾
由以上代码可以看出,在cart02对detail传来的信息有如下处理:
1.当获得的购买数量大于库存量时,让用户重新输入购买数量。
2.当没有输入购买数量时,默认为购买一件。
3.当用户没有登录时候,跳到登录页面,让用户登录。
4.当用户成功登录时,就将购买物品信息和数量插入buyerlist中。
2.5.2购物车页面
用户登录后或者购买物品后,可以登录自己的购物车,查看自己的购物信息以及订单信息和提交订单。
mycar相关代码:
try{
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 购物 系统 详细 设计