电子书店系统Word格式文档下载.docx

上传人:b****7 文档编号:22933986 上传时间:2023-02-06 格式:DOCX 页数:87 大小:643.61KB
下载 相关 举报
电子书店系统Word格式文档下载.docx_第1页
第1页 / 共87页
电子书店系统Word格式文档下载.docx_第2页
第2页 / 共87页
电子书店系统Word格式文档下载.docx_第3页
第3页 / 共87页
电子书店系统Word格式文档下载.docx_第4页
第4页 / 共87页
电子书店系统Word格式文档下载.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

电子书店系统Word格式文档下载.docx

《电子书店系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子书店系统Word格式文档下载.docx(87页珍藏版)》请在冰豆网上搜索。

电子书店系统Word格式文档下载.docx

4.查看图书功能:

任何登录论坛的用户均可以使用查看图书功能。

用户进入书店后,可以通过单击图书名称查看书籍的详细信息。

普通用户可以查看到书名、作者、出版社、出版日期、ISBN、类别、价格、封面图片和内容简介等信息,并可以单击“加入购物车”超链接将此图书放入购物车中保存。

管理员还可以查看到此书的销量信息。

5.添加图书功能:

只有管理员可以使用添加图书功能。

通过单击导航栏上的“添加新图书”超链接进入添加页面,将图书的各种基本信息填写好后提交。

6.修改图书功能:

只有管理员可以使用修改图书功能。

通过单击图书列表右侧的“修改”超链接进入修改页面,在原有信息的基础上修改并提交。

7.删除图书功能:

只有管理员可以使用删除图书功能。

通过单击图书列表右侧的“删除”超链接删除该图书信息。

8.查看用户信息功能:

只有管理员可以使用查看用户信息功能。

可以通过单击用户列表中的用户名查看该用户的详细信息。

9.修改个人信息功能:

任何登录书店的用户均可以使用修改个人信息功能。

用户可以通过单击导航栏上的“修改个人信息”超链接进入该页面,可以对该用户的真实姓名、密码、性别、年龄、身份证号、电话、电子邮件、联系地址等信息进行修改。

若输入的修改信息合法,则修改成功。

10.修改用户功能:

只有管理员可以使用修改用户信息功能。

可以通过单击用户列表中右侧的“修改”超链接进入用户信息修改页面,在原有信息的基础上修改并提交。

11.删除用户功能:

只有管理员可以使用删除用户信息功能。

可以通过单击用户列表中右侧的“删除”超链界将该用户信息删除,与此同时,也将会删除属于该用户的所有订单信息。

12.查询订单功能:

任何登录书店的用户均可以使用查询订单功能。

普通用户可以按订单号、订单日期和订单状态进行查询,管理员还可以按订单所属的用户进行查询。

13.查看订单功能:

任何登录书店的用户均可以使用查看订单功能。

其中,普通用户只能查看自己的订单信息,包括此订单中所购买的书籍名称、共计金额、订单号、下单日期、订单状态等信息。

管理员可以查看所有订单。

单击订单号可以进入查看订单详细信息页面。

14.修改订单功能:

只有管理员可以使用修改订单功能。

通过单击订单列表中的订单号进入查看订单详细信息页面,根据提示进行订单状态的修改。

15.删除订单功能:

只有管理员可以使用删除订单功能。

通过单击订单列表中右侧的“删除”超链接删除相应的订单记录。

16.生成订单功能:

当普通用户决定购买购物车中的书籍时,系统将为本次交易生成一个订单号,此订单号唯一,可做为交货的依据之一。

17.购物车功能:

当普通用户单击“加入购物车”超链接时,所对应的书籍放入购物车内,该书籍在整个会话期间一直保留在购物车中,直到用户决定购买生成订单为止。

用户还可以单击“从购物车中删除”超链接将该书籍从购物车中清除。

18.退出功能:

当用户所有操作结束后,单击导航栏上的“退出”超链接退出书店。

退出操作会销毁该用户登录时保存在session中的所有信息,下次再使用本系统时,必须重新登录。

2总体设计

2.1开发与设计的总体思想

电子书店系统的目的是为广大的网络用户提供一个网上购书平台,利用网络的便捷方便人们的日常生活。

为了使它适合更多的用户使用,系统的界面设计应该尽量做到友好、简洁,功能的实现更注重人性化,方便用户的购买,使得用户很快便可以熟练掌握使用方法。

本系统采用B/S模式,服务器端使用JSP进行动态网页的开发。

2.2系统模块结构图

依据需求分析结果,电子书店系统大体上可以分为六个模块:

数据库访问模块、用户管理模块、图书管理模块、购物车模块、订单管理模块和分页显示模块。

如图6-1所示:

 

图6-1系统模块结构图

2.3模块设计

1.数据库访问模块:

利用JavaBean封装对数据库的操作,主要包括连接数据库、添加、修改、删除、查询数据表、关闭连接等功能。

当JSP页面中需要访问数据库时直接调用这个JavaBean即可。

数据库访问模块功能树如图6-2所示:

图6-2数据库访问模块

2.用户管理模块:

用户管理模块负责管理电子书店所有的合法注册用户的信息并实现用户登录、登出、权限验证等操作。

主要功能包括新用户注册、用户登录、查看和查询用户信息、修改和删除用户等功能。

用户管理模块功能树如图6-3所示:

图6-3用户管理模块

3.图书管理模块:

图书管理模块负责管理电子书店中的所有图书信息。

包括查看、查询、添加、修改、删除图书等功能。

图书管理模块功能树如图6-4所示:

图6-4图书管理模块

4.购物车模块:

购物车模块包括将图书加入或拿出购物车、显示购物车中的物品、清空购物车等功能。

购物车模块功能树如图6-5所示:

图6-5购物车模块

5.订单管理模块:

订单管理模块负责管理当前的所有订单信息,包括生成订单、查看订单、修改订单状态、删除订单等功能。

订单管理模块功能树如图6-6所示:

图6-6订单管理模块

6.分页显示模块:

分页显示模块包括分页显示用户信息列表、图书信息列表和订单信息列表等功能。

分页显示模块功能树如图6-7所示:

图6-7分页显示模块

2.4系统流程描述

系统的流程图如图6-8所示:

图6-8系统流程图

2.5界面设计

电子书店系统的界面设计仍遵循简洁美观、方便易用的基本原则。

为了方便用户在各个功能模块间快速切换,本系统使用了系统导航栏,在各个页面的头部均包含了导航文件。

系统的具体设计如下:

1.系统登录页面设计,具体设计效果图如图6-9所示:

图6-9系统登录页面设计效果图

2.用户注册页面设计,具体设计效果如图6-10所示:

图6-10用户注册页面设计效果图

3.电子书店首页面,负责显示当前销量排在前十位的图书信息列表,具体设计效果如图6-11所示:

图6-11电子书店首页面设计效果图

4.修改个人信息页面设计,具体设计效果如图6-12所示:

图6-12修改个人信息页面设计效果图

5.查看图书信息页面设计,具体设计效果如图6-13所示:

图6-13查看图书信息页面设计效果图

6.查看购物车页面设计,具体设计效果如图6-14所示:

图6-14查看购物车页面设计效果图

7.购买确认页面设计,具体设计效果如图6-15所示:

图6-15购买确认页面设计效果图

8.订单生成页面设计,具体设计效果如图6-16所示:

图6-16订单生成页面设计效果图

9.查看订单信息列表页面设计,具体设计效果如图6-17所示:

图6-17查看订单信息列表页面设计效果图

10.用户管理页面设计,具体设计效果如图6-18所示:

图6-18用户管理页面设计效果图

11.图书管理页面设计,具体设计效果如图6-19所示:

图6-19图书管理页面设计效果图

12.订单管理页面设计,具体设计效果如图6-20所示:

图6-20订单管理页面设计效果图

13.修改订单状态页面设计,具体设计效果如图6-21所示:

图6-21修改订单状态页面设计效果图

2.6数据库设计

本系统采用Access数据库,在数据库中使用数据表book来存储书店现有的图书信息,表的结构如表6-1所示:

表6-1数据表book的结构

名称

字段名称

数据类型

主键

非空

图书id号

bookid

数字(自动编号)

Yes

图书名称

bookname

文本

No

作者

author

出版日期

pubdate

日期/时间

出版社

pubhouse

ISBN号

isbn

图书类型

type

图书封面

cover

内容简介

profile

备注

价格

price

数字

销售量

salenum

另外,还使用了user数据表存储书店用户的基本信息,表的结构如表6-2所示:

表6-2数据表user的结构

用户id号

userid

用户名

name

真实姓名

truename

密码

password

性别

sex

年龄

age

身份证号

IDcard

电话

phone

电子邮件

email

联系地址

address

用户级别

rank

订单信息使用数据表orderinfo来存储表的结构如表6-3所示:

表6-3数据表orderinfo的结构

订单id号

id

订单号

orderid

所属用户id号

所属用户名

username

购买图书id号

下单日期

orderdate

订单状态

orderstate

本系统中采用JDBC-ODBC桥的方式连接数据库,因此要首先配置一个ODBC数据源,数据源名定为bookstore。

3详细设计

基于系统需求分析与系统总体设计的结论,本节中会分别阐述系统的详细设计和实现过程。

3.1应用部署图

论坛系统对应于一个名为bookstore的Web应用,具体的部署情况及目录结构如图6-22所示:

图6-22应用部署图

3.2访问数据库的JavaBean

由于在本系统的多个JSP页面中都需要访问数据库,我们使用一个JavaBean来专门完成数据库的连接、访问等操作,把数据库操作封装在一个类中,每次需要访问数据库时只需实例化这个类并利用类里面提供的各种公有方法来完成对应的功能即可。

这样,既可以节省编码时间,也提高了代码的利用率。

1.模块描述

负责完成与数据库的连接、访问、关闭等操作。

2.类的设计与实现

(1)名称:

DBBean.java

(2)功能:

负责完成与数据库的连接、访问、关闭操作。

(3)属性设计:

如表6-4所示。

表6-4类属性定义表

属性名

属性类型

访问控制

描述

driverStr

String

私有(private)

要加载的驱动程序类名

ConnStr

连接得数据库url

Conn

Connection

驱动程序和指定数据库之间的连接对象

Stmt

Statement

语句对象

(4)构造方法设计

1)方法定义:

publicDBBean()

2)IPO图:

输入:

无。

处理:

加载由属性driverStr指定的驱动程序,若加载中出现异常,则显示异常描述信息。

输出:

3)程序清单:

publicDBBean()

{

try{

//加载驱动程序

Class.forName(driverStr);

}

catch(ClassNotFoundExceptionex){

System.out.println(ex.getMessage());

}

(5)主要方法设计

方法一:

executeQuery方法

publicResultSetexecuteQuery(Stringsql)

要执行的SQL语句。

创建驱动程序和指定数据库间的连接对象,建立语句对象,利用语句对象的executeQuery()方法执行SQL语句,并将执行结果存放于局部变量rs中。

查询结果集rs。

//执行查询SQL语句,返回值是一个满足查询条件的结果集

publicResultSetexecuteQuery(Stringsql)

ResultSetrs=null;

//获取驱动程序对象和指定数据库之间的连接对象

conn=DriverManager.getConnection(connStr);

//建立语句对象

stmt=conn.createStatement();

//执行SQL语句,返回一个结果集对象

rs=stmt.executeQuery(sql);

}

catch(SQLExceptionex){

returnrs;

方法二:

executeUpdate方法

publicintexecuteUpdate(Stringsql)

创建驱动程序和指定数据库间的连接对象,建立语句对象,利用语句对象的executeUpdate()方法执行SQL语句,并将执行结果存放于局部变量result中。

更新的记录个数result。

//执行添加、修改和删除SQL语句,返回值是受到此次操作影响的记录个数

publicintexecuteUpdate(Stringsql)

intresult=0;

try{

conn=DriverManager.getConnection(connStr);

result=stmt.executeUpdate(sql);

catch(SQLExceptionex){

returnresult;

方法三:

close方法

publicvoidclose()

调用Connection对象和Statement对象的close()方法,关闭语句对象和连接对象。

//关闭方法

publicvoidclose()

//关闭语句对象

stmt.close();

//关闭连接对象

conn.close();

(6)编译和部署JavaBean

编写好的JavaBean,可以使用JDK中的javac命令进行编译,需要注意的是,不带参数的javac命令没有生成目录的能力,需要使用带-d参数的命令进行编译:

javacDBBean.java–d.

其中的“.”代表当前目录,编译成功后,会在当前目录下生成一个名为dbBean的目录,在该目录中有编译好的字节码文件DBBean.class。

然后,将dbBean子目录以及该目录中的字节码文件复制到“Tomcat安装目录\webapps\bookstore\WEB-INF\classes”中(bookstore为电子书店系统对应的Web应用名),重启Tomcat服务器即可在bookstore应用中的各个JSP页面里使用该JavaBean来完成对数据库的访问。

3.3用户管理模块

用户管理模块主要提供新用户注册、用户登录功能以及用户信息的查看、查询、修改、删除等功能。

在多个JSP页面中均需要访问数据库,因此直接调用了刚刚实现并发布好的DBBean来完成数据库操作。

另外,由于多个模块中均要使用分页显示方式,因此我们仍然把分页功能利用一个JavaBean单独实现,在需要分页显示的页面直接调用即可。

提供新用户注册、登录功能以及基本信息的管理功能。

2.源文件定义

(1)login.jsp

名称:

登录页面

功能:

显示登录表单,供用户输入登录信息。

用户名、密码。

将表单信息提交给相应的处理程序verify.jsp。

登录表单、错误提示信息。

程序清单:

(2)verify.jsp

登录验证页面

主要负责检查用户输入的登录信息的合法性。

登录页面的表单提交信息。

若是合法用户,则将其用户级别、用户名、id号等信息保存到session中,便于以后识别该用户的身份和权限时使用。

其中,用户级别为对应记录的rank字段值,“0”代表普通用户,“1”代表系统管理员。

根据验证结果转到相应的页面。

(3)register.jsp

用户注册页面

主要负责显示用户注册时输入信息的表单。

用户需要填写用户名、真实姓名、密码、性别、年龄、身份证号、电话、电子邮件、联系地址等基本信息。

提供了客户端验证方法,判断填写的信息是否有效,避免无效信息被提交。

按“提交”按钮提交注册信息。

用户注册表单。

(4)adduser.jsp

注册处理页面

负责获取用户在注册时填写的个人信息

注册页面的表单提交信息

获取表单输入信息,首先对注册时使用的新用户名进行了判断,如果注册时输入的用户名和已有用户重复,则提示错误信息。

验证成功后,形成一条新记录插入到user表中。

显示注册成功信息或错误提示信息。

(5)detailuser.jsp

显示用户详细信息页面

当管理员用户单击用户信息列表中的用户名时,在新打开的浏览器窗口中显示该用户的基本信息。

需查看详细信息的用户id号。

根据id号在user表中查找相应的用户记录。

由于只有管理员能够查看其他用户信息,因此需要在文件头包含管理员验证文件。

该用户的个人详细信息显示。

(6)updateuser.jsp

修改用户信息页面

提供用户信息的修改界面。

当非管理员用户单击导航栏上的“修改个人信息”超链接时,显示当前登录用户的个人信息,可以对其中的真实姓名、密码、性别、年龄、身份证号、电话、电子邮件、联系地址等基本信息进行修改。

若用户为管理员,在用户管理页面单击每条用户记录右侧的“修改”超链接时,也可以进入此页面修改该用户的个人信息。

需修改信息的用户的id号。

根据用户id号在user表中查找相应的用户记录。

提供了客户端验证方法,对一些用户信息的格式或写法做了限制,避免无效的信息被提交。

把该用户的详细信息显示在表单控件中供用户修改。

(7)dealupdateuser.jsp

修改处理页面

处理用户信息修改页面的表单提交信息。

修改用户信息页面提交的表单信息。

这里要依据session中保存的用户权限及登录用户的id号做权限验证,限制普通用户仅能修改自己的个人信息。

只有管理员有权修改其他用户的信息。

验证通过后,获取用户提交的修改信息,更新user表中相应的记录。

根据验证结果重定向到不同页面。

<

%@pagecontentType="

text/html;

charset=gb2312"

import="

java.sql.*"

%>

%--包含登录验证文件,防止未登录用户直接进入论坛--%>

%@includefile="

check.jsp"

jsp:

useBeanid="

conn"

class="

dbBean.DBBean"

scope="

session"

/>

%

Stringid="

0"

;

Stringtruename="

"

Stringpassword="

Stringsex="

Stringage="

Stringidcard="

Stringphone="

Stringemail="

Stringaddress="

Stringrank="

Stringlogrank="

Stringlogid="

ResultSetrs=null;

request.setCharacterEncoding("

gb2312"

);

if(session.getAttribute("

rank"

)!

=null)

logrank=(String)session.getAttribute("

if(session.

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

当前位置:首页 > 总结汇报 > 学习总结

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

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