ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:236.84KB ,
资源ID:9467462      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9467462.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网上购书系统的设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网上购书系统的设计.docx

1、网上购书系统的设计网上购书系统的设计方案本说明是网上购书系统案例研究项目软件产品的设计和实现说明,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计和出错处理设计等,记录了系统整体实现上技术层面上的考虑,并且以需求说明作为依据。同时该文档将作为产品实现、特性要求和控制的依据。本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。网上书店在我国刚起步,但发展很快。随着我国互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥阐述整个个性化页面生成系统的系统结构及工作

2、原理,分析了系统实现中的特殊性、难点和重点。设计实现用户管理、图书目录管理、图书信息录入管理、书店定单管理、图书的浏览和查找、书店购物结帐功能等JSP页面 。分析并解决实现中的若干技术问题,建立完整的网上书店,进行测试并分析结果。本系统是用struts框架在网络上架构一个动态的电子商务网站,它是在Windows XP下,以mysql为数据库开发平台,tomcat网络信息服务作为应用服务器,采用JSP+struts技术开发的网上购书系统。它分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息

3、管理等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理、等功能的电子商务网站。关键词网上书店;struts;JSP;Sql server 2005目录第1章 网上购书系统详细设计与实现 31.1 软件体系结构设计 31.2 数据库设计 31.2.1 数据库技术概念描述 31.2.2 数据库管理系统(DBMS)概述 41.2.3 数据字典 41.3 类设计 61.3.1 com.bookstore.action包中的类 61.3.2 com.bookstore.bean 包中的类 81.3.3 com.bookstore.dao包中的类 101.4 功能设计 121.4.1 登录

4、功能 121.4.2 购买或查询书籍功能 121.4.3 订单管理功能 131.4.4 图书查询和管理功能 141.4.5 用户管理功能 151.5 算法设计 161.5.1 购买图书功能算法设计 161.5.2 登录功能算法设计 171.5.3 查询图书功能算法设计 171.5.4 管理用户算法设计 171.5.5 订单维护算法设计 171.5.6 图书详细信息算法设计 171.6 界面设计 181.7 本章小结 19第1章 网上购书系统详细设计与实现1.1 软件体系结构设计本系统主要有两层,一层是存储管理,那是数据库存储了了本系统用到的数据库表以及数据。下面主要是管理员管理,和用户的操作。

5、其实用户也可以管理,只不过可以管理自己的密码,和所下的订单。对于密码用户可以修改,也可以让管理员修改。用户所下的订单,可以删除。可以删除自己某个订单。至于管理员,权限就很广了,管理员不但可以对订单进行处理和查询,还可以对图书信息和用户信息进行维护和查询。同样是列出列表,但是管理员可以按图书的销量;新上架多少本的图书;按图书的作者,出版社,分类(java,数学,英语等.),书名进行模糊查询,点击图书的图片可以看到图书的详细信息,删除该书,更改该书的库存量更改图书的照片。同样也可以添加图书,利用填写表单的方式添加一本图书,当然有表单验证,比如书籍的销售量不能是负的,书籍的名称不能是数字,字母等。对

6、于用户,单机用户名可以查看用户的详细信息,而且用户的密码作为管理员可以修改,管理员可以删除用户。管理员可以对所有用户的所有订单以及所有订单下的订单项进行维护。本系统是基于MVC设计模式,B/S架构的在线购书电子商务应用系统,它具有以下功能: 1.在线图书浏览、注册用登录、图书购买及个人信息管理等功能。 2.图书信息添加、关键字搜索(包括分类查询和书名查询,按作者出版社查询等)、详情查询、信息 修改、删除;用户信息详情查询、修改、删除;订单信息详情查询、修改、删除及订单用户详情查询。本系统中的数据库查询采用了分页式查询处理技术。这样便可大大提高数据的 查询速度,同时可避免因查询的数据量过大而引起

7、数据库服务器的超负荷运行甚至系统崩溃。此外,本系统使用MVC模式,方便了今后对系统的维护及扩展。系统至少可支持100个用户的同时在线访问。本系统将使用MySql5.0作为数据库存储系统。开发平台为Myecplise7.1.开发语言为java/j2EE。1.2 数据库设计1.2.1 数据库技术概念描述数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。数据库,是存放数据的仓库。数据是按一定的格式存放的。数据库是指长期储存在计算机内、有组织的、可共享的数据集合,它是数据管理的最新技术,是计算机科学的重要分支。数据库中的数据按

8、一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。今天,信息资源已经成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或者组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造(CAD/CAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)、地理信息系统(GIS)等,越来越多新的应用领域采用数据库存储和处理他们的信息资源。对于一个国家来说,数据库的建设规模

9、、数据库信息量的大小和使用频率已成为衡量这个国家信息化程度的重要标志1.2.2 数据库管理系统(DBMS)概述数据库管理系统是位于用户与操作系统之间的一层数据管理软件。他是数据库系统的一个重要组成部分,其主要功能包括以下几个方面:1数据定义功能DBMS提供数据定义语言(DDL),用户通过它可以方便地对数据库中的数据对象进行定义。2数据操纵功能DBMS还提供数据操纵语言(DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。3数据库的运行管理数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障

10、后的系统恢复。4数据库的建立和维护功能它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。1.2.3 数据字典网上商店中有以下几个实体:用户,图书分类,图书,订单,订单项。1.订单项表(orderitem)Orderitemid (订单项id),quantity (订单项所对应的图书的购买的数量),ordersid (订单项所属订单的编号), bookid(订单项所对应的书籍的编号)。见订单项表如表3-1所示。表3-1 orderitem订单项表字段名称数据类型键值自增允许为空描述OrderitemidInt主键增一标志idQuantityI

11、nt数量OrdersidInt外键是所属订单bookidInt外键是所属图书编号 2. 用户表(user)id(用户的编号),username(用户名),password(密码),realname(用户的真实姓名) ,sex(用户的性别),email(用户的电子邮箱),address(用户的地址),post(用户的邮编),tel(用户的电话号),logintime(用户登录的次数),role(角色)。见用户表如表3-2所示。表 3-2 user用户表字段名称数据类型主键自增允许为空描述id Int是增一标志idusernameVarchar(20)用户名PasswordVarchar(20)密

12、码realnameVarchar(50)是真实姓名SexVarchar(10)是性别emailVarchar(50)电子邮箱addressVarchar(50)是地址PostVarchar(25)邮编telVarchar(25)电话logintimeInt登陆次数RoleInt角色 3.订单表(order)ordersid(订单编号),userid(订购者的编号),ordersdate(订单的日期)state(订单状态)。见订单表如表3-3所示。表3-3order订单表字段名称数据类型主键自增允许为空描述orseridInt是增一标志idordersdateVarchar(20)订单时间sta

13、teVarchar(10)订单状态UseridInt订购者id(外)4.图书表(book)bookid(图书编号) ,bookname(图书名字),price(价格),picture(图书的图片路径),kindname(图书分类),author(作者),publish(出版社),sellcount(销售量),storage(库存量)。见图书表如表3-4所示。表3-4book图书表字段名称数据类型主键自增允许为空描述BookidInt是增一标志idBooknameVarchar(20)图书名PriceInt价格PictureVarchar(30)是封面kindnameVarchar(10)图书类

14、别authorVarchar(15)作者publishVarchar(50)出版社sellcountInt销售量storageInt库存量1.3 类设计系统功能包主要有:与数据库的表对应属性字段的实体com.bookstore.bean;在dao文件中,编写jdbc代码,让实体bean与数据库交互的com.bookstore.dao;介于jsp与dao文件之间,用于调用dao文件com.bookstore.action;与其对应的bean文件一样,但是用户可以在jsp页面提交后,在action中可以自动获得,类继承com.bookstore.form;Junit测试包,是一种白盒测试,专门测试

15、dao文件是否能用,有没有错误com.bookstore.test。1.3.1 com.bookstore.action包中的类1.3.1.1 bookaction.java中方法详细介绍1.showbook() 查询出所有图书,转入一个jsp显示书籍列表。2.viewbook()根据bookid查询图书的详细信息,转入一个jsp显示详细信息。3.NewTenBook()查询出最新上架的十本书籍,转入一个jsp显示这些书籍的书籍列表。4.selectColumn()显示图书按什么查询的字段,按作者,出版社,还是书籍类型,就是选择要显示的字段转入一个jsp显示。5.showBookColumn(

16、)根据上个方法选择的字段,将字段值查出来,查询出按条件查询出的书籍,转入jsp中并显示书籍列表6.sortBookTw() 显示销售量前20的书籍,按销售量降序排列,放到一个列表中。再跳转到一个jsp中显示这个列表。7.sortBookAll()将所有书籍按销售量排列,按销售量降序排列,放到一个列表中。再跳转到一个jsp中,遍历显示这个列表。8.addBook()添加图书。1.3.1.2 useraction.java中方法详细介绍1.register()用户注册,获取表单的值,传到数据库,来添加一个普通用户。2.login()用户登录,先查询出在数据库中有无该用户名,在判断和数据库中的密码是

17、否一致,然后再根据用户名查询出该登录用户的角色是普通用户还是管理员。跳转到不同的页面。3.showUser()先判断是不是管理员,如果是查询出所有用户,放到一个列表里,再跳转到一个jsp中遍历该列表,来显示所有用户信息。4.viewUserById()根据用户传到此方法的id,查询数据库该用户的详细信息,放到request对象中,传入下一个jsp中。5.updateUser()根据用户的id和用户新的password更改数据库中该用户的密码。6. deleteById()根据用户id删除该用户。7.logout() 退出系统,关闭当前会话(删除session中的信息),回到主页。1.3.1.3

18、 Ordersaction中方法详细介绍1.Public static Cart cart 不是一个方法,而是一个静态变量。是一个购物车对象,详见购物车类请看第二章。为什么要设置为静态的呢?因为购书可能反复购书。调用多次ordersaction.java,可能会产生多个ordersaction.java实例,如果设置成静态的,有利于共享,一个用户在不同的会话(当禁了Cookies时session不一样,当然IE浏览器除外,火狐能看出来)共享一个购物车。 2.shopping() 购买书籍,每一次提交完购买数量后都会调用该方法。将图书放入到购物车中。3. removeItem()清空购物车中的内

19、容。4.saveOrder()用户点击进入结算中心,会将订单和订单项存到数据库中,等待管理员维护。先遍历购物车,将购物车中的订单项遍历出来,依次保存在订单中。再将订单保存在数据库中。5.selectAllOrders() 显示所有的订单到一个jsp中,跟显示所有图书,显示所有用户一样。这个只有管理员才能操作的,该方法会先判断权限是不是管理员身份。6.viewOrderById()显示出一个订单的详细信息包括订单的状态,和该订单下所有的订单项。7.showMyOrders()显示当前用户的所有订单。8.deleteOrderById()根据订单的编号,删除一个订单。9.ModifyOrdersS

20、tate()只有管理员才能调用,更改某个订单的状态。1.3.1.4 UploadAction.Java下的方法execute()更改该书的图片,将图片上传到wedRoot下的image文件夹中。由于Uploadaction.java没有继承dispatchAction,所以只有一个execute方法。1.3.2 com.bookstore.bean 包中的类1.图书类book.javabook类 中有bookid(图书编号) ,bookname(图书名字),price(价格),picture(图书的图片路径),kindname(图书分类),author(作者),publish(出版社),sel

21、lcount(销售量),storage(库存量)。见实体类图如图3-7所示。2.用户类user.javaUse中id,username,password,realname,sex,email,address,post,Tel,logintimes,role,orderses,.分别是用户编号,用户名,密码,真实姓名,性别,电子邮箱,家庭住址,邮编,电话,登陆次数,角色(包括管理员和普通用户,管理员是1,用户是2),orderses是一个HashSet集合,包括一个用户对象的所有的订单,orderses就是一个所有订单集合。一个用户对应多个订单。见实体类图如图3-7所示。3.订单类orders.

22、javaOrdersid(订单号),user1(订单所属的用户),orderitemdate(订单生成的时间),state(订单状态:包括处理中;缺货中;已发货如果设置成已发货那么订单里的订单项里的图书销售量相应的增加,同时库存量减少)。Orderitems(一个订单里所有的订单项的集合)。一个订单对应多个订单项。但一个订单指数与一个用户。见实体类图如图3-7所示。4订单项orderitem.javaOrderitemid(订单项编号),quantity(购买图书的个数),orders1(该订单项所属的订单),book1(该订单项对应的图书),一个订单项就是对图书的封装,订单项中除了对图书的封

23、装还有该图书的购买数量。见实体类图如图3-7所示。5.购物车Cart.javaCart类中有一个属性也是集合的,但是items其实是该订单所有订单项的集合,item是Map类型的,健是图书的编号,值是订单项。见实体类图如图3-7所示。Cart中的方法public Cart()是构造函数,初始化items,addBook(Integer bookid,orderitem orderitem1)想购车中增加一本书,updateCart(Integer bookid,int quantity)更改图书数量,public int getTotalPrice()计算总价。见实体类图如图3-7所示。6.

24、备注:以上类说明省略setXXX() getXXX()方法。图3-7实体类图1.3.3 com.bookstore.dao包中的类1.3.3.1 bookdao.java中的方法1.ArrayListshowBook() 连接数据库显示所有的图书信息,放在一个列表中,返回该列表。该方法被bookaction.java中的showbook()调用。2.book viewBook(int id) 连接数据库,根据id将该书的所有字段信息查出来,复制到一个book对象中。返回该对象。该方法被bookaction.java中的viewbookById()调用。3.ArrayListshowNewTen

25、Book() 连接数据库将最新上架的是本书的详细信息查出来,放到一个列表中,返回该列表。该方法被bookaction.java中的NewTenBook()方法调用。4.ArrayListSelectColumn(String column) 根据参数值,参数值为book表中的三个字段其中之一author或publish或kindname(看用户选择按什么查找,按出版社,查出来的就是各个出版社。按作者查出来的就是该数据库中book表中的所有作者)查询出该字段下的所有值,放入一个列表中,返回该列表。被bookaction.java中的SelectColumn()方法调用。5.ArrayListSh

26、owBookColumn(),根据上一个选择,比如选择了按作者查而后调用了上面的方法又选择了作者是“鲁迅”的书,那么该方法就将鲁迅的所有书籍从数据库中查出来,放到一个列表中。如果选择了按出版社,上边的方法会将所有的出版社查出来,假如有“教育出版社”,“电子工业出版社”,“清华大学出版社”等,那么我选择了清华大学出版社,提交调用了本方法。会将清华大学出版社出版的所有书籍查询出来,放入一个列表中。同理,按照图书的kindname查询也一样。最后返回该列表。本方法被bookaction中的showBookColumn()方法调用。6.ArrayListshowBookTw()按降序查询出销售量排名前

27、20的书籍,放入一个列表中,返回该列表。该方法被bookaction.java中的SortBookTw()用。7.ArrayListshowBookAll()查询出所有的书籍的销售排行,放入一个列表中,返回该列表。该方法被bookaction.java的SortBookAll()方法调用。8.Void modifySellCountStorage(int bookid,int newsellCount,int newStore)更改订单状态,假如订单状态更改为finished时, 该订单的订单项所对应的书籍的销售量增加至newSellcount, 库存量减少至newStorage。该方法被or

28、dersaction.java中的modifyOrdersState()方法所调用。1.3.3.2 userdao.java中的方法1.int login(String username,String password) ,用户登录验证并调用同类中的login2(Stringusername)。本方法被useraction.java中的login()方法调用。2.int login2(String username)用户每一次登录,将登录的次数加1。本方法被useraction.java中的login()方法调用。3.int getRole(String username) 查询出当前用户的角

29、色,返回当前用户的角色,被useraction.java中的login()方法调用,来跳转到不同的页面。4.addUser1(user user1) 注册一个新用户,其实就是添加一个新用户到数据库中。此方法被useraction.java中的login()方法调用。5.ArrayListshowuser(),将所有的用户查询出来放到一个列表中。并返回该列表。该方法被useraction.java中的showUser()方法调用。6.user viewUser(int id) ,根据id查询出该用户的详细信息,复制到一个user对象中去,返回该对象,该方法被useraction.java中的vi

30、ewUserById()方法调用。7.String updateUser(int id,String password)根据id和password更新该用户的密码。该方法被useraction.java中的updateUser()方法调用。8.deleteUser(int id) 根据传进来的id删除这个用户,返回用户id,此方法被useraction.java中的DeleteById()方法调用。9.int getUserId(String username) 根据用户名字返回用户的id号。1.3.3.3 ordersdao.java中的方法1.int saveOrder(orders order),用户生成一个订单 ,并将订单详细信息,并将这个订单存到一个orders 的一个对象中,将这个对象的各个属性的值存到数据库对应的字段的值中。就是将订单存到数据库。该方法被ordersaction.java中的saveOrder()方法调用。2.ArrayList selectAllOrders(),从数据库里查询所有订单放到一个列表中。返回该列表。该方法被ordersaction.java中的sel

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

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