基于JSP的在线书店销售系统的设计与实现(含源文件)


获取项目源文件,联系Q:1225467431,可指导毕设,课设


摘要:21世纪,随着计算机科学技术的发展,贸易的全球化和网络的全球化两大特征走到了一起,形成了如今风靡全球的电子商务。电子商务在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务已逐渐成为当今Web应用的潮流,而购物网站正是这种活动的具体表现形式。网上购物在我国的发展虽不如欧美,但当今发展很快,众多网上购物网站不断涌现,较有代表的如eBay易趣、taobao淘宝、1pai雅虎新浪一拍等。
随着我国互联网的更加普及和电子商务的日趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。与传统C/S相比,B/S更具优势(如客户端无须安装软件等)。合理规划和设计B/S模式的电子商务网站,直接关系到网络销售系统的运行效率,以及消费者的兴趣。对网络销售系统不合时宜的设计,不仅无助于问题的解决,而且会耽误商机,使自己处于被动地位。临渊羡鱼,不如退而结网。网络购物系统的完善和便捷将是现代社会必然的需求。任务书研究了基于JSP技术和SQL Server数据库开发网络图书销售系统的全过程。
关键词:电子商务;网络图书销售系统;JSP
Design and implementation of online bookstore sales system based on JSP
Abstract:In the 21st century, with the development of science and technology of the computer, trade globalization and two major characteristics of globalization of the network got togather, have formed the nowadays-fashionable e-commerce in the world. The application in Internet of e-commerce is more and more extensive, have already nowadays become the trend that Web uses gradually users more thoughtful and more humanized service after offering to the masses of network, and the shopping website is exactly this kind of concrete form of expression of moving about. Although the development of online shopping in our country is not so good as America and Europe, nowadays develop quickly, emerge constantly, have relatively on behalf of if eBay E, taobao, 1pai,etc. With Internet popularization and e-commerce of our country ripe becoming, there are bigger and bigger consumption colonies; the market potential will be given full play to. Compared with traditional C/S, B/S has even more advantages (such as neednt install software in the client, etc.). Rational planning and designing the e-commerce website of B/S mode, concern the operational efficiency of the marketing system of the network, and consumers interest directly. The unseasonable design to the marketing system of the network is not only helpless to the settlement of the problem, but alse delay the business opportunity, will make oneself in the passive position. Its better to go back and make a net than to stand by the pond and long for fish. The systematic perfection and convenient of shopping at network will be modern societys inevitable demands. This text has studied the whole course of books marketing system of network on the basis of JSP technology and SQL Server database.
Key words:E-commerce; books marketing system of network; ASP
目 录
TOC 1-3 HYPERLINK l _Toc295155485 1概 述 2
HYPERLINK l _Toc295155486 1.1课题背景 2
HYPERLINK l _Toc295155487 1.2课题研究的意义和现状 2
HYPERLINK l _Toc295155488 1.3课题的系统概述 3
HYPERLINK l _Toc295155489 2 在线书店销售系统的相关技术介绍 4
HYPERLINK l _Toc295155490 2.1 Browser/server结构 4
HYPERLINK l _Toc295155491 2.1.1三层结构 5
HYPERLINK l _Toc295155492 2.2 JSP的运作模式 5
HYPERLINK l _Toc295155493 2.3 SQL Server 2005简介 6
HYPERLINK l _Toc295155494 3 基于JSP的在线书店销售系统的设计 6
HYPERLINK l _Toc295155495 3.1需求分析 6
HYPERLINK l _Toc295155496 3.1.1系统需要解决的主要问题 6
HYPERLINK l _Toc295155497 3.1.2系统开发环境 7
HYPERLINK l _Toc295155498 3.2 系统具备的功能 7
HYPERLINK l _Toc295155499 3.3 用例模型 7
HYPERLINK l _Toc295155500 3.3.1用户Use case图 7
HYPERLINK l _Toc295155501 3.3.2管理员Use case图 8
HYPERLINK l _Toc295155502 3.3.3书店销售系统E-R图 8
HYPERLINK l _Toc295155503 3.4数据库的设计与实现 9
HYPERLINK l _Toc295155504 3.4.1数据库的需求分析 9
HYPERLINK l _Toc295155505 3.4.2数据库的逻辑设计 9
HYPERLINK l _Toc295155506 3.5 数据库的结构创建 10
HYPERLINK l _Toc295155507 4基于JSP的在线书店销售系统的实现 13
HYPERLINK l _Toc295155508 4.1后台系统和数据库的配置 13
HYPERLINK l _Toc295155509 4.1.1后台服务器配置 13
HYPERLINK l _Toc295155510 4.1.2后台数据库的配置 13
HYPERLINK l _Toc295155511 4.1.3后台全局配置文件 13
HYPERLINK l _Toc295155512 4.2前端网络页面的开发与设计 14
HYPERLINK l _Toc295155513 4.2.1用户注册网页 14
HYPERLINK l _Toc295155514 4.2.2 用户登录页面 17
HYPERLINK l _Toc295155515 4.2.3 管理员操作页面 19
HYPERLINK l _Toc295155516 4.2.4用户购物操作 20
HYPERLINK l _Toc295155517 4.2.5管理员管理页面 23
HYPERLINK l _Toc295155518 4.2.6个人资料修改页面 25
HYPERLINK l _Toc295155519 5系统测试 26
HYPERLINK l _Toc295155520 5.1软件测试的目的和原则 26
HYPERLINK l _Toc295155521 5.2 测试的方法 26
HYPERLINK l _Toc295155522 5.2.1黑盒测试 26
HYPERLINK l _Toc295155523 5.2.2 白盒测试 26
HYPERLINK l _Toc295155524 5.3测试实例(测试集)的研究与选择 27
HYPERLINK l _Toc295155525 5.4系统的维护 27
HYPERLINK l _Toc295155526 6结束语 29
HYPERLINK l _Toc295155527 参考文献 30
HYPERLINK l _Toc295155528 致谢 31
基于JSP的在线书店销售系统的设计与实现
1概 述
1.1课题背景
新世纪的到来,Internet和计算机网络技术的蓬勃发展,网络化和全球化已成为不可抗拒的世界潮流。个人要生存,企业要发展,就必须采取新的生存方式、竞争手段去适应它。面对Internet本身所具有的开放性、全球性、低成本、高效率等特点,传统商业暴露的问题也越来越明显,原有的商业格局、商务运作模式在Internet面前也显得无能为力,客观形势给传统商务工作带来了压力和动力。机遇和挑战、条件和可能,挑战是现实的,机遇是潜在的,所以迫使我们必须重组原有的商业格局,变革原有的商业模式来契合Internet的发展以取得最大的效益。连通全世界的电子信息通道已经形成,应用Internet网开展电子商务(Electronic Commerce)业务的时机已经成熟。任何新事物都代表着一种趋势,那些符合人类进步的趋势必然会得到大家的认同。电子商务就是这样一种事物,它对人类社会进行着全方位的改造,在企业竞争、政府部门、公共研究机构、教育以及娱乐等方面改变着人类相互交往的方式,为人们展示了一个全新、璀璨的世界。
由于电子商务的出现,传统的经营模式和经营理念将发生巨大的变化。电子商务主要以飞速发展的遍及全球的 Internet 网络为架构,以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托的全新商业模式。电子商务将会创造巨大的效益和机会,会将市场的空间形态、时间形态和虚拟形态结合起来,将物流、资金流、信息流汇集成开放的、良性循环的环路,使经营者以市场为纽带,在市场上发挥最佳的作用,得到最大的效益。电子商务的发展,不仅将有利地推动Internet的发展,对社会的进步和经济的变革产生深远的影响,更重要的,它本身的发展成熟为我们提供了许许多多的机会[1]。
1.2课题研究的意义和现状
进入20世纪90年代以后以因特网为代表的计算机网络得到了飞速的发展,以从最初的教育科研网络逐步发展成为商业网络。当前世界经济正在向知识经济转变。人们希望能够从书中得到知识,就需要有一个快捷高效的购书环境,建立一个网上综合性的售书网站,可以满足这方面的需求,它还提供给用户网上浏览、查询及订购服务。同时,银行开办的网上支付业务也为消费者和经营者提供了一个便利的交易平台。
就网上书店系统而言,由于网络已经覆盖全球,信息量大而独具优势。对于读者来说,网上书店近在咫尺,并且用不关门,读者可以随时地自由地查询和订购图书,读者无需亲临书店,一档一档的找,一本一本的翻,只要坐在电脑前,开机上网即可买到所需书籍,而且读者的挑选余地也大多了,检索也很方便。网上书店节省了大量的时间,这对于那些没有时间经常逛书店或其住所离传统书店较远的读者来说,具有实际意义。因此网上售书必将有长足的发展。
随着我国产业政策、物流产业、互联网普及程度、社会信用以及网上银行等各项影响网上书店发展的社会外部环境因素的调整完善,可以确定网上书店还有巨大的发展空间,其方便快捷,价格低廉,资源丰富,不受时间地域限制的优越性将得到越来越充分的发挥。
在欧美国家,电子商务业务开发的如火如荼。在法、德等欧洲国家,电子商务所产生的营业额已占商务总额的1/4,在美国则已高达1/3以上。在美国,美国在线(AOL)、雅虎、电子港湾、IBM、亚马逊书城、戴尔电脑、沃尔玛超市等电子商务公司在各自的领域更是取得了令人不可思议的巨额利润。
此外,随着电子技术和网络技术向出版领域的全面渗透,网络出版物正逢勃发展起来。E-book可实现强大的数字化在线图书馆功能,它将和普通图书一样,可以通过网站提供超大图书数据库和便利检索手段,实现图书借阅,图书的查询。随着数字化阅读的革命,网络出版物必将占据部分的图书市场,网上书店凭借自身优势,对于电子图书的售卖也应该步入正轨,给电子图书开辟专门的销售板块和促销手段,与电子图书出版商合作,大力推进我国数字时代的图书发展。
1.3课题的系统概述
近年来,随着信息的全球化和国际互联网的普及化,电子商务成为互联网应用的最大热点,越来越多的企业通过使用电子商务技术来进行商业上的交易以减少成本,企业通过Internet为消费者提供一个新兴的购物环境,即网上超市,消费者通过网络进行网上购物和网上支付等活动,这样即方便了消费者,又减少了企业成本,因此本项目网上书店随着这个目的而来。
新世纪的到来,Internet和计算机网络技术的蓬勃发展,网络化和全球化已成为不可抗拒的世界潮流。个人要生存,企业要发展,就必须采取新的生存方式、竞争手段去适应它。面对Internet本身所具有的开放性、全球性、低成本、高效率等特点,传统商业暴露的问题也越来越明显,原有的商业格局、商务运作模式在Internet面前也显得无能为力,客观形势给传统商务工作带来了压力和动力。机遇和挑战、条件和可能,挑战是现实的,机遇是潜在的,所以迫使我们必须重组原有的商业格局,变革原有的商业模式来契合Internet的发展以取得最大的效益。连通全世界的电子信息通道已经形成,应用Internet网开展电子商务(Electronic Commerce)业务的时机已经成熟。任何新事物都代表着一种趋势,那些符合人类进步的趋势必然会得到大家的认同。电子商务就是这样一种事物,它对人类社会进行着全方位的改造,在企业竞争、政府部门、公共研究机构、教育以及娱乐等方面改变着人类相互交往的方式,为人们展示了一个全新、璀璨的世界。
由于电子商务的出现,传统的经营模式和经营理念将发生巨大的变化。电子商务主要以飞速发展的遍及全球的 Internet 网络为架构,以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托的全新商业模式。电子商务将会创造巨大的效益和机会,会将市场的空间形态、时间形态和虚拟形态结合起来,将物流、资金流、信息流汇集成开放的、良性循环的环路,使经营者以市场为纽带,在市场上发挥最佳的作用,得到最大的效益。电子商务的发展,不仅将有利地推动Internet的发展,对社会的进步和经济的变革产生深远的影响,更重要的,它本身的发展成熟为我们提供了许许多多的机会[2]。
网上书店系统的最终目的是客户可以通过网上书店找到自己所需要的书籍,网上书店主要向客户提供各种书籍材料。通过开发该系统可以方便用户随意查询、浏览、定购图书。节省了用户大量的时间与空间,带动网络经济。
2 在线网上书店销售系统的相关技术介绍
2.1 Browser/server结构
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。目前大多数应用软件系统都是Client/Server形式的两层结构,现在的软件应用系统正在向分布式的Web应用发展;内部的和外部的用户都可以访问新的和现有的应用系统,Web和Client/Server应用都可以进行同样的业务处理;不同的应用模块共享逻辑组件;通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,Microsoft.net也是在这样一种背景下被提出来的架构,但微软的方案只是一种构想,要成为现实还需要几年,而JAVA技术已经是很成熟的应用了。传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,这么高的代价和低效率已经越来越不适应了。在JAVA这样的跨平台语言出现之后B/S架构更是飞快地普及起来了。
在线图书销售管理系统的特点就是利用Browser/serve结构,实现图书图书的在线库存查找、在线销售,以及对图书的库存情况进行在线管理等功能。
对于本系统,其功能目标是要将图书销售由商店柜台销售模式向在线销售的模式转变,同时还要能对销售的订单和图书种类以及库存情况进行全面的管理。本系统的网络应用原理示意图如图2-1所示。
图2-1 B/S结构的在线图书销售管理系统应用原理示意图
2.1.1三层结构
Browser/Server的多层结构的应用正是在对C/S结果的总结基础上产生的,并且也已经扩展到了B/S应用开发领域。即将应用划分为3层(可以有更多层,但3层最常见):用户界面城、商业逻辑层、数据库层。
B/S结构开发还具有另外的一个重要的优势,即面向对象变成的特性—封装性”。客户端需要进行某项与数据库之间的访问和操作的地方,只要调用一个函数,至于这个函数如何编写,如何与数据库打交道,一直访问的是何种数据库都与其无关(否则,很有可能出现在一种数据库系统上运行的很好的SQL语句,有时换到另一种数据库系统上必须加以修改);
在中间层DLL中实现这个函数,如果用户对具体操作的要求发生改变,只需要修改这个函数就可以了,只要此函数的入口参数和返回内容不变,在客户端不需做任何改动。而这一点在开发大型应用尤其有用:我们可以把开发人员分成两组,一组负责开发界面层,另一组负责开发商业逻辑层,双方只要按照事先商定的函数接口,并行开发就可以,而不必像从前那样,后面的工作必须等前面的工作完成后才能开始。当然,这样的开发的模式需要很好的项目协调和稳当作支持[3]。
2.2 JSP的运作模式
JSP作为J2EE的一部分,既可以用于开发小型的Web站点、也可以用于开发大型的、企业级的应用程序,直接使用JSP对于最小型的We b站点,可以直接使用JSP来构建动态网页,这种站点最为简单,所需要的仅仅是简单的留言板、动态日期等基本的功能。对于这种开发模式,一般可以将所有的动态处理部分都放置在JSP的Scriptlet中,就像一般使用PHP或ASP开发动态网页一样。
JSP+JavaBeans中型站点面对的是数据库查询、用户管理和小量的商业业务逻辑。对于这种站点,不能将所有的东西全部交给JSP页面来处理。在单纯的JSP中加入JavaBeans技术将有助于这种中型网站的开发。利用JavaBeans,将很容易完成如数据库连接、用户登录与注销、商业业务逻辑封装的任务。如:将常用的数据库连接写为一个JavaBeans,既方便了使用,又可以使JSP文件简单而清晰,通过封装,还可以防止一般的开发人员直接获得数据库的控制权。
JSP+JavaBeans+Servlet:Servlet在不再担负动态页面生成的任务以后,开始担负起决定整个网站逻辑流程的任务。在逻辑关系异常复杂的网站中,借助于Servlet和JSP良好的交互关系和JavaBeans的协助,完全可以将网站的整个逻辑结构放在Servlet中,而将动态页面的输出放在JSP页面中来完成。在这种开发方式中,一个网站可以有一个或几个核心的Servlet来处理网站的逻辑,通过调用JSP页面来完成客户端(通常是We b浏览器)的请求。后面我们将可以看到,在J2EE模型中,Servlet的这项功能可以被EJB取代。
运行可行性分析:随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着Internet的发展,用户对于网络、WINDOWS等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情,这也是网络办公兴起的原因。
经济可行性分析:网络办公给人们带来了方便,给企业带来了全新的商务模式。因此,投入一定的资金,构建一个网络办公平台在经济上是完全可行的。
2.3 SQL Server 2005简介
作为微软新一代的数据管理与商业智能平台,SQL Server 2005 已是微软5年来具有里程碑性质的企业级数据库产品。和以往的数据解决方案相比,SQL Server 2005更具有着巨大的空前的价值、超强的功能和新颖大气的全新体验[3]。
SQL Server 2005 中包含了非常丰富的新特性:通过提供一个更安全、可靠和高效的数据管理平台,增强企业组织中用户的管理能力,大幅提升IT管理效率并降低运行风险和维护成本;通过提供先进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂管理需求,推动企业管理信息化建设和业务发展;同时,SQL Server 2005 提供了一个极具扩展性和灵活性的开发平台,不断拓展您的应用空间,实现Internet数据业务互联,为您带来新的商业应用机遇。
由于大大减少了应用程序待机时间,提高了系统的可伸缩性和性能,并加以更严格的安全控制,SQL Server 2005 在支持现实中最苛刻的企业级系统要求的道路上,迈出了极大的一步。SQL Server 是微软服务器家族中重要的一部分,通过微软服务器系列产品共有的 Engineering strategy 所实现的增强的管理型和集成行,客户可以有效降低总体拥有成本并从更快的开发部署时间中收益。
3 基于JSP的网上书店销售系统的设计
3.1需求分析
3.1.1系统需要解决的主要问题
因为网上书店系统的最终目的是客户可以通过网上书店找到自己所需要的书籍,网上书店主要向客户提供各种书籍材料。所以系统应该解决如下问题:
1.JSP 连接SQL Server 2005数据库
2.JSP界面的设计
3.JSP页面之间的相互跳转
4.在JSP页面中实现商品添加、删除、修改等数据库操做
5.用户订单的处理、数据库的应用、管理员对图书的管理功能
3.1.2系统开发环境
本网上书店销售平台采用JSP、数据库等技术来开发,运作于Windows XP的环境下,采用B/S三层架构的模式,客户端使用浏览器进行访问,服务器端使用JDK+Tomcat的访问形式,以提高系统的安全性;在系统开发时,使用MyEclipse作为网页开发工具,以Tomcat作为Web服务器,SQL Server 2005作为数据库服务器。
3.2 系统具备的功能
该系统从功能上分用户模块和管理模块,用户模块又分为匿名用户模块与普通用户模块,匿名用户模块主要包括查看商品、注册用户等功能;普通用户模块主要包括查看商品、管理购物车、查看订单等功能。管理模块又分为店主模块与管理员模块,店主模块主要包括商品管理、订单管理等功能;管理员模块主要包括商品管理、用户信息管理、订单管理等功能 [4]。
3.3 用例模型
3.3.1用户Use case图
对网站进行访问时,未注册用户可以进行注册,也可以和注册用户一样浏览网站,进行图书查询,查看书店的公告以及售书活动。但是注册用户比一般用户多的两个权限,一个是购买图书,另一个就是对进行购物车的管理,比如说在购物车增加想要购买的书籍,在购物车中删掉不想购买的。用例图如图3-1所示:
图3-1 用户用例图
3.3.2管理员Use case图
进入系统后,有一个活动选项,可以供普通管理员和超级管理员登陆。超级管理员和普通管理员都能对系统进行订单管理,网站维护,管理添加图书信息,管理添加站内新闻,但是超级管理员可以添加和删除普通管理员。系统活动图如图3-2所示:
图3-2 管理员用例图
3.3.3书店销售系统E-R图
在线书店销售系统中,有用户,图书和管理员等实体,其中管理员又分为普通管理员和超级管理员。用户实体中包括了用户密码,用户姓名,用户QQ号,用户电话号码,身份证号码,地址等属性。图书实体中包含了图书ID号,图书名称,作者,出版日期,价格等属性。普通管理员实体中包含了管理员姓名,密码等属性。超级管理员实体中也包含了管理员姓名和密码等属性。
实体之间也存在着联系,管理员可以添加或者删除多种类型的书籍,一种书籍可以由多个管理员来进行添加或者删除,因此管理员和书籍之间是多对多的联系。用户可以购买多种书籍,也可以订购书籍,一种书籍可以给被多个用户购买,也可以被多个用户订购,因此用户与书籍之间也是多对多的联系。具体说明如图3-3所示:
图3-3 书店销售系统E-R图
3.4数据库的设计与实现
3.4.1数据库的需求分析
根据系统功能设计的要求,以及功能模块的划分,下面给出在线图书销售管理系统的各个组成部分的数据项和数据结构[5]。
对于销售管理系统的基本信息数据库,可以列出一下数据项和数据结构。用户信息数据表应该包含用户名称、用户编号、用户权限编号、用户密码、用户的状态。友情链接信息数据列表应该包含网站名称、网址。商品信息数据表应该包含图书类别、图书编号、图书名称、图书价格、图片。站内新闻信息表:新闻标题、新闻类别、新闻内容。
3.4.2数据库的逻辑设计
根据系统功能设计的要求以及功能模块的划分,各个系统的具体逻辑实现如下:
用户信息数据表应该包含用户名、用户权限编号、用户密码、用户的性别等。订单信息数据表应该包含订单购买人、图书编号、订单名称、图书价格、图片等。图书信息数据表包括图书类别、图书编号、图书名称、图书价格、图片,各种编号,包括发货编号,出库单编号、出库编号等等,通过GetNewID()函数来生成。而图书的其他信息包括图书名称、从图书基本信息数据库中获取。订单、图书的其他信息,都通过基本库房信息表、基本库存信息表、基本图书信息表来获取。
3.5 数据库的结构创建
系统数据库的名称为jspwangshangshoushuxns_Data,数据库中分别建了allusers,gwc,shangpinleibie,shangpinxinxi,xinwentongzhi,yonghuzhuceyouqinglianjie七张表。
表allusers是管理员表,主要用于存储管理员信息,根据系统的需求,设计了ID,username,pwd,cx,addtime等属性,其中ID是主键[6]。在表中ID字段为管理员编号,username字段为管理员用户名, pwd字段为登陆密码,cx字段为管理权限,addtime字段为添加时间。具体如表3-1所示:
表3-1 allusers(管理员表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 username VarChar 50 是 255
3 pwd VarChar 50 是 255
4 cx VarChar 50 是 255
5 addtime DateTime 8 是 23
Gwc表格主要用于存储已有商品信息的。根据系统需求,设计了ID, username,bianhao,mingchengg,tupian等属性,其中ID是主键。在表中ID字段为商品序号,username字段为商品名称,bianhao字段为商品编号,mingchengg字段为商品类别,tupian字段为商品图片,jiage字段为商品价格,addtime为商品添加时间,shuliang为商品的数量。具体如表3-2所示:
表3-2 gwc(已有商品信息列表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 username VarChar 50 是
3 bianhao VarChar 50 是 255
4 mingcheng VarChar 50 是 255
5 tupian VarChar 50 是 255
6 jiage Float 8 是 15
7 addtime DateTime 8 是 23
8 shuliang Int 4 是 10
9 isfk VarChar 50 是 255
Shangpinleibie表主要用于存储商品类别的信息。根据系统需求,主要设计了ID,leibiemingcheng,addtime等属性,其中ID为主键。在数据表中,ID字段为盛品序号,leibiemingcheng字段为类别名称,addtime字段为添加时间。具体如表3-3所示;
表3-3 shangpinleibie(商品类别表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 leibiemingcheng VarChar 50 是 255
3 addtime DateTime 8 是 23
Shangpinxinxi表主要存储详细的商品信息。根据系统需求, ID,biaohao,mingcheng,leibie,tupian,beizhu,addtime,jiage等属性,其中ID为主键。在表中, ID字段为商品序号,biaohao字段为商品标号,mingcheng字段为商品名称,leibie字段为商品类别,tupian字段为商品图片,beizhu字段为商品备注,addtime字段为添加时间,jiage字段为商品价格。具体如表3-4所示:
表3-4 shangpinxinxi(商品信息表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 bianhao VarChar 50 是 255
3 mingcheng VarChar 50 是 255
4 leibie VarChar 50 是 255
5 tupian VarChar 50 是 255
6 beizhu VarChar 50 是 255
7 addtime DateTime 8 是 23
8 jiage VarChar 50 是 255
xinwentongzhi表是用于存储管理员更新的关于书店信息的内容。根据系统需求,设计了ID,biaoti,leibie,neirong,tianjiaren,addtime等属性,其中ID是主键。在表中ID字段为新闻序号,biaoti字段为用户名,leibie字段为新闻类别,neirong字段为新闻内容,tianjiaren字段为新闻添加人,addtime字段为添加时间。具体如表3-5所示:
表3-5 xinwentongzhi(新闻通知表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 biaoti VarChar 300 是 255
续表3-5 xinwentongzhi(新闻通知表)
序号 字段名称 字段类型 大小 允许为空 最大长度
3 leibie VarChar 50 是 255
4 neirong Text 16 是 255
5 tianjiaren VarChar 50 是 255
6 addtime DateTime 8 是 23
yonghuzhuce表是用于存储用户注册信息的表。根据系统需求,设计了ID,yonghuming,mima,xingbie,dianhua,QQ,shenfenzheng,dizhi,addtime等属性,其中ID是主键。在表中, ID字段为注册序号,yonghuming字段为注册人,mima字段为密码,xingbie字段为性别,dianhua字段为电话,QQ字段为QQ号码,shenfenzheng字段为身份证号码,dizhi字段为地址,addtime字段为注册时间。具体如表3-6所示:
表3-6 yonghuzhuce(用户注册表)
序号 字段名称 字段类型 大小 允许为空 最大长度
1 ID Int 4 自增编号 10
2 yonghuming VarChar 50 是 255
3 mima VarChar 50 是 255
4 xingbie VarChar 50 是 255
5 dianhua VarChar 50 是 255
6 QQ VarChar 50 是 255
7 shenfenzheng VarChar 50 是 255
8 dizhi VarChar 50 是 255
9 addtime DateTime 8 是 23
youqinglianjie表是用于存储网页上的网页链接。根据系统需求,设计了ID,wangzhimingcheng,wangzhi,addtime等属性,其中ID为主键。在表中ID字段为序号,wangzhimingcheng字段为网址名称,wangzhi字段为网址链接,addtime字段为添加时间。具体如表3-7所示:
表3-7 youqinglianjie(友情链接表)
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10  序号
2 wangzhanmingcheng VarChar 50 是 255  网址名称
3 wangzhi VarChar 50 是 255  网址链接
续表3-7 youqinglianjie(友情链接表)
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
4 addtime DateTime 8 是 23  添加时间
4基于JSP的网上书店销售系统的实现
4.1后台系统和数据库的配置
4.1.1后台服务器配置
本系统使用了Microsoft的TOMCAT 5.0作为系统服务器。如果使用的是Windows 2005以上版本的操作系统,那么添加TOMCAT 5.0服务器非常简单,只需要打开控制面板”里面的 添加/删除程序”选项,然后选择添加/删除Windows组件”,最后选中弹出对话框的Internet信息服务(tomcat)选项,按照系统提示进行安装即可。
4.1.2后台数据库的配置
在线图书销售管理系统采用Microsoft公司的SQL Server 2005数据库系统。
图4-1给出了SQL Server 2005数据库的企业管理器主界面,用户通过该界面可以完成自己数据库的添加,修改工作。
图4-1 SQL server 2005企业管理器主界面
4.1.3后台全局配置文件
后台配置文件实际上是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa文件[7]。
在Global.asa文件中,如果包含的脚本没有用〈SCRIPT>标记封装,或定义的对象没有会话或应用程序作用域,则服务器将返回错误。我们可以用任何支持脚本的语言编写Global.asa文件中包含的脚本。如果多个事件使用同一种脚本语言,就可以将它们组织在一组〈SCRIPT>标记中。
Global.asa

这段代码非常重要,它定义了连接到数据的各种参数。在本在线系统中,所有页面的都默认的使用这些参数。
PublicFunction.inc是本在线图书销售系统的一个嵌入文件,它里面定义了几个方法,都是系统所需要用到的【7】。
4.2前端网络页面的开发与设计
4.2.1用户注册网页
注册用户在页面中应输入用户名,密码等资料,然后按提交即可登录成功。具体设计的注册用户界面如图4-1所示:
图4-1 用户注册页面
在用户注册登录时,首先用户进入登录界面,如果用户是会员,下一步系统流程进入输入用户名和密码流程,然后进入合法性检查流程如果用户名和密码合法那么用户将登录到用户界面,最后结束该流程,
其次,如果用户不是会员,那么系统将进入会员注册流程让用户填写用户表单,然后进入是否合法流程,如果用户填写的表单合法将进入注册后返回到登录界面流程,如果用户填写不合法那么将进入重新注册。具体的流程图如图5-2所示:
图4-2用户注册流程图
根据流程图的设计,注册是如果为输入用户名或者密码时,系统会提示,代码实现如下:
图4-3未输入用户名
图4-4未输入密码
function check()
{
if(document.form1.yonghuming.value==)
{
alert(请输入用户名);
document.form1.yonghuming.focus();
return false;
}
if(document.form1.mima.value==)
{
alert(请输入密码);
document.form1.mima.focus();
return false;
}
}
当用户注册成功时,系统会自动跳出提示注册成功的页面,如图4-5,代码如下:

图4-5 注册成功
<%String yonghuming=request.getParameter(yonghuming);String mima=request.getParameter(mima);String xingbie=request.getParameter(xingbie);String dianhua=request.getParameter(dianhua);String QQ=request.getParameter(QQ);String shenfenzheng=request.getParameter(shenfenzheng);String dizhi=request.getParameter(dizhi);
ResultSet RS_result=connDbBean.executeQuery(select id from [yonghuzhuce] where yonghuming=+yonghuming+);
if(RS_result.next())
{
out.print( );
}
else{
String sql=insert into yonghuzhuce(yonghuming,mima,xingbie,dianhua,QQ,shenfenzheng,dizhi) values(+yonghuming+,+mima+,+xingbie+,+dianhua+,+QQ+,+shenfenzheng+,+dizhi+) ;
connDbBean.executeUpdate(sql);
out.print( );
}
RS_result.close();
%>
4.2.2 用户登录页面
当用户注册完成后,就可以登录账号,然后可以进行书籍的购买等操作了,如图4-6所示:
图4-6 用户登陆界面
用户登录时首先验证是管理员还是用户登录,如果是用户,则进入用户界面,代码如下:
<%
String uid=request.getParameter(username);
String pwd=request.getParameter(pwd);
String sql=;
String cx=new String(request.getParameter(cx).getBytes(8859_1));
if(cx.equals(管理员))
{
sql=select * from [allusers] where username=+uid+ and pwd=+pwd+;
}
else
{
if(cx.equals(用户))
{
sql=select * from xuesheng where xuehao=+uid+ and mima=+pwd+;
}
else
{
sql=select * from jiaoshi where gonghao=+uid+ and mima=+pwd+;
}
}
ResultSet RS_result=connDbBean.executeQuery(sql);
if(!RS_result.next())
{
out.print( );
}
else{

session.setAttribute(username,uid);
if(cx.equals(管理员))
{
session.setAttribute(cx,RS_result.getString(cx));
}
else
{
if(cx.equals(用户))
{
session.setAttribute(cx,用户);
}
}
response.sendRedirect(main.jsp);
}
RS_result.close();
%>
4.2.3 管理员操作页面
登录以后,超级管理员除了对网站进行管理以外,例如进行添加和管理站内新闻,添加和管理友情链接,添加和管理图书信息,订单管理等操作外,还能够添加和删除普通管理员。如图4-7所示:
图4-7管理员操作页面
超级管理员登录时,需要进行身份验证,代码如下:
<%
if (request.getSession().getAttribute(cx).equals(超级管理员))
{
}
else
{
out.print( );
}
%>
超级管理员添加普通管理员代码:
<%
ResultSet RS_result=connDbBean.executeQuery(select * from allusers order by id desc );
String id=;
String username=;
String pwd=;
String cx=;
String addtime=;
int i=0;
while(RS_result.next()){
i=i+1;
id=RS_result.getString(id);
username=RS_result.getString(username);
pwd=RS_result.getString(pwd);
cx=RS_result.getString(cx);
addtime=RS_result.getString(addtime);
%>
超级管理员删除普通管理员代码:
<%
String id=request.getParameter(id);
String tablename=request.getParameter(tablename);
String sql=delete from +tablename+ where id=+id+;
connDbBean.executeUpdate(sql);
out.print( );
%>
4.2.4用户购物操作
当用户注册完以后进入页面浏览或者购物,将喜欢的书籍放入订单中,接着继续浏览,当用户发现找到一本比刚才放入订单中的书籍更好时,就可以进入订单管理,删除刚才放入订单中的书籍,如图4-8所示:
图4-8用户管理
用户查询书籍的代码:
<%
int i=0;
int j=0;
String id=;
String bianhao=;
String mingcheng=;
String tupian=;
int curpage=1;
int page_record=6;
int zgs=0;
int zys=0;
String hsgnpage=request.getParameter(page);
String fysql=select count(id) as ss from shangpinxinxi;
ResultSet RS_resultfy=connDbBean.executeQuery(fysql);
while(RS_resultfy.next()){
zgs=Integer.parseInt(RS_resultfy.getString(ss));
zys=zgs/page_record+1;
}
if (hsgnpage!=null)
{
curpage=Integer.parseInt(request.getParameter(page)); }
else
{
curpage=1;
}
if (curpage==0)
{
curpage=1;
}
if(curpage>zys)
{
curpage=zys;
}
//out.print(curpage);
String sql=select top +page_record+ * from shangpinxinxi where id not in (select top +((curpage-1)*page_record)+ id from shangpinxinxi order by id desc) ;
if( sc.equals())
{}
else
{
sql=sql+ and +ltt+ like %+qd+%;
}
sql=sql+ order by id desc;
ResultSet RS_result=connDbBean.executeQuery(sql);
while(RS_result.next()){
i=i+1;
j=j+1;
id=RS_result.getString(id);
bianhao=RS_result.getString(bianhao);
mingcheng=RS_result.getString(mingcheng);
tupian=RS_result.getString(tupian);
%>
订单管理代码:
<%
String sql=;
sql=select * from gwc where username=+request.getSession().getAttribute(username)+;
String id;
sql=sql+ order by id desc;
ResultSet RS_result=connDbBean.executeQuery(sql);
id=;
String bianhao=;String mingcheng=;String tupian=;
String addtime=;String jiage=;String shuliang=;
int i=0;
while(RS_result.next()){
i=i+1;
id=RS_result.getString(id);
bianhao=RS_result.getString(bianhao);
mingcheng=RS_result.getString(mingcheng);
tupian=RS_result.getString(tupian); addtime=RS_result.getString(addtime);jiage=RS_result.getString(jiage);shuliang=RS_result.getString(shuliang);
%>
删除购买书籍代码:
<%
String id=request.getParameter(id);
String tablename=request.getParameter(tablename);
String sql=delete from +tablename+ where id=+id+;
connDbBean.executeUpdate(sql);
out.print( );
%>
4.2.5管理员管理页面
管理员管理页面显示的是所有图书的信息列表,在管理页面中,管理员能够添加或者管理友情链接,能够添加和管理图书类别,能够添加和管理友情链接,能够添加和管理图书信息,添加和管理站内新闻,同时也能够进行订单的管理和密码的修改。如图4-9所示:
图4-9 图书管理页面
订单显示页面代码:
<%
String sql=;
sql=select * from gwc;
sql=sql+ order by id desc;
ResultSet RS_result=connDbBean.executeQuery(sql);
String id=;
String bianhao=;String mingcheng=;String tupian=;
String addtime=;String jiage=;String username=;
int i=0;
while(RS_result.next()){
i=i+1;
id=RS_result.getString(id);
bianhao=RS_result.getString(bianhao);mingcheng=RS_result.getString(mingcheng);tupian=RS_result.getString(tupian); addtime=RS_result.getString(addtime);jiage=RS_result.getString(jiage);username=RS_result.getString(username);
%>
管理员删除订单中书籍代码:
<%
String id=request.getParameter(id);
String tablename=request.getParameter(tablename);
String sql=delete from +tablename+ where id=+id+;
connDbBean.executeUpdate(sql);
out.print( );
%>
添加友情链接代码:
<%
String wangzhanmingcheng=request.getParameter(wangzhanmingcheng);String wangzhi=request.getParameter(wangzhi);
String sql=insert into youqinglianjie(wangzhanmingcheng,wangzhi) values(+wangzhanmingcheng+,+wangzhi+) ;

connDbBean.executeUpdate(sql);
out.print( );
%>
添加新闻通知代码:

4.2.6个人资料修改页面
当用户注册完毕后,需要进行个人信息的完善或者修改,可以进入个人资料修改页面,进行信息的完善和修改。如图4-10所示:
图4-10 资料修改页面
修改个人资料代码如下:
<%
String sql=select * from yonghuzhuce where yonghuming=+request.getSession().getAttribute(username)+;
String yonghuming=;String mima=;String xingbie=;String dianhua=;String QQ=;String shenfenzheng=;String dizhi=;
ResultSet RS_result=connDbBean.executeQuery(sql);
while(RS_result.next()){
yonghuming=RS_result.getString(yonghuming);mima=RS_result.getString(mima);xingbie=RS_result.getString(xingbie);dianhua=RS_result.getString(dianhua);QQ=RS_result.getString(QQ);shenfenzheng=RS_result.getString(shenfenzheng);dizhi=RS_result.getString(dizhi);
}
%>
<%
String yonghuming=request.getParameter(yonghuming);String mima=request.getParameter(mima);String xingbie=request.getParameter(xingbie);String dianhua=request.getParameter(dianhua);String QQ=request.getParameter(QQ);String shenfenzheng=request.getParameter(shenfenzheng);String dizhi=request.getParameter(dizhi);
String id=request.getParameter(id);
String sql=update yonghuzhuce set yonghuming=+yonghuming+,mima=+mima+,xingbie=+xingbie+,dianhua=+dianhua+,QQ=+QQ+,shenfenzheng=+shenfenzheng+,dizhi=+dizhi+ where yonghuming= +request.getSession().getAttribute(username)+;
connDbBean.executeUpdate(sql);
out.print( );
%>
5系统测试
5.1软件测试的目的和原则
在软件生存周期的每个阶段都不可避免地会产生错误。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里面更具有它的重要性。
5.2 测试的方法
测试方法分为黑盒测试和白盒测试。
5.2.1黑盒测试
黑盒测试又叫功能测试,在程序的接口进行测试,不考虑程序的内部结构和处理过程。只检查程序功能是否能按照规格说明书的规定。程序是否能适当地完成接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
5.2.2 白盒测试
白盒测试又称结构测试。它是在完全了解程序的结构和处理,它是按照程序内部的逻辑测试程序,检验程序中每条通路是否都能按预定要求正确工作。
测试步骤:
1)模块测试
模块测试也称为单元测试。把每个模块作为一个单独的实体来测试,是比较容易设置检验模试正确性的测试方案。目的保证每模块作为一个单元能正确运行。
2)集成测试
它包括于系统测试和系统测试。子系统测试是把单元测试的模块放在一起形成一个子系统来测试,它着重测试模块的接口。系统测试是把经过测试的子系统装配成一个完整的系统来测试。 集成测试是组装软件的系统技术,主要目标是发现与接口有关的问题。集成 测试有两种方法:非渐增和渐增测试。
3)验收测试
验收测试是把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似。但它是在用户积极参与下进行的。而且使用实际数据进行测试。
4)平行运行
就是同时运行新开发的系统和将被它取代的旧系统。以便比较新旧两个系统的处理结果。 用于测试的主要技术有适用于黑盒测试的等价划分。边界值分析及错误推测法等。还有适用于白盒测试的逻辑覆盖法。
5.3测试实例(测试集)的研究与选择
开发任何较复杂的应用程序,错误都是不可避免的。JSP的应用程序也不例外。在本系统中就遇到了许多不同种类的错误。
当某个JAVA方法中有什么东西真正的发生了错误时,它通常会抛出一个异常,异常是一个特殊的JAVA对象,而抛出异常就是一个用于表明自己不知道如何处理某个问题的方式,当TOMCAT发现是哪个JSP页中发生了某个错误时,它会把异常站的跟踪发送给浏览器。可以根据浏览器的提示进行修改。这样的错误经常是打字的疏忽造成的,即语法错误。
检查错误比较好的一个方法是加入几个JSP表达式,以便在浏览器中可以看到,作为应答的一部分的变量的值,是调试JSP页最简单的方法。在处理一个请求时,会涉及多个页面,在这种情况下,将调试的输出写到一个文件中或写到启动服务器的命令行窗口中会更好一些。
在整个程序调试成功可以运行后,还可能会由于所依靠的外部系统(如数据库)的问题而发生错误,而即使你已经对你的应用程序进行测试和调试,也可能还会有一些你没预料到的运行时的情况,所以说,运行的系统环境也非常重要。
调试程序是一项艰苦的事情,未必一次就能调试成功,因此在调试程序时应该注意以下几点:首先,也是最重要的,应该对修改的程序做一备份,以防产生对已成功运行的程序段的损害,避免不必要的重复代码。在编写程序代码的时候应经常保存,以免丢失。其次,是隔离代码。把错误的程序代码分离出来,把他们粘贴到新工程中,进行运行,调试,修改错误,这样会对程序的理解更有帮助,改起来也得心应手。
5.4系统的维护
软件维护是软件生存期最后一个阶段,也是周期最长的一个阶段,它顾在于系统投入生产性运行以后的时间中,因而不属于系统开发过程,然而在系统开发的各个阶段应该从各方面做到尽量提高系统的可维护性。
软件的就是指在软件已交付使用之后,为了改正错误或满足新的需要而修改软件的过程,可以分为维护,适应性维护,完善性预防性维护。其中完善性维护占全部维护的一半以上。
软件的可维护性是指维护人员理解,改正、改动和改进这个软件的难易程度。影响软件可维护性的主要因素有三个方面:可理解性,可测试性和可修改性。在面向对象的设计中还包括软件的可重用性和可扩充性。
为提高维护性。本系统在开发过程中尽量做到以下几点:
1)、设计过程文档齐全。
2)、设计尽可能的公用对象窗口。
3)、设计中各部分都有详细文档,脚本中增加注释说明,均可提高软件的可维护性。
4)、计中尽量做到松散的耦合,较高的内聚隐蔽和内部化。
设计过程中各模块(对象)均考虑或预留了完善和可扩充接口部分。使用尽可能多的公用窗口,增加了可维护性。
6结束语
经过近几个月的努力,我终于完成了我的大学论文。在这期间,从语言和数据库的学习,素材和资料的选择,到系统的设计,到上机调试,在到系统的最终实现和论文的完成,都得到指导老师孟敏老师的悉心指导,在此表示衷心的感谢。
在毕业设计的过程中,我应用在校的学习专业课程及查阅相关的书籍,系统的学习了JSP、SQL Server 2005以及网页制作技术,通过这些知识的学习,我越发认识到自身知识缺乏,只有不断的学习充实自我,才能在以后的学习和工作中更好地为社会服务。
对我而言,毕业设计不仅仅是一个学习的过程,更是一个进步升华的过程。从刚开始遇到问题时,自己总是被动的想等待别人解决,到自己通过查阅书籍和资料,上机反复调试,解决了一些小的问题后,我对自己有了信心,不再等待别人的帮助,而是自己主动向问题挑战。
四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有山重水复疑无路,柳暗花明又一村”。
参考文献
[1]文灿华,张伟.基于JSP的网上商城的设计与实现[J].电脑知识与技术,2010.11.
[2]李冬芬,黄金波,赵景文.基于JSP的在线考试系统设计[J].宁波职业技术学院学报,2010.10.
[3]胡康秀,王兵贤.基于JSP的网上书店销售系统的设计与实现[J].中国管理信息化,2009.5.
[4]郭向阳,李红娟.基于JSP技术的都市博客系统的设计与实现[J].软件导刊,2010.10.
[5]朱倩.基于JSP小型网店的设计[J].电脑知识与技术,2009.3.
[6]李平.基于JSP的动态网页开发技术[J].微计算机信息,2009.
[7]罗在文. JSP技术访问SQLServer数据库的设计与实现[J].长春理工大学学报,2010.9.
致谢
首先,向两年来辛勤培养和教育、关心帮助我的恩师们表示最诚挚的敬意和感谢。三个月的毕业设计已经结束,通过老师的指导以及同学的帮助,使我顺利的完成了毕业设计的课题,借此论文之际,我想向所有帮助过我完成毕业设计的人表示谢意。首先应当感谢的是我毕业设计的导师。他们在毕业设计上的耐心指导,尤其是老师那平易近人的待人方式使我终身难忘。本次课题是在老师的指导下修改完成的,在论文的设计和撰写过程中始终得到恩师的细心指导。使我能够顺利的完成本科阶段学习和设计任务。在这段时间里,我从导师身上不仅学到了许多的专业知识,更感受到了他门工作中的兢兢业业,生活中的平易近人。以及他们严谨的治学态度和忘我的工作精神值。在此我对毕业设计期间帮助过我的老师和同学表示最诚挚的感谢。
感谢四年来传授我知识的老师们,更要感谢我的家人对我学业上的支持和鼓励,感谢所有关心帮助过我的人。
总之,在以后的学习生活中我将以加倍的努力作为对给予我帮助的学校、老师及同学们的回报。
最后再次感谢所有帮助过我的人和仍在帮助我的人。
Internet上用户
(分类别)
系统后台数据库
系统服务器
Internet
书店销售
系统
24
3
获取项目源文件,联系Q:1225467431,可指导其它毕设,课设

猜你喜欢

转载自blog.csdn.net/u010783228/article/details/86438921