例网上购书系统设计方案.docx

上传人:b****7 文档编号:10447570 上传时间:2023-02-11 格式:DOCX 页数:40 大小:479.55KB
下载 相关 举报
例网上购书系统设计方案.docx_第1页
第1页 / 共40页
例网上购书系统设计方案.docx_第2页
第2页 / 共40页
例网上购书系统设计方案.docx_第3页
第3页 / 共40页
例网上购书系统设计方案.docx_第4页
第4页 / 共40页
例网上购书系统设计方案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

例网上购书系统设计方案.docx

《例网上购书系统设计方案.docx》由会员分享,可在线阅读,更多相关《例网上购书系统设计方案.docx(40页珍藏版)》请在冰豆网上搜索。

例网上购书系统设计方案.docx

例网上购书系统设计方案

信息科学与技术学院

2007级计算机科学与技术专业

“软件工程”课程设计

 

项目名称:

网上购书系统

设计阶段:

需求分析、总体设计、详细设计、编码、测试、维护

设计人员:

李蒙秦志玲邓飞丁国亮付立峰

时间:

2010.9.10—2010.12.30

 

2010.12.30

前言

需求分析----------------------------------------李蒙

总体设计----------------------------------------李蒙、邓飞

详细设计----------------------------------------秦志玲、丁国亮

编码----------------------------------------小组共同完成

测试-----------------------------------------付立峰

维护-----------------------------------------付立峰

 

前言

1.1课题背景

互连网以前所未有的速度发展,成为与报纸、广播、电视相比肩的第四媒体,同时正以其便利的信息传输形式改变着人们的消费模式,便利简单、快捷、低成本的电子通信方式,买卖双方不谋面就可以进行各种贸易活动,走向商业的互连网已经成为网络经济的大势所趋。

1996年前后,在美国学术界提出“电子商务”(E-Business或E-Commerce)的概念,短短几年的时间里,这一概念以在全球各地被广泛接受。

根据买方和卖方的不同,电子商务市场可以划分四种类型:

B2B,B2C,C2B和C2C。

就规模而言,B2B和B2C居于主导地位。

B2C是商家与顾客之间的商务活动,它将成为电子商务的一种主要的商务形式,“B2C网上购物网站”是实现这种商务活动的电子平台。

B2B就是商家与商家之间的商务活动,它也将成为电子商务的一种主要的商务形式,“B2B商务网站”是实现这种商务活动的电子平台。

眼下电子商务网站正如雨后春笋般地大量涌现,企业网络化已经成为一种时尚,出于对市场需求的考虑,本小组设计了一个网上书店,实现了用户注册、用户登陆、网上购书、管理员对数据库查看、修改、删除等操作,基本实现了网上书店的一些主要功能,“麻雀虽小,五脏具全”。

1.2系统开发关键技术介绍

本实例采用三层架构设计,用户界面层通过统一的接口向业务层发送请求,业务曾按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据库封装成类的形式返回给用户界面层。

这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。

这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库的操作。

另外,本设计把页面中一些常用的部分集成为模块,例如页面的头和尾部,这样设计新的页面时如果有重复出现的部分,只需要拿现成的模块来组装就可以了。

这样方便、简洁,减少了工作量,是后台程序更有条理,思路更清晰。

另外,我们在前台对数据库表的的数据进行调用的时候,采用了数据库存储过程,这样就使得数据库的安全性更高,数据的调用、存储更有条理。

在相关联的表之间,我们还采用了触发器,进行后台的自动触发,使系统职能化。

一、需求分析(李蒙)

1、项目需求

使用Java技术设计和实现一个简约的购书网站。

对购物网站进行设计与实现一下功能:

(1)客户注册、客户登录

(2)客户资料修改、取回忘记密码

(3)客户按照商品分类浏览商品

(4)客户按照某一个或几个关键字搜索商品

(5)客户购物车功能

(6)客户订单管理(修改订单、撤销订单等)

(7)管理员对商品资料的管理(增、删、改、查、统计)

(8)分页浏览

(9)管理员分级管理

(10)客户访问习惯,跟踪用Filter跟踪客户IP

二.总体设计(李蒙、邓飞)

1.MVC三层架构工作原理

 

 

三层架构工作原理图

2.系统

分析

本设计把页面中一些常用的部分集成模块,这样设计新的页面是如果有重复出现的部分,只需要拿现成的模块来组装就可以了。

设计对数据库的调用采用三层架构设计,对于需要连接数据库的页面,通过统一的数据库调用管理,给页面分配连接,这样就方便了对数据库的调用和管理,同时使得对数据库的调用不会产生拥塞,并且在一定程度上增加了数据库的安全性。

本设计分为客户模块和管理员模块。

用户模块包括用户注册、登陆、查看图书详细信息、在线购书、查看、整理用户订单等功能。

管理员模块包括对注册用户资料的添加、删除等管理,对图书的添加、删除、分类等一系列管理功能。

3.系统设计

通过上述分析,在建网上购书系统之前,先对数据库进行分析,设计好系统的功能模块,并建好系统所需的数据库及要用到的一些表。

3.1系统功能模块设计

根据上述各项功能的分析,可以画客户界面、管理员界面的功能模块图。

功能模块分为用户功能模块和管理员功能模块,用户登陆后的主要功能是实现网上购书,管理员功能模块主要是实现管理员对书店的管理,如用户管理、图书管理、订单管理等。

 

图1-1客户界面系统功能模块

图1-2管理员界面系统功能模块

3.2设计数据流程图

图1-购书系统数据流程图

4.系统数据库设计

4.1数据库需求分析

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入.收集基本数据,数据结构以及数据处理的流程。

通过上述系统功能分析,针对一般在线书店的需求,总结出如下需求信息。

(1)用户分一般用户和管理员。

(2)订单分单张详细订单和总订单。

(3)每一本图书都从属一种类型。

(4)一个用户可以购买多本图书。

(5)一个用户对应一张定单列表。

根据上面的设计规划出的实体有:

管理员信息实体、用户信息实体、图书实体、图书分类实体、订单实体、订单列表实体。

4.2E-R图

 

图2-1实体之间关系E-R图

图2-2管理员信息E-R图

图2-3订单列表E-R图

图2-4图书E-R图

图2-5订单列表E-R图

图2-6用户信息E-R图

 

 

图2-8综合E-R图

三、详细设计(秦志玲、丁国亮)

1.数据库中的所有表

根据项目要求实现数据库设计,用MicrosoftAccess建立数据库文件。

共建立4个表,分别为会员信息表、订单表、商品信息表、收货人信息表。

Gd_username会员信息表

列名

数据类型

长度

是否为空

ID

自动编号

Gd_username

文本型

Gd_password

文本型

Role

数字型

Gd_orderinfo订单表

列名

数据类型

长度

是否为空

ID

自动编号

gd_orderid

文本型

gd_orderdate

文本型

gd_productid

数字型

gd_price

数字型

gd_allprice

数字型

gd_count

数字型

gd_status

文本型

gd_userid

文本型

gd_name

文本型

gd_email

文本型

gd_tel

文本型

gd_code

文本型

gd_address

文本型

gd_remarks

文本型

商品信息表

列名

数据类型

长度

是否为空

ID

自动编号

name

OLE 对象

picture

文本型

author

文本型

publisher

数字型

printinOorder

文本型

pageNumber

文本型

ISBN

文本型

kaiben

文本型

specialDescription

文本型

sort

文本型

discount

文本型

contentsDescription

文本型

stocks

数字型

catalog

文本型

appreciation

文本型

remarks

文本型

click

数字型

price

数字型

收货人信息表

列名

数据类型

长度

是否为空

ID

自动编号

gd_username

文本型

gd_password

文本型

gd_email

文本型

gd_qq

文本型

gd_name

文本型

gd_identify

文本型

gd_tel

文本型

gd_address

文本型

gd_code

文本型

gd_joindate

文本型

gd_lastlogindate

文本型

gd_lastIP

文本型

gd_remarks

文本型

2.系统实现

主要代码功能:

AdminBean.java

数据的读取,管理员对数据的增、删、该操作

DBBean.java

对数据库的连接

DateBean.java

读取系统时间

ProductRecordBean.java

对product表变量的定义

OrderList.java

订单表(gd_OrderInfo)变量的定义

UserBean.java

用户登录后信息的显示、密码取回、增加用户、更新用户等

ProductBean.java

热门产品查询、分类查询、产品搜索类

getPasswordBean.java

将密码以E-mail方式发给用户

MVCServlet.java

session变量的定义

UsernameServlet.java

用户注册时对用户名是否可用的判断

VerifyCodeServlet.java

验证码的生成

3.系统界面

首页

用用户名limeng,密码为123456登陆后

点击右下角“进入管理”

用用户名admin,密码123456登陆后效果:

修改会员界面

增加图书界面

订单管理

4.关键源代码

(1).session会话实现:

publicclassMVCServletextendsHttpServlet

{

protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException

{

response.setContentType("text/html;charset=UTF-8");

PrintWriterout=response.getWriter();

request.setCharacterEncoding("gb2312");

response.setCharacterEncoding("gb2312");

Stringaction=request.getParameter("action").trim();

HttpSessionsession=request.getSession();

if(action.equals("login"))//用户登陆

{

Stringpasscode=request.getParameter("passcode");

if(session.getAttribute("passcode").equals(passcode))

{

Stringusername=request.getParameter("username").trim();

Stringpassword=request.getParameter("password").trim();

UserBeanuserbean=newUserBean();

Stringlogin=userbean.testLogin(username,password);

if(login=="notlogin")

{

session.setAttribute("gd_username","");

session.setAttribute("gd_password","");

session.setAttribute("gd_login","notlogin");

//out.print("passcodeyes,loginfail!

!

");

response.sendRedirect("userlogin.jsp");

}

else

{

Stringuserinfo[]=login.split("\\|");

DateBeandate=newDateBean();

Stringlastlogindate=date.getDate();

StringlastIP=request.getRemoteAddr();

session.setAttribute("gd_lastlogindate",userinfo[0]);

session.setAttribute("gd_lastIP",userinfo[1]);

session.setAttribute("gd_id",userinfo[2]);

session.setAttribute("gd_username",userinfo[3]);

session.setAttribute("gd_password",password);

session.setAttribute("gd_login","login");

out.println("lastlogindateis"+lastlogindate+"lastIPis"+lastIP);

userbean.updateUserlogin(Integer.parseInt(userinfo[2]),lastlogindate,lastIP);

response.sendRedirect("userlogin.jsp");

}

}

else

{

session.setAttribute("gd_username","");

session.setAttribute("gd_password","");

session.setAttribute("gd_login","notlogin");

//out.print("passcodenologinfail!

!

");

response.sendRedirect("userlogin.jsp");

}

}

elseif(action.equals("register"))//用户注册

{

Md5m=newMd5();

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password").trim();

Stringemail=request.getParameter("email");

Stringqq=request.getParameter("qq");

Stringname=request.getParameter("name");

Stringidentify=request.getParameter("inentity");

Stringtel=request.getParameter("tel");

Stringaddress=request.getParameter("address");

Stringcode=request.getParameter("code");

DateBeannowDate=newDateBean();

Stringjoindate=nowDate.getDate();

Stringlastlogindate=nowDate.getDate();

StringlastIP=request.getRemoteAddr();

UserBeanuserbean=newUserBean();

if(userbean.addUser(username,password,email,qq,name,identify,tel,address,code,joindate,lastlogindate,lastIP))

{

out.println("alert('注册成功!

请登陆!

');"+";");

out.println("点击返回主页");

}

else

{

out.println("alert('注册失败!

请确认注册信息是否有误!

');"+";");

out.println("点击返回注册页面");

}

}

elseif(action.equals("getPassword"))//用户获取密码,通过邮箱取回

{

Stringusername=request.getParameter("username");

Stringemail=request.getParameter("email");

out.print(username+""+email);

UserBeanuserbean=newUserBean();

if(userbean.getPassword(username,email))

{

out.println("邮件已经发送到你的邮箱!

");

}

else

{

out.println("用户名或者邮箱错误,请输入正确的用户名和对应的邮箱!

");

}

}

elseif(action.equals("logout"))//用户退出登陆

{

session.setAttribute("gd_username","");

session.setAttribute("gd_password","");

session.setAttribute("gd_login","notlogin");

//out.print("loginout!

!

");

response.sendRedirect("default.jsp");

}

elseif(action.equals("admin_logout"))//管理员,退出登陆

{

session.setAttribute("admin_gd_username","");

session.setAttribute("admin_gd_password","");

session.setAttribute("admin_gd_login","notlogin");

response.sendRedirect("default.jsp");

}

elseif(action.equals("adminlogin"))//管理员登陆

{

Stringpasscode=request.getParameter("passcode");

if(session.getAttribute("passcode").equals(passcode))

{

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password");

AdminBeanadminbean=newAdminBean();

Stringlogin=adminbean.admin_Login(username,password);

if(login.equals("admin_notlogin"))

{

out.println("用户名或者密码错误..2秒后返回登陆页面..");

out.println("");

}

else

{

session.setAttribute("admin_gd_username",username);

session.setAttribute("admin_gd_password",password);

session.setAttribute("admin_gd_login","login");

session.setAttribute("admin_gd_role",login);

response.sendRedirect("gd_admin/gd_Admin.jsp");

}

}

else

{

out.println("验证码错误..2秒后返回登陆页面..");

out.println("");

}

}

elseif(action.equals("DeleteUser"))

{

AdminBeanab=newAdminBean();

Stringid=request.getParameter("id");

if(ab.deleteUser(Integer.parseInt(id)))

{

out.println("

");

out.println("删除成功..2秒后返回..");

out.println("");

out.println("

");

}

else

{

out.println("

");

out.println("删除失败..2秒后返回..");

out.println("

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

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1