• 1.39 MB
  • 2022-04-22 13:49:54 发布

网上书店管理系统毕业设计论文.doc

  • 43页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'目录网上书店管理系统毕业设计论文目录毕业设计论文中文摘要I毕业设计论文外文摘要II第1章绪论-1-1.1课题背景-1-1.2开发环境-2-1.3相关技术-4-1.3.1JSP的简介-4-1.3.2Tomcat-6-1.3.3MyEclipse-6-1.3.4数据库软件MySQL-7-1.3.5MySQL数据库服务器管理和开发工具:Navicat-8-第2章需求分析-9-2.1需求分析的原因-9-2.2需求分析的任务-9-2.3实体-联系图-9-2.4.1图书E-R图-9-2.4.2用户信息E-R图-10-2.4.3订单E-R图-10-2.4.4订单详细信息E-R图-11-2.4.5图书分类E-R图-11-2.4.6用户留言E-R图-11-2.4.7公告信息E-R图-12-2.4.8网上书店管理实体间的联系图-12-第3章总体设计-13-3.1设计目标-13-3.2系统体系结构设计-13-3.2.1系统功能模块划分-13-3.2.2系统结构图设计-14-3.3数据库设计-15-3.3.1用户信息表-15-3.3.2图书信息表-15-3.3.3订单表-15-3.3.4订单详细信息表-16-3.3.5图书分类信息表-17-3.3.6用户留言信息表-17-3.3.7公告信息表-18-第4章系统详细设计-19-4.1系统功能设计-19-4.2用户注册模块设计-19-4.3用户登录模块设计-19-4.4图书信息模块设计-21-4.4.1图书展示模块设计-21-4.4.2图书查询模块设计-21-4.5购买图书模块设计-21-4.6管理员模块设计-24- 目录4.6.1图书管理模块设计-24-4.6.2会员管理模块设计-24-4.6.3图书分类模块设计-25-4.6.4公告信息模块设计-25-4.6.5留言信息模块设计-25-4.6.6订单信息模块设计-26-第5章系统实现-28-5.1实现用户注册模块-28-5.2实现用户登录模块-28-5.3实现图书信息模块-29-5.3.1图书展示模块-29-5.3.2图书查询模块-29-5.4实现购买图书模块-30-5.5实现排行榜模块-31-5.6实现公告信息模块-32-5.7实现用户留言模块-32-5.8实现管理员模块-32-5.8.1图书管理模块-32-5.8.2会员管理模块-34-5.8.3图书分类模块-35-5.8.4订单信息模块-36-5.9系统的测试与维护-37-5.9.1单元测试-37-5.9.2系统维护-37-结论-39-参考文献-40-致谢-41- 第1章绪论-1-毕业设计论文外文摘要第1章绪论随着科技飞速的发展,人类使用和学习信息的方式以及信息的包装方式正在进行着不可阻挡的革命,这次革命将比印刷术的出现所产生的影响以及对社会发展的推动更加复杂更加巨大。网站也成为人们最简便和喜爱的交流方式和传递信息的手段,尤其在商品交易方面,人们更是寻求最佳简便的消费方式。网上书店具有很多新的特性,以下这些是它的优势:1.其营业成本完全有理由比传统意义上的书店低得多。2.不需支付昂贵的店铺租金,花费浩大的装修。3.不需要将大笔的流动资金作为货物而沉积在店里,可依靠“零库存”管理,缩短资金周转的周期,可以加速周转。4.同时可以实现24小时营业,不需要营业员,网上书店可以被设置成一个自动售货机。5.依靠客户数据库能够提供全新的个人化服务等。以上这些特性使网上商店充满生命力,也是它发展的源动力。1.1课题背景1.网上书店管理系统的发展Internet的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所蕴含的经济价值的无穷商机,并积极投身于电子商务活动。实际上,电子商务是一些商业行为的电子化,例如网上书店,网上贸易,就网上书店来说,网上书店是目前应用最广,最成功的典范之一,网上书店的崛起对传统的图书流通体系产生了强烈的冲击,有效地缩短了图书流通发行环节,将广大读者,图书,出版者,发行者紧密地结合在一起,大大提高了图书流通率[1]。2.网上书店系统发展现状西方国家网上书店概况:世界上第一家网上书店是1991年在美国联机公司AOL采购网络上建立的“阅读美国书店”,目前最有名的是美国西雅图亚马逊图书公司的亚马逊网上书店。它创建于1995年,供书达310余万种,每年顾客达500万人次,其价格优惠20-50-41- 致谢金融结算制度完善,配送服务高效。实现了零库存运转。英国网上书店中较著名的有Internet书店,德国的网上书店主要有图书在线网上书店。国内网上书店的概况:自从亚马逊网上书店成功后,中国的网上书店也建立起来。中国最早的网上书店是1997年在杭州新华书店诞生的,在经过年余的艰苦经营,接待了400多位访问者后,悄然引退,而进入1998年后,作为中国书业传统经营力量的新华书店,正式宣布进入网络领域,先是第九届全国书市首次开通书店网站,后来在1998年12月30日上海书城成为国内首家正规的网上书店,读者在家中可以上网完成浏览,选够,付款的全过程。1999年是网上书店迅速发展的一年,商业公司不断进入网上书店有超过几百家,有自己网站的公司有40多家,这个数目还不断增加。3.网上书店的优越性网上书店在价格、时效性、品种、查询方式等方面都有优势。网上书店是一种直销方式,在到书速度和价格上都有优势,目前网上书店的到书时间在北京,上海,广州等大城市一般为1-3天,在外埠则一般3-10天到书,在价格上一般网上书店都有7.5-9折的折扣,如果是特价书折扣就更多了,网上书店的书目数据是任何订购书目都无法比拟的,亚马逊网上书店有300多万种图书,另外还有音乐系列产品和其它教育产品,刚刚成立的北京图书大厦网上书店也有16万种书目数据,“中国寻书网”目前也有50万种书籍,年度将突破100万种图书,网上书店的书目除书名,著者,价格等信息外,还有封面,内容简介,目次,评论等详细信息。同时网上书店的目录查询功能也是传统的按某种分类规则编排的图书征订目录无法比拟的,其以关键词或主题从网上检索某类文献,查准率与查全率都有一定的保障。另外还有一些书更是以网站包销或总代理的形式进行销售,这就意味着一种全新的电子商务模式的开始[2]。1.2开发环境1.开发环境的选择会影响到数据库的设计,所以在这里给出网上书店开发与运行环境的选择如下:开发环境:WindowsXP。开发工具:MyEclipse8.5。数据库管理系统:MySQL5.0.83。设计模式:MVC设计模式。2.使用MVC设计模式的优点-41- 致谢大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码3.MVC模式设计思想MVC设计思想概论。MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。(1)MVC中的M组件。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。(2)MVC中的V组件。视图(View)代表用户交互界面,用JSP来实现。(3)MVC中的C组件。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。MVC中各组件的关系。-41- 致谢模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图1-1所示。图1-1MVC组件类型的关系和功能1.3相关技术网上书店管理系统的实现技术多种多样,所以选择合理的技术来实现系统也是一个重大的环节,如果所选择的技术不当,将对系统的实现造成一定的麻烦,可能还会影响系统的性能。J2EE是实现企业仓库管理系统的一种有效技术,当前用J2EE实现B/S结构的网上书店管理系统非常的流行且技术也越来越趋于成熟,性能也得到了非常大的提升[10]。轻量级的J2EE应用对于小中型项目的开发带来了许多便利之处,对比于经典J2EE的简化,在保留经典J2EE应用的框架、良好的可扩展性、可维护性的基础上,简化了J2EE应用的开发,降低了J2EE应用的部署成本,基本实现过程简单明了。轻量级J2EE应用面向的是用户,是一种更实际的信息化平台架构[11]。1.3.1JSP的简介1.JSP的简单介绍JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处-41- 致谢理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。  JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点[3]。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。2.JSP技术的优点基于JSP的各种优势,其优点如下:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。3.JSP技术的缺点Java的一些优势正是它致命的问题所在,因此JSP有如下缺点:-41- 致谢(1)由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。1.3.2TomcatTomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选[6]。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。2。1.3.3MyEclipse1.MyEclipse的简单介绍MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、Javascript、SQL和Hibernate。2.MyEclipse的分类在结构上,MyEclipse的特征可以被分为7类:(1)JavaEE模型。(2)WEB开发工具。(3)EJB开发工具。(4)应用程序服务器的连接器。-41- 致谢(5)JavaEE项目部署服务。(6)数据库服务。(7)MyEclipse整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。1.3.4MySQLMySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于MySQL的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的特性包括:(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。(3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。(4)支持多线程,充分利用CPU资源。 (5)优化的SQL查询算法,有效地提高查询速度。  (6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。(8)提供用于管理、检查、优化数据库操作的管理工具。(9)可以处理拥有上千万条记录的大型数据库。-41- 致谢1.3.5MySQL数据库服务器管理和开发工具:NavicatNavicatMySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。其精心设计的图形用户界面(GUI),NavicatMySQL可以让你用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。NavicatMySQL在三种平台上是可用的——微软Windows、MacOSX和Linux操作系统。它可以使用户连接到本地/远程服务器,提供了几种实用工具,例如数据结构同步、导入/导出、备份和报告,使维护数据的过程很容易。自从2001年初以来,Navicat在全世界范围内已被下载了数百万次;Navicat是公认最受欢迎的MySQL前端图形用户界面,而且它对于本地或远程的MySQL管理和开发,在三种操作系统平台上——Windows、MacOSX和Linux都是可用的。在过去的5年中,Navicat已在最好的服务器管理工具类别的几个奖项中被提名,并且被许多托管公司选为一种标准的托管工具,例如Rackspace公司,是最成功的管理托管公司之一。-41- 致谢第2章需求分析2.1需求分析的原因根据现在社会上对网络书店的需求,为了开发出真正满足用户需求的产品——网上书店,首先必须要知道客户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能满足用户需求的程序只会给客户带来失望,给开发带来麻烦。虽然在可行性研究阶段已经粗略了解用户的需求,甚至还提出了一些可行的方案,但是,可行性研究的基本目的使用较小的成本在较短时间内确定是否存在可行的解法,因此,在需求分析阶段要确定系统必须完成哪些工作,也就是对系统提出完整、准确、清晰、具体的要求。2.2需求分析的任务通过对系统的分析及对其他网店的参考,基本确定了“网上书店”的基本功能以及基本性能的基本需求。功能需求:这方面的需求指定系统必须提供的服务,通过需求分析应该划分出系统必须完成的所有功能。其功能如下:(1)图书信息管理,主要有修改图书信息、添加图书、删除图书。(2)图书销售管理,主要包括:图书查找、购物车管理、订单提交。(3)用户管理,主要有用户注册、修改用户信息、删除用户。(4)留言管理,主要有用户留言和管理员删除用户的留言。(5)公告信息,主要有发布公告、修改公告、删除公告。(6)订单管理,主要有订单的修改,删除订单。性能需求:指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的要求。其要求如下:(1)用户在客户端点击存在服务器中的主页时,系统能快速响应。(2)在安全性方面,JSP程序要满足客户传输信息的基本安全。2.3实体-联系图2.4.1图书E-R图图书的属性包括:图书编号、书名、作者、出版社、出版时间、图片、图书价格、图书分类、图书简介、推荐数和图书数量。图书的E-R图如图2-1所示。-41- 致谢图书图书编号书名作者图书数量推荐数出版社图书简介出版时间图书分类图书价格图书图片图2-1图书E-R图2.4.2用户信息E-R图用户的属性包括:用户ID、用户名、用户密码、真实姓名、用户性别、联系电话、通讯地址、邮政编码、电子邮件、找密问题提示、问题答案、用户角色。其E-R图如图2-2所示。用户用户角色用户ID用户名用户密码问题答案找密提示电子邮件邮政编码通讯地址真实姓名用户性别联系电话图2-2用户E-R图2.4.3订单E-R图订单的属性包括:订单ID、用户、收货人、收货地址、联系电话、邮政编码、订单日期、付款方式、是否付款、总价。其E-R图如图2-3所示。-41- 致谢订单订单ID用户收货人总价是否付款付款方式订单日期邮政编码联系电话收货地址图2-3订单信息E-R图2.4.4订单详细信息E-R图订单详细信息的属性包括:订单ID、图书编号、购买数量。其E-R图如图2-4所示。订单详细信息购买数量订单号图书编号图2-4订单详细信息E-R图2.4.5图书分类E-R图图书分类的属性包括:分类编号和分类名称。其E-R图如图2-5所示。图书分类分类编号分类名称图2-5图书分类E-R图2.4.6用户留言E-R图用户留言的属性包括:留言ID、留言人、留言图书、留言内容和留言时间。其E-R图如图2-6所示。-41- 致谢用户留言留言内容留言人留言图书留言ID留言时间图2-6用户留言E-R图2.4.7公告信息E-R图公告信息的属性包括:公告ID、发布人、公告内容、标题、发布时间。其E-R图如图2-7所示。公告信息公告ID发布时间发布人标题公告内容图2-7公告信息E-R图2.4.8网上书店管理实体间的联系图完整的E-R图包括的实体有图书、用户、订单、详细订单、分类、留言信息、公告信息。实体之间的联系有一对一联系1:1,一对多联系1:n和多对多联系m:n。各实体间的联系如图2-8所示。详细订单用户图书订单分类公告信息留言信息发表mn浏览mn浏览mm包含1n属于1n属于属于mn11图2-7网上书店管理实体间的联系图-41- 致谢第3章总体设计3.1设计目标本系统设计的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求货真价实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。3.2系统体系结构设计系统总体结构设计确定软件由哪些模块组成以及这些模块之间的动态调用关系。网上书店不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。在功能方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。在系统开放性方面,按照软件工程开发规范实现系统的开放性,既便于扩充又便于升级,以适用今后其他人的借鉴需求。在系统和数据的安全性方面,系统采用数据库级用户权限和应用程序级运行权限的双重控制机构,提供了统一的基于角色的用户管理手段,具有完善的系统和数据安全的保障体系。在操作性方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。3.2.1系统功能模块划分网上书店系统主要是实现以下两个功能:一是客户在网上查书,选书,购书和产生订单等功能。二是后台的图书管理功能,包括图书种类的管理和图书的管理。一个典型的网上书店一般都有需要实现商品信息的动态展示,购物车管理,会员管理(包括会员信息注册)和订单处理等模块。根据需求分析可以分为七大功能模块,该系统的功能模块如下表-41- 致谢3-1所示:表3-1网上书店管理系统功能模块功能模块功能概述图书信息管理该模块实现依据书名或作者的信息来对图书信息的快速搜索,也提供图书书目信息的分类查询,显示功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便客户能更详细的了解所购买的商品。购物车管理用于维护每一个进入网上书店的客户对应的购物车,也就是将客户所选购的图书商品信息记录到对应的购物车里,以便于生成订单。会员管理实现网上书店客户信息的注册及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的真实姓名,通信地址和联系方式等信息。订单管理实现根据客户购物车中的商品信息,以及客户所选择的送货方式和付款方式连同客户对应的个人信息一同生成订单,以便后面进行送货处理。图书管理该模块是后台管理模块,实现进入后台页面的身份验证,图书类型的添加,删除及对应类型下图书信息的发布,删除等功能。留言管理该模块实现普通用户对相应书籍的留言和管理员对留言的删除功能。公告信息该模块是后台模块,实现管理员对信息的发布,修改和删除功能。3.2.2系统结构图设计系统结构图是对软件系统结构的总体设计的图形显示,从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计.在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。本系统的结构图如图3-1所示。-41- 致谢系统前台管理图书显示模块用户模块订单模块用户留言模块数据库连接数据库JavaBean购物车模块后台管理图书管理模块公告管理模块退出模块订单模块用户管理模块公告信息模块留言信息管理图书分类信息图3-1系统功能结构图3.3数据库设计用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能够充分满足各种信息的输入和输出。收集基本数据、数据结构和数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。3.3.1用户信息表用户信息表包括的字段:用户ID、用户名、密码、用户性别、真实姓名、联系电话、通讯地址、邮政编码、电子邮件、找回密码问题提示、找回密码问题答案、创建时间。其数据表如表3-2所示。3.3.2图书信息表图书信息包括的字段:图书编号、图书名称、出版社、出版时间、作者、图书图片、图书价格、图书分类、简单介绍、推荐数、图书数量。其数据表如表3-3所示。3.3.3订单表订单表的字段包括:订单ID、用户ID、收货人、收货地址、联系电话、订单日期、付款方式、是否付款、购物总价。其数据表如表3-4所示。-41- 致谢3.3.4订单详细信息表订单详细信息表的字段包括:订单编号、图书编号和购买数量。其数据表如表3-5所示。表3-2用户信息表(users)编号字段名称数据类型说明1userID整型(18)编号(主键、自增)2userName字符型(50)用户名3userPassword字符型(50)密码4sex字符型(10)用户性别5realName字符型(50)用户真实姓名6telephone字符型(60)用户联系电话7Address字符型(100)用户通讯地址8postcode整型(10)邮政编码9email字符型(50)电子邮件10question字符型(50)找回密码问题提示11result字符型(50)问题答案12createTime日期型创建时间13sysRole整型用户角色表3-3图书信息表(books)编号字段名称数据类型说明1bookID整型编号(主键)2bookName字符型(200)图书名称3pub字符型(100)出版社4pubTime日期型出版时间5author字符型(100)作者6picUrl字符型(50)图片名称7price浮点型图书价格8sortID整型图书分类ID9intro字符型简单介绍10recommNumber整型推荐数11bookNumber整型图书数量-41- 致谢表3-4订单表(orders)编号字段名称数据结构说明1ordetID整型编号(主键、自增)2userID整型用户ID3recName字符型(50)收货人4reAddress字符型(100)收货地址5reTelephone字符型(20)联系电话6orderDate日期型订单日期7payMode字符型付款方式8isPayed整型0付款1未付款9totalPrice浮点型购物总价表3-5订单详细信息表(orderdetail)编号字段名称数据结构说明1ordersID整型订单编号2bookID整型图书编号3Num整型购买数量3.3.5图书分类信息表图书分类信息表的字段包括:分类编号和分类名称。其数据表如表3-6所示。表3-6图书分类信息表(sorts)编号字段名称数据结构说明1sortID整型编号(主键)2SortName字符型图书分类名称3.3.6用户留言信息表用户留言信息表包括的字段有:留言ID、留言内容、图书编号、用户编号、创建日期。其数据表如表3-7所示。表3-7用户留言信息表(words)编号字段名称数据结构说明1wordID整型编号(主键)2wordContent文本型留言内容-41- 致谢3bookID整型图书编号4userID整型用户编号5createTime日期型创建日期3.3.7公告信息表公告信息数据表的字段包括:公告ID、公告标题、公告内容、用户编号、发布时间。其数据表如表3-8所示。表3-8公告信息表(notice)编号字段名称数据结构说明1noticeID整型编号(主键)2title标题公告标题3noticeContent字符型公告内容4userID整型用户编号5noticeDate日期型发布时间-41- 致谢第4章系统详细设计4.1系统功能设计本网站系统包括两大部分,前台和后台。用户只能使用前台的各项功能包括注册、登录、购书、浏览书籍信息、发布信息、留言、浏览公告、浏览排行榜等;后台只有管理员才能使用,对网站进行综合管理使其动态更新。下图(图4-1与图4-2)为系统前台主要业务流程与系统后台主要业务流程:进入系统购物车管理查找图书用户注册订单管理注册用户信息和修改用户密码按照图书名或作者或类别查找图书查看购物车或者修改购物车完成订单和查看订单的详细信息用户退出图4-1系统前台主要业务流程4.2用户注册模块设计注册模块的核心思想是向数据库中输入数据,并且数据要不能重复,下面是用户注册模块的程序流程图如下图4-3所示:4.3用户登录模块设计这里介绍用户登录的程序设计思路,数据库中存放有用户的基本信息,用户在网站中输入相关信息,通过匹配检测,便可以知道数据的有效性。用户登录程序流程图,如下图4-4所示:-41- 致谢登录系统图书类别管理图书管理用户管理订单管理用户信息的修改和删除书籍的添加和修改和删除图书类别的添加和删除图书订单的查询和修改和删除管理员退出图4-2系统后台主要业务流程开始用户注册输入数据重复判断注册成功结束成功失败图4-3注册程序流程图-41- 致谢登录信息判定用户欢迎界面开始结束图4-4登录程序流程图4.4图书信息模块设计该模块实现依据书名或作者的信息来对图书信息的快速搜索,也提供图书书目信息的分类查询,显示功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便客户能更详细的了解所购买的商品。主要分为两大部分,图书展示和图书查询。4.4.1图书展示模块设计用户选择图书信息,可以浏览店中所有的图书。该操作涉及到bookstore数据库中books数据表。模块设计流程图,如图4-5所示。4.4.2图书查询模块设计查询图书模块的目的是为了帮助用户快速找到想要购买的图书。由于用户对书店中的图书情况不可能十分清楚,因此采用了模糊查询的方法,只要用户输入了相关的少量信息就可以查询到相应的结果。该操作涉及到bookstore数据库中的books数据表。另外在模糊查询时使用了数据库系统的like运算符。模块设计流程图,如图4-6所示4.5购买图书模块设计购物车管理用于维护每一个进入网上书店的客户对应的购物车,也就是将客户所选购的图书商品信息记录到对应的购物车里,以便于生成订单。本次将以session技术、cookie技术来实现购物车。用户购买图书的流程图,如图4-7所示。-41- 致谢是否开始创建数据库对象,与数据库bookstore建立连接创建Resultset对象实例,并打开数据表books取出要显示的图书集合ArrayList判断有记录吗按照指定格式显示图书信息结束图4-5图书展示流程图是否开始创建数据库对象,与数据库bookstore建立连接创建Resultset对象实例,并打开数据表books判断有记录吗按照指定格式显示图书信息结束输入查询信息,选择查询条件图4-6图书查询流程图-41- 致谢是否开始是否登录进入图书管理界面对图书信息进行编辑确认编辑返回主界面结束图4-8管理员管理图书的流程图是否开始是否登录进入会员管理界面对会员信息进行编辑确认编辑返回主界面结束图4-9管理员管理会员的流程图-41- 致谢否是是否是否开始是否要购买将选择图书添加购物车修改数量吗更新购物车的信息删除某书吗吗完成订单整理购物车,计算总金额输入收货信息结束图4-7用户购买图书流程图4.6管理员模块设计4.6.1图书管理模块设计图书管理模块完成对图书信息的编辑操作包括:添加图书、修改图书和删除图书。该模块的流程图,如图4-8所示。4.6.2会员管理模块设计会员管理模块的编辑操作包括:修改会员信息和删除会员信息。该模块的流程图,如图4-9所示。-41- 致谢4.6.3图书分类模块设计图书分类管理模块的编辑操作包括:添加分类、删除分类。该模块的流程图,如图4-10所示。4.6.4公告信息模块设计公告信息模块的编辑操作包括:发布公告、修改公告、删除公告。该模块的流程图,如图4-11所示。4.6.5留言信息模块设计留言信息模块的编辑操作包括:删除留言。该模块的流程图,如图4-12所示。是否开始是否登录进入分类管理界面对分类信息进行编辑确认编辑返回主界面结束图4-10管理员管理图书分类的流程图-41- 致谢是否开始是否登录进入公告信息管理界面对公告信息进行编辑确认编辑返回主界面结束图4-11管理员管理公告信息的流程图是否开始是否登录进入留言信息管理界面对留言信息进行编辑确认编辑返回主界面结束图4-12管理员管理留言信息的流程图4.6.6订单信息模块设计订单信息模块的编辑包括:修改订单和删除订单。该模块的流程图,如图4-13所示。-41- 致谢是否开始是否登录进入会员管理界面对会员信息进行编辑确认编辑返回主界面结束图4-13管理员管理订单息的流程图-41- 致谢第5章系统实现实现包括编码和测试。所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。编码是对设计的进一步具体化,因此,所选用的程序设计语言的特点及编码风格对程序的可靠性、可读性、可测试性产生深远的影响。5.1实现用户注册模块用户注册模块的核心思想是向数据库中输入数据,并且数据要不能重复,下面是用户注册模块的界面,如图5-1所示。图5-1用户注册界面5.2实现用户登录模块这里介绍用户登录的程序设计思路,数据库中存放有用户的基本信息,用户在系统登录界面中输入相关信息,通过匹配检测,便可以知道数据的有效性。用户登录模块的界面如图5-2所示。-41- 致谢图5-2用户登录界面5.3实现图书信息模块5.3.1图书展示模块点击导航条中的图书信息显示所有图书信息,图书展示界面如图5-3所示。图5-3图书展示界面5.3.2图书查询模块在关键字中输入要查询的信息,选择查询的条件。显示查询的结果。如图5-4所示-41- 致谢图5-4图书查询界面5.4实现购买图书模块用户选择自己要买的书籍添加到购物车中,然后填写收货的相关信息生成订单。如图5-5、图5-6、图5-7所示。图5-5购买图书的购书界面图5-7完成订单界面-41- 致谢图5-6填写收货人信息界面5.5实现排行榜模块按照用户对图书的推荐数降序排列,显示排列在前20名的图书信息。排行界面如图5-8所示图5-8排行榜界面-41- 致谢5.6实现公告信息模块在主界面显示最新的公告信息,以便用户获得最新的信息。界面如5-9图所示图5-9公告信息界面5.7实现用户留言模块用户在留言信息中对图书进行评价,界面如5-10图所示。图5-10用户留言界面5.8实现管理员模块5.8.1图书管理模块图书管理模块包括了三个功能:添加图书、修改图书和删除图书。1.添加图书输入图书信息:图书名称、图书分类、出版社、出版时间、价格、简单介绍等信息界面如图5-11所示。-41- 致谢图5-11添加图书界面2.修改图书可以修改图书名称、图书分类、出版社、出版时间、价格、简单介绍等信息。界面如图5-12所示。图5-12图书修改界面3.删除图书点击删除,确认是否删除,如果确认要删除图书的相关信息,则会从数据库中删除。-41- 致谢界面如图5-13所示。图5-13删除图书界面5.8.2会员管理模块会员模块管理功能包括:修改会员信息和删除会员信息。1.修改会员信息可以修改会员的信息包括:会员的密码、真实姓名、通讯地址、邮政编码、提示问题和问题答案、用户角色等。界面如图5-14所示。图5-14会员信息修改界面2.删除会员点击删除,确认是否删除,如果确认要删除会员的相关信息,则会从数据库中删除会员的信息。界面如图5-15所示。-41- 致谢图5-15删除会员界面5.8.3图书分类模块图书分类管理功能包括:添加分类、删除分类。1.添加分类输入添加分类的名称。界面如图5-16所示。图5-16添加图书分类界面2.删除分类点击删除,确认是否删除,如果确认要删除分类的相关信息,则会判断店中是否还有此分类的书籍,如果有,不能删除此分类。否则从数据库中删除该分类的信息。界面如图5-17所示。图5-17删除分类界面-41- 致谢5.8.4订单信息模块订单信息模块包括:修改订单和删除订单。1.修改订单可以修改收货人、收货地址、联系电话、邮政编码、总价、是否付款,购物车中图书的数量,删除某一本书。界面如图5-18所示。图5-18修改订单信息界面2.删除订单点击删除,确认是否删除,如果确认要删除该订单信息,则会从数据库中删除订单和订单详细信息。界面如图5-19所示图5-19删除订单信息界面-41- 致谢5.9系统的测试与维护5.9.1单元测试单元测试集中检查软件设计的最小单元——模块。通常,单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行的进行。四个模块的测试用例如下:测试一:在管理员登录时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。具体操作:用户名、密码、任意一项为空或者填写有误。结果:都出现相应的错误原因的信息提示。结论:要求管理员必须填写正确的用户名和密码,才能进入管理页面。测试二:修改本站的公告﹑返回前台,看其是否更新成功。具体操作:通过信息管理页面中的修改公告功能修改公告的内容,看其是否修改成功。结果:公告内容更新为修改后的信息。结论:修改公告功能正常。测试三:添加﹑删除一条公告信息﹑返回前台,看其是否添加删除成功。具体操作:在信息管理页面中添加﹑删除一条首页公告信息。结果:显示新添加的新闻信息内容、被删除的公告信息没有再显示。结论:新闻的添加删除功能正常。测试四:管理员删除一图书的信息,在前台按关键字查询,看其是否能找到对应的信息。具体操作:在图书管理页面中的图书查看与修改页面中删除一图书的信息。结果:在前台搜索中,按关键字查询不到此书信息。结论:删除图书信息功能正常。5.9.2系统维护本系统的维护主要包括以下内容:-41- 致谢1.权限维护。管理员需要对用户的用户名、密码和权限进行维护,给每名员工分配享用的用户名和密码,确定操作级别。2.数据库维护,在日常运行中要不断对数据库管理及其表进行修改,对无用的表及表中的信息进行删除处理。这样确保系统能够正常,快速地运行。-41- 致谢结论当今社会对于软件开发是一个分工很细的工作,在开发过程中不同的人负责不同的模块开发,比如有专门的人负责业务逻辑,有专门的人负责图形界面,所以现在的开发人员都是某一方面的专家。在本系统中图形界面是十分的友好,但是从美观的角度来说还是很不够的,这样的界面是不能应用到实践中的。在论文的写作过程中,不仅有大量的参考书籍并且在老师指导和帮助下给论文奠定了良好的理论基础,并且自己亲身体验了几次愉快的网上购书,给我写作提供了良好的素材。引入MVC模式之后,逻辑层与表现层分离开来,业务逻辑不再关心具体的显示层面,逻辑层的代码量消除了膨胀隐患,表现层也可交由其它非业务人员自由调整,最后完美整合,在层次分工上,比传统模式更加清晰,利于维护,在项目有升迁移植改造需求时,由于业务逻辑层不与表现层直接关联,故可直接使用已有的业务逻辑,大大减少了重构成本。越大的项目中MVC的作用表现的越明显。电子商务不可避免的会得到更加广泛的发展和应用,而在此过程中必将有更多更好的编程语言出现,但是我认为MVC的设计思想至少在短期内是不会过时的。毕业设计毕竟是为了让我们学习到如何设计和开发一套系统,在毕业设计过程中我还是学到了很多知识,知道遇到问题该如何去分析问题、解决问题,能够自己动手做出一套系统来这也是对自己的一种鼓舞,也是对我的大学生活的一次检验,让我把这四年所学到的知识能够用于实践,这让我的动手能力也有了很大的提高,也让我学会了如何思考问题。相信这些都会让我在以后的工作中受益无穷的。-41- 致谢参考文献[1]谢希德.创造学习的思路[N].人民日报,1998.74~80[2]达尔文.Java经典案例(第二版).北京:中国电力出版社,2009.16~21[3]萨师煊.王珊.数据库系统概论[M].北京:高等教育出版社,2001.18~20[4]鲁晓东,杨健.JSP软件工程案例精解.北京:电子工业出版社,2005.18~20[5]陆正式,张立志.Java项目开发实践.北京:中国铁道出版社,2005.235~239[6]罗国庆.陈良萍.网站建设案例精粹.电子工业出版社,2004.112~119[7]王黎.JSP+Dreamweaver动态网站开发典型案例.清华大学出版社,2010.85~95[8]孙卫琴.Tomcat与JavaWeb开发技术详解.电子工业出版社,2004.80~83[9]连洪.EclipseWeb开发从入门到精通.清华大学出版社,2007.50~55[10]石志国.JSP网络开发详解.电子工业出版社,2007.70~77[11]吴建.张旭东.JSP网络开发入门与实践.人民邮电出版社,2006.100~120-41- 致谢致谢经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起学习的同学们的支持,想要完成这个设计是难以想象的。在这里首先要感谢我的导师杨胜春老师。杨老师平日里工作繁多,但在我做毕业设计的每个阶段,从大连培训到查阅资料,设计草案的确定和修改,后期详细设计等整个过程中都给予了我悉心的指导。除了敬佩杨老师的专业水平外,他治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。然后还要感谢大学四年来所有的老师,为我们打下计算机专业知识的基础。同时还要感谢我所有的同学,正是因为有了你们的支持和鼓励。我的毕业设计才会顺利完成。最后感谢信息工程学院和我的母校—东北电力大学四年来对我的大力栽培。-41-'