网上食品商店的设计与实现毕业论文


     网上食品商店的设计与实现 院 (系) 信息学院 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 20XX年 X 月 X 日 摘 要 本文研究了一个网上食品商店系统,此方案具有用户使用更简单、界面更直观等优点。虽然网上食品商店在我国兴起的时间还不是太长,但它发展很快。随着我国互联网的普及和网上食品商店的日趋成熟,会有越来越多的消费群体加入到这个行列中来,市场潜力会得到充分的发挥。 食品在网上销售不仅是传统销售渠道的发展和补充,也是未来食品销售的发展方向。网络给人们带来了实惠,也给商品带来了广阔的生存空间。网上食品商店具有很多新的特性。它的营业成本比传统意义上的商店低得多。它不需要将大笔的流动资金买货品,可依靠“零库存”管理,缩短资金周转的周期。同时网上食品商店更容易开拓市场,实现市场的整合。 本文分析了系统实现中的难点和重点。设计实现销售排行、新品上架、特价商品、查看订单、购物车和会员修改个人信息等的jsp页面 。分析并解决实现中的若干技术问题,建立完整的网上食品商店系统,并分析结果。 关键词:网上食品商店系统,JSP,数据库 Abstract An online grocery store system with a simple and intuitive user interface is developed in this paper. Online food stores in China are developing rapidly, although it is not a long time up to now. With the popularization of the Internet and online grocery store becoming more mature, more and more consumer groups will join it and the market potential will be given enough room to show. Foods online sale is not only the development and supplement of the traditional sales channels, but also the direction of future development. The Internet has brought tangible benefits to people, and also a broad space of goods. Online food store has many new features, such as much lower operating cost than traditional stores. It does not require an enormous amount of liquidity to buy goods. Online food store can rely on the "zero inventory" management and shorten the period of funds turnover at the same time. Online food stores are much easier to open up the market and realize the integration of the market. The difficulty and key points in system implementation are analyzed in this paper, mainly reflecting in the design of the JSP pages of the sales list, new products, special products, check orders, shopping cart and membership changing passwords. Some technique problems in the development of the complete online food store system are also analyzed and resolved, and the results are discussed. Keywords: Online grocery store system, JSP, database 目录 1 引言 1 1.1 课题的背景、目的与意义 1 1.2 国内外现状 1 1.3 研究(设计)内容 2 1.4 论文的组织结构 2 2 相关技术简介 3 2.1 JSP技术 3 2.2 Microsoft SQL Server2000 3 2.3 Web服务器 4 2.4 分类数据库与JavaScript 4 2.5 CSS层 4 3 系统分析 5 3.1 可行性分析 5 3.2 需求分析 5 3.2.1 业务需求分析 5 3.2.2 用户需求分析 6 3.2.3 功能需求分析 6 3.3 业务流程分析 6 3.3.1 前台业务流程分析 6 3.3.2 后台业务流程分析 7 3.4 数据流程分析 7 3.5 运行环境及开发工具 9 4 系统总体设计 10 4.1 系统结构设计 10 4.2 功能模块设计 10 4.2.1 前台模块的功能模块设计 11 4.2.2 后台管理模块的功能模块设计 11 4.3 数据库设计 12 4.3.1 E-R图 12 4.3.2 基本表设计 16 5 系统实现 20 5.1 程序设计 20 5.2 系统页面的设计与实现 20 5.3 前台功能模块的实现 20 5.3.1 用户管理模块 21 5.3.2 商品信息模块 24 5.3.3 购物车模块 25 5.3.4 订单查询模块 28 5.3.5 商城公告模块 28 5.4 后台功能模块的实现 29 5.4.1 管理员登录模块 29 5.4.2 添加食品模块 30 5.4.3 订单信息管理模块 32 5.4.4 查询用户信息模块 33 5.4.5 添加分类模块 33 6 结 论 35 参考文献 36 致 谢 37 1 引言 1.1 课题的背景、目的与意义 随着网络技术的发展,越来越多的人喜欢在网上购物。食品的种类繁多,同一种类的食品又有不同规格的产品。实体食品商店很难有足够大的店面来展示所有品种;食品的单价不高,在网络信用还不完善的环境下能够造成的损失较小,买家也乐于在线购买。所以网上食品网站也在网上大量出现。 就网上食品商店而言,由于网络已经覆盖全球,信息量大而独具优势。售货的理念也很简单,就是购买者可以根据自己的喜好寻找食品然后购买。对于购买者来说,网上食品商店近在咫尺,并且永远不会下班关门,购买者可以随时随地自由地查询和订购食品,也无需亲临食品商店挑选,只要坐在电脑前,开机上网即可买到所需的食品,而且可供购买者挑选的余地也大多了,检索也很方便,同时还减少了购物的路费支出。另外应当看到网上购买食品节省了大量时间,这对于那些没有时间经常逛传统商店或其住所离传统商店较远的顾客来说,具有实际意义。因此网上售卖食品必将有长足的发展。 本系统的主要目的是实现食品的在线销售,包括管理库房中的食品,以及管理用户的购物车,从而实现结账等一系列功能,让用户足不出户就能够在网上食品商店购买到自己所需的食品,形成商店和用户双赢的局面。 整个个性化页面生成系统主要使用Dreamweaver_MX开发的关联规则采掘系统和利用tomcat+jsp技术实现的个性化Web页面生成器两部分组成。关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表,页面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化Web页面。二者通过数据库服务器和Web服务器连接。 1.2 国内外现状 伴随着Internet的蓬勃发展,网上购买食品作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已不再满足于信息的浏览和发布,而是渴望着能够充分享受网络所带来的更多的便利。 在美、英等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛、家庭仓储等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。 而在我国,网上购物从无到有也不过短短十几年时间。根据CNNIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达到3235.7万人,并且这一数字还在以17%左右的速度增长,中国的网民数量已经突破5亿。中国现在的青年人对网络的使用率都很高,他们是实力最强的消费者,这说明在中国发展网上购物具有良好的群众基础,网上购物 的方式日趋被大家接受。因此,设计一个具有电子商务功能的企业网站具有非常好的开发与应用前景。 1.3 研究(设计)内容 这次设计实现了一个网上购物网站。网上购买食品所承载的信息量大、购物流程比较繁琐,而且互联网中日益肆虐的黑客和病毒对网络的安全性提出了更高的挑战。开发出的网上购物系统基于Windows 2000 Server中文企业版服务器和SQL Server 2000数据库,采用国际先进的JSP进行开发,具有很高的稳定性和安全性。网上购物真正实现了在Internet上的经营销售,从而使其获得更大的市场机遇及经济效益,很大程度地提高了企业的核心竞争力。 这个系统所需要的功能从用户角度进行划分,可以分为前台用户功能和后台管理功能。用户功能主要提供给购物的用户使用,包括用户的注册、登录,浏览商品,购物车,查看订单等;后台管理功能主要提供给系统的管理人员使用,包括对用户、食品、订单的管理。 用户注册后,登陆网站的用户可以在线查看、订购食品,并可查看自己的历史订单等。这些部分用JSP设计页面及分类,使用数据库来建立相关的表,以便于对其进行查看、修改或删除。 在网站设计中,管理员完成对网站的维护与管理的工作。使用数据库中权限的功能对管理员设置权限,管理员可以对食品信息进行新增,修改及删除,也可以对订单信息进行处理,同时管理员也可以对用户信息进行管理。 1.4 论文的组织结构 本文分为六章,通过对这个网站的分析、设计与实现过程的全面介绍来展示系统的全部特性。第一章绪论描述了课题的背景、目的与意义,介绍了国内外现状,进而总结出此次研究工作的内容。第二章是在系统设计中的一些相关技术简介。第三章系统分析首先从几个角度分析了系统开发的可行性。然后进行了需求分析、网站业务流程分析和数据流分析。第四章的系统总体设计在明确了系统设计原则下,进行了功能模块设计。接着进行数据库设计,第五章的系统实现阐述了系统页面及其逻辑功能的实现,重点描述了前台与后台的各个功能模块的实现过程,对主要的原理和技术进行了详细的说明,并列出了一些典型的逻辑的程序流程图进行说明。第六章结论分析了系统的一些主要的优、缺点,开发此系统的过程中所遇到的困难。最后是参考文献和致谢。参考文献中列出了本次毕业设计中所用到的参考资料和文中所引用到的定义与解释的出处。致谢中对在本次毕业设计中给予指导和帮助的老师和同学表示由衷的感谢。 2 相关技术简介 2.1 JSP技术 本系统采用JSP技术开发。因为JSP与同类的CGI、ASP、PHP相比有着独特的优势。JSP是Sun属下Javasoft公司推出的技术,使用的Java语言是ASP、PHP和JSP三者中最新的技术。它以JavaServlet技术为基础,又在许多方面作了改进,并且充分借鉴了ASP和PHP一些合理的地方。它的平台无关性胜过ASP技术,而强大的JDBC数据库接口规范又优于PHP技术,而且JSP技术是以Java语言为基础的,可以使用JavaBeans组件和自定义标签,因此具有良好的扩展性。 总的来说,JSP业已成为目前主流的动态网页开发技术之一。JSP有很多优点。借助JSP技术,Web网页设计人员可以使用HTML或者XML标记来设计和风格化Web页面,使用JSP标记来生成动态的Web页面。在服务器端,JSP引擎负责解释JSP标记和脚本,生成请求的内容,然后将结果以HTML页面等形式发送回浏览器。这样开发者可以保护自己的核心代码,同时可以保证任何Web浏览器的高度兼容性。 JSP页面可借助可重用的、跨平台的组件(JavaBean),来执行Web应用所要求的极为复杂的业务处理。能够共享和交换调用一般操作的组件,或者让这些组件被别的开发人员或者开发团队所使用。 此外,JSP技术无论是在跨平台特性、运行效率、企业级软件开发还是商业支持方面都具有优势,从而使其成为目前和未来进行动态网页开发的最佳工具之一[1]。 2.2 Microsoft SQL Server 2000 这次网站的设计选用Microsoft SQL Server 2000作为后台数据库。SQL Server 2000是一个全面完整的数据库。从借助浏览器实现的数据库查询功能到内容丰富的扩展标记语言(XML)支持特性均可有力地证明,SQL Server 2000为全面支持Web功能的数据库解决方案。与此同时,SQL Server 2000还在可伸缩性与可靠性方面保持着多项基准测试纪录,而这两方面特性又都是企业数据库系统在激烈市场竞争中克敌致胜的关键所在。SQL Server 2000已经通过美国政府C2级安全性认证,具备目前业界最高等级的安全性[2]。 对比SQL Server 2000 和其他的大型数据库管理系统,SQL Server 2000 具有可靠的安全性,更快的存储速度,高度的兼容性,因此应用SQL Server 2000作为后台数据库为系统的开发提供了强有力的支持,并对以后软件的运行提供了坚实的基础。 2.3 Web服务器 Web服务器负责JSP文件的执行。Tomcat是Apache公司组织开发的一种JSP引擎,由于自身具有Web服务器,可以作为独立的Web服务器使用。 如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如 Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。Tomcat即是一个 Jsp和Servlet的运行平台。 由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型[3]。在本次设计中,选择使用的是Tomcat服务器。 2.4 分类数据库与JavaScript JDBC(Java DataBase Connectivity)是sun公司制定的Java分类数据库技术。在安装好数据库后JSP并不能直接与数据库分类[4],这里选择利用第三方JDBC驱动程序分类数据库。在项目开发中,如果频繁在JSP页面中使用数据库分类函数,释放函数进行操作的话,势必会非常麻烦,而且代码的冗余量也很大,页面很多的时候维护也会非常麻烦,页面上到处都是数据库分类和释放代码。因此,可以利用公共数据库访问分类JavaBean的开发。通过将数据库分类函数代码,释放函数代码等封装在JavaBean中,可以减少非常多的代码编程工作,提高代码可维护性。 JavaScript也叫小脚本语言,是一种基于对象和事件驱动并具有安全性能的脚本语言,使用它的目的是与HTML超文本标识语言、Java 脚本语言一起实现在一个网页中分类多个对象,与网络客户交互作用,从而可以开发客户端的应用程序。它是通过嵌入或调入在标准的HTML语言中实现的[5]。 2.5 CSS层 CSS层叠样式表 (Cascading Style Sheet) 是一系列格式规则,它们控制网页内容的外观。使用 CSS 可以非常灵活并更好地控制具体的页面外观,从精确的布局定位到特定的字体和样式。并能极大的方便网页制作的工作[6]。这次设计中就学习使用了CSS层叠样式表,在HTML文档外部将一系列CSS规则存储到一个.CSS文件中。例如创建了一个名为body的选择器。利用它来统一设计网站内网页背景及外部框架的样式。在声明中规定了页面的背景、滚动条的颜色样式等。 3 系统分析 3.1 可行性分析 可行性分析是在全面调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、运行的方面进行分析和研究,以避免投资失误,保证新系统开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这部分将从以下三个方面进行研究:技术可行性、经济可行性、操作可行性。 (1)技术可行性 因为计算机硬件的发展已经越来越快,现在PC机的性能已经可以胜任普通网站的web服务器。购买一台高性能PC机作为企业的网站服务器对于营销商来说并不是问题。 JSP是Java在Internet/Intranet Web上的重要应用技术,可以和各种Java技术完好的结合在一起从而实现非常复杂的应用。因此得到了广泛的支持和承认,成为一种非常流行的网站开发技术。利用JSP技术可以建立先进、安全和跨平台的动态网站。由于在学习数据库时一直以SQL Server作为例子,所以采用Microsoft SQL Server2000作为数据库的后台。 (2)经济可行性 根据调查的资料,现在聘用一支团队设计并建设企业商务型网站的费用为5300元左右,另外每年交纳600元占用网站空间和网站维护费。为了使网站建成后能达到增加企业经济效益的效果,寻找一支创新与技术优秀的团队最多需要增加3000元的一次性投资。这样看来一个成功的网站建成后为这个营销商带来的效益将会远大于成本。 (3)操作可行性 如今,计算机与网络已经非常地普及。特别是在企业信息化高需求与快速发展的时代,计算机应用已经成为企业员工必备的技能。由于这个课题是以PC机作为服务器的网站,营销商可以自己对网站进行操作和管理。 3.2 需求分析 商务系统随着中国经济的高速发展发生了巨大的变化。专做营销的中小型企业随着百姓个人消费水平的增长迅速成长起来,但同时也带来了这一行业激烈的竞争。 3.2.1 业务需求分析 网站的制作已经不单单是把企业想要表达的内容摆放在网站上那么简单,当今的网站设计包含了更多的设计元素,给予浏览者更多的视觉享受。现在企业营销商需要 用一些更新颖更有效的方式增强竞争力。建设一个宣传自身食品形象的电子商务营销模式的网站是一种有效的方法。另外,通过电子商务网站,拓宽自己的营销方式和市场,能够帮助企业营销商从鱼龙混杂的市场中脱颖而出,完善企业销售与服务的环节,最终提升企业的价值与经济效益。 3.2.2 用户需求分析 这个网站以上面的业务需求为基础,进一步提出网站需要完成的以下任务:网站需要让浏览者能看到商城的信息及动态,另一个重要的内容就是能够显示出该商城现有的各类型食品及其详细信息;另外,企业营销商除了能像普通客户一样浏览网站之外,还需要对网站进行管理。企业需要定期更新现有食品的详细信息、商城动态和联系方式,必要时还要对企业的介绍做更改。对于消费者通过网站提交的各种订单能够进行处理以方便销售。 3.2.3 功能需求分析 根据上面的需求分析,需要设计出网站的前台与后台。用户在前台所浏览的内容,网站的后台需要能相应的做出更新或修改。根据以上的想法,设计出网站的功能: 前台用户相关功能主要包括:用户注册、登录、修改密码以及个人资料;浏览商品信息;购物并查看购物车;历史订单查询;查看商城公告、友情链接网站。 后台管理相关功能主要包括:添加食品;处理订单;查询用户信息;添加食品分类;管理公告信息。 将以上这些功能制作成网页以后,在其中分别互相建立分类,基本完成商城及用户对网站的要求。 3.3 业务流程分析 将上面的需求分析进行归纳。得出网站的两个业务主角,即用户与管理员。然后制定他们的相关活动。对应网站的功能可以确定,用户活动对应网站前台业务流程;管理员活动对应网站的后台业务流程。在对业务流程分析中,尽量把业务主角的活动考虑全面,使系统的功能尽量完整。 3.3.1 前台业务流程分析 前台业务主要面向客户。用户可以浏览网站主页、食品的介绍和一些服务信息。前台业务流程如图3.1所示。 图 3.1 前台业务流程图 3.3.2 后台业务流程分析 在网站设计中,管理员完成对网站的维护与管理的工作。使用数据库中权限的功能对管理员设置权限,管理员可以对食品及食品分类的信息进行新增,修改及删除,也可以对订单信息进行查看、删除、发货等处理,同时管理员也可以对用户信息进行管理。流程图如图3.2所示。 图 3.2 后台业务流程图 3.4 数据流程分析 在分析了系统的业务流程之后,就要分析系统的数据流,为后面设计网站的数据 库做好基础。这里主要利用数据流程图来说明数据流程。数据流程图是一个图示工具,容易理解,容易在开发和用户方之间进行交流,以及在开发组织内部交流。因此数据流程图作为一种模型工具已经广泛使用在软件工程的实践中[7]。 根据前台业务流程,可以将用户的活动分为两类。用户浏览所使用到的数据归纳为站内信息,如食品信息等。而用户提交的订单则作为网站的订单数据。相应的,根据后台业务流程,管理员对网站内容的添加、更新和删除等所操作的数据定义为商城信息。网站数据流的总体图如图3.3所示。 图 3.3 网站数据流的总体图 进一步分析网站的数据流程,得到网站的一级数据流程图,如图3.4所示。 图 3.4 网站的一级数据流图 上面得到的总体图并不是整个网站数据的详细流程图。它只是将网站的数据流进行了一下分类。例如将商城信息分为了食品信息、分类信息和用户信息。在总体图的基础上还可以将每一个处理的细节描述出来,从而画出细节图。 3.5 运行环境及开发工具 操作系统:Windows XP。 数据库:SQL Server 2000。 Web应用服务器:Tomcat5.0。 开发工具:Myeclipse8.5以上版本,Dreamweaver8。 4 系统总体设计 4.1 系统结构设计 根据业务流程,需要将网站划分为前台、后台和数据库。前台中,客户在登录网站主页后即可分类查看到食品的信息,还可以做订购食品等活动。为了方便客户搜索感兴趣的食品信息,将食品搜索框放入到主页面中。数据库将要作为网站后台重要的组成部分,管理员的主要操作几乎全部围绕数据库,最后将更新的数据显示给前台。 前台是一个比较大的功能群,它所包含的信息不仅数量多,而且种类不同。将它设计成比较优化的结构形式能组织好网站的信息内容并将其归类,方便用户获得所需要的信息。其中每一部分都以尽量少的内容显示,以免浏览者看的眼花缭乱而失去耐心。系统的后台要对整个网站的信息和数据进行维护。网站前台所显示的信息在后台都应该有对应的维护。这样,除了设计后台的各个管理界面外,为了方便管理员的工作,可以将各个管理的界面结合到一个页面中。因此,各个管理的界面会作为主管理界面的分支。 在设计好网站前台与后台的结构以后,就将数据库加入到结构中。后台将更新的数据写入到数据库中,前台再将数据库中的信息取出来并显示。 4.2 功能模块设计 层次模块结构是将系统划分为若干子系统,子系统下再划分为若干的模块。而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。 以前面的系统分析为基础,将系统分为两大模块,即前台模块和后台模块。网上食品商店的功能结构如图4.1所示。 图 4.1 网上食品商店功能结构图 4.2.1 前台模块的功能模块设计 前台模块主要为登陆网站的用户提供食品和服务的信息,填写并提交订单的服务。这样,将前台模块再细分为用户管理模块、商品信息模块、订单查询模块、购物车模块、商城公告信息模块。顾名思义,这些模块的名称基本概括了它们的功能。下面详细说明一下这些功能模块的设计: (1)用户管理模块: 为了方便网站的管理,必须有一套完整的用户管理体系。该网站用户管理模块主要实现用户的注册、登录以及修改个人信和重置密码的功能。 (2)购物车模块: 在超市购物,可以根据自己的需要将食品挑选至购物车中,然后到收银台结款。而在网上虚拟的商城中,当然没有办法使用真正的购物工具。因此,通常都会采用一种被称为“购物车”的技术来模拟现实生活。在网上商城中,所选食品须通过购物车进行暂存,然后生产订单。这种技术使用起来十分方便,不但可以随时添加、查看、修改、清空购物车中的内容,还可以随时去收银台结款。 (3)订单模块: 用户提交订单后,通过产生的订单号查询订单信息及执行状态。只需要根据用户录入的订单号在数据表中查询出对应的货品信息即可。 (4)商城公告模块: 商城公告是一个商务网站中不可缺少的组成部分,它可以增进用户与网站之间的交流。在现实网络开发中存在着各种各样的商城公告,但它们都由基于浏览商城公告及添加商城公告2部分组成。还包括一些友情网站的链接。 (5)商品信息模块: 为用户详细的介绍各个食品的厂家、规格、价格等信息。 这样子模块各自的内容基本设计好。下面可以设计如何将这些模块组织在一起,构成一个结构比较合理的前台了。除了在主页中建立面向其他模块的分类外,也要在其他模块中建立返回主页面的分类。另外各个模块间也应该互相分类起来。 4.2.2 后台管理模块的功能模块设计 后台管理模块的功能是对站内的资源进行管理和维护。以后台的业务流程分析和前台各个模块的设计为基础、根据用户的需求分析来确定后台管理模块应具有的功能。后台管理模块的各个子功能模块如下: (1)管理员身份验证模块: 为合法用户提供一个后台入口。该模块的功能是对管理员身份进行能够验证。用户输入登录ID和密码后,系统将判断登录ID及密码的有效性,如果通过验证则进入后台主页,反之则提示错误。 (2)食品管理模块: 向食品表插入前台首页展示的食品信息,也就是添加食品信息的功能。 (3)处理订单模块: 网站管理者对用户订单是否出货的管理。 (4)用户信息管理模块: 查询注册的所有用户,对一些非法或失信用户进行删除操作 。 (5)公告信息管理模块: 网站向用户发布最新公告信息。 (6)友情链接网址信息管理模块: 管理员向前台首页添加友情链接,并可删除或修改。 4.3 数据库设计 数据库是数据库应用程序的重要组成部分。一个结构合理的数据库对于应用程序的开发效率和程序的性能都是非常重要的。数据库的设计过程大致如下: (1)根据用户需求,确定数据库中要保存的数据信息。对用户需求进行分析时数据库设计的第一个阶段。不断的调查与研究用户需求,了解企业运作流程等系统需求,使设计概念模型的基础。 (2)设计数据库的概念模型。概念模型是按用户的观点来对数据建模,使用与进行信息世界建模的工具。它对整个数据库的设计具有深刻的影响。 (3)逻辑结构设计。逻辑结构是把概念结构转化为与所采用的数据库管理系统所支持的数据模型相符合的过程。 (4)数据库的实施和维护。 在设计好前台与后台的功能模块后,就开始进行数据库的设计了。根据网站系统的分析,数据库是整个网站的核心。从前台显示的信息到后台操作的对象,都是围绕数据库展开的。 4.3.1 E-R图 E-R图是一种概念模型。概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是显示世界到信息世界的第一层抽象,使数据库设计人员进行数据库设计的有利工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接的表达应该用众的各种语义知识,另一方面他还应该简单、清晰并且易于用户理解[7]。以下是各个数据表的实体图。 (1)商品信息表tb_goods的实体图 图 4.1 商品信息表tb_goods的实体图 (2)用户信息表tb_member的实体图 图 4.2 用户信息表tb_member的实体图 (3)公告信息表tb_affiche的实体图 图 4.3 公告信息表tb_affiche的实体图 (4) 订单生成表tb_order的实体图 图 4.4 订单生成表tb_order的实体图 (5)订单商品详细表tb_orderDetail的实体图 图 4.5 订单商品详细表tb_orderDetail的实体图 (6)大类别信息表tb_bigType的实体图 图 4.6大类别信息表tb_bigType的实体图 (7)管理员信息表tb_manager的实体图 图 4.7 管理员信息表tb_manager的实体图 (8)小类别信息表tb_smallType的实体图 图 4.8 小类别信息表tb_smallType的实体图 (9)链接网站信息表tb_link的实体图 图 4.9链接网站信息表tb_link的实体图 (10)用户E_R图 图 4.10 用户E-R图 (11)管理员E-R图 图 4.11 管理员E-R图 4.3.2 基本表设计 表的设计是这次设计的一个核心内容。根据前面对网站前台与后台功能模块的分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:商品信息、用户信息、公告信息、订单信息、订单详细信息、大类别信息、小类别信息、管理员信息、链接网站信息等。下面是为数据库设计的表: (1)商品信息表tb_goods 商品信息表tb_goods用来保存食品的基础信息。结构如表4.1所示。 表4.1 tb_goods的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 商品建立编号 bigId int 4 否 否 大类别代码 goodsName varchar 50 否 否 商品名称 smallId int 4 否 否 小类别代码 goodsFrom varchar 50 否 否 生产厂商 introduce text 16 否 否 食品简介 creaTime smalldatetime 4 否 否 发布时间 nowPrice money 8 否 否 价格 freePrice money 8 否 否 特价 number int 4 否 否 卖出的数量 ccount int 4 否 否 初始库存量 xcount int 4 否 否 现有库存量 picture varchar 50 否 否 图片 mark bit 1 否 否 是否特价 (2)用户信息表tb_member 用户信息表tb_member用来保存用户信息。表tb_member的结构如表4.2下。 表4.2 tb_member的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 用户建立编号 name varchar 50 否 否 用户名 password varchar 50 否 否 密码 reallyName varchar 50 否 否 真实姓名 age int 4 否 否 年龄 profession varchar 50 否 否 职业 email varchar 50 否 否 Email question varchar 50 否 否 密码问题 result varchar 50 否 否 答案 (3)公告信息表tb_affiche 公告信息表tb_affiche用来记录公告信息。表tb_affiche的结构如表4.3所示。 表4.3 tb_affiche的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 公告建立编号 name varchar 50 否 否 公告标题 content text 16 否 否 公告内容 issueTime smalldatetime 4 否 否 公告发布时间 (4)订单生成表tb_order 订单生成表tb_order用来记录新生成的订单。表tb_order的结构如表4.4所示。 表4.4 tb_order的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 订单建立编号 number varchar 50 否 否 生成的订单号 name varchar 50 否 否 会员姓名 reallyName varchar 50 否 否 真实姓名 address varchar 50 否 否 送货地址 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 tel varchar 50 否 否 联系电话 setMoney varchar 50 否 否 支付方式 post varchar 50 否 否 邮寄方式 bz text 16 否 否 备注 sign bit 1 否 否 是否发货 creaTime smalldatetime 4 否 否 订货时间 (5)订单商品表tb_orderDetail 订单商品表tb_orderDetail用来记录某一订单中所定购的食品的详细信息。表tb_orderDetail的结构如表4.5所示。 表4.5 tb_orderDetail的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 订单建立编号 orderNumber varchar 50 否 否 生成的订单号 goodsId int 4 否 否 商品编号 price money 8 否 否 商品价格 number int 4 否 否 购买数量 (6)友情链接网站表tb_link 友情链接网站表tb_link主要用于记录友情链接网站。表tb_link的结构如表4.6所示。 表4.6 tb_link的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 网址建立编号 linkName varchar 50 否 否 网站名称 linkAddress varchar 50 否 否 链接地址 (7)管理员信息表tb_manager 管理员信息表tb_manager主要用于记录管理员的信息。表tb_manager的结构如表4.7所示。 表4.7 tb_manager的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 管理员建立编号 account varchar 50 否 否 管理员登录名 password varchar 50 否 否 管理员密码 name varchar 50 否 否 真实姓名 sign bit 1 否 否 是否可添加管理员 (8)大分类信息表tb_bigType 大分类信息表tb_bigType主要用于记录后台食品的大类别信息。表tb_bigType的结构如表4.8所示。 表4.8 tb_bigType的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 建立编号 bigName varchar 50 否 否 大类别名称 creaTime smalldatetime 4 否 否 创建时间 (9)小类别信息表tb_smallType 小分类信息表tb_smallType主要用于记录后台食品的小类别信息。表tb_smallType的结构如表4.9所示。 表4.9 tb_smallType的结构 字段名称 数据类型 长度 是否允许空 是否为主键 字段描述 id int 4 否 是 建立编号 bigId int 4 否 否 大类别编号 smallName varchar 50 否 否 小类别名称 creaTime smalldatetime 4 否 否 创建时间 5 系统实现 在上面着重讨论了系统各个模块功能的设计,并详细分析了每一个模块的功能。在本章将具体讨论如何实现功能模块,最终实现整个系统。经过这个阶段的设计工作,应该得出对目标系统的描述,从而在编码阶段可以把这个描述直接翻译成用JSP网页设计语言书写的程序。 5.1 程序设计 本系统设计的网站在设计过程中包含页面(HTML)的设计以及客户端验证机制(JavaScript)的设计。JavaScript也叫小脚本语言,他是一种非常流行的动态网页技术。他不仅能够实现网页的动态效果,而且能够在一定程度上检测网页的错误,从而在一定程度上实现网站的安全。本系统应用服务器端JSP动态网页技术,以及在Serverlet和JavaBean的可重用组件技术的支持下,结合客户端动态网页技术Javascript以及与HTML的无缝结合的设计,从而方便系统的实现[8]。 5.2 系统页面的设计与实现 如果将网站比作一个人的话,服务器就像大脑,数据库就像五脏六腑,其内嵌的Java和JavaScript组合起来就像是细胞与神经,而网页就是这个人的皮肉。网页将网站的各个组成部分包裹起来,形成易懂并且美观的外表展示给大家。浏览者登陆网站后看到的就是一个个网页的组合。所以设计和实现每一个网页也是非常重要的工作。 随着科技的高速发展,众多网页制作的应用软件应运而生。相对于传统的动态网页开发工具而言,由于继承了Java语言的许多优点,用JSP开发动态网站十分方便,开发效率较高。此外,JSP还具有强大的组件(Java Bean)支持功能,可以方便地实现组件复用,进一步提高了开发效率。 在整个网页的制作过程中,都是结合使用HTML语言来实现设计的。系统的页面设计决定了网站的风格, 制作好的网站不仅提供给营销商,更多的要供浏览者浏览。所以整个网站系统应注重的是:易导航性、易操作性和友好的交互界面。因此,网站的设计最好要简洁、明了、格调清新、实用、易于使用和维护。在页面的风格上应保持统一,这里采用 CSS样式表将所有页面的字体、字号、颜色以及超分类的样式做统一定义。 5.3 前台功能模块的实现 整个系统分为了前台功能模块和后台功能模块。下面详细讨论主要的几个功能模块的程序实现。在每个模块的介绍中,将具体说明一些涉及要点。 前台功能模块分为用户模块、订单模块、购物车模块、商城公告模块、商品信息模块5个部分。前台首页主要有以下几个部分: (1)网站导航:主要用户显示网站的旗帜广告、各功能模块导航; (2)用户登录:用户在此注册、登录或修改密码; (3)食品分类搜索:用户按食品类别进行搜索显示; (4)销售排行榜:按照食品的销售数量显示销售排行信息; (5)特价商品:显示所有特价商品的信息; (6)食品展示区:按后台添加食品的时间顺序展示食品; (7)商城公告:显示商城公告信息; (8)会员修改:修改会员的个人资料; (9)后台登录入口:管理员可以通过该入口登录后台。 (10)食品关键字搜索:按照食品的关键字进行搜索显示。 首页运行结果如图5.1所示。 图 5.1 首页运行结果 5.3.1 用户管理模块 用户管理模块主要实现用户的注册、登录、修改密码及个人资料等功能。 (1)用户注册 当用户第一次登录时首先要在网站上注册,成为会员用户才可以在网站上购物,注册页面必须填写一些用户的基本信息,如用户名、密码、联系电话等信息。要注意的是,在用户注册页面fg-memberRegister.jsp中用户自定义JavaScript检验用户注册信息不允许为空。 用户注册页面fg-memberRegister.jsp如图5.2所示。 图 5.2 用户注册页面运行结果 为了便于网站对用户的管理,在用户注册页面接收到的注册信息要经过严格的过滤,保证注册用户名的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示此用户已被占用请重新注册。用户注册的流程图如图5.3所示。 图 5.3用户注册系统流程图 (2)用户登录 用户登录窗口设置在首页上,主要用来接收用户录入的用户名及密码。单击“注册”按钮时,会提交到fg-memberRegister.jsp页面执行;单击“登录”按钮时,系统将对输入的用户名和密码进行验证,如果数据表中用户名和密码存在就显示登陆成功,并返回首页,否则弹出错误提示信息。用户登录的流程图如图5.4所示。 图 5.4 用户登录系统流程图 (3)修改个人信息 当用户的个人信息出现变动时,重新注册新的用户名浪费时间,也浪费网站的资源,用户可以通过会员修改这个选项来修改个人信息。页面如图5.5所示。 图 5.5修改个人信息页面运行结果 用户单击“提交”按钮,系统会将上表中所示的数据表单提交页用来验证提交过来的条件是否完全符合数据库中的查找条件,只有符合才能修改个人信息。 (4)忘记登录密码可以重新设置密码 当用户忘记自己的密码时可以重新设置,只要用户记得自己的会员账号,页面如图 5.6所示。 图5.6 重置密码 5.3.2 商品信息模块 当客户想购买某一种商品,而没有记住商品的全名时可以在搜索框中输入商品所含有的关键词来搜索商品。在前台输入关键词,然后通过关键词到数据库里查找到所有商品名字里包含这个关键词的数据,再返回到前台页面,并把他们循环逐页显示出来。页面如图5.7所示。图为搜索含关键字“花”的商品。 图5.7 搜索框查找商品 搜索框查找商品的流程图如图5.8所示 图5.8 搜素商品流程图 5.3.3 购物车模块 购物车模块中,主要包含以下几个功能,即:添加购物车、查看购物车、生成订单和清空购物车。购物车页运行结果如图5.9所示。 图 5.9 购物车页面运行结果 (1)添加购物车 添加购物车就是把用户选中的食品暂时存放在购物车中,当用户在前台首页中单击食品展示区的“购买”按钮时,系统会将该食品的详细信息展示在查看物品清单页面中。用户在单击物品清单页面下方的“放入购物车”分类,便可以将该食品放入购物车中。 添加食品的代码流程是从session中读取对象,如果为空则说明还没有进行购物或者已经清空了购物车,需要新建购物车对象;将食品名称与购物车列表中的食品名称对比,如果已经存在,则把食品数量加1。 在这段代码流程中,还使用了集合类型。集合类型在Java中又称为向量,是一元集合,可以加入重复数据,它的作用和数组相同,可以保存一系列数据,但集合类型也有它独特的优点,就是可以方便地对集合内的数据进行查找、增加、删除和修改等操作。 (2)查看购物车 为了方便用户随时查看购物情况,在网站的首页加入了查看购物车的超分类,通过它可以将用户所有选中的食品信息放入购物车中显示出来。在程序中使用了一组文本框记录用户购买的食品数量,用户可以在文本框中输入想要购买的数量然购单击“修改数量”按钮。如果欲删除该食品,可以在数量文本框里输入“0”,并需要单击“修改”按钮来更新购物车中食品的数量。 系统每次只会将1个食品放入购物车中,如果用户需要多个同种食品,可以通过修改食品信息右侧相应文本框的值来完成。操作完成后需要通过单击“修改数量”按钮来保存操作。 (3)生成订单 生成订单是网上购物商城的最终目的,前面所有功能的实现都是为最后生成一个用户满意的订单作基础,在此要生成一个可供用户随时查询的订单号,还要保存用户订单中所购买的食品信息。当用户确认对购物车不再改变以后,就可以到收银台结帐并生成订单。结帐的流程为:从购物车中读取食品名称,食品数量,食品价格信息,生成一个唯一的订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库。 在生成订单模块中主要使用了调出用户信息并生成唯一订单号,调出用户信息就是完全的对数据库进行操作,利用session对象把登录后的用户名保存起来,在订单生成时把保存的用户名从数据库的用户标中取出即可;生成唯一订单号方法有很多,只要确保订单号码的唯一性及方便用户记录以便于查询自己订单的执行状态即可。 订单生成后,用户单击“提交”按钮,便可以将录入的订单信息保存到数据库中。购物车以及生成订单流程图如图5.10所示。 图 5.10购物车模块流程图 5.3.4 订单查询模块 用户提交订单后,通过产生的订单号查询订单信息及执行状态。用户在购物中心首页中单击“查看订单”超分类,就可以进入历史订单页面,在页面的文本框中显示所有订购的商品情况,用户可查询对应的货品的详细信息并查看是否出货。 5.3.5 商城公告模块 商城公告模块由浏览商城公告和添加商城公告两部分组成。下面分别对这两部分进行介绍。 (1)浏览商城公告 单击网站首页的“商城公告”进入商城公告页面,在该页面中,主要显示由管理员发布的公告,以便其他用户查阅。 (2)添加公告 添加公告是管理员与用户的一种交流模式,只有把商场想要表达的内容添加至数据库中,才能在浏览商城公告中进行显示。商城公告模块的流程图如图5.11所示。 图 5.11 商城公告模块流程图 5.4 后台功能模块的实现 后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。后台包括管理员身份验证、添加食品模块、订单信息管理模块、查询用户信息管理模块、添加分类模块、公告信息管理模块以及友情链接管理模块。后台首页主要有以下几个部分。 (1)后台导航区:放置管理员可操作项目的分类; (2)操作区:显示所有后台导航的分类信息。 5.4.1 管理员登录模块 在前台首页单击管理员入口,将转到管理员登录页面,该页面的功能是对管理员身份进行验证。在管理员登录页面中,是通过JavaScript来实现录入数据完整性验证的。用户输入登录ID和密码后单击“登录”按钮时,如果录入数据完整性验证通过,系统会将数据提交到landResult.jsp登录页面,该页面用来判断输入信息在数据库中tb_manager表是否存在提交的用户名和密码,如果登录ID及密码有效,就保存用户名信息,管理员有权对网站进行维护;反之则提示错误。登录页面如图5.12所示。 图 5.12 管理员登录页面运行结果 流程图如图5.13所示。 图 5.13 管理员登录系统流程图 5.4.2 添加食品模块 单击导航区中的“添加食品”超分类,系统将打开添加食品的页面,该页面主要用于将食品信息添加到数据库中,以提供前台首页食品展示所需要的数据依据。用户单击“添加”按钮后添加食品如图5.14所示。 图 5.14 添加食品信息页面运行结果 为了减少人为的错误,在提交食品信息时,需要对数据的合法性进行验证,输入的食品价格不能是字符型,而输入信息的每一项都不能为空,这些任务由脚本语言 JavaScript的函数check()来完成。代码如下。 function check(){ …… if(form.elements[i].value==""){ alert("表单信息不能为空"); return false; } } if(isNaN(document.form.nowPirce.value)){ window.alert("价格只能为数字"); return false; } 流程图如图5.15所示。 图 5.15 添加食品信息模块流程图 5.4.3 订单信息管理模块 用户在前台购物所产生的订单并不能立即执行,需要系统管理员在后台进行订单信息管理审核以确认它的执行性。用户登录后单击导航区中的“查看订单”超分类进入用户订单处理页面,该页面上会显示近期所有的订单。用户订单处理页面显示的是用户订货的基本信息,要想知道订单中所涉及的食品,需要单击对应订单号的查看明细超分类打开食品订购详单页面才行。 食品订购详单主要通过提交的订单号从tb_orderDetail表中查询所对应的食品并显示在页面中,管理员审核后可设置订单是否执行。当点击“出货”按钮后,系统会根据提交的订单号更新数据表。流程图如图5.16所示。 图 5.16 订单信息管理模块流程图 5.4.4 查询用户信息模块 查询用户信息模块用来完成对注册用户的浏览及删除功能。如果用户在很长时间内没有订单产生,管理员就可以将该用户信息删除。单击导航区中的“会员设置”超分类进入用户信息页面,就可以看到用户信息。在这一部分的设计中,也使用了分页显示功能。对于一些失信用户只需要单击右侧的“删除”超分类,即可可做删除处理。流程图如图5.17所示。 图 5.17 查询用户信息模块流程图 5.4.5 添加分类模块 用户在后台首页导航区中单击“添加大分类”即可进入添加大分类页面,该页面用户在前台显示大分类信息。添加分类页面如图5.18所示。 图 5.18 添加分类页面运行结果 用户单击“提交”按钮后,系统将添加分类页面的数据表单提交页面处理。流程图如图5.19所示。 图 5.19 添加分类模块流程图 6 结 论 本次毕业设计我选择的是用JSP构建一个网上食品商店系统。在整个设计过程中,我查阅了大量的专业书籍,也得到了一些专业人员及指导老师的指导和支持。 PHP,ASP,JSP是制作网站最常用的几大技术,而SUN公司最后推出的JSP 是在JAVA基础上推出的,它继承了JAVA的众多优点,也能解决其他技术不能解决的一些问题,所以说它可以说是当今最流行最有前景的技术之一,这次对JSP的学习对我将来的学习工作都是很有帮助的。 在设计过程中出现了不少的问题,比如动态效果设计的编程,数据库的设计,动态库的生成,以及网站网页的制作,还有运行环境的配置,尤其是运行环境的配置总是出现问题,很多脚本程序运行不了,网站很多网页动态效果出不来。最后请教了一些有经验的老师,最终这些问题得以解决。我的网上商店系统基本完成,就是网页制作的不够美观,数据库连接方面还是经常出现一些问题,顾客对商品的评价功能没有实现,在以后的时间里我会继续努力把自己的设计改进到理想状态。 参考文献 [1] 邵丽萍等著,《动态网页制作》,北京:电子工业出版社,2000年。 [2] 韩宝明等著,《电子商务安全与支付》,北京: 人民邮电出版社。 [3] 杨德华著,“web 服务器端的动态网页技术”,四川:《计算机应用研究》,1999年第19期。 [4] 沈伯青等著,《从零开始——Java基础培训教程》,北京: 人民邮电出版社。 [5] (美)克格希著,《MS SQL Server7.0使用详解》,机械工业出版社。 [6] 龙马工作室著,《JSP+Oracle组建动态网页》,人民邮电出版社。 [7] 飞思科技产品研发中心,《JSP 应用开发详解》,电子工业出版社。 [8] 卫琴等著,《tomcat与java web 开发技术详解》,电子工业出版社。 [9] 高峰霞等著,《WEB数据库开发技术》,北京:电子工业出版社。 [10] 顾佳英等著,《网页数据库设计与发布》,北京:清华大学出版社,2000年。 [11] 杜轩华等著,《Web开发技术》,上海:上海大学出版社, 2005年。[12] 方忠等著,“ASP与JSP的比较研究”,上海:《计算机工程》,2000年第10期。 [12] 方忠等著,“ASP与JSP的比较研究”,上海:《计算机工程》,2000年第10期。 [13] 李平等著,“基于JSP技术的web数据库设计”,湖南:《电脑与信息技术》,2000年第6期。 [14] 孙以义等著,“用JSP构建动态网站”,北京:《电子与电脑》,2000年第3期。 [15] 叶健毅著,《精通java EE:Eclipse Struts 2 Hibernate Spring 整合应用案例》,北京 人民邮电出版社,2009年。 [16] 吴越胜著,《Eclipse 3.0程序开发技术详解》,北京 清华大学出版社,2010年。 [17] 王国辉著,《Java Web开发技术方案宝典》,北京 人民邮电出版社,2008年。 [18] 陈杰华著,《JavaScript Web开发技术》,北京 清华大学出版社,2009年。 致 谢 结束了2个多月的毕业设计生活,我们这一届的学生也面临着毕业了。在这里,我首先要感谢的是我的指导老师XX。在这次毕业设计的过程中,虽然遇到了许许多多的问题,但是老师仍然给了我大量的时间让我完成设计,耐心的指导和严谨的工作态度都让我受益匪浅。正是她的悉心教导和妥善安排保证了我各项任务的完成和论文写作的顺利进行。特别是在论文的审查阶段,XX老师为了指导我们的论文写作严格督促,并耐心指导。在此,向我的导师XX老师表示最诚挚的敬意和最衷心的感谢。 感谢在毕业设计期间给予我指导和建议的老师们,在我遇到问题时,他们耐心的讲解使我能够很好的解决遇到的问题,积累到宝贵的经验。 感谢和我一起讨论和解决问题的其他同学,他们让我体会到了互帮互助的重要性。正是我们之间的交流,相互的鼓励和帮助才令毕业设计的进度得以保持,同样衷心的感谢他们。 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档