网上购书系统的设计.docx

上传人:b****5 文档编号:7387284 上传时间:2023-01-23 格式:DOCX 页数:19 大小:40.78KB
下载 相关 举报
网上购书系统的设计.docx_第1页
第1页 / 共19页
网上购书系统的设计.docx_第2页
第2页 / 共19页
网上购书系统的设计.docx_第3页
第3页 / 共19页
网上购书系统的设计.docx_第4页
第4页 / 共19页
网上购书系统的设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

网上购书系统的设计.docx

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

网上购书系统的设计.docx

网上购书系统的设计

文档来源为:

从网络收集整理.word版本可编辑.欢迎下载支持.

网上购书系统的设计方案

本说明是网上购书系统案例研究项目软件产品的设计和实现说明,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计和出错处理设计等,记录了系统整体实现上技术层面上的考虑,并且以需求说明作为依据。

同时该文档将作为产品实现、特性要求和控制的依据。

本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。

网上书店在我国刚起步,但发展很快。

随着我国互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥阐述整个个性化页面生成系统的系统结构及工作原理,分析了系统实现中的特殊性、难点和重点。

设计实现用户管理、图书目录管理、图书信息录入管理、书店定单管理、图书的浏览和查找、书店购物结帐功能等JSP页面。

分析并解决实现中的若干技术问题,建立完整的网上书店,进行测试并分析结果。

本系统是用struts框架在网络上架构一个动态的电子商务网站,它是在WindowsXP下,以mysql为数据库开发平台,tomcat网络信息服务作为应用服务器,采用JSP+struts技术开发的网上购书系统。

它分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理等功能。

建立后的网站系统是一个动态、交互式、具有商品提供、系统管理、等功能的电子商务网站。

关键词网上书店;struts;JSP;Sqlserver2005

第1章网上购书系统详细设计与实现错误!

未定义书签

1.1软件体系结构设计错误!

未定义书签

1.2数据库设计.错误!

未定义书签

1.2.1数据库技术概念描述错误!

未定义书签

1.2.2数据库管理系统(DBMS)概述错误!

未定义书签

1.2.3数据字典错误!

未定义书签

1.3类设计错误!

未定义书签

1.3.1com.bookstore.actio包中的类错误!

未定义书签

1.3.2com.bookstore.bean包中的类错误!

未定义书签

1.3.3com.bookstore.da包中的类错误!

未定义书签

1.4功能设计错误!

未定义书签

1.4.1登录功能错误!

未定义书签

1.4.2购买或查询书籍功能.错误!

未定义书签

1.4.3订单管理功能错误!

未定义书签

1.4.4图书查询和管理功能.错误!

未定义书签

1.4.5用户管理功能错误!

未定义书签

1.5算法设计错误!

未定义书签

1.5.1购买图书功能算法设计.错误!

未定义书签

1.5.2登录功能算法设计错误!

未定义书签

1.5.3查询图书功能算法设计.错误!

未定义书签

1.5.4管理用户算法设计错误!

未定义书签

1.5.5订单维护算法设计错误!

未定义书签

1.5.6图书详细信息算法设计.错误!

未定义书签

1.6界面设计错误!

未定义书签

1.7本章小结错误!

未定义书签

文档来源为:

从网络收集整理.word版本可编辑.欢迎下载支持.

第1章网上购书系统详细设计与实现

1.1软件体系结构设计

本系统主要有两层,一层是存储管理,那是数据库存储了了本系统用到的数据库表以及数据。

下面主要是管理员管理,和用户的操作。

其实用户也可以管理,只不过可以管理自己的密码,和所下的订单。

对于密码用户可以修改,也可以让管理员修改。

用户所下的订单,可以删除。

可以删除自己某个订单。

至于管理员,权限就很广了,管理员不但可以对订单进行处理和查询,还可以对图书信息和用户信息进行维护和查询。

同样是列出列表,但是管理员可以按图书的销量;新上架多少本的图书;按图书的作者,出版社,分类(java,数学,英语等•••.),书名进行模糊查询,点击图书的图片可以看到图书的详细信息,删除该书,更改该书的库存量更改图书的照片。

同样也可以添加图书,利用填写表单的方式添加一本图书,当然有表单验证,比如书籍的销售量不能是负的,书籍的名称不能是数字,字母等。

对于用户,单机用户名可以查看用户的详细信息,而且用户的密码作为管理员可以修改,管理员可以删除用户。

管理员可以对所有用户的所有订单以及所有订单下的订单项进行维护。

本系统是基于MVC设计模式,B/S架构的在线购书电子商务应用系统,它具有以下功能:

1.在线图书浏览、注册用登录、图书购买及个人信息管理等功能。

2.图书信息添加、关键字搜索(包括分类查询和书名查询,按作者出版社查询等)、详情查询、信息修改、删除;用户信息详情查询、修改、删除;订单信息详情查询、修改、删除及订单用户详情查询。

本系统中的数据库查询采用了分页式查询处理技术。

这样便可大大提高数据的查询速度,同时可避免因查询的数据量过大而引起数据库服务器的超负荷运行甚至系统崩溃。

此外,本系统使用MVC模式,方便了今后对系统的维护及扩展。

系统至少可支持100个用户的同时在线访问。

本系统将使用MySql5.0作为数据库存储系统。

开发平台为

Myecplise7.1.开发语言为java/j2EE。

1.2数据库设计

1.2.1数据库技术概念描述

数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基

础。

数据库,是存放数据的仓库。

数据是按一定的格式存放的。

数据库是指长期储存在计算机内、有组织的、可共享的数据集合,它是数据管理的最新技术,是计算机科学的重要分支。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

今天,信息资源已经成为各个部门的重要财富和资源。

建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或者组织生存和发展的重要条件。

因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造(CAD/CAM)、计算机集成制造系统(CIMS)、办公信息系统

(OIS)、地理信息系统(GIS)等,越来越多新的应用领域采用数据库存

储和处理他们的信息资源。

对于一个国家来说,数据库的建设规模、数据库信息量的大小和使用频率已成为衡量这个国家信息化程度的重要标志

122数据库管理系统(DBMS)概述

数据库管理系统是位于用户与操作系统之间的一层数据管理软件。

他是数据库系统的一个重要组成部分,其主要功能包括以下几个方面:

1.数据定义功能

DBMS提供数据定义语言(DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

2.数据操纵功能

DBMS还提供数据操纵语言(DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。

3.数据库的运行管理数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

4.数据库的建立和维护功能它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。

1.2.3数据字典

网上商店中有以下几个实体:

用户,图书分类,图书,订单,订单项。

1.订单项表(orderitem)

Orderitemid(订单项id),quantity(订单项所对应的图书的购买的数量),ordersid(订单项所属订单的编号),bookid(订单项所对应的书籍的编号)。

见订单项表如表3-1所示。

文档来源为:

从网络收集整理.word版本可编辑.欢迎下载支持.

表3-1orderitem订单项表

字段名称

数据类型

键值

自增

允许为空

描述

Orderitemid

Int

:

主键

增一

标志id

Quantity

Int

数量

Ordersid

Int

外键

所属订单

bookid

Int

外键

所属图书编号

2.用户表(user)

id(用户的编号),username用户名),password密码),realname用户的真实姓名),sex(用户的性别),email(用户的电子邮箱),address用户的地址),post(用户的邮编),tel(用户的电话号),logintime(用户登录的次数),role(角色)。

见用户表如表3-2所示。

表3-2user用户表

字段名称

数据类型

主键

自增

允许为空

描述

id

Int

增一

标志id

username

Varchar(20)

;用户名

Password

Varchar(20)

密码

realname

Varchar(50)

真实姓名

Sex

Varchar(10)

性别

email

Varchar(50)

电子邮箱

address

Varchar(50)

地址

Post

Varchar(25)

邮编

tel

Varchar(25)

电话

logintime

Int

登陆次数

Role

Int

角色

3.订单表(order)ordersid(订单编号),userid(订购者的编号),ordersdate(订单的日

期)state订单状态)。

见订单表如表3-3所示。

表3-3order订单表

字段名称

数据类型

主键

自增

允许为空

描述

orserid

Int

增一

标志id

ordersdate

Varchar(20)

订单时间

state

Varchar(10)

订单状态

Userid

Int

订购者id(外)

4.图书表(book)

bookid(图书编号),bookname图书名字),price(价格),picture(图书的

图片路径),kindname(图书分类),author(作者),publish(出版社),sellcount(销售量),storage(库存量)。

见图书表如表3-4所示。

表3-4book图书表

字段名称

数据类型

主键

自增

允许为空

描述

Bookid

Int

增一

标志id

Bookname

Varchar(20)

图书名

Price

Int

价格

Picture

Varchar(30)

封面

kindname

Varchar(10)

图书类别

author

Varchar(15)

作者

publish

Varchar(50)

出版社

sellcount

Int

销售量

storage

Int

库存量

1.3类设计

系统功能包主要有:

与数据库的表对应属性字段的实体com.bookstore.bean在dao文件中,编写jdbc代码,让实体bean与数据库交互的com.bookstore.daq介于jsp与dao文件之间,用于调用dao文件com.bookstore.action;与其对应的bean文件一样,但是用户可以在jsp页面提交后,在action中可以自动获得,类继承com.bookstore.form;Junit测试包,是一种白盒测试,专门测试dao文件是否能用,有没有错误

com.bookstore.test

1.3.1com.bookstore.action包中的类

1.3.1.1bookaction.java中方法详细介绍

1.showbook()查询出所有图书,转入一个jsp显示书籍列表。

2.viewbook()根据bookid查询图书的详细信息,转入一个jsp显示详细信息。

3.NewTenBook()查询出最新上架的十本书籍,转入一个jsp显示这些

书籍的书籍列表。

4..selectColumn()显示图书按什么查询的字段,按作者,出版社,还是书籍类型,就是选择要显示的字段转入一个jsp显示。

5.showBookColumn()根据上个方法选择的字段,将字段值查出来,查询出按条件查询出的书籍,转入jsp中并显示书籍列表

6.sortBookTw()显示销售量前20的书籍,按销售量降序排列,放到一个列表中。

再跳转到一个jsp中显示这个列表。

7.sortBookAll()将所有书籍按销售量排列,按销售量降序排列,放到一

文档来源为:

从网络收集整理.word版本可编辑.欢迎下载支持.个列表中。

再跳转到一个jsp中,遍历显示这个列表。

8.addBook()添加图书。

1.3.1.2useraction.java中方法详细介绍

1.register()用户注册,获取表单的值,传到数据库,来添加一个普通用户。

2.login()用户登录,先查询出在数据库中有无该用户名,在判断和数据库中的密码是否一致,然后再根据用户名查询出该登录用户的角色是普通用户还是管理员。

跳转到不同的页面。

3.showUser()先判断是不是管理员,如果是查询出所有用户,放到一个列表里,再跳转到一个jsp中遍历该列表,来显示所有用户信息。

4.viewUserByld()根据用户传到此方法的id,查询数据库该用户的详细信息,放到request对象中,传入下一个jsp中。

5.updateUser(根据用户的id和用户新的password更改数据库中该用户的密码。

6.deleteByld()根据用户id删除该用户。

7.logout()退出系统,关闭当前会话(删除session中的信息),回到主页。

1.3.1.3Ordersaction中方法详细介绍

1.PublicstaticCartcart不是一个方法,而是一个静态变量。

是一个购物车对象,详见购物车类请看第二章。

为什么要设置为静态的呢?

因为购

书可能反复购书。

调用多次ordersaction.java,可能会产生多个ordersaction.java实例,如果设置成静态的,有利于共享,一个用户在不同的会话(当禁了Cookies时session不一样,当然IE浏览器除外,火狐能看出来)共享一个购物车。

2.shopping()购买书籍,每一次提交完购买数量后都会调用该方法。

将图书放入到购物车中。

3.removeltem()清空购物车中的内容。

4.saveOrder(用户点击进入结算中心,会将订单和订单项存到数据库中,等待管理员维护。

先遍历购物车,将购物车中的订单项遍历出来,依次保存在订单中。

再将订单保存在数据库中。

5.selectAllOrders()显示所有的订单到一个jsp中,跟显示所有图书,显示所有用户一样。

这个只有管理员才能操作的,该方法会先判断权限是不是管理员身份。

6.viewOrderByld()显示出一个订单的详细信息包括订单的状态,和该订单下所有的订单项。

7.showMyOrders()显示当前用户的所有订单。

8.deleteOrderByld()B据订单的编号,删除一个订单。

9.ModifyOrdersState()只有管理员才能调用,更改某个订单的状态。

1.3.1.4UploadAction.Java下的方法

execute。

更改该书的图片,将图片上传到wedRoot下的image文件夹中。

由于Uploadaction.java没有继承dispatchAction,所以只有一个execute方法。

1.3.2com.bookstore.bean包中的类

1.图书类book.java

book类中有bookid(图书编号),bookname(图书名字),price(价格),picture(图书的图片路径),kindname(图书分类),author(作者),publish(出版社),sellcount(销售量),storage(库存量)。

见实体类图如图3-7所示。

2.用户类user.java

Use中id,username,password,realname,sex,email,address,post,Tel,logintimes,role,orderses,.分别是用户编号,用户名,密码,真实姓名,性别,电子邮箱,家庭住址,邮编,电话,登陆次数,角色(包括管理员和普通用户,管理员是1,用户是2),orderses是一个HashSet集合,包括一个用户对象的所有的订单,orderses就是一个所有订单集合。

一个用户对应多个订单。

见实体类图如图3-7所示。

3.订单类orders.java

Ordersid(订单号),user1(订单所属的用户),orderitemdate(订单生成的时间),state订单状态:

包括处理中;缺货中;已发货如果设置成已发货那么订单里的订单项里的图书销售量相应的增加,同时库存量减少)。

Orderitems(一个订单里所有的订单项的集合)。

一个订单对应多个订单项。

但一个订单指数与一个用户。

见实体类图如图3-7所示。

4.订单项orderitem.java

Orderitemid(订单项编号),quantity(购买图书的个数),orders1(该订单项所属的订单),book1(该订单项对应的图书),一个订单项就是对图书的封装,订单项中除了对图书的封装还有该图书的购买数量。

见实体类图如图3-7所示。

5.购物车Cart.java

Cart类中有一个属性也是集合的,但是items其实是该订单所有订单项的集合,item是Map类型的,健是图书的编号,值是订单项。

见实体类图如图3-7所示。

Cart中的方法publicCart()是构造函数,初始化items,addBook(Integerbookid,orderitemorderitem1)想购车中增加一本书,

文档来源为:

从网络收集整理.word版本可编辑.欢迎下载支持.updateCart(Integerbookid,intquantity)更改图书数量,publicintgetTotalPrice(计算总价。

见实体类图如图3-7所示。

6.备注:

以上类说明省略setXXX()getXXX()方法。

-N

book

+getOrderitemid()():

int+getQuantity()():

int+getOrders1()():

orders+getBook1()():

book+setOrderitemid(intorderitemid)()+setQuantity(intquantity)()+setOrders1(Ordersorders1)()

-N

+bookid:

int+bookname:

string+price:

int+picture:

string+kindname:

string+author:

string+publish:

string+sellcount:

int+storage:

int+setBookid(intbookid)()+setBookname(Stringbookname)()+setPrice(intprice)()+setSellcount(intsellcount)()+setStorage(intstorage)()+setAuthor(Stringauthor)()+setPublish(Stringpublish)()+setPicture(Stringpicture)()+setKindname(Stringkindname)()+getBookid()():

int+getBookname()():

string+getPrice()():

int+getPicture()():

string+getKindname()():

string+getAuthor()():

string+getPublish()():

string+getSellcount():

string+getStorage():

string

-1

user

-id:

int-username:

string-password:

string-realname:

string-sex:

string-email:

string-address:

string-post:

string-tel:

string-logintimes:

int-role:

int-Setorderses

+setld(intid)()+setUsername(Stringusername)()+setPassword(Stringpassword)()+setRealname(Stringrealname)()+setSex(Stringsex)()+setEmail(Stringemail)()+setAddress(Stringaddress)()+setPost(Stringpost)()+setTel(Stringtel)()

+setLogintimes(intlogintimes)()+setRole(Stringrole)()+setOrderses(Setorderses)()+getId()():

int

+getUsername()():

string+getPassword()():

string+getRealname()():

string+getSex()():

string+getEmail()():

string+getAddress():

string+getPost()():

string+getTel()():

string+getLogintimes():

int+getRole()():

int+SetgetOrderses()()

orderitem

-intorderitemid-intquantity-ordersl:

orders-book:

book

-ordersid:

int-userl:

user-Seto

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

当前位置:首页 > 农林牧渔 > 林学

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

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