首页 图书销售系统毕业论文

图书销售系统毕业论文

举报
开通vip

图书销售系统毕业论文本科毕业设计(论文) 题目名称: 基于Struts2.0的网上购物系统 学 院: 计算机科学与技术 专业年级: 计算机科学与技术(工)07级 学生姓名: 徐华峰 班级学号: 3 班 30 号 指导教师: 张凤君 二○一一年 五 月 二十 日 TOC \o "1-3" \u 摘 要 3 Abstract 4 第一章 概述 5 一、 电子商务的概念和基本类型 5 二、 电子商务的发展现状 5 (一)国内电子商务的发展现状 5 (二)国外电子商务的发展现状 5 三、 系统研究背景 6 第二章 开发环境介绍 7 一、 开发...

图书销售系统毕业论文
本科毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (论文) 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目名称: 基于Struts2.0的网上购物系统 学 院: 计算机科学与技术 专业年级: 计算机科学与技术(工)07级 学生姓名: 徐华峰 班级学号: 3 班 30 号 指导教师: 张凤君 二○一一年 五 月 二十 日 TOC \o "1-3" \u 摘 要 3 Abstract 4 第一章 概述 5 一、 电子商务的概念和基本类型 5 二、 电子商务的发展现状 5 (一)国内电子商务的发展现状 5 (二)国外电子商务的发展现状 5 三、 系统研究背景 6 第二章 开发环境介绍 7 一、 开发思想的介绍 7 (一)传统模块化思想的介绍 7 (二)面向对象思想的介绍 7 二、 主要开发工具 7 (一)Struts2.0 7 (二)MySQL 8 (三)DreamWeaver8 8 三、 系统运行平台与开发环境 8 (一)硬件配置(最低配置) 8 (二)运行平台 8 第三章 可行性分析与需求分析 10 一、 可行性分析 10 (一)经济可行性 10 (二)技术可行性 10 (三)法律可行性 11 (四)结论 11 二、 用户需求分析 11 (一)用户功能需求 11 (二)用户数据需求 12 第四章 概要设计和详细设计 13 一、 系统设计 13 (一)系统工作原理 13 (二)系统功能模块的化分 13 (三)系统的结构设计 13 二、 数据结构设计 15 (一)数据库需求分析 15 (二)数据库概念结构设计 15 (三)数据库逻辑结构设计 16 三、 界面设计 18 (一)用户图形界面的设计 18 (二)管理员图形界面的设计 18 第五章 系统实现 20 一、 组件的编写 20 (一)Util包 20 (二)DAO包 20 (三)Entity包 20 二、 部分源代码摘录及分析 21 (一)数据库连接 21 (二)用户注册时的AJAX校验程序 21 (三)验证图片的生成源代码 23 (四)图书分页显示的源代码 24 (五)用户添加商品到购物车的核心代码 25 (六)我的当当模块核心代码 25 (七)订单管理核心代码 26 第六章 系统运行评估 28 一、 测试指导思想及 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 28 (一)指导思想 28 (二)测试方案 28 二、 部分功能测试结果 30 (一) 用户界面窗体设计测试 30 (二) 文本框的测试 30 第七章 总结 31 一、总结 31 二、问题与展望 31 参考文献 33 摘 要 随着电子商务的不断发展,企业网络化已经成为一种时尚,而中小企业如何利用有限的资金搭建自己的电子商务网站显得尤为重要。本文研究了一种基于struts2.0技术的图书销售网站,通过介绍该网站的MVC三层结构模式,充分体现了struts2.0技术的优势,并通过对开发过程的详细介绍,给出了使用此技术构建中小企业的电子商务网的具体实现 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。 本文研究的在线图书销售系统实现了用户端在线浏览图书信息、开通网上购物车、在线提交订单等功能。管理员通过本系统可以添加图书及图书分类、管理用户、管理订单、统计销售量等。与传统销售行为相比,在线图书销售系统为用户和商家都提供了最高的效率和最便捷的手段。 关键词:struts2.0、在线销售、Mysql Abstract Along with the constant development of e-commerce, enterprise networks have become a trend, and how to use the limited funds it is particularly important to build their own e-commerce website. In this paper, the Book sales a Struts2.0-based web site, by introducing a MVC three-tier structure of the website Struts2.0 model fully embodies the advantages of Struts2.0 technology, and through the development process in detail. Construction of a given SME e-commerce websites use Struts2.0 specific method. This paper studies the online Book sales system by end users browse the Book online information, and launched online shopping cart. Submitting orders online and other functions. Managing Book and Book can be added to the classification system, user management, order management, sales and other statistics. Compared with traditional sales behavior, online Book sales system provides users and businesses to have the highest efficiency and most convenient means. Key Words: Struts2.0、Sales online、Mysql 第一章 绪论 一、 电子商务的概念和基本类型 在线图书销售系统是一个典型的电子商务网站。而看似神秘的电子商务并不是一个新的概念,也不是近年才兴起的新型经济活动。确切的说,早在70年代,企业就已经开始了不同类型的电子交易活动,如银行间的资金转账等。在一定意义上说,数据交换(EDI)是电子商务的雏形和前身,随着互联网技术的发展,使电子商务的环境有了极大的改善并使电子商务的概念不断扩大。美国电子商务工作委员会对电子商务作了一个简单明了的定义:以电子形式买卖商品和服务的系统叫电子商务。在中国我们普遍认为电子商务是在技术、经济高度发达的现代社会里,掌握信息技术和商务规则的人,系统化地运用电子工具,高效率、低成本、安全、可靠、方便地从事以商品交换为中心的种种经济事务活动的总称。而在线图书销售系统也正是利用了电子信息技术,以互联网为媒介进行商务活动。 从不同的角度电子商务可以分为各种类型,运用比较多,也较广为人知的是按照参与主体来进行划分,这样可以分为企业对企业电子商务交易模式(简称B to B)、企业对消费者电子商务交易模式(简称B to C)、消费者对消费者电子商务交易模式(简称C to C)等,在线图书销售系统属于B to C模式。 二、 电子商务的发展现状 (一)国内电子商务的发展现状 自9 0年代以来,中国致力于加速国家信息化基础设施建设的努力已经取得了明显进展,在公路网和专用网的支撑下,Internet的发展方兴未艾,随着网络运行成本和服务价格的下降,越来越多的人开始接受和主动选择电子商务这种商务形式,从客观上为在线图书销售系统的发展奠定了良好的基础。 (二)国外电子商务的发展现状 众所周知,以美国为代表的西方国家,在计算机和信息技术方面拥有着绝对的优势,因此,图书网络商店在美国等地已经非常普遍和流行。事实上,国际上各国对于电子商务的发展所抱有的观点和政策不尽相同。一种观点是美国为代表的温和派,主张平等对待电子商务于传统商务,对其不加收附加税。而另一方面以“比特税”为代表的严厉派则认为要立即对电子商务进行征税。 三、 系统研究背景 近年来,随着网络技术特别是Internet技术的普及和发展,电子商务的开发和应用成为一个热门领域,在线图书销售系统就是这其中的一员。 开一家图书销售实体店,从商铺的租金、装修、水电暖等各类费用到雇佣店员、进货等等经营费用实在不是一笔小的开支。加之图书商品的消费人群由各个年龄阶段的人构成,店铺可以开在城市的每个角落,所以成本必然会高很多。但是在网络上开店就不同了。由于电子商务的成本较低,使得在线销售图书,即开一家图书网络商店成为了更好的选择。例如用struts2.0技术,只用几万元人民币就可以搭建一个图书销售网站,并且完全不依赖于操作系统、数据库及Web服务器。因为struts2.0技术秉承了Java语言优势,真正实现与平台无关,具有很高的开发效率和运行效率。这样的低门槛让更多的人可以加入电子商务的“淘金流”,因此在网络上开个图书销售小店已经成为了很多精明的商人的选择。 除此之外,很多大型的图书销售企业在这样的网络销售浪潮中也选择了实体店网络化,依靠网络去占有、扩张客户。快速便利的互联网使这些企业拥有了更加广阔的客户群,高速发展的网络技术也为这些企业简化了销售管理工作。 第二章 开发环境介绍 一、 开发思想的介绍 本系统结合了传统模块化思想和当今颇受好评的面向对象思想,两种思想互相补充,将各自的优点发挥的淋漓尽致,为成功的开发系统提供了坚实的基础。下面对这两种思想进行简单的介绍。 (一)传统模块化思想的介绍 传统模块化思想将系统程序划分为若干个模块,每个模块完成一个子功能,模块既独立,相互之间又有一定的联系,把它们组成一个有机的整体,完成指定的功能。运用传统模块化思想开发系统的模型主要有:瀑布模型、原型模型、增量模型、螺旋模型等。软件生命周期的划分也是基于模块化思想的。 (二)面向对象思想的介绍 面向对象技术是以对象为核心的开发技术。该方法的出发点是使软件开发尽可能按照人对客观世界认识的规律和解决问题的方法于过程,以便使描述问题的空间与实现方法在结构上尽量一致。 面向对象方法学认为,客观世界由对象组成。任何事物都是对象每个对象都有自己的内部状态和运动规律,不同对象彼此间通过消息相互作用、相互联系,从而构成了所要分析和构造的系统。系统中每个对象都属于一个特定的对象类。类是对具有相同属性和行为的一组相似对象的定义。应该按照子类、父类的关系,把众多的类进一步组织成一个层次系统,这样做了以后,如果不加特殊描述,则处于下一层次上的对象可以自动继承位于上一层次的对象的属性和行为。 二、 主要开发工具 本系统时基于struts2.0的在线购物系统的一种,其中数据库采用了当前流行的,便于安装和使用的Mysql数据库,同时,网页的制作采用了拥有可视化界面的Macromedia DreamWeaver8软件,以下对这几种主要技术和软件进行简要介绍。 (一)Struts2.0 Struts2.0是一种基于MVC思想的网站设计模式,它主要使用的Java Server Pages(JSP)和java技术,用于创建支持跨硬件平台及跨Web服务器的网页。JSP可与微软的Active Server Pages (ASP)相媲美,相对于ASP来讲,JSP更突出的特点就是利用了Java强大的跨平台性,不论是在Windows NT 2000还是在Soloris、Linux下都能正常运行,而且执行效率更高。 (二)MySQL MySql是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。此外,MySql还提供了JDBC驱动程序的下载,使得其与JSP页面的连接变得简单易行。其中,JDBC是一种用于执行SQL语句的Java API(Application Programming Interface,应用程序设计接口)。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。 (三)DreamWeaver8 Macromedia DreamWeaver8 是建立 Web 站点和应用程序的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的网站和应用程序。从对基于 CSS 的设计的领先支持到手工编码功能,DreamWeaver8 提供了 专业人员在一个集成、高效的环境中所需的工具。开发人员可以使用 DreamWeaver8 及所选择的服务器技术来创建功能强大的 Internet 应用程序,从而使用户能连接到数据库、Web 服务和旧式系统。 三、 系统运行平台与开发环境 (一)硬件配置(最低配置) CPU:Pentium 266MHz处理器 内存:1024MB 硬盘:500MB空间 声卡:Diretx Sound兼容 显卡:Diect 3D(32MB以上) (二)运行平台 操作系统:Microsoft Windows xp、Linux 浏览器:IE6.0 软件环境:J2sdk-1_4_2_13、Apache-tomcat-5-0-28、MySql 第三章 可行性分析与需求分析 一、 可行性分析 基于前述系统介绍,下面就经济可行性、技术可行性和法律可行性对系统的整体可行性进行分析。 (一)经济可行性 对于一个小型商务网站的搭建,在开始阶段通常需要进行网站界面的设计、服务器的搭建、数据库的建设、网络地址的申请等,基于国内软件行业的现状,个人搭建一个小型商务网站,只要一次性投入3-4万元人民币即可,日常产生的费用很小,主要是对网站和数据库的维护费用。由于全智能软件的使用,对于销售行为和日常维护都非常简单,让一个员工可以做传统实体店中所有员工的工作,有效减少了人力资源的浪费,极大的节省了开支。另外,由于在线图书销售系统的网络移动特性,店主可以随时随地进行销售工作,真正做到生意不断。 由于在线图书销售针对性较强,属于典型的需求导向型销售模式,所以库存量可以较为灵活,甚至可以采用JIT模式。 (二)技术可行性 1.操作界面的实现 在线图书销售系统的操作界面,无论用户界面还是管理员界面,实质上都只是一些动态网页的链接。现在市面上有很多网页制作软件,最常用的有Microsoft FrontPage、Macromedia DreamWeaver,此外,直接用HTML、JavaScript等语言编写网站也是较为常用的方法。 2.数据库技术 在线图书销售系统对于数据库的主要操作为记录的插入、修改、删除和统计,可以采用目前流行的Oracle数据库、DB2数据库以及免费的My SQL等。 3.网络地址的申请 目前在网络上开设在线购物商店,获得网址的方法主要有两种,一种是通过注册和交费向域名管理机构申请网络地址的使用权,这种方式需要一定的投资额,但是获得域名较为稳定,且容易记忆。另一种方式是通过淘宝网等在线销售平台,注册成为其会员后免费开通网络商店。这种方式获得的网络店铺几乎不产生费用,但需要服从在线购物平台的统一管理,在店面风格、经营方式等方面限制较多。 (三)法律可行性 对于网上购物,店主应该本着诚信的原则,对于产品质量和服务给予保障。目前国际上对于电子商务制定了一系列的法律予以规范和保障,在线图书销售网站的经营者应该严格执行相关的法律法规。 此外,在开发过程中使用的部分软件均涉及到了版权的问题,如MySql,但由于本系统为学生毕业设计作品,并非用于商业用途,所以采用免费的教学版本,暂时不考虑软件版权问题。 (四)结论 经过以上可行性分析,认为本系统可以立即开始进行。 二、 用户需求分析 (一)用户功能需求 对于在线图书销售系统的用户,最终和最重要的功能无疑是在线购物行为的完成,针对在线购物行为,用户对系统的功能需求可以细分为以下几个方面: 1.图书产品查询 (1)图书查找 在本功能中,用户需要能够按照多种方法迅速找到需要的图书产品,对应的,系统需要提供多种查询方法,如按图书名称查询、按销售排行查询和分类查询等。同时,系统应该能够准确反馈查询结果,这个结果可以只是一个简单的列表,图书详细信息的查询可以作为链接以节省系统开销,提高重用性。如果库存中没有用户所查询的图书产品,系统应该及时返回没有该图书的查询消息。 (2)图书详细信息查看 在用户决定购买之前需要详细了结图书产品信息,包括图书名称、分类名称、价格等。 2.购买行为参考及实施 (1)图书销售排行查询 图书销售排行榜对于用户购买图书产品的行为有指导作用,排行榜的前几位通常在相当的一段时间里会有不错的销售成绩。 (2)购物车 用户需要类似实体店购物车功能的一个模块来存放一部分不能马上做出购买决定,还需要综合权衡的图书产品。 (3)填写提交及支付 对于决定购买的产品用户需要填写订单进行购买,系统必须提供一个填写和提交订单的平台,同是要提供足够安全的信道传送用户支付信息。 (4)查看订单状态 用户对于已经完成的订单有查询其状态的需要,系统应该能够在接到用户查询请求时,将订单的实时状态准确及时地告知用户。 3.用户个人信息设置及更新 用户在网站注册后,需要随时可以查询自己的个人信息,同时应该具有随时更新设置的权利。 (二)用户数据需求 经过调查,在线图书销售系统的用户需要运用的数据主要包括如下几种。 1.用户需要获得的数据 图书产品信息及相关销售信息、用户积分等数据。 2.用户需要存储的数据 (1)用户的个人信息 (2)用户的购物车信息 (3)用户订单信息 第四章 概要设计和详细设计 一、 系统设计 (一)系统工作原理 系统采用三层结构,即MVC模式,简单的来说,用户界面层通过统一的接口向业务层发送请求,业务层则按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库操作。 JavaBean通过返回对象的形式返回数据,在类的内部可以规定哪些数据可以访问,哪些数据是只读的,从而通过封装数据达到提高数据安全性的目的。 (二)系统功能模块的化分 本系统的主要功能可以按客户界面和管理界面分为两部分,具体功能如下: 1.客户界面部分 (1)用户注册 (2)用户登陆 (3)修改用户信息 (4)图书信息查询(可以按关键字或者分类方式查找) (5)购物车 (6)查看图书详细资料 (7)查看订单信息 (8)查看销量排行 2.管理界面部分 (1)库存图书管理(查看、修改、删除) (2)用户管理(查看、修改、删除) (3)订单管理(查看订单清单、更新订单状态、删除订单) (4)新图书管理(添加新图书、添加新分类) (5)销售统计管理 (三)系统的结构设计 根据三层架构和面向对象与模块化思想相结合的设计思想,系统的功能实现可以分为视图模块(View)、业务逻辑处理模块(Model)和控制模块(Controller)。针对每一模块单独实现具体操作,之后进行系统模块间的通信和联合,构成整体系统功能。三个模块具体功能实现为: 1.视图模块 (1)用户界面 用户界面主要提供了用户注册、登陆、会员登记查询等用户信息查询功能,在线购买界面(包括图书信息等)、销量排行等图书信息查询功能的界面和购物车、订单信息等在线购买功能的界面。 (2)管理用户界面 管理用户界面主要实现的功能有:提供图书管理功能(包括现有图书的管理和新图书的添加管理)、用户管理功能、订单管理功能和销售统计功能的界面。 2.业务逻辑处理模块 本模块包含了在线图书销售系统的主要业务工作,相当于一个实体店中的核心营业员。以下用一个营业员所要做的工作来形象的表示系统改模块实现的功能。 (1)图书管理 图书管理包括的主要工作可以笼统的分为对图书的工作和对分类的工作。对于图书的工作可以分为现有图书的登记和分类管理,新到图书的登记和分类管理。而针对分类的管理工作,主要是对分类信息的维护工作,如及时添加新的分类或者及时删除过时信息。 (2)订单管理 在线图书销售系统对于订单的管理与传统实体店营业员的工作略有不同。普通的图书店营业员只需要处理用户交给他的订单,也就是在线图书销售系统中已经提交成功的订单。但事实上,在用户提交订单前,会有更多的选择作为被选的选项,掌握了这些图书的清单,会帮助我们进一步了解该用户的购买动向及兴趣所在,从而实施更有针对性也更为有效的营销策略。很简单,如果我们能够为用户提供更多备选图书的信息,也许就可以促成购买行为的完成。同样的,如果能为用户推荐更多他们所感兴趣的图书,那么更多的交易行为就有可能发生。所以掌握用户人员也很难在短时间内准确判断。购物车里的备选清单,对于下一步的销售有着非常重大的影响。 而在用户购买动向和兴趣所在的收集方面,即使是有着多年销售经验的销售传统销售中的这一弱点,在线销售系统可以很好的弥补。通常被用户放入购物车的图书一般都是他们所感兴趣的,购买的可能也就大很多,所以只要我们及时查看用户购物车资料,就可以了解到每个用户的购买习惯和动向。 (3)用户管理 针对会员的管理,在线图书销售系统与传统实体店基本相同。对比实体店购买过程,首先要求会员申请会员资格,相当于用户网上的注册。随后进行购物时要出示会员资格证明,即网上的用户登陆行为。购买行为发生时,销售人员要登记该会员的编号和所购买的图书,以便随时更新该会员的,就是在线销售系统的用户管理行为。 (4)购物车管理 本模块主要功能是存储用户所选购的商品,用户选购的商品会一直保存在数据库中,直到用户为已选购的商品生成订单,用户的购物车才会清空,购物车分两个模块,一个是用户已选购的商品显示模块,一个是用户以前放在购物车中的商品,但是被用户删除的商品模块,这样可以防止用户误删商品信息,并可以对商品重新放入购物车中。 (5)销售统计 销售统计对于店主及时掌握销售情况有着重大的意义。由于功能强大的MySql数据库的使用,在线图书销售系统在销售统计功能方面有着传统实体店无法想象的便捷和高效。从数据库记录中,系统管理用户可以任意查看各日、各周、各季度的销售记录,同时还可以分类查询,获得不同类型图书的销售情况。 (5)数据库模块 本模块主要进行数据的录入、更新、检索等工作,相当于传统实体店里认真负责而又分毫不差的库存管理员。 3.控制模块 本模块主要进行功能是调节模型(Model)与视图(View)的协调工作。即视图先将请求提交给控制器,由控制器调用对应的模块来处理,然后,模型处理完毕后的结果也会提交给控制器,由控制器选择合适的视图来生成相应的界面,显示其结果。 二、 数据结构设计 (一)数据库需求分析 对比传统实体店,并结合在线购物的特点,综合系统功能分析,本系统的需求信息主要有:用户分一般用户和管理员用户。订单分单张详细订单和总订单。每一本图书都从属于一种类型。一个用户可以购买多本图书。一个用户对应一张订单列表信息。一个列表对应多个订单信息。 经过系统数据库的功能分析和需求总结,将数据项和数据结构做如下设计: 1.管理员信息,包括数据项:用户名、密码 2.普通用户,包括数据项:用户ID、用户名、密码 3.图书,包括数据项:图书编号、图书名称、分类编号等 4.图书分类,包括数据项:分类编号、分类名 5.订单列表,包括数据项:订单编号、图书编号、购买数量 6.订单,包括数据项:订单编号、用户编号、下单时间等 (二)数据库概念结构设计 根据数据项和数据结构的分析,在数据库概念结构设计部分可以设计出满足用户需求的各种实体以及实体之间的关系,为逻辑结构设计打下基础。实体包含各种具体信息,通过相互之间的作用形成层数据流动。 本系统数据库中包含的实体有:管理员信息实体、普通用户实体、图书实体、图书分类实体、订单实体、订单列表实体。 (三)数据库逻辑结构设计 数据库概念结构设计完毕后,可以将数据库概念结构转化为MySql数据库系统所支持的实际数据模型,就构成了数据库的逻辑结构。 在线图书销售系统数据库中各个表的设计结果如表1-表6所示。每个表格表示数据库中的一个表,订单信息列表All Orders如表1所示,记录每个用户的订单总信息。 表1 订单信息列表allorders Field Type Null Key Default Extra Comment Id int NULL PRI NULL IDENTITY(1,1) 主键,递增 order int NULL 0 0 订单号 bookNo int NULL 0 0 图书编号 amount int NULL YES NULL 订货数量 图书信息列表bookInfo如表2所示,记录商店现有的图书信息。 表2 图书信息列表bookInfo Field Type Null Key Default Extra Comment Id int PRI (NULL) IDENTITY(1,1) 主键,递增 bookName Varchar(10) 图书名称 bookClass int 0 图书分类名称 bookNo Varchar(30) YES (NULL) 图书发行编号 print text YES (NULL) 图书发行地 Price float YES (NULL) 原价 Amount int YES (NULL) 总数量 Leav_No int YES (NULL) 剩余数量 RegTime datetime 登记时间 picture Varchar(200) YES (NULL) 图书封面 商店管理员信息表bookAdmin如表3所示,记录管理员的帐号密码。 表3 管理员信息表bookAdmin Field Type Null Key Default Extra Comment AdminUser varchar(20) YES (NULL) 用户名 AdminPass varchar(50) YES (NULL) 密码 商店图书类别列表bookClass如表4所示,记录商店现有的图书分类。 表4 商店手机类别列表photoClass Field Type Null Key Default Extra Comment Id int PRI (NULL) IDENTITY(1,1) 分类编号 Classname varchar(30) (NULL) 分类名称 订单详细表orders如表5所示,记录单张订单的具体信息。 表5 订单详细表orders Field Type Null Key Default Extra Comment Id int PRI (NULL) IDENTITY(1,1) 主键,递增 orderId varchar(20) 订单编号 UserId int 0 用户编号 SubmitTime datetime 订单提交时间 ConsignmentTime datetime YES (NULL) 交货时间 TotalPrice float YES (NULL) 总金额 content text YES (NULL) 备注 IPAddress varchar(20) YES (NULL) 用户IP IsPayoff int YES (NULL) 是否已付款 IsSales int YES (NULL) 是否发货 用户信息表user如表6所示,记录商店的所有用户的详细信息。 表6 用户信息表user Field Type Null Key Default Extra Comment Id int PRI (NULL) IDENTITY(1,1) 主键,递增 UserName varchar(20) 用户名 PassWord varchar(50) 密码 Names varchar(20) YES (NULL) 真实姓名 Sex char(2) YES (NULL) 性别 Address varchar(450) YES (NULL) 地址 Phone varchar(25) YES (NULL) 联系电话 Post varchar(8) YES (NULL) 邮编 Email varchar(50) YES (NULL) E-mail地址 RegTime datetime YES (NULL) 注册时间 RegIPAdress varchar(20) YES (NULL) 注册IP 三、 界面设计 为了提高代码的重用性,在线图书销售系统的界面采用框架形式,即页面头尾部分只需要设计一次。 (一)用户图形界面的设计 1.用户登陆模块设计 为了验证用户是否合法,系统需要用户提供用户名和密码来进行验证,这一功能由用户登陆模块完成。本模块需要运用login.java这个bean,来设计一个表单让用户输入用户名和密码。在本模块中,对于用户输入的用户名和密码,系统在发现错误时,应及时做出错误报告。 2.在线购买功能模块设计 针对用户界面,由于“图书列表”和用户导航条等部分是只有用户界面可以看到的,所以将这两部分设计成一个新的框架形式,提高复用性。在本模块中用户可以浏览现有图书、用不同的方法查找图书(分类查询、关键字查询)、查看图书详细资料、把图书放入购物车等。 3.我的购物车功能模块设计 在本模块中,用户可以修改购买数量、删除已经选购的图书、恢复已删除的图书、提交购物车、清空购物车、继续购买或查询图书等。 4.订单信息功能模块设计 本模块中用户可以看见自己已经提交的所有订单,可以查看订单的详细情况。确认订单时,系统采用弹出窗口的形式显示相信信息,在弹出窗口中可以进行付款。 5.销量统计功能模块设计 这个模块可以显示销量排名在前10的图书名称和数量。销量统计模块首先生成销量统计管理类op_sale_statistics的实例对象,然后调用该对象的getSaleNumOrder()方法,从数据库取出销量前10名的图书的名称和销售数量并显示在页面上。 (二)管理员图形界面的设计 1.管理员登陆功能模块设计 为了验证管理员的身份,系统需要进行用户名和密码的验证,与用户图形界面的设计类似,本模块也需要运用login.java这个bean,设计一个表单让管理员输入用户名和密码。 2.现有图书管理功能模块设计 在这个模块里,管理员拥有对现有图书的详细资料进行查看、修改图书名称、删除图书等权限。 3.添加新图书功能模块设计 在这个模块中,要添加一段JavaScript代码,对表单数据的合法性进行验证。 4.添加新图书分类功能模块设计 这个模块列出了商店现有图书分类,管理员可以删除现有分类,也可以添加新的分类。但在删除操作之前,通过在连接的onclick事件里调用confirm方法,提醒用户是否真的要删除选中的信息,减少误操作。 5.订单管理功能模块设计 管理员可以查看下订单用户的详细资料、查看订单的详细情况并且可以删除订单。 订单管理模块中首先生成op_buy类的对象,然后调用该对象的getOrder方法,取得当前商店的所有订单,分页显示在页面上,下单用户名提供链接,当管理员在用户名列单击某个用户名时,能够弹出新的页面显示该用户的详细资料。然后为每个订单提供查看订单详细情况和删除订单的链接,当管理员单击“详细情况”链接时能够弹出新的窗口显示订单信息。当管理员单击“删除”链接时弹出提示,提示管理员是否确认删除当前订单,如果管理员选择“是”,则从数据库删除该订单,如果选择“否”,则退回详细订单情况页面。 6.用户管理功能模块 管理员通过这个模块对用户进行管理,其中包括:查看用户资料、修改用户资料、删除已存在用户等 第五章 系统实现 一、 组件的编写 基于系统功能分析,首先利用MyEclipse新建一个web工程,在这个工程里新建一个总包bookShop,然后在这个包下新建三个主包dao、entity、和util. (一)Util包 util包里包含4个工具类,作用分别为: 1.​ DBUtil类:主要负责数据库的连接。 2.​ ImageUtil类: 负责用户注册时的验证图片生成。 3.​ VerifyUtil类:系统自动生成邮箱验证码。 4.​ DegistUtil类:对用户的密码进行加密的工具类。 (二)DAO包 这个包中共有6个类,其作用为: 1.​ CartDao类:对购物车操作的接口。 2.​ CategroyDao类:主要用于对图书的分类操作。 3.​ DangDao类:是所有接口的父接口。 4.​ DaoFactory类:创建各个子接口的工具dao。 5.​ OrderDao类:订单接口类,用于对订单的各种操作。 6.​ UserDao类:用户接口类,用于对用户的操作。 (三)Entity包 这个包共包含了6个类,分别是: 1.​ Address类:用户接受商品的地址信息。 2.​ Book类:图书实体类,包含了图书编号、价格等图书信息。 3.​ Categroy类:商品分类类,包含了图书的分类名以及图书名等。 4.​ Order类:订单信息类,包含了订单的状态、订单生成时间,订单描述等。 5.​ Product类:产品信息类,包含了产品名,产品图片名,以及产品的价格等。 6.​ User类:用户信息类,包含了用户的详细信息。 二、 部分源代码摘录及分析 (一)数据库连接 本系统采用连接池的方式来连接MySql数据库,核心代码如下: private static DataSource ds; private static ThreadLocal conLocal = new ThreadLocal(); static { Properties pro = new Properties(); try { pro.load(DBUtil.class.getClassLoader().getResourceAsStream( "dbcp.properties")); ds = BasicDataSourceFactory.createDataSource(pro); } catch (Exception e) { e.printStackTrace(); } } public static void close() throws SQLException { Connection conn = conLocal.get(); conLocal.set(null); if (conn != null) { conn.close(); } } public static Connection getConnection() throws SQLException { Connection conn = conLocal.get(); if (conn == null) { conn = ds.getConnection(); conLocal.set(conn); } return conn; } (二)用户注册时的AJAX校验程序 1.用户注册时邮箱是否合法性校验: $("#email").blur( function() { var email = $(this).val(); $.post("checkEmailExist.action?dt=" + new Date().getTime(), { "email" : email }, function(data) { if (data.nullEmail) { $("#emailInfo").html(""); $("#emailInfo").css("color","red"); $("#emailInfo").html( "请填写邮箱!"); } else if (data.emailFormat) { $("#emailInfo").html( "请填写正确格式的邮箱!"); } else if (data.ok) { temp = true; $("#emailInfo").html( "邮箱可以用!"); } else { $("#emailInfo").html( "邮箱已存在!"); } }, "json"); }); 2.用户注册时验证码是否正确性校验: $("#code").blur(function() { var text = $(this).val(); if (text == "") { $("#info").html(""); $("#info").css("color","red"); $("#info").html("验证码不能为空"); } else { $.post("valid.action?dt=" + new Date().getTime(), { "code" : text }, function(data) { if (data.ok) { flag = true; $("#info").html(""); $("#info").css("color","red"); $("#info").html("验证码正确!"); } else { $("#info").html(""); $("#info").css("color","red"); $("#info").html("验证码错误!"); } }, "json"); } }); (三)验证图片的生成源代码 当用户进行注册时会有验证图片的生成,源代码如下: private static final String[] chars = { "0", "1", "2", "3", "4", "5", "6","7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "工","好", "有", "它", "你", "我", "酒" }; StringBuffer sb = new StringBuffer(); BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics graphic = image.getGraphics(); graphic.setColor(Color.LIGHT_GRAY); graphic.fillRect(0, 0, WIDTH, HEIGHT); Random ran = new Random(); for (int i = 1; i <= SIZE; i++) { int r = ran.nextInt(chars.length); graphic.setColor(getRandomColor()); graphic.setFont(new Font(null, Font.BOLD + Font.ITALIC, FONT_SIZE)); graphic.drawString(chars[r], (i - 1) * WIDTH / SIZE, HEIGHT / 2); sb.append(chars[r]); } for (int i = 1; i <= LINES; i++) { graphic.setColor(getRandomColor()); graphic.drawLine(ran.nextInt(WIDTH), ran.nextInt(HEIGHT), ran.nextInt(WIDTH), ran.nextInt(HEIGHT)); } Map map = new HashMap(); map.put(sb.toString(), image); (四)图书分页显示的源代码 当图书较多时,需要对图书进行分页显示,显示代码如下: /** * 统计产品的全部数量 */ for (Categroy cate : cats) { totalpnum += cate.getPnum(); } /** * 根据id加载产品信息 */ Integer catId = threeId == null ? twoId : threeId; int begin = (page - 1) * size; /** * 获取对应类型的产品数量 */ int totalRecord = 0; if (threeId == null) { totalRecord = totalpnum; } else { for (Categroy cate : cats) { if (threeId.equals(cate.getId())) { totalRecord = cate.getPnum(); break; } } } /** * 根据总记录计算总页数 */ if (totalRecord == 0) { totalPages = 1; } else if (totalRecord % size == 0) { totalPages = totalRecord / size; } else { totalPages = totalRecord / size + 1; } (五)用户添加商品到购物车的核心代码 /** * TODO判断用户是否已经登录,如果没有登录,则只有登录后方能购买 */ user = (User) session.get("user"); if (user == null) { noLog = true; } /** * TODO判断用户是否已经购买过此商品,如果已经购买,则更新数据库中购买的商品数量 */ boolean temp = DAOFactory.getCartDao().hasBuyed(id, user.getId()); if (!temp) { DAOFactory.getCartDao().updateBook(id, 1, user.getId()); } else { /** * TODO 将用户要购买的图书信息从数据库中取出 */ book = DAOFactory.getCartDao().findById(id); /** * TODO将用户要购买的图书信息存放到d_item 表中 */ (六)我的当当模块核心代码 用于用户显示曾经所下过的订单,以及订单中的详细商品信息,核心代码如下: user = (User) session.get("user"); try { orderList = DAOFactory.getOrderDao().findAllOrder(user.getId()); } catch (DangException e) { e.printStackTrace(); } // 得到用户所有已购买商品的金额 getAllTotalPrice(); /** * 查询所有的特定的用户的订单信息(non-Javadoc) * * @see dagndang.tarena.dao.orderdao.OrderDao#findAllOrder(int) */ public List findAllOrder(int userId) throws DangException { List list = new ArrayList(); String sql = "select * from d_order where user_id=?"; try { PreparedStatement ps = this.getConnection().prepareStatement(sql); ps.setInt(1, userId); ResultSet rs = ps.executeQuery(); while (rs.next()) { Order order = new Order(); order.setUserId(rs.getInt("user_id")); order.setStatus(rs.getInt("status")); order.setOrderId(rs.getLong("order_id")); order.setOrdertime(rs.getString("order_time")); order.setOrderDesc(rs.getString("order_desc")); order.setTotalPrice(rs.getDouble("total_price")); order.setReceiveName(rs.getString("receive_name")); order.setFullAddress(rs.getString("full_address")); order.setPostalCode(rs.getString("postal_code")); order.setPhone(rs.getString("phone")); order.setMobile(rs.getString("mobile")); list.add(order); } return list; } catch (SQLException e) { e.printStackTrace(); return null; } } (七)订单管理核心代码 private List items; private double totalPrice;// 购买商品的总金额 public String execute() { /** * 首先从session中取出用户的id信息 */ user = (User) session.get("user"); /** * TODO从d_item表中得到所有用户已选购的商品 */ try { items = DAOFactory.getItemDao().showItem(user.getId()); /** * TODO计算所选购商品的总金额 */ totalPrice = getTotalPriceMoney(); /** * 将所有要购买的商品放到session中 */ session.put("order", items); session.put("totalPrice", totalPrice); return "success"; } catch (DangException e) { e.printStackTrace(); return "error"; } 第六章 系统运行评估 在线图书销售系统开发完毕到投入使用之前,需要进行一系列系统集成和确认测试。软件测试的根本目的应该是找出软件中存在的漏洞和问题,而开发人员往往不容易找出自己的程序中存在的漏洞和问题,所以从理论上讲,系统的
本文档为【图书销售系统毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_374933
暂无简介~
格式:doc
大小:693KB
软件:Word
页数:34
分类:工学
上传时间:2011-05-26
浏览量:43