课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx

上传人:b****3 文档编号:16405615 上传时间:2022-11-23 格式:DOCX 页数:43 大小:335.24KB
下载 相关 举报
课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx_第1页
第1页 / 共43页
课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx_第2页
第2页 / 共43页
课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx_第3页
第3页 / 共43页
课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx_第4页
第4页 / 共43页
课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx

《课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx(43页珍藏版)》请在冰豆网上搜索。

课程设计基于JSP网上书店系统的设计与实现Word文件下载.docx

现有图书管理:

修改,删除,查看。

用户管理:

查看,修改,删除。

订单管理:

查看订单清单,更新订单付款,出货状态,删除订单。

留言管理。

职工管理。

出版社管理。

(二)角色识别

角色识别的任务是找出所有可能与系统发生交互行为的外部实体,对象和系统。

他们的行为不受系统的控制,但是可以提供输入给系统(即使用系统的功能,或者能够响应系统的服务请求,为系统提供服务的接口)。

在前面的描述中可知,用户在访问系统时,可以浏览书籍和查询书籍,并使用购物车筛选自己中意的书籍,购物完之后到服务台进行结帐,并保留订单以便收到货物时进行核对,很显然系统存在这样的主要角色,我们定义该角色为前台客户。

同样在系统的后台,也需要人员管理货物,查询,处理订单,管理注册用户,我们定义该角色为系统管理员。

综上所述,本系统实际只包含两个角色:

前端用户,系统管理员。

前台用户的行为:

管理个人信息,前台订单处理,购物,浏览信息。

管理个人信息的操作:

用户注册,用户信息修改,用户登录,用户信息查看。

前台订单处理的操作:

结帐,查看订单状态,取消订单。

购物操作:

浏览购物车,将商品放入购物车,取消购物车中的商品,修改购物车中商品的数量,清空购物车。

浏览信息:

查看图书详细信息,查找图书。

系统管理员的行为:

用户管理,后台订单管理,商品管理。

用户管理的操作:

管理员登录,后台验证,查看/修改用户信息,添加/删除用户。

后台订单管理的操作:

查看订单,确认订单,修改订单状态,删除订单。

商品管理:

查看图书列表,查看图书详细信息,添加图书,修改图书,删除图书,添加图书分类,删除图书分类,浏览图书分类列表。

为了更好的理解我画出了前台用户模型图和系统管理员模型图:

前台用户模型:

图2-1前台用户模型

图2-2系统管理员模型

表2.1模块功能列表

序号

功能模块

类型

备注

1

前台用户

管理个人信息

用户注册,用户信息修改,用户登录,用户信息查看

2

前台订单处理

结帐,查看订单状态,取消订单

3

购物

浏览购物车,将商品放入购物车,取消购物车中的商品,修改购物车中商品的数量,清空购物车

4

浏览信息

查看图书详细信息,查找图书

5

系统管理员

用户管理

管理员登录,后台验证,查看用户信息,修改用户信息,添加用户,删除用户

6

后台订单管理

查看订单,确认订单,修改订单状态,删除订单

7

商品管理

查看图书列表,查看图书详细信息,添加图书,修改图书,删除图书,添加图书分类,删除图书分类,浏览图书分类列表

表2.1是根据模块完成任务的不同进行划分的,一共包括7大模块,其中与前台相关的共有4个,与后台相关的有3个。

这些功能模块是建立在我们对系统的需求分析和设计的基础上的。

当然这是从大的方向对系统进行的很粗糙的划分,进入系统设计阶段我们将会对系统进行更加精细的划分设计。

任何系统的功能的实现都离不开角色的参与,为了赋予不同的角色不同的功能和权限,也为了一定程度上确保系统交易的安全性和顺利进行,我们必须对系统的各种用户进行管理,从表2.1可以看出,系统提供用户登录,用户注册,用户信息查看,用户信息修改的功能。

用户登录后是为了从后端数据库中核实用户的登录名和密码,防止非法用户下订单,确保系统的安全性和秩序。

其他的功能也是最大限度的保证系统的顺利进行和安全性。

这里就不一一说明了。

第三章系统设计

本系统采用三层架构设计,它的工作原理如图3-1所示。

图3-1三层架构模型

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

(三)数据库设计

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

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

1.数据库需求分析

针对一般在线书店的需求,得出如下需求信息。

▪用户分为游客和已注册用户。

▪订单分为单张详细订单和总订单。

▪一个用户可以购买多本图书。

▪一个用户对应一张订单。

▪一个列表对应多张订单。

针对本系统功能分析,总结出如下的需求信息。

▪用户,包括数据项:

用户ID、用户名、密码。

▪图书,包括数据项:

图书编号、图书名、价格、图书介绍。

▪订单列表,包括数据项:

订单编号、图书编号、购书数量。

▪订单,包括数据项:

订单编号、用户编号、下单时间。

从本系统中规划出的实体有:

用户实体、图书实体、订单实体、订单列表实体。

11N

N

图3-5实体关系E-R图

图3-6图书实体E-R图

图3-7用户实体E-R图

图3-8订单实体E-R图

图3-9订单列表实体E-R图

2.数据库逻辑结构设计

网上书店数据库中各个表的设计结果如下所示。

表3.1图书信息表book

字段名

数据类型

长度

允许空

说明

ID

int

自动编号,主键

bookname

书名

bookclass

varchar

255

图书类别

author

100

yes

图书作者

publish

float

8

出版社

bookNo

书号

Content

text

16

内容介绍

price

tinyint

价格

Amount

总数量

Leav_number

库存量

picture

封面

reg_time

datetime

入库时间

表3.2用户信息表shop_user

自动编号,会员编号

username

no

用户名

password

密码

Names

会员级别

Sex

50

名字

Addr

地址

Phone

25

电话

Post

邮编

Email

邮箱

Retime

注册时间

RegIpAddr

20

注册ip

表3.3订单信息表orders

自动编号,订单编号

order_id

会员编号

user_id

图书编号

quantity

订购数量

submit_time

提交订单时间

consignmentTime

交货时间

totalprice

总价

content

isPayoff

11

是否付款

isSale

是否发货

表3.4订单列表allorder

自动编号,卡类型编号

orderID

订单号

BookNo

数量

表3.5管理员信息表bookadmin

AdminUser

管理员用户名

AdminPass

yes

管理员密码

表3.6图书分类表bookclass

Classname

30

第四章详细设计

(一)实现bookshop.run包

1.login.java

这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这个系统,因此需要检验每个用户的合法性,管理用户登录的login.java正是要完成这样的功能。

类中定义了个private属性和他们对应的setX()/getX()方法和默认构造函数和execute()getSql()操作。

private属性分别是:

    privateStringusername;

//登录用户名

privateStringpasswd;

//登录密码

privatebooleanisadmin;

//是否管理员登录

privatelonguserid=0;

//用户ID号

 重要操作:

主要介绍execute()

execute()操作

功能:

从数据库中查询用户信息。

返回值:

boolean型,如果取值成功返回true,否则,返回false。

设计思路:

获得数据库连接对象Connection对象,ResultSet对象和Statement对象――》调用getSql()方法获得sql语句――》执行sql语句。

程序主干部分代码:

       publicbooleanexecute()throwsException{

………

try{con=DataBase.getConnection();

     stmt=con.createStatement();

     rs=stmt.executeQuery(getSql());

  }catch(Exceptione){

       e.printStackTrace();

}

while(rs.next()){

if(!

isadmin)

{userid=rs.getLong("

id"

);

flag=true;

………}

2.op_book.java

该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。

op_book类有以下属性:

privatebookabooks=newbook();

//新的图书类

privatejavax.servlet.http.HttpServletRequestrequest;

//建立页面请求

privatebooleansqlflag=true;

//对接收到的数据是否正确

privateVectorbooklist;

//显示图书列表向量数组

privateintpage=1;

//显示的页码

privateintpageSize=5;

//每页显示的图书数

privateintpageCount=0;

//页面总数

privatelongrecordCount=0;

//查询的记录总数

publicStringsqlStr="

"

;

op_book类有以下方法(省去了属性对应的getX()/setX()方法):

book_search();

完成图书查询,包括分类,关键字查询。

delete();

负责图书的删除。

getOnebook();

主要完成图书的单本查询,用于支持页面的“查看详细信息”。

insert();

负责图书的添加。

to_String();

把字符串以“ISO8859-1”编码形式输出,使页面正常显示。

update();

负责修改图书信息。

getRequest();

负责接受页面传递过来的参数,分解并将参数存放到abooks对象中。

重要操作:

主要介绍getRequest()方法

负责从页面接受表单数据并分解,设置abooks对象相应属性。

参数设计:

页面传递的Request对象,其中包括表单数据。

boolean型,true表示成功,否则返回false。

设计思想:

获取页面传递的Request对象—》分解Request对象—》获取表单参数值—》把参数值设置成图书对象abooks相对应的属性值。

程序主干代码:

publicbooleangetRequest(javax.servlet.http.HttpServletRequestnewrequest){………

request=newrequest;

StringBookName=request.getParameter("

BookName"

abooks.setBookName(to_String(BookName));

Stringauthor=request.getParameter("

author"

abooks.setAuthor(to_String(author));

Stringpublish=request.getParameter("

publish"

abooks.setPublish(to_String(publish));

Stringbookclass=request.getParameter("

bookclass"

abooks.setBookClass(bc);

Stringbookno=request.getParameter("

bookno"

abooks.setBookNo(to_String(bookno));

Stringpicture=request.getParameter("

picture"

abooks.setPicture(to_String(picture));

price=newFloat(request.getParameter("

price"

)).floatValue();

abooks.setPrice(price);

amount=newInteger(request.getParameter("

amount"

)).intValue();

abooks.setAmount(amount);

StringContent=request.getParameter("

Content"

abooks.setContent(to_String(Content));

……..

}

3:

op_user.java:

为了使用上的方便,我们把对用户的管理,包括用户的添加,删除,修改,查询等集合成一个管理类。

该类具有以下属性:

privateuseruser=newuser();

//新的用户对象

privateVectoruserlist;

//显示用户列表向量数组

//显示的页码

privateintpageSize=8;

//每页显示的图书数

privateStringmessage="

//出错信息提示

privateStringusername="

//注册后返回的用户名

privatelonguserid=0;

//注册后返回的用户ID

该类具有的主要方法(省去了属性相关的getX()/setX()操作):

add():

负责用户的添加。

delete():

负责删除指定ID的用户。

get_alluser():

取出书店所有用户的信息。

getGbk():

返回指定字符串的GBK编码。

getUserinfo():

负责取得用户的详细信息。

update():

负责修改用户资料。

getRequest():

获取表单数据,并分解存储。

4:

op_buy.java

我们把业务逻辑和对订单以及和订单列表的管理集成到了该类当中。

该类具有以下属性:

privatejavax.servlet.http.HttpServletRequestrequest;

privateHttpSessionsession;

//页面的session;

privatebooleansqlflag=true;

//对接收到的数据是否正确

privateVectorpurchaselist;

//显示图书列表向量数组

privateVectorallorder;

//订购单列表

privateVectororder_list;

//订单清单列表

privateintbooknumber=0;

//购书总数量

privatefloatall_price=0;

//购书总价钱

privatebooleanisEmpty=false;

//库中的书数量是否够购买的数

privateintleaveBook=0;

//库存数量

privateStringorderId="

//用户订单号

privatebooleanisLogin=true;

//用户是否登录!

privateintpage=1;

//显示的页码

privateintpageSize=15;

//每页显示的订单数

privateintpageCount=0;

//页面总数

privatelongrecordCount=0;

//查询的记录总数

该类的主要操作(省去了属性相关的getX()/setX()操作)

addnew():

负责向购物车中添加新购买的图书。

负责从数据库中删除指定ID的订单。

modiShoper():

负责修改购物车中已选的图书。

delShoper():

负责删除购物车中的物品。

getAllorder():

负责从数据库中的订单列表中查询指定用户的订单列表。

获得指定字符串的GBK编码。

getOrder():

获得单个订单对象。

payout():

提交购物车,把订单插入到数据库中。

该方法负责当用户付款后,把数据中对应订单的是否付款标记修改成已付状态。

主要介绍addnew()方法:

负责向购物车中添加一条新记录。

页面传递的request对象。

boolean类型,成功返回true,否则返回false。

从页面获得表单数据(request对象中)---》获得图书编号等参数值—》判断购买数量是否合法—》如果是可以操作,否则不能操作—》判断是否第一次购买—》如果是第一次购买,按第一次购买操作—》否则查询购买列表,找是否有相应项,有则直接修改数量—》否则添加新记录。

函数代码:

publicbooleanaddnew(HttpServletRequestnewrequest)throwsException{

…………

request=newrequest;

StringID=request.getParameter("

bookid"

StringAmount

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

当前位置:首页 > 初中教育 > 政史地

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

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