上海欣北商贸有限公司网上家电商店的设计与开发_第1页
上海欣北商贸有限公司网上家电商店的设计与开发_第2页
上海欣北商贸有限公司网上家电商店的设计与开发_第3页
上海欣北商贸有限公司网上家电商店的设计与开发_第4页
上海欣北商贸有限公司网上家电商店的设计与开发_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海应用技术大学计算机科学与信息工程学院毕业设计上海欣北商贸有限公司网上家电商店的设计与开发摘要:全球互联网自九十年代大规模中期的业务已40年的快速发展,已成为世界上重要的信息基础设施,推动经济全球化和人类社会的社会进步的命运。同时,在中国的互联网的发展速度也一直居高不下,藉由电子设备、网络技术和移动互联网的迅速拓展,我国也凭借网络电子商务推动了巨额的经济提升。随着本系统的ASP(ActiveServerPages的)技术,采用C#语言,借助SQLServer数据库作为后台数据库,从实践中来研究电子商务的开发。本系统基本遵循了软件工程方法论,首先对系统进行分析,然后从总体部分进行设计并详细描述了设计与实现的紧密配合,改进了系统的实现,最后进行了软件测试。最终结果即实现了管理人员和注册的会员两大用户角色的基本需求。同时,在结构中使用了标准的三层体系结构开发模式,即表示层(UI),业务逻辑层(BLL)和数据访问层(DAL),以使其更好由两个主要用户使用。关键词:ASP技术;C#;SQLServer;电子商务;网上商店DesignanddevelopmentofonlinehomeappliancestoreofShanghaiXinbeicommerceandTradeCo.,LtdAbstract:TheglobalInternethasdevelopedrapidlyforabout40yearssinceitwaswidelyusedinbusinessinthe1990s.Ithasbecomeanimportantinformationinfrastructuretopromoteeconomicglobalizationandsocialprogressintheworld.Atthesametime,theInternethasalsobeendevelopedrapidlyinChina.Withtherapiddevelopmentofelectronicequipment,networktechnologyandmobileInternet,Chinahasalsopromotedahugeeconomicimprovementbyvirtueofnetworke-commerce.ThissystemusesASP(activeserverpages)technology,Cාprogramminglanguage,SQLServerdatabaseasbackgrounddatabase,andstudiesthedevelopmentofe-commercefrompractice.Thesystembasicallyfollowsthemethodologyofsoftwareengineering.Firstly,thesystemisanalyzed,thenthesystemisimprovedbythecombinationofoveralldesignanddetaileddesign,andfinallythesoftwareistested.Thefinalresultistorealizethebasicneedsofthetwouserrolesofthemanagerandtheregisteredmember.Atthesametime,thesystemusesthestandardthree-tierarchitecturemodedevelopedbymajorenterprises:theUserInterfaceLayer(UI),theBusinessLogicLayer(BLL)andtheDataAccessLayer(DAL),whichcanbebetterusedbythetwomajorusers.Keywords:ASP;C#;SQLServer;e-commerce;onlinestore目录TOC\o"1-3"\h\u1绪论 11.1课题的总体概要研究意义 11.2国内外课题概况及发展趋势 21.3开发工具简介 31.3.1C#简介 31.3.2ASP.NET简介 31.3.3数据库简介 51.4开发架构简介: 61.5系统开发环境 71.5.1开发环境 71.5.2程序运行环境 72需求分析 2.1系统功能及特性分析 82.2数据库需求分析 82.3系统目标 93系统分析 3.1前台模块介绍 103.2后台模块介绍 113.3模块的流程图 133.3.1前台购物 133.3.2商品类别维护 133.3.3商品信息维护 133.3.4订单信息维护 143.4根据表与表之间的关系可以画出ER图 143.5数据库字典 154系统程序实现 4.1系统主界面 204.2基本功能模块 224.2.1用户注册 224.2.2购物车 244.2.3订单信息 284.2.4用户订单信息列表 314.2.5商品小类维护 344.2.6商品信息维护 364.2.7订单信息维护 394.2.8商品销量排行 414.2.9商品信息查询 435软件测试 5.1软件测试的意义 465.2软件测试的重要性 465.3软件测试的方法 476结论与总结 致谢 上海欣北商贸有限公司网上家电商店的设计与开发 PAGE10绪论众所周知,当今社会计算机、各种电子相关设备及其技术和顶级互联网服务的快速发展,使得Internet应用在全球范围内广泛遍及,全世界都正在快速向网络全球化前进。互联网在生活、经济、商务、工业等方方面面中的作用也越来越大阿里巴巴,京东,苏宁电子商务和其他电子商务在线消费者购物平台的发布不断涌现,过去三十年来,几乎每个人的消费方式发生了改头换面的巨大改变。显然,线上消费已经进入家家户户好似一股浪潮席卷每一个人,因此藉由这种潮流化的事物来作为一个课题的研究方向极有意义也很有必要。同时ASP作为网络高速发展至今的“鼻祖”级的基础技术,也是我此次课题研究的入手点。课题的总体概要研究意义在线家电商店的设计和开发必须基于对用户需求的调查和分析,以此来确定开发这个系统的目的和系统开发出来以后的目标,在这个过程中开发者提出解决问题的详细方案,这只是系统独特的设计和合作开发经验的一小部分。要想使我们这个网上商店的客户能方便地高效地使用该系统,功能上对系统的要求是全面的,并且将会具有一定的挑战性。而利用计算机和互联网的高效自动化处理能力,便可以方便快捷地进行用户或商品的信息共享、交流和操作处理。电子数据交换系统(EDI)是指买卖双方的核心业务软件系统同意的付款标准格式,以及用于传输客户订单最终数据的基本数据状态标准。1970年代的EDI技术实现是各个行业中使用更广泛的技术,如制造业,物流,零售,医药,金融,化工,能源等领域,20世纪90年代时,在中国大陆广泛发展。EDI在20世纪80-90年代,通过网络取代了传统人工面对面地进行文件、资料、书信等信息交换,将文字、图片、视频、声音等内容以电子文件的方式进行数据交换[1]。电子信息领域的全球知名品牌IBM公司在1998年首先提出了“电子商务”这一名词并迅速在全球行业内得到大量支持和认同。包括广告、服务在内的电子互联网与商业的有机结合,众多各式各样的内容都逐渐地与“E”、“电子”和其他词汇被组合在一起,涵盖过去、现在和未来。几乎全部的经济商业活动都有可能会以电子网络的形式展现在世人眼前。随着时代和技术不断地以一天一个样的速度进步着,计算机、电子设备及网络产品、互联网、移动互联网、安全便捷支付等电子商务的技术支持正在电子商务领域的应用大潮中发生日新月异的变化,这种跨越质的变化,也为网络在线购物一次次打开新的格局和大门。它不只是带动互联网经济的飞速发展,更是深入到金融贸易、全球化挑战的每一个角落,深入千家万户,改变全人类的生活方式、消费习惯。因此本课题就要从其中一些技术的基础层面进行讨论研究。国内进入EDI时代,为中国电子商务的起步阶段奠定了重要基础,既有了技术又有了条件,我国开始搭上电子商务的列车。当李克强总理在我国第十二次全国人民代表大会第三次会议上,将“互联网+”上升到战略层次上,提出了新兴产业和新兴业态是当前我国经济发展、社会进步的竞争高地,同时也是我国新常态经济发展的重要推助力[2]。如今在这样的时代浪潮推动下,类似于“双十一”、“新年集福”这样的大型活动正在影响着几乎每一个中国人的生活和购物方式,这背后正式源于我国对这种新型经济结构的支持和互联网领域的技术飞速发展。所以就这一方面来看,本课题的研究也是在迎合国家政策,顺着国家的战略方向前进。国内外课题概况及发展趋势从1998年易趣在国内成立第一家网上购物网站,到互联网泡沫经济退潮后,2003年阿里巴巴旗下淘宝网成立。往后五年,中国网民井喷式的暴涨,全球电子商务环境的良化,支付技术的提升和中国物流业务的飞速发展。到2011年,中国的电子商务已经聚集了当当网,京东网,万科网,苏宁网,一号店等在线购物网站,同时也有诸如亚马逊这样的海外企业入驻中国发展电子商务领域。如今来到了互联网+时代,电子商务网上购物网站的消费额已经成为人们消费额数据中十分重要的一部分,2013年到2018年,国内网上在线购物的成交金额从2679亿元增长至57370亿元,复合上升率84.6%;预计2019年,网购交易金额将达到66610亿元。很明显,网购显然仍有极大的发展空间。图1.12013-2019年中国网购交易金额让我们讨论一下当前的技术状态。1996年,Microseinem在Web应用程序中引入了此程序,以开发其技术,即该其他项目中使用的标准。ASP的次要外观取代了Web服务端扩展和服务端组扩展的普遍标准。ASP和ADO结合在一起,因此在相关数据库中创建和打开后很容易快速打开。如果没有ASP发布,它将被广大Windows平台开发者所青睐。Microsoft公司随后又在1998年开发并发布了ASP2.0,至此开发者们可以建立ASP应用,使得网站的表现更丰富更动态。可是好景不长,由于ASP技术不开源、执行效率较低等问题,被后来出现的PHP、JAVA等编程语言比了下去。PHP、JAVA明显更适合中、大型的Web应用系统。JAVA至今仍是国内最受欢迎的Web编程语言。于是,微软公司又开发了ASP.NET技术,重返市场。ASP.NET采用或c#等语言来开发,与之前asp用vbscript不同了。执行效率和平台兼容性方面的优点都明显超越ASP,因此ASP慢慢被其它开发语言取代了。而ASP.NET也可以向下兼容ASP,所以原来选择ASP的开发者转而投入了ASP.NET的怀抱。开发工具简介C#简介A目前支持、VC++net、、C#.net和其他.net语言。所有这些语言在一定程度上支持小型和大型框架使用语言和脚本执行。我们做的欣北商贸有限公司网上家电商店使用C#语言。所以,在这里我首先需要介绍一下C#语言。C#(Csharp)与ASP.NET一样是Microsoft推出的,于2000年6月发布。C#是一种运行于.NETFramework和.NETCore的简易的、较为新型的、通用的、面向对象的编程语言,Microsoft.NET可以让使用者在任何时候,任何地方,使用任何工具时,可以通过一个.NET服务网络上的任何信息,享受网络带来的便利和快乐。它自然已成为Microsoft的角色领导.netWindows网络框架。正是由于C#面向对象的特别优异的设计,并且C#基于C和C++,同时又与Java高度相似,对于开发人员来说,它已成为实现各种组件设计的理想选择,这些组件可以主动构建关键的相关业务对象或软件系统级应用程序。这也使得C#在编程语言领域中坐拥王座站在巅峰许多年。在使用方便的C#结构之后,这些零件可以很容易地被操作运用。由开发人员开发XMLweb,这样一来不同类型对象的组件就可以由任何用于在任何系统上借助Internet完成操作,大大提高了编译开发的自由度、兼容性和效率。C#有以下特性:1、效率与安全性2、支持现有的网络编程新标准3、消除大量程序错误4、依赖版本更新可以提供固有的支持并降低开发成本5、商业过程和软件实现的更好对应6、扩展交互性ASP.NET简介提到ASP.NET,我们应该首先搞清楚ASP.NET的鼻祖ASP是什么。ASP代表ActiveServerPages,它是活动服务器页面,活动服务器页面到底是怎么回事呢?我们可以找到活动和静止这两个反义词来进行比较,以前的网页都是由静态的超文本标记语言页面组成的,当开发人需要更新他的网站内容时,他就必须输入大量的HTML代码不得不制作大量的超文本标记语言页面,因为这些HTML的页面数据交流能力很差。自从有了ASP,我们就可以轻松地根据不同的用户需求,在各个时段向各个使用者呈现各种各样不一样的东西。系统的内容升级也不会是一个无聊冗长机械的一遍又一遍,它渐渐变成方便而有意思,也因此曾经在国内的ASP学习成为一种潮流趋势。然而由于ASP制作出来的系统和网站的HTML代码缠绕在一起,这就造成整个系统看起来非常的混乱无章法,无论是从结构方面还是从代码方面。作为当前网站设计和开发过程的一个示例,开发过程的人通常会开发为后台程序,而不是在服务器上安排专业和艺术设计页面。这样一来如果还是使用老旧的ASP,这样,在相互合作的过程中就会出现各式各样的问题,在开发真正大型的项目系统时,会为开发团队带来极大的困扰,如果这个团队不巧缺乏配合与交流,那将严重影响开发的进度和质量。同时,ASP页面的运行速度不容乐观,这是因为它是一种脚本和文本语言的多重翻译方法,然后继续,再加上脚本代码语言结构的实际局限性,在编写和编写工作程序时,我们只能调用准备好的语句和其他组件来成功地完成这些基本功能。在遇到了这些实际问题后,微软做出了改进,在2000年宣布了自己的.NET框架,紧接着在2001年正式推出了ASP+,后改名为ASP.NET。为何ASP.NET更强大,如今被更多开发者使用?ASP+不仅仅只是ASP3.0的一个简单的升级版本,它是基于标准的web开发平台.Net框架。它为进一步的设计开发给予了一种全新的、能力出众的主服务端和控制结构。它为程序人员支援了一种全新的强大的服务器控制布局,因此以后将重命名为ASP.NET。A与ASP类似,但有核心本质的不同。ASP.Net基本上完全要基于技术组件和模块的功能才易于发挥它的特点。对于每个接口,特定对象和特定对象元素的组合是作为一个整体运行的两个组件对象的比较。Partoftheunityisbasedonthecommonlanguageofprogramframe,canruninWEBapplicationdevelopmentplatformandbuildstrongASP.NETWEBapplicationwithASP.NETWEBservices[3].在开发文本和语言的其他方面。A不会在基本语言(例如VBScript和JScript)中使用,而只会在高级的.net框架语言(例如C#.net,)中使用,并且网络得到支持。该框架已为此目的开发了一种语言,并将通过语言结构重新生成的开放网站转换为一个类,免费翻译DLL将在后台编译。A是由编译器执行的,它比ASP效率高得多。ASP.NET有以下技术特点:Microsdenn.NET上其他平台的出现非常频繁,往往会加速相关产业以外的其他相关产业的发展,从而加速应用技术流程相对独立的研发和各种程序的执行。显然它已促进了Internet近几代的进步,现今几乎每台装有Windows的计算机上都安装有Microsoft.NET。作为M的产品平台的一小部分,还可以提供完整、简单、简单、可扩展性最强的不同方法,用于进一步的协同开发、集中部署,然后作为一个设备或其他设备继续运行任何人的web浏览,用于各种精美的应用程序中,Net是一个创新的计算机技术编程的基本框架。它可以实现其他企业在技术方案中的程序执行的中间和快速发展。而现实是,这还不是ASP.NET化作开发人员设计制作开发Web应用程序的第一选择的唯一原因。Inthisarea,ASP.NEThasbecomingthemainstreamoperatingsystem.ASP.NETwhichcanbeappliedonmanykindsofplatformisopensourceandfree.Itselfcansupportstrongnetworkfunctionandpossessnumeroussoftwareresources[4].与几年前相比,简化了各种程序和应用程序中各种程序的开发,并大大提高了程序员下班后的效率。A许可过程人员对Web应用程序执行此操作该应用程序编写少量代码,并且各种过程提供了更全面,非常丰富且最重要的基本功能。还有更好的一项原因是ASP.NET为开发人员提供了更多的余地,任何可以使用的.Net编程语言,无论是vb.Net还是C#.Net或jscript.Net都能够被用来开发ASP.Net,开发者不必为了使用ASP.NET而特地去学习之前自己不熟悉的语言。对于开发人员而言,很难将该过程的几种方法部署到其他工作组所应用的技术中,但是为了减少这两个部署过程的目的,进行了很大的改进。因此开发者们不必再因这个问题绞尽脑汁掉光头发。通过ASP.NET安排Web应用程序,只需要把它拷贝到Web服务端上那就可以了。ASP.NET中数据的操作都可以利用ADO.NET通过SQL语句实现,只要设定好SQL语句,传递给数据库服务器,就可以实现数据的管理[5]。除了给予了足够厚实的开发者这一领域的体会,ASP.NET还为使用者提供了相当大量的体验。ASP.NET的Web应用程序比它的前辈ASP应用程序的效率有了突飞猛进的改善,由于允许我们操作经过编译后的程序语言,而且是可以重复使用,换言之ASP.NET通过编译效率的提高增加了它的应用程序的速度。因此,由于使用ASP等其他的Web语言编写的页面,在每次打开时都必须经过先编译后解释的过程,所以同样页面在反复打开时速度不会有变化,而ASP.NET页面只需要一次编译后就不需要重新编译,直到该页面被修改或Web应用程序重新启动,这使得同样页面在反复打开时速度会有所提高[6]。在ASP.Net中可使用Windows、Passport和Cookie三种登录验证方式,也可采用Impersonation功能执行一些程序代码和存取资源[7]。Windows验证集合IIS的验证机制,只需在IIS中进行相关设置;Passport验证则只要在中央主机上登陆浏览任何支撑Passport服务的系统都可以拥有自动登陆功能的能力;Cookie验证能自定义验证界面和验证规则,因此能够精确控制安全性。ASP.NET甚至还能自动检测内存泄漏和线程运行状况,它可以自动重新启动进程,也可以由系统自动回收不正常状态的线程以此保证服务器的连续运行。总的来说,ASP.NET的安全性是极高的。数据库简介现代世界科学水平技术一直在不停地突破,信息或者说数据已然成为各行各业正常运行继续成长的重要资源,这时人们就需要对数据信息能够轻松并全面地操作和管理。数据库的概念被提出以后,不断发展改进,逐渐完善的操作功能和管理功能,使它正在成为高速巨量信息表达的重要方式,现在更是有铺天盖地的云技术正在发展当中,其中就是凭借数据库和服务器的完美结合实现的。如今市面上,数据库的产品有很多,比如:SQLserver,visualfoxpro,Framework,MicrosoftOfficeAccess,Oracle,MySQL,AdaptiveServerEnterprise(ASE),DB2等等,它们当然各有各的优缺点。在这里本网站选择使用同样来自微软公司的SQLServer2017作为数据库系统软件,这样一来,从编程语言到脚本语言再到数据库,本网站都将与微软公司会有紧密的关联。关于SQLServer2017的介绍:SQLserver数据库系统就是一种关系型的数据库系统,就是数据的内部联系是根据关系模型来建立的;它所有的关系型数据库的系统都是使用结构化的查询语言来操作数据库的数据[8]。MicrosoftSQLServer2017是由Microsoft公司开发的。MicrosoftSQLServer2017(称为SQLServer)由相互协作的一系列组件组成。同时,它引入了图数据处理支持,自适应查询,用于高级分析的python集成以及其他功能更新,它可以满足最终数据存储空间的总体要求,大规模的web分析,以及公司自身数据的全面要求,直接解决网站功能的潜在需要。SQLServer2017在即时作业、管理和可程序化、进阶分析和各种设备端对端操作等方面比较它的上一代明显产品SQLServer2008有明显的进步。甚至在安全性方面,提供了静态和动态加密、动态资料遮罩和资料列层级安全性,作为电子商务网上购物网站这样大量金钱交易的系统,安全性尤为重要因此也被我优先考虑。如今的Web系统中,数据库扮演着越来越重要的角色,没有数据库的支持就无法完成巨量的数据流传输;这样一来也为黑客留下了很大空间,很多黑客攻击和数据丢失事件都是从数据库切入的[9]。那么数据库的加密能力就显得格外重要,尤其是在我们这种电子商务的系统中,因为一旦被黑客攻击将会有巨额的财产损失。数据库中数据系统的功能安全思想是一种由物理控制、标准最佳实践、底层系统安全和大型数据库管理成员组成的总体安全策略。按照传统的方法,对数据库中的数据软件系统的安全性进行全面控制它可以分为两类:物理层、操作系统层和数据库中的日常数据管理系统层。开发架构简介:过去,软件系统开发的体系结构很简单,分为两层,也就是说,用户应用界面和其他业务内部逻辑是一层,数据库中的数据是一层。两层架构最大的弊端在于当任何一个细小的地方需要做出改变时,很有可能整个体系都要随之做出更新,乃至需要重新设计整个系统,牵一发而动全身。两层架构不便适于顺应系统需要的变化,系统持续护理难度大,可扩展性不强。为了解决架构中的这些问题,开发者们研究出了三层式架构,具体是指表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。表现层的功能首要是吸收用户键入的信息数据,并显示处理过的用户所需的信息数据。业务逻辑层则是表现层和数据访问层的传达人,真正的计算、检验、数据信息处理等操作步骤都在此,这一层也汇集了网站的主要功能和业务逻辑。数据访问层负责与数据库进行交流,通过数据访问层通过在数据库中添加,删除,修改和查询来保存和更新由业务逻辑层处理的数据,以便将来可以方便地使用它们。为了进一步扩展这些应用软件的研发并构建一个三层系统,还有另一个最外层,也就是最关键的组件设计层,最后是客户端更改和软件系统。数据库中有另一个最外层。通过在技术过程中最初建立三层系统的结构细节,可以采用多种方法来设计应用程序。通常,过渡层负责处理几乎所有其他业务规则,除了重新处理,对综合数据内容主体的首次访问以及大部分法律依据的验证结果。在这种架构中,新的客户端将在/的帮助下通过连接方式连接到中间层,而数据库系统将交互中间层。整个架构大致运作流程为:使用者通过表现层进行输入操作,业务逻辑层处置使用者的数据和请求,如果有需求则借由数据访问层从数据库调取信息数据继续在业务逻辑层处置信息;业务逻辑层处理完成信息后,告知数据访问层将数据送到数据库进行保存将来再用,同时业务逻辑层把处理好的信息上交给表现层输出显示给用户。这样一个以耦合结构很低为核心的系统架构中,其中的依赖是从上往下的,上层不理会下层也与下层无关,对上层的设计做修改不会产生任何影响影响到它调用的底层。同时,在不修改面向接口的基本标准时,这样的三层结构的每一层应该是可被调取和可被更替的。业务逻辑层的设计在面向数据访问层和表现层时,拥有不一样的身份,面对前者像是调用者,后者则是被调用。整个架构中所体现出来的依赖关系都围绕着业务逻辑层,开发者在架构设计中最大的问题和难点就是要做好业务逻辑的实现,同时又要处理好这些关系之间的解耦。三层架构主要是起到了解耦的作用,每一层分工明确,互不影响却又紧密联系。三层体系结构的明显优势是结构、低耦合、高使用性、可保护性、可扩展性之间关系的清晰整体表示,不利于开发任务的完全同步,不满足市场需求的变化,适合渐进式的变化。当然,三层架构也是有缺陷的。由于在三层架构的系统程序中获取数据必须通过中间层来完成,因此当系统被投入运营后会明显地发现性能不高,相比不采用三层架构的网站程序能够径直关联到数据库,系统的性能明显降低了。另外,由于三层架构系统中有一种自上而下的依赖关系,因此假设开发者在表现层中增加了一个功能,如果程序对应的一段代码自动添加到相关业务对应的内部结构逻辑思维层,并且系统完全被访问以在其结构中构建数据,为了保证整个系统的执行仍然不符合独特的分层体系结构设计和构建结构,这是三层体系结构级联修改的缺陷。现在我们经常看到大型项目组中,前端UI的开发人员、后端的开发程序员和数据库更新保护的开发程序员都是分开的,他们各司其职又互相交流,极大地提升了项目的功能性、开发速度并降低了项目的成本,这都是得益于三层结构的存在。系统开发环境开发环境操作系统: MicrosoftWindows10开发工具: C#数据库选择: SQLServer2017程序运行环境a.软件配置操作系统:MicrosoftWindows10数据库选择:SQLServer2017开发平台:C#b.硬件配置略需求分析一套系统在进行设计开发的时候首当其冲重要非同小可的一项步骤应该是需求分析。所有的系统、程序、软件、项目在最初开始的时候,需求分析都是最重要的一步。这一步就是筑楼施工的地基,它不但会确定一栋楼能造的多高,也会确定一栋楼能造成什么样子。这是一个网上在线购物系统网站,所以这个网站会需要对销售者出售的各种各类的商品实施管理,并且一定会对消费者的信息以及消费者的购物情况等内容实施管理。因此,系统每天都会有很多的业务需要处理,为了保证各个业务处理的高效性,就需要我们在编写系统之前,对网站所涉及到的系统需要实现的功能、业务流程、以及数据流程进行详细的分析[10]。系统功能及特性分析本系统设计开发的主要目的是为了实现商品的在线销售与用户购买、管理商品、卖家买家交流等功能。客户消费者方面主要有以下几点:(1)免费注册用户账号,包括账号内多个信息项目的存档。(2)修改用户信息。(3)可以在线查看商品信息,放进购物车。(4)查看购物车商品,生成订单。(5)商品信息留言。(6)帮助中心管理。管理员方面则主要由以下几点:(1)注册用户信息的维护。(2)维护产品信息的内容,例如对各种商品和商品种类类型的添加或删减、改动(3)对商品(卖家)的留言管理功能。(4)容易操作的订单功能。(5)商品信息查询功能。(6)商品信息排行功能。数据库需求分析前文提到,三层架构对系统设计开发产生了重要作用,其中与数据访问层密切相关的数据库也成为整个程序系统设计中不可掉以轻心的部分,数据库整体结构的独特设计将影响程序执行系统在使用实际数据时的功能的速度和效率以及其他功能的效果。数据库中合理的结构编排和匹配也可以极大地增加数据的内部保存速度和质量,并确保综合数据的相对完好度,降低出错率。合格设计的数据库也能够助力系统各需求的完美达成。制作数据库系统时首先必须要对使用者每一个方向的需要要求都进行详细准确地充分体会,使用者当下已经提出的以及以后也许会增加的需要和要求我们都要纳入考虑。其次对用户的各项需求进行分析,哪些是当下我们可以解决的,容易解决的,哪些是不那么容易解决的,我们需要想什么样的办法来解决或者将这些部分简化或转化,让它变成类似的功能。以上就应该是我们做数据库分析的方式方法。使用者的要求详细地反映在对种种信息的支持、存储、维护和交流,这将会需要数据库结构可以完美地实现各种数据信息的调取和键入。系统目标开在设计和实现系统时,通常必须考虑到以下明确的要求,以便设计和协调并独立地开发更适合于所有用户灵活操作的完整的系统实现,而不是让用户吐槽导致后期需要投入大量精力成本去修改维护系统,这样的系统才能够使用户满意让开发者自己省力省心。1.将数据库设计得更合理如之前一节所述数据库的必要性。必须尽量去降低大型数据库中不必要的重复多余的数据信息,使得最终数据反复的概率到最低标准级别,以释放更多的数据保存空间,并大大提高电子计算机的运行速度,同时可以避免数据重复带来系统的不稳定性和不安全性。2.将用户界面设计得更友好用户友好的页面主界面设计是发现用户如何评价各种类型软件的最重要的其他方面之一,是用户选择是否要继续使用该软件的重要参考指标。用户界面的美观与操作简易都会让用户(消费者)更愿意去使用这样一个软件,才有可能为该软件带来更多收益。系统分析前台模块介绍前台模块就是为用户展示商品、进行商品选择并在线购物的地方,设计时需要根据网站的商品类型和网站的功能安排模块布局,商品信息根据需要从数据库系统中调出,使用户(消费者)能通过简单的操作迅速地找到所需商品,确确实实做到“简便高效易操作”的系统要求。1.注册会员用户在注册成为会员以后,具有一定的权限,可以获取本网站的资料信息、购买商品、订单操作、和卖家在线交流等。2.修改用户信息可以对用户自己的会员信息进行修改。3.购物车浏览商品信息后,将想要买入的商品放入购物车,以便进行支付、订单等操作,同时也可以在失去某件商品的购买欲望之后从购物车中去出该物品。4.我的订单可以查看所有购物业务的流程信息和情况,包含已经确认但还未支付的定单、已经支付成功的定单、未确认收货的定单等等。5.帮助中心为用户展示本商店的一些帮助信息,以体现商店的服务功能。6.商品收藏用户可以收藏有意向的商品,以便于以后回过头来查看或购买该商品。根据上述,系统的功能需求可以通过图3.1简要表示。图3.1系统的功能需求后台模块介绍在这个销售网站中,后台人员模块更为重要。管理员在网页管理模式网页上管理更多的用户信息内容,类似产品的信息内容,订单等。在此位置,在后端模块中输入其他产品的三个主要类别。在维护类别中,商品将与数据信息管理工作,与定单相关的数据信息管理工作,产品渠道销售的不完整统计信息以及所有与用户有关的信息再次修订相关。1.商品大、小类别管理将商品各层级种类类型进行增加、改动、删去操作。2.商品信息管理对在线商品进行增改删操作,并为其选择大小类别。3.订单信息管理可以在此处查看用户各种状态的订单、买卖双方信息,以及对商品订单进行处理。4.商品销量排行对产品销售数据进行排序处理,为管理员显示产品销售状况的排行。5.修改用户信息可以对用户信息进行修改。根据上述,系统的功能需求可以通过图3.2简要表示。图3.2系统的功能需求模块的流程图前台购物商品类别维护商品信息维护图3.3商品信息维护流程图订单信息维护图3.4订单信息维护流程图根据表与表之间的关系可以画出ER图图3.5ER图数据库字典数据库名称:ITWeb.mdf表3.1管理员表3.2会员信息表3.3类别表3.4小类别表3.5订单明细表3.6订单表3.7商品表3.8productliuyan表3.9shoucang系统程序实现系统主界面在浏览器中运行本系统前台,使用者可以浏览前台系统的主界面,包括用户会员的注册与登录、商品大小类别、产品列表、推荐产品列表与销售排行等五大模块。如图:图4.1系统主界面相关代码如下:protectedvoidDataList9_ItemDataBound(objectsender,DataListItemEventArgse){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)//if(e.Row.RowType==DataControlRowType.DataRow){//TextBoxTXT=(TextBox)e.Item.FindControl("quantity");//TXT.Text="1";LinkButtonlik=(LinkButton)e.Item.FindControl("LinkButton1");lik.Text=@"<imgsrc='77/gm.gif'border='0'>";LinkButtonlike=(LinkButton)e.Item.FindControl("LinkButton2");like.Text=@"<imgsrc='77/sc.gif'border='0'>";}}protectedvoidDataList2_ItemDataBound1(objectsender,DataListItemEventArgse){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){DataListrptSmallClass=(DataList)e.Item.FindControl("DataList3");intbId=Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,"classid"));//得到主键DataSetds=leibiexbll.GetList("classid="+bId);rptSmallClass.DataSource=ds;rptSmallClass.DataBind();}}运行本系统后台,可以浏览后台系统的主界面,和五个模块:含有管理员登陆、会员列表、高级会员信息内容维护模式,业务信息日常维护和订单数量维护模式,如图:图4.2系统主界面基本功能模块用户注册此模块目的是提供新会员用户注册。新会员注册时,系统判断各项信息是不是为空,是否符合网站规则,前后输入的密码是不是一致。新会员可以为自己设置符合网站规则的用户名,并键入密码、确认密码、邮件地址、密码问题与问题答案等等。如图:图4.3用户注册其相关代码如下:publicDataSetGetfromxlm(){DataSetds=newDataSet();try{ds.ReadXml(MapPath("admin/zhuce.xml"));}catch{Response.Write("<Script>alert('信息文件丢失!')</Script>");}returnds;}privatevoidShownetinfo()}else{Label1.Visible=true;Label1.Text="用户名可用";//Page.RegisterClientScriptBlock("e","<script>alert('用户名可用')</script>");}}}购物车此模块展示用户购物车中的物品信息、购买物品的总数量和总金额。您还可以付款,清空消费者购物车,增加或减少已选的商品总数,更改已选的商品信息等等。如图:图4.4购物车其相关代码如下:DoubleTtlPrice;CAI.SHOP.BLL.productproductbll=newCAI.SHOP.BLL.product();protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){Image13.Visible=false;Msg.Visible=false;shoplist();}}protectedvoidshoplist(){HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}if(Hash.Count==0){Image13.Visible=true;Msg.Visible=true;Msg.Text="您还没有购物呢?赶快购物吧!";}string[]ArrKey=newstring[Hash.Count];int[]ArrVal=newint[Hash.Count];stringProducts="('";Hash.Keys.CopyTo(ArrKey,0);Hash.Values.CopyTo(ArrVal,0);intk=0;for(intj=0;j<ArrKey.Length;j++){if(k>0)Products+="','";k++;}Products+="')";DataSetds=productbll.GetList("pidin"+Products);DataColumn[]Keys={Table1.Columns["pid"]};Table1.PrimaryKey=Keys;foreach(stringXinHash.Keys){Table1.Rows.Find(X)["shuliang"]=Hash[X];}Table1(newDataColumn("zongjia",GetType("System.Double"),"hotprice"));for(intI=0;I<Table1.Rows.Count;I++){}{HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}if(Hash.ContainsKey(e.CommandArgument)){Hash.Remove(e.CommandArgument);}Msg.Text=(string)e.CommandArgument;Session["car"]=Hash;shoplist();}{inti;HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}for(i=0;i<MyGrid.Rows.Count;i++){//CheckBoxcb=(CheckBox)GridView1.Rows[i].FindControl("BuyIt");Labellb=(Label)MyGrid.Rows[i].FindControl("bianhao");TextBoxtb=(TextBox)MyGrid.Rows[i].FindControl("shuliang");//if(cb.Checked&&Int32.Parse(tb.Text)>0)//{if(Convert.ToInt32(tb.Text)<=0){LTP.Common.MessageBox.Show(this,"数量填写错误!");//this.RegisterClientScriptBlock("E","<script>alert('数量填写错误!')</script>");tb.Focus();return;//ClientScript.RegisterStartupScript(ClientScript.GetType(),"aa","<script>alert('')</script>");}elseif(!Hash.ContainsKey(lb.Text)){Hash.Add(lb.Text,Int32.Parse(tb.Text));}else{Hash[lb.Text]=Convert.ToInt32(tb.Text);}//}}Session["car"]=Hash;shoplist();}{Session["car"]=null;shoplist();}{Response.Redirect("default.aspx");}订单信息此模块主要是在用户购物过程中和购物完毕后为用户生成购物订单,好让用户了解自己购物的情况。界面主要分为两大部分,上面是所购商品信息,下面是消费者相关信息,本订单支持多种商品,因此可以切换成列表的形式显示,具体如图:图4.5订单信息其相关代码如下:{if(Session["username"]==null){Response.Redirect("ssnotice.aspx");}else{if(!Page.IsPostBack){Panel3.Visible=false;Panel1.Visible=false;}}}protectedvoidshoplist(){HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}string[]ArrKey=newstring[Hash.Count];int[]ArrVal=newint[Hash.Count];stringProducts="('";Hash.Keys.CopyTo(ArrKey,0);Hash.Values.CopyTo(ArrVal,0);intk=0;for(intj=0;j<ArrKey.Length;j++)Products+="')";//stringstrconn="Provider=Microsoft.Jet.OleDb.4.0;DataSource="+Server.MapPath("App_Data/shopping.mdb");//stringstrsql="Select*From商品Where编号In"+Products;//OleDbConnectionmyConnection=newOleDbConnection(strconn);//OleDbCommandmyCommand=newOleDbCommand(strsql,myConnection);//myConnection.Open();DataSetds=productbll.GetList("pidin"+Products);DataTableTable1=newDataTable();Table1=ds.Tables[0];DataColumn[]Keys={Table1.Columns["pid"]};Table1.PrimaryKey=Keys;foreach(stringXinHash.Keys){Table1.Rows.Find(X)["shuliang"]=Hash[X];Table1.Rows.Find(X)["shuliang1"]=Hash[X];}Table1.Columns.Add(newDataColumn("zongjia",System.Type.GetType("System.Double"),"hotprice*shuliang"));Table1.Columns.Add(newDataColumn("zongji",System.Type.GetType("System.Double"),"jifen*shuliang"));for(intI=0;I<Table1.Rows.Count;I++)//Session["TtlPrice"]=doubleztg=Convert.ToDouble(TtlPrice.ToString())+Convert.ToDouble(RadioButtonList1.SelectedValue.ToString());Label3.Text=ztg.ToString();Label1.Text=":"+()+"元+"+RadioButtonList1.()+"="+ztg.ToString()+"元";Label12.Text=jifena.ToString();MyGrid.DataSource=Table1.DefaultView;MyGrid.DataBind();}用户订单列表这部分主要是显示消费者曾经购物的定单,消费者可以通过此处浏览自己的定单情况,具体如图:图4.6订单列表其相关代码如下:CAI.SHOP.BLL.ordersorderbll=newCAI.SHOP.BLL.orders();CAI.SHOP.BLL.productproductbll=newCAI.SHOP.BLL.product();{if(Session["username"]==null){Response.Redirect("ssnotice.aspx");}else{bindding();bindyy();//GridView1.DataSourceID="SqlDataSource1";}}publicvoidbindding(){DataSetdst=productbll.GetList(6,"","newid()");DataList3.DataSource=dst;DataList3.DataBind();}publicvoidbindyy(){DataSetds=("username='"+"'orderbydesc");GridView1.DataSource=ds;GridView1.DataBind();}{}{if(e.Row.RowType==DataControlRowType.DataRow){DataRowViewdrv=e.Row.DataItemasDataRowView;Labellabel=(Label)e.Row.FindControl("zhuangtai");LinkButtonlb=(LinkButton)e.Row.FindControl("geng");switch(drv["dingdanfeel"].ToString()){case"0":{label.Text="未确定订单";lb.Text="确定订单";break;}case"1":{label.Text="等待发货";lb.Text="取消订单";break;}case"2":{label.Text="商家已发货";lb.Text="确认收货";break;}case"3":{label.Text="确认收货";lb.Text="等待完成";lb.Enabled=false;break;}case"4":{label.Text="完成交易";lb.Text="交易完成";lb.Enabled=false;break;}}}}商品小类管理该模块的两个方面用于二级分类的管理。将产品划分类别时,将根据实际情况选择类别的第一层级,检查类别是否适合,并提示其它相关内容,如图:图4.7商品类别维护其相关代码如下:publicpartialclassSPXLList:System.Web.UI.Page{{//此处设置用户代码重启页面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.leibiex()).GetList("").Tables[0];if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳转页面Response.Redirect("SPXL.aspx");}{if(e.CommandName=="Mod"){//传递修改的标志跳转页面Response.Redirect("SPXL.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//获取服务器相对路径//删除商品信息initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[.Columns.Count-1].=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}商品信息管理此模块主要是对商品信息的管理。添加商品信息时,系统确定物品特定名字是不是为空。添加或改动物品信息时,所有商品的所有类别都直接相关;删除内容产品信息时,订单详细信息是内部相关的。如图:图4.8商品信息维护列表图4.9商品信息维护页面其相关代码如下:protectedvoidPage_Load(objectsender,EventArgse){//在此处放置用户代码以初始化页面if(!Page.IsPostBack){Session.Remove("imgname");if(Request.QueryString["ID"]!=null){//显示当前的商品信息Mductprd=(()).GetModel(Int32.(Request["ID"]));if(prd!=null){this.DropDownList1.SelectedValue=prd.classid.ToString();DropDownList2.DataTextField="classxname";DropDownList2.DataValueField="classxid";DropDownList2.DataSource=(new()).GetList("Classid="+ToString());DropDownList2.DataBind();this.DropDownList2.SelectedValue=prd.classxid.ToString();txtSPMC.Text=ductname;txtSPJG.Text=prd.masterprice.ToString();txtRMJ.Text=prd.hotprice.ToString();txtKC.Text=prd.pkc.ToString();txtGJZ.Text=ductguanjian;txtSPPP.Text=ductchu;txtSPGG.Text=prd.guige;txtJF.Text=prd.jifen.ToString();txtSPZP.Text=prd.zenpin;DropDownList3.SelectedIndex=prd.newproduct;txtXXSM.Text=ductintroduce;this.Image1.ImageUrl="../"+ductimage.ToString();Session["imgname"]=ductimage.ToString();}}}}{//判断信息是否正确if(this.txtSPMC.Text.Trim()==""){return;}//将相关的图片上传到@"Image\"路径下stringFileName="";stringFileName1;stringDPath;DPath=Server.MapPath("..")+@"\";DPath=DPath+@"pic\";if(this.File1.PostedFile.FileName!=""){stringstrHzm="."+temp[temp.Length-1];Guidtmp=Guid.NewGuid();FileName=tmp.ToString()+strHzm;FileName1=DPath+tmp.ToString()+strHzm;this.File1.PostedFile.SaveAs(FileName1);if(Session["imgname"]!=null){{File.Delete(DPath+ToString());}}}//根据标志判断是添加还是修改的操作保存商品信息Mductprd=newMduct();prd.classid=int.Parse(this.DropDownList1.SelectedValue);prd.classxid=int.Parse(this.DropDownList2.SelectedValue);ductname=txtSPMC.Text;prd.masterprice=Decimal.Parse(txtSPJG.Text);prd.hotprice=Decimal.Parse(txtRMJ.Text);prd.pkc=int.Parse(txtKC.Text);ductguanjian=txtGJZ.Text;ductchu=txtSPPP.Text;prd.guige=txtSPGG.Text;prd.jifen=int.Parse(txtJF.Text);prd.zenpin=txtSPZP.Text;prd.newproduct=DropDownList3.SelectedIndex;ductintroduce=txtXXSM.Text;if(FileName!=""){ductimage="pic\\"+FileName;}else{ductimage=this.Image1.ImageUrl;}if(Request.QueryString["ID"]!=null){prd.pid=Convert.ToInt32(Request.QueryString["ID"]);(newBLL.product()).Update(prd);}else{(newBLL.product()).Add(prd);}}订单信息维护该模块还可以快速查看发现用户订购产品的各种信息,以及订购产品的详细描述,并在订购数量上与订购产品一致。此外,后台人员还可以删除不需要的订单数量和各种数据信息。如图:图4.10订单信息维护其相关代码如下:protectedvoidPage_Load(objectsender,EventArgse){//在此处放置用户代码以初始化页面if(!Page.IsPostBack){rdLB.DataTextField="Classname";rdLB.DataValueField="Classid";rdLB.DataSource=(newBLL.leibie()).GetAllList();rdLB.DataBind();if(Request.QueryString["ID"]!=null){//显示当前的商品信息DataTabletmpda=newDataTable();tmpda=(newBLL.leibiex()).GetList("Classxid="+Request.QueryString["ID"]).Tables[0];if(tmpda.Rows.Count>0){}}}}{//判断信息是否正确if(this.txtSPMC.Text.Trim()==""){return;}//根据标志判断是添加还是修改的操作保存商品信息Model.leibiexyy=newModel.leibiex();yy.Classid=int.Parse(this.rdLB.SelectedValue);yy.Classxname=this.txtSPMC.Text;if(Request.QueryString["ID"]!=null){yy.Classxid=Convert.ToInt32(Request.QueryString["ID"]);(newBLL.leibiex()).Update(yy);}else{(newBLL.leibiex()).Add(yy);}Page"info","<script>('成功!');window.location.href='SPXLList.aspx';</script>");}商品销量排行此模块主要是显示所有商品的销售量排行。如图:图4.11商品销量排行其相关代码如下:publicpartialclassSPXXList:System.Web.UI.Page{{//在此处放置用户代码以初始化页面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.product())("'%"+TextBox1.Text+"%'like'%"+Text+"%'").[0];if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳转页面Response.Redirect("SPXX.aspx");}{if(e.CommandName=="Mod"){//传递修改的标志跳转页面Response.Redirect("SPXX.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//获取服务器相对路径//删除商品信息(newBLL.product()).Delete(Convert.ToInt32(Key));initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[this.Count-1].Visible=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}商品信息查询此模块按照不同查询条件搜索并显示商品信息。如图:图4.12商品信息查询列表其相关代码如下:publicpartialclassSPXXList:System.Web.UI.Page{{//在此处放置用户代码以初始化页面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.product()).+TextBox1.Text+"%;if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳转页面Response.Redirect("SPXX.aspx");}{if(e.CommandName=="Mod"){//传递修改的标志跳转页面Response.Redirect("SPXX.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//获取服务器相对路径//删除商品信息initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[this.GridView1.-1].Visible=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}软件测试测试应当是贯通整个系统设计制作开发过程的一个动作,为确保系统最终质量的重要方式。软件测试就是在指定的标准前提下运行系统并实施操作,在这一过程中将实际输出和预期输出完成审核比较,以此来发现程序错误衡量程序质量,评估软件的制作开发是否满足前期所做的需求分析、系统分析等。软件测试应该尽可能地设计合理的测试用例,这样才更有机会去发现软件系统中潜在的毛病,为软件的自查、完善做出贡献。软件测试的意义1947年的9月9日,在哈佛大学实验室,美国的计算机科学家葛丽丝·霍波正在进行着计算机的研发工作,突然一只蛾子飞到计算机的继电器触点之间被夹住。当时的计算机体积极大且依靠继电器开关来执行二进制指令的工作,继电器电路短路中断,导致整个MarkII突然停止运作。当霍波发现并取出这只蛾子后,计算机并恢复了运行。霍波将这只蛾子粘在了工作日记上并写道“Firstact

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论