手机销售系统设计与实现

手机销售系统设计与实现

ID:34079128

大小:1.80 MB

页数:68页

时间:2019-03-03

上传者:xinshengwencai
手机销售系统设计与实现_第1页
手机销售系统设计与实现_第2页
手机销售系统设计与实现_第3页
手机销售系统设计与实现_第4页
手机销售系统设计与实现_第5页
资源描述:

《手机销售系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

大连理工大学硕士学位论文手机销售系统设计与实现姓名:林强申请学位级别:硕士专业:软件工程指导教师:王占杰20070605 大连理工大学专业学位硕士学位论文摘要在互联网开放的网络环境下,以电子交易方式进行交易活动和相关服务活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付是一种新型的商业运营模式。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易。这种全新的交易方式实现了公司间文档与资金的无纸化交换,具有高效、快捷,信息畅通的特点,还可以很大程度上降低销售成本。本文着重论述了在线手机销售系统的设计与实现过程,包括系统需求分析、系统设计和功能实现及最终的测试,其中需求分析从功能需求、性能需求、网站业务流程需求及安全需求展开分析的,系统设计包括总体结构设计、功能设计和数据库设计、系统中组件的设计、安全设计,最后采用了SQLServer作为后台数据库,采用ASP.net开发语言完成整个系统的实现,系统用户界面使用dreamweaver8来美化,界面友好、美观、简单,容易操作。系统功能主要包括会员注册、帐户管理、购物车、搜索、基本报表、结帐等基本功能。此外,本系统也实现了在线手机销售系统的后端管理,包括手机的添加、帐单的处理等功能,很大程度上减轻了维护人员的劳动强度,提高了工作效率与管理水平,具有很大的使用价值。在系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的偶合,力求使得系统具有可重用性和可扩充性。系统经测试运行,效果良好,用户界面友好,操作灵活,大大提高工作效率,采用了大量的人机交互式操作,能很好的完成商店购物的全过程,使浏览者一进入就可以独立的进行自己需要的操作,一目了然。关键词:电子商务;ASP.net;网上商店 手机销售系统设计与实现DesignandImplementationofMobileSaleManagementSystemAbstractUndertheInteract’SOpCRnetworkenvironment,it’Sal【indofflewcommercialoperationalpatterntocarryoutthetransactionactivityandcorrelativeserviceinthewayoftheelectronictransation,torealizetheconsumers’on-lineshopping,merchants’on-linetransactionandtheon-lineelectronicpayment.111eon—lineshoppingsystemhastheformidableinteractivefunction,whichnlal【esthemerchantsandtheOSerStransmitmessageseasilyandcompletetheelectronictrade.TIlisbrand-newtransactionhasrealizedthenon-paperexchangeofdocumentsandfundbetweencompanies,andhasthecharactristicsofhigllefficiency,hi曲speed,andsmoothness,what’Smore,itmayintheverygreatdegreereducethesalesCOst.Tllispaperfocusesontheonlinesalesofmobilesystemsdesignandimplementationprocess,includingrequirementsanalysissystem,systemdesignandtherealizationoffunctionandtherealizationoftheultimatetest.Ofallthese,demandanalysisfromfunctionalrequirements,performancerequirements,Termsofbusinessprocessneedsandsecurityneedsofanalysis,systemdesign,includingarchitecturedesign,functionaldesignanddatabasedesign,systemcomponentsofdesign,safetydesign,FinallyusingtheSQLServerdatabaseasbackground,AndASP.netdevelopmentlanguageisusedtocompletethewholesystemin,userinterfacesystemtousedreamweaver8landscaping,friendlyinterfaceandbeautiful,simple,easytooperate.Systemfunctionsmainlyincluderegistration,aec心untmanagement,shoppingc碰,search,thebasicstatements,billingandotherbasicfunctions.Inaddition,thesystemalsorealizestheon-linecellmobilesalesintheback-endmanagementsystems,includingtheadditionofmobileandbillingprocessingandotherfunctions,mitigatedtoagreatextentthelaborintensityofthesafeguards,andenhancetheefficiencyandmanagementlevel,soitisveryuseful.Inthedesignanddevelopmentprocessstrictlyabidebythenormsofsoftwareengineering,applicationsoftwaredesignpatterns,therebyreducingthesystemcouplingbetwee9modules,thesystemhassoughttomakethereusabilityandextensibility皿坨systemhadbeengivenrunningtestsandtheresultswereverygood.userfriendlyinterfaceandflexibleoperation,greatlyimprovingefficiency.Witllalotofman-machineinteractiveoperation,itwillbecompletedverygoodstorestotheentireprocess,sothat翻锄慨锄ap..,t笼ssanindependentfortheirownneeds.theoperationtransparent.KeyWords:Electroniccommerce;ASP.net;Onlinestore 独创性说明作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。作者签名:銮醒弦日期:2如f{:互 大连理工大学专业学位硕士学位论文大连理工大学学位论文版权使用授权书本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。作者签名:捷琵导师签名:龌,2丝芝年—笸月二姿日 大连理工大学专业学位硕士学位论文1绪论1.1课题背景和意义近年来,随着Intemet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。网上购物系统作为roB(既企业对企业),B2C(BP企业对消费者),C2C(HP消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。企业与消费者间的电子商务,是一种网上直销方式,网上销售手机缩减了中间渠道,产品一般直接源自厂商的生产基地,不但品质有保证价格上也更优惠。同时网上销售在缩减支出方面的有时也是传统店铺无法比拟的,由于不需要实际的店面,不仅避免了店铺租金的开销,还可省去装修、管理等方面的诸多费用,所以价格成为众多网上购机用户的首选因素。另外所不同的就是网上购物可以足不出户,各地商品任选,如此方便快捷,无时间空间限制是传统经营模式无法比拟的,如今人们生活质量的提高,购物方式也变得轻松自由化、个性化,这将成为网上销售手机的一大优势。传统的购物和网上购物相比,有其自身的许多优势。。(1)网上购物的快捷,方便是传统购物没法比较的。但)网上购物是基于互联网的一种商务活动,互联网本身具有开放性全球性等特点,电子商务可为企业个人提供丰富的信息资源,为企业创造更多的商业机会。(3)网上购物简化了企业与企业,企业与个人之间的流通环节,最大限度地降低了流通成本,能有效地提高企业在现代商业活动中的竞争力。H)网上购物将大部分的商务活动搬到网上进行,企业可以实行无纸办公化节省了开支。(5)网上购物将传统的商务流程数字化、电子化,让传统的商务流程转化为电子流、信息流,突破了时间空间的局限,大大地提高了商业运作的效率,并有效地降低了成本。本课题依托于讯点企业互联网手机销售开发项目,旨在建立手机在线销售系统。提供了手机销售的轻松自由化、个性化服务,有效地提高了讯点企业商业活动中的竞争力。 手机销售系统设计与实现1.2手机销售网站现状随着中国互联网行业迅速的发展,上网人数的增多,手机网上销售正在被消费者普遍接受,国内各大型综合门户网站也在网站上开展了手机电子商务,如新浪商城、搜狐商城,以及专门销售手机的“友人手机”(蚋州.younet.com)和5291(www.5291.corn)。归纳起来,销售手机的网站大致分为以下几类:综合门户网站购物商城、专业电子商务网站、专业销售手机网站。其中,综合类网站中的购物商城60%,专门销售手机的网站25%,专门做销售的购物网站15%。最近几年,随着国内手机用户量的迅猛发展,手机行业的竞争愈演愈烈,手机网上销售为手机生产商和经销商提供了一个良好的契机。有关数据也表明,手机网上销售正在被消费者普遍接受,国内各大型综合门户网站也在网站上开展了手机电子商务。由于网上销售缩减了中间渠道,产品一般直接源自厂商的生产基地,不但品质有保证,价格上也更优惠。本文系统主要定位于中小型手机销售商,使其能以电子商务的形式通过网络平台进行产品的销售,客户端为浏览器,用户为手机购买者,因为购买者的背景和文化层次不同,本系统必须简单易用,不能让购买者在购买手机时摸不着头脑。系统在开发的过程中力求傲到可维护性强和操作简易。作为一个网上交易的平台,也考虑了系统的稳定性、安全性和网络传输的效率,力求做到系统对用户有较好的响应速度。1.3论文工作及章节安排本文进行了手机在线销售系统的设计和实现工作,探讨了如何利用B/S架构思想实现手机销售的网上交易,具体介绍了该系统的业务流程和开发方法,全文由以下六章组成:第一章主要阐述本课题来源及同行业的现状和开发该系统的意义。第二章主要阐述了系统开发在技术、功能等方面的需求及开发语言与平台。第三章根据系统总体要求,完成了系统的总体设计、功能设计、数据库设计和安全设计。第四章介绍系统主要模块的实现及实现功能模块的技术特点。第五章介绍了系统运行环境,以及系统测试数据及结果。最后对全文作了总结,并对课题的进一步研究及后期目标提出了一些浅见。一2一 大连理工大学专业学位硕士学位论文2系统需求分析2.1性能需求.手机在线销售系统目的是要建立电子销售网站开放平台,利用该平台满足经销商销售手机产品业务等多方面需求,提高工作效率和工作质量。该系统建设主要有以下几个核心原则:(1)实用性该系统从实际出发,注重用户的实际应用和需求,数据尽可能共享,减少系统的输入输出,对已有的数据、信息做进一步的分析处理,以便充分发挥深层次加工信息的作用。尽量满足销售人员的基础工作要求,并着眼于长远发展,以提高效益为原则,确定系统的功能。(2)方便性该系统的使用应尽量接近现在Windows风格,操作简便,提高效率。(3)可扩展性手机销售网站的信息需要与信息积累在不断地增加,因此该系统在设计上既兼顾眼前利益又考虑长远利益,从而能有效地保证投资效益的最大化。因此必须有良好扩展性,能够容易实现升级。服务器、网络、接口等硬件环境和软件模块都为该系统今后的扩展留有足够的余地。(5)安全性首先充分考虑了系统对病毒、黑客等入侵者有较强的防御能力。其次,系统应用须在快捷方便的基础上确保商业机密不泄漏。要保证系统不问断、连续运行,即使发生断电等故障也不能丢失数据和信息。2.2网站业务流程需求从顾客角度来看,光临的时候就可以在网上浏览、查询自己喜欢的手机并购买。在主页上展示了在网上商店提供的所有的特价手机、热点手机,这个过程就是顾客浏览手机的过程。当顾客选中了喜欢的手机后,可以点击鼠标将商品放入购物车中,这也就是所谓的购买过程,此时顾客可以选择继续购买或是付款。整个过程同顾客在现实当中购物的过程是一样,在线手机销售网站这样做的原因是可以让顾客对网上购物有亲切感,对网站的操作不会有陌生感,很容易上手。对于已经选购的但是不满意的商品,顾客可以退货或者清空购物车,重新开始购物。当所有的订购结束后用户会进入到付款的页面,也就是订单确认,最终确认后提交生成订单。到此为止,消费者的购物过程就结束了, 手机销售系统设计与实现那么后续的事情就由系统和网站的管理员来处理和协调,顾客只需等待网站的联系,就可以拥有自己喜欢的手机了。手机销售网站业务流程如图2.1所示。图2.1手机销售网站业务流程Fig.2.1handsetssdlwebsiteserviceflow网上购物主要的技术功能就是购物车。购物车就是消费者在进行网上购物时候的篮子。在现实购物当中,消费者进到超市里面一定需要提~个篮子或者推一台车子来装自己所选购的商品。那么在进行网上购物的时候,系统会为每一个进行网上购物的注册用户自动提上一个虚拟篮子方便用户对自己所购产品的了解。在用户注册后,在网上展台中浏览商品,选中后放入购物车,选择完毕后计算出总价并生成一条订单记录并交付收银台。消费者在网上实施订购或要知道都订购了什么商品,通过网上购买模块即可实现,在此可对消费者所订够的商品进行删除或更改,并能了解消费了多少,系统会自动对所购商品进行价格统计。在此功能中,消费者可以更改他所订购商品的数量。在网上购买模块中消费者可以像在超级市场里买东西一样,能一次性的将所订购的商品清空。 大连理工大学专业学位硕士学位论文手机销售网站数据流图如下图2.2所示。图2.2手机销售网站数据流图Fig.2.2handsetsellswebsitedataflowgraph2.3安全需求由于该系统有很多敏感的数据信息将在其上传输和存储。因此,确保数据信息安全,也是设计的重要组成部分。同时统计数据还要求很高的时效性,设计时要针对当前计算机病毒流行、网络黑客泛滥等情况进行防范。确保网络的畅通和安全。除加强网络安全防范外,还要在系统中对数据安全性进行有效设计。2.4开发语言与平台本系统开发采用SQLServer数据库和ASP.net开发,应用组件技术使系统用户界面友好简单,容易操作。 手机销售系统设计与实现2.5数据加密与解密安全技术在本系统中,系统维护过程中的口令数据加密存储以及涉密数据的传输上,使用到的MD5加密算法。MD5加密算法与保密模型如图2.3所示。(1)保密模型:图2.3保密模型Fig.2.3ConfidentialModel在这个通信模型中,A的原始报文(明文P)在发送前,利用加密算法对明文P进行一种加密变换以获得密文c,密文c经过一条不安全的通信信道(即公开信道)传送到接收者,合法接受者B掌握有密钥K,利用解密变换DK对密文c进行逆变换,从而恢复出明文P。非法用户E因为没有密钥K而不能解密出来密文,从而也就不能获取明文P。根据上面的通信模型,我们在系统的口令涉密保护上,采用了kID5的加密算法。其中岫是报文摘要(IⅥessageDigests)的缩写。采用MD5的原因是因为,它是一种单向的散列函数。它以变长的信息为输入,把其压缩成一个定长的值输出。另外,MD5加密算 大连理工大学专业学位硕士学位论文法要求不同的内容形成相同摘要值的概率几乎为零,同时根据摘要值无法还原出原数据。也就是说它是一个相对来讲不可逆的加密算法。MD5算法的原理是:根据输入的任意长度的明文,产生128位的摘要。但任意长度的明文首先要添加位的数日,使明文总长度与448(512—64)在模512中同余。在明文添加位的方法是第一个添加位是“1”外,其余都是“0”。然后再将真正明文长度附加于前面己添加过位的明文后。此时明文长度正好是512的倍数。一份经过添加位处理的明文,以512位为一个单元,分为L份明文分组。MD5是对每一份明文分组做重复反复处理。主要有4轮非常类似的运算,每一轮包括了16个类似的步骤。每一个步骤地数据处理都是针对4个32位记录单元中的数据进行的。经过4轮,64个步骤运算之后,记录单元A、B、c、D中的128位即位中间散列数值。这就保证了,即使非系统用户侵入到数据库中,仍然不能还原出系统用户口令。最大限度的保护了系统的安全。 手机销售系统设计与实现3系统设计3.1系统体系结构总体设计本文设计的系统是基于ASP.NET开发,采用分层的方法进行设计,系统结构是三层:UI层、业务逻辑层,数据层,如图3.1所示。UI层业务逻辑层客户端!:$0A0:XIVlL黜:】毗I..Im-k.,融溯七’^DONEr■⋯一取,膏览器:黜LI..⋯^⋯-I一叫RDllg_$:表单U⋯..t⋯.’H^’:=培■:粗件r⋯一根棼‘~}l一‘。图3.1系统结构模型Fig.3.1SystemStructureModelUI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由web表单、XMLWeb服务和组件服务组成。其中web表单是ASP.NET应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和数据的基础。数据层是通过ADO.NET操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。ADO.NET访问数据库的方式有3种方式:通过ODBC相连;通过OLEDB相连;直接与SQLServer相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。为了提高效率,手机销售系统采用了与SQLServer直接相连的方式。对于相连数据库的数据处理,也有2种方式,即一种是通过Data,gO来隔离异构的数据源,另一种是以流方式从数据源读取(DataReader方式1。传统的应用程序是通过先建立到数据库的连接,在程序的整个运行过程中维护连接的方式来设计的。ASP.NET采取了断开连接方式的数据结构。当浏览器向web服务器 大连理工大学专业学位硕士学位论文请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。ADO.NET的最重要的概念之一是数据集(Dataset)。一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。3.2功能设计在线手机销售系统主要的功能如下:(1)客户界面部分:①选购手机(可按厂商查找手机,或通过关键字进行查询)②可以查看热门手机和最优惠手机③购物车功能④查看手机详细情况⑤用户注册⑥用户登陆⑦查看用户的订单信息⑧修改用户个人信息⑨找回密码功能⑩购物帮助功能(2)管理界面部分:①厂商维护:增加,修改和删除厂商②现有手机管理:修改,删除,查看③用户管理:查看,修改,删除④订单管理:查看订单清单,更新订单付款,出货状态,删除订单⑤添加新手机:可以分别上传手机的小图片和大图片⑥维护购物帮助:增加,修改和删除购物帮助根据系统功能分析,可以画出系统的功能模块图,这里从客户界面、管理界面分别对功能模块图加以描述。客户界面的系统功能模块图3.2如图所示。9 手机销售系统设计与实现图3.2客户界面的系统功能模块图Fig.3.2Customercontactsurfacesystemfunctionmodulechart管理界面的系统功能模块图如图3.3所示。图3.3管理界面的系统功能模块Fig.3.3Managementcontactsurfacesystemfunctionmold10 大连理工大学专业学位硕士学位论文系统用户管理、报表功能可描述如下:(1)用户登录:用户登录到本系统,必须经过系统的验证。经过验证,对非法用户采取退回到登录界面并给出非法用户进入的错误提示。对于合法用户,在进入系统后,按照登录用户的权限来显示其具有的操作权限范围内的工作单元。(2)用户角色分配:计划统计数据并非完全公开,只有授权用户才有权限进入计划统计信息系统,进行授权后的操作。并且对于不同的用户,所能访问的数据也不同。因此,要求计划统计信息系统必须提供完善的安全管理机制,确保只有授权的用户,才能操作相关的功能,访问授权的数据。(3)报表定制:各类计划统计报表的定制要灵活。计划统计业务部门所要面对的是各式各样的计划统计报表。对于同一张报表各二级单位填报的指标项存在不同。因此,要求报表要能够灵活定制,通过该功能,使业务人员能够根据业务的变化,随时制作报表,并根据需要修改报表。各类报表的表间取数要灵活,能够自定义汇总公式。对报表内的检验平衡公式,以及报表的表间平衡公式能够定义,保证报表的取数准确无误。(4)基础表录入:对于基础表的录入,要求能够像在EXCLE中操作单元格一样轻松。完成各类基础信息的填报。采用特有的颜色算法,能清楚的区分选择区域,使眼睛受到的刺激最小。(5)报表的上报与接收:在固定的一段时间内,各款手机的销售人员要根据统一的部署要求上报基础报表。各款手机主管部门能够根据基础报表汇总生成全的汇总表。这就要求能够通过网络,方便快捷的传送各款手机销售的基础报表。同时各款手机主管部门能够监控到各款手机的报表上报情况。(6)报表汇总:对各种手机品牌上来的基础报表数据进行累加汇总,生成汇总报表,并根据内部校验公式进行校验,保证汇总报表的准确性。(7)报表打印:能够根据指标项自动生成打印报表,并根据计划统计需要去掉不必要的指标。报表打印要美观。可以设置页眉,页脚,页边距,打印预览无级缩放,多页显示。(8)报表分析:对报表的数据进行科学的分析,显示各种图例。并在基础数据库上,通过数据的提 手机销售系统设计与实现取及整合,为有关部门进行数据统计分析和预测提供基础。并利用在线分析技术和工具,提供系统的综合统计分析能力,能够进行随意的数据查询、报表生成和对数据的分析能力。3.3数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。设计数据库系统时应该首先充分了解用户在各个方面的需求,包括现有的及将来可能增加的需求。数据库设计一般包括如下几个步骤:(1)数据库需求分析(2)数据库概念结构设计(3)数据库逻辑结构设计3.3.1数据库需求分析用户的需求具体体现在各种信息的提供,保存,更新和查询方面,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据,数据结构及数据处理的流程,组成一份详细的数据字典,为后面的具体设计打下基础。通过上述系统功能分析,针对一般在线手机销售系统,总结出如下的需求信息:用户分一般用户,注册用户和管理员用户;一般用户和注册用户无需登陆就可以查看手机信息并购买;注册用户登陆后可以维护自己的个人信息,并且在向网站发出订单时会自动填写自己的联系信息;手机按手机厂商来分类,每一个手机都对应一个厂商;订单分单张详细订单和总订单;一个用户可以购买多个或多种型号的手机:一个用户对应一张订单列表;一个订单列表对应多张订单详细信息;提供购物帮助功能。关于订单列表与订单详细信息可以这样理解:因为用户一次可以购买多种产品,则对每一种产品(aP每一款型号的手机)生成一条订单详细信息记录,然后多个这样的订单详细信息组成一个订单列表。每一个订单列表才与一个用户对应,在发货时以订单列表为单位,也既用户在操作时所看到的“订单”。经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计出如下的数据项和数据结构:(1)管理员信息包括数据项:帐号,姓名,密码。(2)注册用户(会员)包括数据项:用户ID,用户名,密码等。(3)手机包括数据项:手机编号,手机名称,分类编号等。 大连理工大学专业学位硕士学位论文(4)手机分类包括数据项:分类编号,分类名称,上级分类编号。(5)订单详细信息包括数据项:订单编号,订单列表编号,手机编号,购买数量。(6)订单列表包括数据项:订单列表编号,用户编号,下单时间,联系方式等。(7)购物帮助包括数据项:问题ID,问题标题,答案和点击次数。3.3.2数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计规划出的实体有;管理员信息实体,注册用户(会员)信息实体,产品实体,产品类型实体,订单详细信息实体,订单列表实体和常见问题实体。实体之间关系的E_R图如下图3.4所示。图3.4实体间的关系E-R图Fig.3.4Entityn妇lionalBRchart管理员信息实体E-R图如下图3.5所示。图3.5管理员信息实体E-R图F培3.5Manag日infom砒ioIIemnyBRchart 手机销售系统设计与实现注册用户信息实体E—R图如下图3.6所示。图3.6注册用户信息实体E-R图Fig.3.6RegistrationuserinfommtionentityE-Rchart手机实体pR图如下图3.7所示。图3.7手机实体pR图Fig.3.6HandsetentityE-Rch哦手机类型实体E-R图如下图3.8所示。图3.8手机类型实体E-R图Fig.3.8HandsettypeentityE—Rchair—14一 大连理工大学专业学位硕士学位论文订单详细信息实体E—R图如下图3.9所示。图3.9订单详细信息实体E-R图Fig.3.901.de,rformdetailedinformationentityE-Rchart订单列表实体E-R图如下图3.10所示。图3.10订单列表实体E.R图Fig.3.10OrderformtabulationentityE,-Rchart常见问题实体E_R图如下图3.11所示。图3.11常见问题实体E-R图Fig.3.11FrequentlyaskedquestionsentityE11.chart一15— 手机销售系统设计与实现3.3.3数据库逻辑结构设计数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在线手机销售系统数据库中各个表的设计结果如表3.1.表3.7所示。每个表格表示在数据库中的一个表。(1)管理员表(管理员帐号,管理员姓名,管理员密码)主键:管理员帐号NOTNULL说明:管理员表存储系统中的管理员信息。表结构如下表3.1所示。表3.1管理员表Tab.3.1Managertable(2)会员表(会员帐号,姓名,性别,密码,忘记密码问题,忘记密码答案,E-mail,电话,地址,邮编1主键:会员帐号NOTNULL说明:会员表记录系统中注册用户的详细信息。其表结构如下表3.2所示。表3.2会员表Tab.3.2Membertable 大连理工大学专业学位硕士学位论文(3)产品信息表(产品编号,产品类型编号,产品名称,产品说明,市场价,会员价,小图片相对路径,大图片相对路径,点击数,购买次数,是否推荐,设置为推荐的日期)主键:产品编号NOTNULL说明:产品信息表记录系统中已有手机产品的信息。其表结构如表3.3所示。表3.3产品信息表Tab.3.3Productinformatlontable(4)产品类型表(类型ID,上级类型ID,上级类型名称)主键:类型IDNOTNULL说明:产品类型表记录系统中的厂商信息。其表结构如下表3.4所示。 手机销售系统设计与实现表3.4产品类型表Tab.3.4Producttypetable(5)订单表(订单表ID,产品ID,产品名称,产品单价,订购数量)主键:无说明:订单表记录在客户的一个订单中,针对一件商品的订货信息。其表结构如表3.5所示。表3.5订单表一Tab.3.5Ordetai(6)发货订单表(订单列表编号,会员ID,客户姓名,详细地址,邮编,联系电话,电子邮件,应付款额,备注,下单时间,处理状态)主键:订单列表编号NOTNULL说明:发货订单表记录针对用户的一个订单的详细信息。其表结构如下表3.6所示。 大连理工大学专业学位硕士学位论文表3.6发货订单表1Iab.3.60rderlist(7)购物帮助表(问题编号,问题标题,答案,点击数)主键:问题编号NOTNULL说明:购物帮助表记录系统中的常见问题,用于实现购物帮助功能。其表结构如下表3.7所示。表3.7购物帮助表(FAQ)Tab.3.7Shoppinghelptable 手机销售系统设计与实现8.4系统中组件的设计通过对手机销售系统的功能模块的划分,再从组件角度考虑,手机销售系统的许多功能模块都可以抽象为具有通用功能的模块,对以后的开发项目可以提供同样的功能。将这些模块设计成组件,可以实现软件的可重用性,提高软件的开发和维护效率。在手机销售系统中,所有合法的用户都有自己的用户名和权限,用户管理主要实现合法用户的验证,修改用户信息等。可以把它设计成组件模块USER,集成到多个应用系统中,减少重复开发。对于数据和信息查询来说,无论待处理的具体数据的物理意义如何,对它们的所有操作均完全相同,而且这些操作仅与数据的类型有关,因此,就有可能将它们独立出来,设计成通用的组件。每个用户只有登录进入手机销售系统后才能开始实现功能,新用户首先注册被系统管理员认可后,才能成为销售系统的用户,所以将登录和注册也设计为通用组件。在B/S结构的系统中,如果后台数据库中的记录很多,在浏览器中一页显示不完,则需要分页显示,因此需要设计一个分页组件,专门用于数据库记录的分页。手机销售系统经常需要建立后台数据库的连接,所以需要设计一个连接组件专门用于后台数据库的连接。可以将此组件设计成可以连接多种数据库的通用数据库连接组件。对于抽取出来的系统组件,在设计时一般要遵循以下原则:(1)灵活性,操作方便,兼顾鼠标和键盘等多种操作方式。(2)容错性,允许用户发生误操作,对用户的误操作给予明确的提示并及时纠正,避免造成系统故障或崩溃。(3)易用性,用户界面友好,符合日常操作习惯,兼顾各种层次的操作人员,编程接口简单一致,做到即插即用。(4)通用性,不受应用领域和应用对象的限制,适用于任何应用环境。3.4.1数据库连接查询组件设计手机销售系统的使用需要数据库的支持,所以可以建立一个通用的连接各种数据库的组件Sqlcon,使用它可以建立与多种数据库的连接,如MicrosoftSQLServer2003,Oraele9i,Mysql等。根据不同的数据库名,会选择不同的数据库驱动连接到各种不同的数据库。在手机销售系统中,许多页面都包含查询功能,因此,制作一个通用的数据库连接查询组件将会在很大程度上提高工作效率,缩短软件开发的周期。其查询功能设计步骤为:20— 大连理工大学专业学位硕士学位论文(1)定义查询条件,查询条件为<数据库表字段×操作符×属性值>的表达式,查询条件由用户自己定义:用户可以通过列举的表达式中选择各种条件来组合成自己的查询条件。操作符有=、◇、>、>=、(、《=、like等。(2)生成查询准则,若干个查询条件通过AND或OR组合成复杂的表达式即为用户所需查询准则。允许用户对生成的查询准则进行编辑和修改,包括添加条件、删除条件。D)确定查询内容,在缺省的情况下,查询字段值以列举的形式显示出来,但是用户有时候需要的只是确定的属性值,因此允许用户指定查询内容。动态生成查询结果,由于查询准则的随意性和查询内容的多变性,查询结果必然呈现多样性,因此查询结果的设计应该适应于查询准则和查询内容。数据库连接查询组件的属性和方法如下:strDBDrivcr:String;strDBUrhString;cons:Connection;connccct():Boolean;『getStmg():String;getTotalNum():int;3.4.2分页组件设计在设计分页组件时,我们假设数据库表中的总记录数为m,每页显示数量是n,那么总页数的计算公式是:(1)如果m除以n的余数大于0,总页数等于m除以n的商加l。(2)如果m除以n的余数等于0,总页数等于m除以n的商。即总页数=【(n慌n户=07(m』『n):(m/n+1)b如果准备显示第P页的内容,应当把游标移动到第(p-1)+n+l条记录处。分页组件的属性和方法如下:rowCount:int:pageSize:int;setPageSize();selPageCount(intr,intp);3.4.3加密组件的设计利用MD5算法能够保护口令,所以本系统登录时采用了MD5加密组件进行加密认证方式。用户试图登录时,在客户端产生一个随机数,当用户在此登录表单中输入用户名和口令时,客户端的脚本利用这个随机数值和用户口令进行MD5单向运算,产生MD5 手机销售系统设计与实现密码,将此密码作为登录密码,然后传到服务器端。如果加密得到的密码与用户上传的密码相同,则用户进入主界面,否则出现错误页提示。MD5是单项散列函数,它将任意长度的“字符串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是:既便是MD5算法的源代码满天飞,使得任何人都可以了解MD5的详尽算法描述,也没有任何人可以将一个经由MD5算法加密过的字符串变换回原始的字符串。它的算法原理如下:第一步:增加填充增}Jlpadding使得数据长度(bit为单位)模512为448。如果数据长度正好是模512为448,增)J11512个填充bit,也就是说填充的个数为1-512。第一个bit为1,其余全为0。第二步:补足长度将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。也就是32bit的16倍的整数倍。在I强c1321中,32bit称为一个word。第三步:初始化变量:用到4个变量,分别为A、B、C、D,均为32bit长。初始化为:A:01234567;B:89abedeftC:fedeba98;D:76543210;第四步:数据处理,首先定义4个辅助函数:F(X,Y,z)=XYvnot(X)Z;GfX,Y,z)=XZVYnot(Z)H(X,Y,z)=XxorYxorZ;I(X,Y,z)=YxorGvnot(z))其中;XY表示按位与,xvY表示按位或,not(X)表示按位取反。xor表示按位异或。函数中的X、Y、z均为32bit。定义一个需要用到的数组:T(i),i取值1-64,T(i)等于abs(sia(i))的4294967296倍的整数部分,i为弧度。第五步:输出最后得到的ABCD为输出结果,共128bit。A为低位,D为高位。3.5安全设计数据库及其管理系统作为信息数据的存储地和处理访问地,应能对信息数据的安全存储和安全访问提供服务,并具有安全防范的能力。具体包括以下几个方面:(1)保障数据库数据的完整性。包括:数据库数据的物理完整性;数据库数据的逻辑完整性;数据库数据的元素完整性。(2)保障数据库数据的保密性。包括:户是可以识别的;数据库系统的访问控制,数据库系统的用户身份鉴别,保证合法的用即控制用户对数据对象的访问,拒绝非授权 大连理工大学专业学位硕士学位论文访问,防止信息泄露;数据库对于推理攻击的防范;数据库系统的可审计性,即对非法用户的侵入行为及信息泄密与破坏的情况能够予以跟踪审计,以防止数据库系统中隐蔽信道的攻击。(3)保障数据库数据的可靠性。包括:防止和减少因软、硬件系统的错误所造成的数据库恶性破坏;及时修复软、硬件系统的错误所造成的数据库恶性破坏;拒绝和清除数据库垃圾,使数据库随时保持可用性状态,即当授权用户在其需要时,能够随时存取数据库中的数据,并获得正确的结果。除加强网络安全防范外,还要在系统中对数据安全性进行设计,充分采用系统级控制数据库的存取的机制和对象级控制数据库的存取的机制来保证数据的安全性。同时可以通过主备数据库、双机热备、磁盘阵列、磁带备份、定时备份、重要点自动备份、客户端随时备份等多种方式来确保数据库中数据的绝对安全性,保证发生数据灾难时可以迅速恢复系统数据。3.5.1系统安全设计系统安全要素包括:业务安全角度、网络安全角度、软件安全角度、数据库安全角度、日常管理角度、硬件安全角度。如图3.5所示,在进行本系统安全设计时,必须从这六个侧重点入手,才能保证开发设计出来的系统是一个能够安全运行的健壮系统。图3.5安全要素iFi晷3.5SafetyElementsl根据六个方面的安全角度的侧重方向不同,则安全实现方式也不同。如图3.6所示。从网络角度,本系统采用防火墙技术,可以有效地防止非法用户通过外部网络访问系统。 手机销售系统设计与实现从数据库角度,本系统采用双机备份,主从数据库等技术保证数据的安全存储。图3.6安全要素2Fig.3.6SafHyElements2从软件角度,本系统按照用户权限进行管理,即根据用户权限操作权限下的功能。对于权限以外的功能则无权操作。3.5.2硬件和系统安全(1)通过安装防火墙来抵御外界黑客和病毒的攻击。(2)同时在服务器上安装相应的防毒软件(SymantecAntiVirus)来预防内部网络的一些病毒。(3)定期升级系统补丁来保证服务器操作系统的安全性。(4)采用双机热各、磁盘阵列等方式提高系统硬件的安全性。(5)通过这些措施可以得到一个安全的操作系统,还要提高数据库系统(DBMS)的安全性,可以通过主从数据库、自动备份、定时备份等方式。圆圆园 大连理工大学专业学位硕士学位论文4系统的实现该手机销售系统的实现平台是Windows2003Server操作系统、SQLserver2003中文版、btemct信息服务。该系统可以在Windows2003Server操作系统平台上运行,web服务器为IIS,数据库服务器为MicrosoftSQLServer2003,开发工具采用的MicrosoftVisualStudio.NET和DreamWeaver。图4.1是系统开发的结构图。谢链嚣SQLSorer2000曰—曰wEB鞭务器数群睡暇务器图4.1系统开发结构Fig.4.1systemdevelopmentsI矾lcture4.1系统主要模块实现4.1.1商品(手机)维护模块商品(手机)维护模块的主要功能:显示商品列表(productlist.aspx),添加商品页面(proadd.aspx),保存添加的商品信息(proaddasve.aspx),删除商品(prodel.aspx),修改商品界面(promodify.aspx),保存商品修改结果(promodifysave.aspx),上传图片界面(proaddpic.aspx),保存上传图片(proM@icsave.aspx),推荐或取消推荐商品(prorecnmmend.aspx)。 手机销售系统设计与实现商品维护模块可以说是在所有管理模块中最复杂的一个,也是整个系统的核心,商品维护与厂商管理相比,难点在于不仅涉及数据较多,而且还涉及商品图片上传,推荐或取消推荐商品等。(1)显示商品列表商品列表主要用到productlist.鹬px这个文件,图4.2为管理端商品列表的运行结果,在这里可以看到它与厂商维护界面非常相似,这样便于网站管理人员使用。图4.2管理端商品列表运行结果Fig.4.2Managementendcommoditytabulationmovementresult此页的原理是每次访问此页时,都会从Request对象的QuerString集合和Form集合中寻找以下三个参数:Page:当前页号,位于QuerString集合中,如果找不到,默认为⋯1’。Mykeyword:过滤产品的关键字,位于Form集合中,如果找不到,默认为空。Produettype:产品类型编号,位于Form集合中,如果找不到,默认为⋯0’。然后根据mykeyword和producttype的值来组织SQL语句从product表中检索数据。另外,由于本页需要在下拉列表中显示所有的厂商名称,并且在商品列表中也有相应的列需要显示厂商名称,所以需要在检索product表之前先从produettype表中检索出所有的厂商编号和名称。(2)添加商品添加商品用到proadd.aspx和proaddsave.aspx两个文件,图4.3为在商品列表页面中单击【添加】按钮后所看到的添加商品页面。从图中可以看到,在添加商品时仍需要一个 大连理工大学专业学位硕士学位论文下拉列表框指定它所属的厂商,在这里一定要对输入进行验证,包括输入是否为空,所输入的价格必须是数字,以及输入长度的限制等。这些是纯HTML和JavaSeript技巧。‘’’‘’‘’‘’+7+⋯’‘’4’7+’’7’’“’’’7’‘‘’+74’’‘⋯’^‘+4⋯M*厂■t—l手瓤舯I蠢置蠢护I皂蚶I蠢t麓鬟lH嘲I■护瞧羹。/-艘■l黢麓燮鬻鬻签霎凝勃i蛊Ⅱ懿懑鬻鬈燮笺懋鬻燮鬟瀚葶棋矧|“■产鑫g鸯}盒量钎l¥市磊甜l¥黪产雒,}毂蕤产量隧唠然黼i敬{图4.3添加商品页面Fig.4.3Increasecommoditypage在添加商品截面中单击【添加】按钮后,就会将数据提交到proaddsave.aspx文件中,这个文件将proadd.aspx文件所提交的数据写到数据库中,其实现原理与添加厂商很相似,就是将一个表单中的数据利用ADO对象或SQL语句写入到数据库中。在这个页面中,仍然要注意操作完数据库以后,要手工释放连接。另外,这里只进行了简单的数据验证,如果提交的价格不是数字的话,加工它们默认置为⋯1’,而不能够直接用CInt转为⋯0’,否则在将来计算商品打折时由于分母为⋯0’会出错。(3)修改商品修改商品用到文件promodify.aspx和promodifysave.aspx。修改商品与添加商品的界面非常相似,事实上也的确如此,所不同的是,在promodify.aspx文件中将检索到的数据添加到个表单元素中,而在proadd.aspx中根本不存在检索商品数据的问题。(4)删除商品删除商品用到的文件是prodel.aspx,商品ID通过URL参数传入,因此首先要从Request的QueryString集合中取出商品ID,并需要将其两边的空格和可能存在的单引号去除,然后组织SQL语句删除。这里的原理很简单,但仍然要注意的是安全问题,在用Request.QuerString获取参数id后,必须对其合法性进行判断。 手机销售系统设计与实现商品管理程序流程图如下图4.4所示。图4.4商品管理程序流程图Fig.4,4Commodityexecutiveprogramflowchart4.1.2会员维护模块会员维护模块的主要功能;显示会员列表memberlist.aspx,删除会员memdel.aspx,修改会员memmodify.aspx,保存会员修改结果memmodifysave.aspx。从文件数目可以看出,会员维护模块相对比较简单,因为没有添加功能,会员的添加是在客户端,通过注册页面来完成的。而其他的管理端功能,包括列表、删除和修改都与商品维护类似。图4.5是会员列表的显示界面,从图中可以看出这个界面与厂商管理、商品维护风格完全~致,也具有搜索、修改和分页功能。 大连理工大学专业学位硕士学位论文图4.5会员列表的显示界面Fig.4.5membertabulatesdemonstrationcontactsurface有以上功能决定了memberlist.aspx页面也需要以下两个参数来控制页面的显示:Page:当前页号,位于querystring集合中,如果找不到,默认为“1”’Mykeyword:过滤会员的关键字,位于form集合中,如果找不到,默认为空。图4.6为修改会员信息界面,选中图中的“修改密码”复选框后,修改密码功能才被激活,否则只会修改一般信息,密码保持不变。图4.6修改会员信息界面Fig.4.6Revisesmemberinformationcontactsurface要注意在这个页面中,首先要判断复选框是否被选中,涉及到了表单元素值传递的方式。 手机销售系统设计与实现表单是向服务器提交数据的一种手段,可以把表单看做一个容器,它里面有不同种类的元素。Input元素可以向服务器提交数据,可以通过它的type属性来设置它的显示类型,如常用的text、passwod、submit、button、reset、hidden,不管type属性如何设置,都可以给input元素指定它的value属性,然后在提交表单时,这个value属性就会被提交到服务器。修改会员页面和保存修改结果页面分别有mcmmodify.aspx和memmodifysave.aspx两个文件来完成,具体的实现方法与前面界面的实现很类似。会员管理程序流程图如下图4.7所示。图4.7会员管理程序流程图F远.4.7Memberexecutiveprogramflowchart4.1.3订单维护模块订单维护模块的主要功能:显示订单列表(orderlist.aspx),删除订单(orderdel.aspx),处理订单(orderprocess.aspx),保存订单处理结果(orderproesssave.aspx)。订单维护模块是本系统的本质所在,本系统的目的就是用来销售的,自然最感兴趣的就是订单。但实际上订单维护模块从技术实现角度讲并不复杂,与会员维护类似,只有列表删除与修改(处理)功能。(1)订单列表 大连理工大学专业学位硕士学位论文图4.8是订单列表的显示界面,从图中可以看出下订单的客户可以是会员,也可以是非会员,如果是会员,则显示其姓名,单击姓名可以查看会员资料。图4.8订单列表显示界面Fig.4.8Orderformtabulationdemonstrationcontactsurface显然,对于这样的界面,只需要一个page参数就够了,其余的工作是将数据从数据库中读出来,然后按照前面的方法以列表形式显示。不过需要注意以下几点:①只选取未处理订单。数据库中的订单处理状态表示是state,当state=O时是未处理订单。②对非会员的处理。如果是注册会员,在订单列表中会显示会员姓名,并且有链接显示相应的会员信息,而如果是非会员,在订单列表中则显示“非会员”,且没有链接。是否是会员是由orderlist表中的字段memberid来区分的,如果memberid-。⋯0,则表示非会员。(2)订单处理图4.9为订单处理界面,从图中可以看出订单处理界面的上方显示的是订单详细资料,接下来是订货明细,最后是相关操作,可以删除或者发货,或者留做以后处理。 手机销售系统设计与实现图4.9订单处理界面Fig.4.9Orderformprocessingcontactsurfac2此页的实现原理是首先从querystring集合中查找名为“id,’的参数,这个是待处理的订单编号,然后根据此订单首先列出订单详细资料,在此之后是这个订单所包含的商品清单,最后给出这个订单的总价格。这里涉及两个数据表,与某一个订单相关的顾客信息存放在orderlist表中,从此表检索订单详细资料的SQL语句如下:Strsql≯select’fromorderlistwhereid2”&norderid其中nordcrid是传入的订单id。接下来的订单明细稍复杂一些,首先要明白一件事,那就是这里所说的一个订单,即orderlist表中的一条记录,可能包含多个商品,而客户对每个商品的购买量可能不止一个。在本系统中,将客户对每一种商品的购买关系和购买量存放在orderdetail表中,作为其中的一条记录,二者靠订单号相联系。换句话说,一个订单,在orderlist表中是一条记录,在orderdetail表中有多条记录存储对不同商品的购买量。发货操作有orderproeesssave.aspx处理完成,基本原理是对数据库的更新,将orderlist表中的state字段更新为“l”,表示订单已处理,此外还有一些其他附带的更新资料,如记录发货时间、附带说明等。管理端订单处理流程如下图4.10所示。 大连理工大学专业学位硕士学位论文图4.10管理端订单处理流程Fig.4.10Managementendorderformprocessingflow4.1.4管理员维护模块管理员维护模块的主要功能:显示管理员列表(usedist.aspx),添加管理员页面(useradd.aspx),保存添加的管理员信息(useraddsave.aspx),删除管理员(userdel.aspx),修改管理员界面(usermodify.aspx),保存管理员修改结果(uso'modifysavc.aspx)。从文件可以看出,管理员维护模块的功能也比较完整,包括添加、修改和删除。不过在管理员维护模块的实现过程中有以下几点需要注意:(1)默认管理员admin不可以删除。(2)添加和修改管理员时要验证两次输入密码是否一致。O)管理员帐号是以文本格式存储的,因此要手工判断不可重名。这里对管理员维护已经非常简化,一个安全性要求很高的系统,需要对管理员以组或角色来分类,然后还要有详细的权限定义字典,在权限定义字典中规定了各项功能与用户角色之间的对应关系。 手机销售系统设计与实现4.1.5用户登陆模块用户登陆模块需要登陆页面(109in.aspx)、登陆基本函数(adminbase.aspx)注销页面(109inout.aspx)的支持。用户登陆模块是管理员进入后台管理系统所看到的第一个页面,但放在这里讲的目的是因为登陆功能是针对最后使用而设计的,在前期开发调试阶段,登陆功能往往会让你心乱如麻,因为在刚编写完一个页面准备调试时,却发现需要登陆,问题不仅仅是登陆过程会浪费一定的时间,更重要的是会干扰开发者的思路,导致一些更隐性的效率下降。(1)登陆页面图4.1l为管理端登陆页面的运行结果,此页面并不象其他模块中的页面那样通过框架嵌入到default.aspx页中,而是在login.aspx文件中包含hcad.aspx和foot.aspx两个文件。原因很简单,因为菜单是包含在default.aspx上方的head区的,如果login.aspx嵌入到default.aspx的框架中的话,无法正确控制上方操作菜单的显示。图4.11管理端登陆页面Fig.4.1IManagementenddebarkationpageShowadminlogin函数用来显示登陆表单,将这个函数放在adminbase.aspx文件中的目的是为了减少login.aspx文件的代码量,这样可以单独用dreamweaver来设计界面,然后只要用类似的函数调用或文件包含等方式功能代码加入到设计好的页面结构中即可,从而使得页面结构清晰,便于维护和更新。在login.aspx文件的头部调用的checkadminlogin过程也位于adminbasc.aspx文件中,它的作用是对以参数形式传入的用户名和密码进行校验,如果正确,则转向main.aspx,进入后台管理系统,反之则有错误提示。管理端用户登陆程序流程图如下图4.12所示. 大连理工大学专业学位硕士学位论文图4.12管理端用户登陆程序流程图Fig.4.12ManagementendUSerdebarkationprogramflowdiagram(2)注销页面管理员注销页面logout.aspx非常简单,只需要将session清空,然后转向客户端首页面即可。4.2客户端界面设计与管理端界面设计类似,客户端界面的设计也采用了界面模块化的思想,每个页面都具有一定的功能,且页面命名仍然采用“模块名+功能名”的方式。4.2.1商品(手机)信息浏览模块商品(手机)信息浏览模块的主要功能:显示商品预览列表(product.aspx),显示商品详细信息页面(productdetail.aspx),存放商品基本函数(productbase.aspx)。商品既手机是顾客来到网站后所关心的第一件事,对于手机这类注重外形的商品,具备以缩略图方式预览手机的功能是非常必要的,另外还需要具备查询功能。(1)手机预览列表 手机销售系统设计与实现在本系统中,手机预览列表与查询是用同一个页面完成的,既都是product.aspx文件,在这个文件中,默认是显示全部商品,然后可以根据手机厂商和手机名称关键字来查看过滤后所显示的手机。(2)手机详细信息手机详细信息对应的文件是produetdetail.aspx,图4.13是查看某一手机详细信息的页面。查看手机详细信息是通过在productdetail.aspx文件中调用如下语句实现的:Callshowproduet(realstring(request.quo'ystring('‘id'’)))这里通过Request对象获得要查看手机的编号,然后作为参数传入Showproduct过程中,这个过程也位于productbase.aspx文件中,它的实现原理是通过传入的产品编号组织SQL语句,从数据库中检索数据,然后将查到的结果显示出来,另外,由于这个页面用来显示大量文本,所以一定要用Convert函数对所显示的文本进行HTML编码和用HTML的换行符“
”替换字符串中的回车符,否则页面显示会很乱。—‘Ml摹辘燃}b手¨I移珥Io话越I稚●托,拉I垂三■lOI,G}巷m-t,I臻百九子Ie疆单鬟船皑lo"℃samlO≈口吼tdlom{o蠢尼量立情l簪阿承卡■l啦一万科图4.13查看手机详细信息Fig.4.13Examineshandsetdetailedinformation4.2.2购物车管理模块设计购物车管理模块的主要功能:显示购物车(shopcart.asp矽,购物车基本函数(cartbasc.aspx)。 大连理工大学专业学位硕士学位论文购物车管理模块与订单维护模块类似,也是本系统的本质所在。本系统的目的就是用来销售,自然最感兴趣的就是顾客将商品放入购物车并提交订单。但实际上购物车管理模块从技术实现角度将并不复杂,与订单维护模块类似。查看购物车用到的是shopcart.aspx和eartbase.aspx两个文件。图4.14是查看购物车的显示界面,从图中可以看出在购物车内可以存放多种商品,每种商品也可以购买多个。顾客利用购物车所提供的功能,可以更改所购买商品的数量或删除所购买的商品。此页的原理是每次访问此页时,都会从Request对象和Querystring集合和Form集合中寻找以下三个参数:(1)ProductID:要购买的商品编号,位于Querystring集合中,如果找不到,报错。(2)Clear:是否清空购物车,位于Queryslring集合中,只有当此参数为“Yes'’时才清空购物车。(3)Modify:修改购物车,位于Form集合中,只有当此参数为‘'Yes”时才更新购物车。图4.14查看购物车的显示界面Fig.4.14Examinestheshoppingcartdemonstrationcontactsurface然后,分别根据是否接收到这三个指令来执行相应的操作,这部分代码没有放在其他文件中,而是直接放在了shopcart.aspx文件中的页面体部分。在本系统中,购物车是存储在Session中,根据所需要保存的数据,需要用到两个Session变量,作用如下:Session(‘'productlist'):购买的商品D列表,以英文逗号分隔。Session(‘'quantitylist',):与Session(''productlist'’)对应,分别表示购买商品数量,以英文逗号分隔。 手机销售系统设计与实现例如对于下面的值:Session(“productlist'’)=”70,71,72”Session('‘quantitylist")="2,3,1”它所表示的意思是购买编号为70的商品2件,购买编号71的商品3件,购买编号为72的商品1件。购物车执行程序流程图如下图4.15所示。图4.15购物车执行程序流程图Fig.4.15Shoppingcartexecutiveroutineflowchart4.2.3提交订单模块设计提交订单模块的主要功能:输入用户信息页面(paystepl.aspx),输入用户信息表单∽cllsinfb.aspx),确认用户信息页面0aygtc】畛.aspx),确认用户信息表单(pyorderinfo.aspx),提交结果页面(paystep3.aspx),提交结果表单(pysucinfo.aspx)。提交订单过程就是一个填写顾客信息,然后向Orderlist和Orderdetail表中插入记录的过程,一共分为三步,前两步教为简单,第三步教复杂。图4.16为输入用户信息页面。38— 大连理工大学专业学位硕士学位论文—雌尊l摹撇I翔蝌柏I獬燃·mt睦看嗽辩】瞄铀】0。车盯l。=ii写i鹾交i”8一”一一一”一。2一一一⋯⋯⋯一O曩如来羔陆诗麓写笼∞信■,知已错町謦改卷的汀赞腿O培挂勇物菇’卜Of--学)墓酏目姒l嗣I奄●托矬-峨^姓名:鞭【小茏0三■‘蛙人地址:辩%jO肼棚螂啊:辫llO聃麟蝼:㈣!奄西膊电子_I着:i口lol6礁I∞℃-{O疆华蕾光l噼●fI煎:l薏过秘}日k-_1尊飞槽I黼:}舅O;湃“dl甥绷咀麟以上冉窖0他’I上雌{{翮图4.16输入用户信息页面Fig.4.16Inputoscrinformationpage当会员登陆后,此页会自动根据会员信息填写这些内容,会员只需要修改和确认即可,省去了重新输入送货信息的麻烦。图4.17为输入信息用户信息表单。这页是对用户上一步所输入信息的确认,实现方法与管理端界面中的查看订单和客户界面中的查看购物车都很相似。图4.17输入用户信息表单Fig.4.17Inputuserinformationform确认提交后,就到了提交订单的最后一步,在这里,需要将订单数据写A,N数据库中,如果操作成功,则给出成功信息,并提示顾客订单号,用于查询订单,如图4.18所示。 手机销售系统设计与实现图4.18订单提交成功Fig.4.18orderformsubmitssuccessful提交订单最后一步对应的页面是paystep3.aspx。在这个文件中包含了pysueinfo.aspx文件,用于实现具体功能,并且所有的数据库操作也都位于pysucinfo.aspx文件中。在paystcp3.aspx文件中,首先利用Request对象获取提交表单的数据,将一个订单的信息写入Orderlist表中,然后再将这个订单所包含的详细信息写入Orderdetail表中。因为这两个操作要么同时发生,要么都不发生,所以要用到事务。在进行第一个数据库操作之前开始事务,在最后一个数据库操作完成之后结束事务,期间如果有错误发生的话。则将事务回滚。客户端系统程序流程图如下图4.19所示。 大连理工大学专业学位硕士学位论文图4.19客户端系统程序流程图Fig.4.19Clientsidesystemprogramflowchart4.3软件技术实现本系统采用三层结构。分为表现层、业务层和数据层。三层体系结构的主要特征是将应用逻辑从软件系统中分离出来形成了一个单独的逻辑中间层。表现层相对来说基本不处理应用业务过程,窗口将任务请求转发给中间层。中间层与后端的数据层进行通信4.3.1表现层表现层提供了用户和系统业务层之间的通信机制,是用户和系统交互的接口,一方面接受用户的命令,一方面向用户呈现其请求的内容。本系统的表现层主要由Web窗体和HTML网页构成。web窗体上包含自定义的wcb用户控件。wcb页面的布局HTMLTable元素控制,划分为五个区域,如图4.20所示。其中2、3、4区域是动态区域,是HTMLTable中的TD元素,其D分别为“LeftPane”、‘'ContentPane”、‘'RightPane'’。当该页面被请求而初始化时,在1区域中插入标题横幅控件,在5区域中插入版权信息控件。 手机销售系统设计与实现标题横幅控件含有一组选项卡,每一个选项卡与一组模块绑定。所有的模块都是自定义的wcb用户控件,都有一个‘'PaneName'’属性,其值为‘'LeftPane”、‘'ContentPane”或“RightPane'’,这个值决定了初始化时这个模块在2、3、4区域中的哪一个区域。手机列表模块的头部有一组超链接按钮,点击不同的超链接按钮,手机列表模块会显示不同的一组手机系列。每个手机系列都是一个超链接,点击该超链接,则会弹出一个新窗13,显示该手机的详细信息。12345图4.20Web界面的5个区域Fig.4.20FiveRegionsofWebInterface4.3.2业务层业务层承担进行各种控制、实现业务规则、完成各项计算等逻辑处理的任务。业务层主要由业务组件构成。业务层设计的重点是类的设计。业务层根据系统功能模块的划分进行类的设计。设计ConfigData、Configuration、Portal、Tab、Module类,负责管理网站上的栏目及栏目的访问权限,管理网站的样式,管理网站上的链接、公告等等网站的设置保存在一个XML格式的配置文件中,ConfigData类负责读写配置文件,Configuration类调用ConfigData类,向Portal类提供网站的配置数据,或在网站的配置改变时,保存配置数据。Portal类代表网站,由多个选项卡组成,每个选项卡包含一至Ⅱ多个模块。它们之间的关系如图4.21所示。 大连理工大学专业学位硕士学位论文目昌-一图4.21负责管理网站的类FigA.21ClassesforManagingWebsite设计User、Role、Security、Register、Log类,负责管理用户和安全。Log类负责用户的登录、登出。Register类负责用户注册。User、Role类负责管理用户和角色,用户和角色相关联。Security类负责向其他类提供登录用户的角色信息。Log、Register、Security都需要使用User类。它们之间的关系如图4.22所示。目目目图4.22与用户和角色相关的类Fig.4.22ClassesRelatedwitllUserandRoles设计Mobile、MobileList、MobileCatalog、MobileSearch类,负责手机管理。Mobile类负责手机的查询、增加、删除和修改,每个手机都属于一个手机类目。MobileList类负责显示手机列表,增加或删除列表中的手机,手机列表是手机的集合。MobileCatalog类负责查询、增加、删除和修改手机的分类。MobileSearch类负责设定时间范围、分类目录和关键字来搜索符合条件的手机,它依赖Mobile类。 手机销售系统设计与实现4.3.3数据层数据层有数据存储和数据服务构成。数据存储的典型形式就是存储和组织数据的数据库,本网站使用SQLServer数据库存储业务数据。为了解决不同数据表示(如对象和关系存储区)之间的阻抗失谐,应用程序开发人员必须编写大量代码。这一状况可以得到改善。有许多方案可以提供正确的框架,使应用程序开发人员集中精力于开发应用程序,简化桥接异构数据表示的复杂性。ADO.NET要实现的基本目标,是提高数据编程的抽象级别,帮助消除数据模型和语言间的阻抗失谐,本系统采用了微软公司的ADO.NET持久层框架。持久化层利用关系型数据库事先数据的持续化。ADO.NET由MicrosoftActiveXDataObjgets(ADO)改进而来,它提供平台互用和可收缩的数据访问功能。由于XML(ExtensibleMarkupLanguage,可扩展标示语言)是用于进行数据传送的格式,任何可以读取XML格式的应用程序都可以对数据进行处理。4.4系统实现难点及解决4.4.1优化手机销售系统是一个复杂的管理信息系统,由于开发资金投入的少、时间紧、任务重、操作人员操作水平不高,使系统在运行过程中暴露了一些不足之处。具体表现在如下几个方面:操作人员在录入数据时经常把数据录错;系统中有大量的查询功能,查询速度偏慢:提示信息少:决策模块少:系统总体运行速度较慢。基于以上几点不足,有必要对系统进行优化。在优化中,需要增加系统的决策功能模块,对系统的整体性能进行优化,增加系统的自动提示信息,完善系统的录入功能,提高查询速度,从而使系统的整体运行速度明显提高,并使输入数据的准确率大大提高,使操作更加方便直观,提供决策帮助。在对系统的优化过程中,主要从以下几个方面着手:对硬件进行优化、对软件进行优化、对算法进行优化。I.系统整体性能优化为了能够从整体上提高系统的性能,加强安全性,加快系统的运行速度,从以下几个方面对系统的性能进行优化: 大连理工大学专业学位硕士学位论文(1)服务器端操作系统Windows2003server的优化系统服务器端安装的操作系统是Windows2003server专业版。下面对服务器端)[P操作系统的优化工作做些总结:①安装2003server系统补丁和防病毒软件,保证系统运行安全性。②系统瘦身。删除0S系统没用的文件及组件,使缓存空间加大。删除系统的备份文件,开始一运行一sfc.exe/purgecache,清除文件缓存近300多M。删除备份驱动,%windows%\\drivercache\\i386目录下的driver.cab文件,这个文件大概有70多M。删除系统的帮助文件,也就是Help里面的东西,把它全都删掉,约有40多M。卸载不常用组件,用记事本打开sysoc.inf,用查找/替换功能,在查找框中输入,hide,全部替换为空。这样,就把所有的hide都去掉了,存盘退出后再运行“添加一删除程序”,就会看见“添加/删除Windows组件”中多出不少选项,这样可以删除掉游戏,码表等不用的东西。删除没用的输入法。⑧系统加速,提高系统的启动速度。2003sever的启动会有许多影响速度的功能,我们可以通过以下方法来提高系统的启动速度。修改注册表的rHn键,取消不常用的东西,比如WindowsMessenger。启用注册表管理器:开始一运行一Regedit一找到“Hl(EY-cURRENTUSER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MSMSGS’/BACKGROUND这个键值,右键一删除。修改注册表来减少预读取,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了。开始一运行一regedit启动注册表编辑器,找}Ⅱ(EY-LOCALMACHINE\\SYSTEM\\CurrentContr01Set\\Contr01\\SessionManager\\MeⅢoryManagement\\PrefetehParameters,有一个键E力ablePrefetcher把它的数值改为“1”就可以了。修改默认参数值,提高系统性能。在开始一执行一键入Regedit,仁HKEY_CURRENT_USER\\ControlPanel\\Desktop)右边有一个MenuShowDelay键.默认是400改为0,这是菜单显示速度.你会发现有明显的改观。找到}II(EY_CURRENTUSER\\ControlPanel\\Desktop键,将右边视窗的WaitToKillAppTimeout改为1000(原设定值:20000),表示关闭程序时仅等待1秒。将字串值HungAppTimeout的数值改为:200(原设定值:5000),表示程序出错时等待0.5秒。找到HKEY_LOCALesMACH工NE\lSystem\\Currentcontr01set\\contro将字串值WaitToKillServieeTimeout设为:1000或更小 手机销售系统设计与实现(原设定值:20000),将字串值(HungAppTimeout)的数值资料更改为(200),这俩项是加快关机速度。(2)数据库的优化(数据库系统启动参数的优化)默认的系统启动参数并不能够让数据库系统运行得非常顺畅,通过查找资料和自己的尝试,以下系统参数的设置是比较关键的:①backlog:能有的连接数量。当主要数据库线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间检查连接并且启动一个新线程。backlog值指出在数据库系统暂时停止回答新请求之前,短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,需要增加它。操作系统在这个队列大小上有它自己的限制,试图设定backlog高于你的操作系统的限制将是无效的。如果观察主机进程列表,发现大量264084{unauthenticateduser{】(xx.XXX.XXX.XXX}NULL}Conect}NULL{loginINULL的待连接进程时,就要加大backlog的值了。更改默认值为500。②interactive_timeout:服务器在关闭它前在一个交互连接上等待行动的秒数。更改默认值为7200。③key_buffer_size:索引块是缓冲的并且被所有的线程共享。key_buffer—size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到能负担得起那样多。如果它太大,系统开始换页并且真的变慢了。默认数是8388600(8M),改为402649088(400MB).④max—connections:允许的同时客户的数量。增加该值增加要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到Toomanyconnections错误。默认数值是i00,把它改为1024。⑤record-buffer:每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K),把它改为16773120(16M)。⑥sort—buffer:每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDERBY或GROUPBY操作。默认数值是2097144(2M),我把它改为16777208(16M)。⑦table—cache:为所有线程打开表的数量。增加该值能增加要求的文件描述符的数量。默认数值是64,我把它改为512. 大连理工大学专业学位硕士学位论文⑧thread—cache-size:可以复用的保存在缓存中的线程的数量。如果有新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线程保存在缓存中。如果有很多新的线程,为了提高性能可以修改这个变量值。通过比较Connections和Threads—created状态的变量,可以看到这个变量的作用。我把它设置为80。⑨wait—timeout:服务器在关闭它之前在一个连接上等待行动的秒数。默认数值是28800,我把它改为7200。II.查询性能的优化查询功能在手机销售管理信息系统中占有及其重要的地位,该系统主要包括的查询功能。如图4.23所示。图4.23查询功能图F喀4.23Inquiryfunctionaldiagram从图中我们可以看出,系统具有庞大的查询功能,如果我们能把查询速度提高,那么系统的整体性能就会提高。用户在使用系统的过程中每天都要进行大量的查询工作, 手机销售系统设计与实现查询速度的快慢也直接影响到用户对系统性能的评价。在系统投入运行两年来,用户反应系统的查询速度偏慢。那么,提高查询速度,就成为系统改进过程中的一个很重要的工作了。下面从SOL语句的使用和数据窗口的使用角度讲解如何优化查询功能,提高系统的查询速度。(1)SOL语句的优化缓冲SQL语句在编程过程中,有时需要反复调用同一组SOL语句,在这种情况下,可以通过在应用中为这些SOL建立缓冲区来提高执行性能。在缺省情况下,SOL语句的缓冲区是关闭的,可以通过如下语句打开它:SQLCACHE=n,n表示装入缓冲区的sQL语句数量(缺省为O)。例如:dw_1.SetTransobject(sqlca)SOLCA.dbParm=ftSOLCache=O’’dw1.retrieve0如果将上例的”SOLCache=O⋯改为“SOLCache=25’,此句的执行效率将提高五分之一左右。但应注意缓冲区的大小,否则也将影响程序执行的性能。(2)捆绑变量请看下例:SQLCA.DBPARM=’DISABLEBIND=I”INSERTINTOt_productVALUES(”0100’,”诺基亚N7610”)INSERTINTOtproductVALUES(”0200”,”三星E808”)INSERTINTOt_productVALUES(”0300”,”三星X468”)INSERTINTOt_productVALUES(”0400’。”三星SCH-X639”)INSERTINTOt_productVALUES(~0500一,“诺基亚2112”)INSERTINTOt_productVALUES(’0600”,“诺基亚3230”)这里未使用捆绑变量,在产品资料维护表中插入产品的编号和名称时将重新处理每个带有新值的SOL语句。如果将上例改为:SQLCA.DBPARM=。DISABLEBIND=O’INSERTINTOt_productVALUES(90100一,”诺基亚N7610”)INSERT工NTOt_productVALUES(’0200”,”三星E808”)INSERT工NTOt_productVALUES(’0300”,”三星X468”)INSERTINTOt_productVALUES(’0400一,”三星SCB-X639”) 大连理工大学专业学位硕士学位论文INSERTINTOtproductVALUES("0500’,“诺基亚2112”)INSERTINTOtproductVALUES(”0600”,“诺基亚3230”)则系统将把INSERT语句按如下格式进行处理:INSERTINTOt-productVALUES(?,?),其中”?”称为占位符,系统性能将有所增强。(3)用数据窗口代替SQL语句通常,为了获得某些数据,采用数据窗口和SQL语句都是可行的,但是对数据窗口和SQL语句采用不同的处理机制,将具有不同的效率。例:为了计算销售员销售产品的数量,可以通过使用游标利用SQL语句检索,也可以直接检索到一个数据窗口中。如果使用第一种方法:首先定义一个游标:DECLAREcarxsslCURSORFOR,、SELECTcpslFRoMtsaledetailWHERExsybh=:sir_xsybhAND(flagisNULLorflag<>’TOPENcurxssl:⋯⋯FETCHcurxsslINTO:dslDOWHILESQLCA.sqlcode=O⋯⋯FEl℃HcurxsslINTO:dslLOOPCLOSEcurxssl,第二种方法:直接把记录检索到数据窗口中,然后再计算产品销售总量。dw_l。settransobject(sqlca)dw—1.retrieve()对比两种方法所需时间如下表(4—1):表4.1数据窗口与sQL语句的性能比较Tab.4.1datawindowandtheSQL$6"iltetlCeperformancecompares方法所需时间(百分之一秒)SOL语句数据窗口100.985749.0133 手机销售系统设计与实现由于数据窗口或DATASTORE使用了标准的内嵌的代码,而不是由开发人员进行全部编码,同时编译执行的速度比解释执行的速度快的多,因此在开发过程中应尽量使用数据窗口和DATASTORE。即使是必须用SQL语句的时候,也应该尽量将它们定义为存储过程(特别是在多用户的环境中),以提高应用程序的性能。(4)使用索引来更快地建立表缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:①有大量重复值、且经常有范围查询(between>,<,>=,夺)和orderby,groupby发生的列,可考虑建立群集索引;②经常同时存取多列,且每列都含有重复值可考虑建立组合索引;③组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。(5)SOL语句优化的其它原则①EXISTS要远比IN的效率高,多用EXISTS子查询,用IN操作符子查询要改写为使用EXISTS的子查询:②在海量查询时尽量少用格式转换:③任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边:④慎用游标,在某些必须使用游标的场合,可考虑将符合条件的数据行转入临时表中。再对临时表定义游标进行操作,这样可使性能得到明显提高。通过以上五种方法优化SQL语句,可以使程序的查询速度明显提高,使用户在能够忍受的时间范围内看到查询结果。(6)查询结果分页显示除了上面提到的从SOL语句角度提高查询性能,还可以从另一个角度介绍如何提高查询速度。即把满足查询条件的数据库记录,划分成若干页,每次只显示指定的页面,从而提高数据库服务器的响应速度。4.4.2决策模块功能在开发手机销售管理信息系统的过程中,为了使该系统能够为公司管理者提供经营决策的信息依据,提供了一些具有决策支持功能的模块。 大连理工大学专业学位硕士学位论文平均价格考核模块,提供了从不同角度对销售的每种产品的平均价格的考核,即提供了各个销售点销售的每种产品平均价格的考核功能和每个业务员销售的每种产品的平均价格的考核功能。这一功能模块是工作人员手工所无法实现的。管理者通过该模块可以详细的掌握所销售的每种产品的价格走向,并根据价格曲线对不同的销售点和业务员的业绩进行考核。由于业务员平均价格考核子模块与各个销售点平均价格考核子模块在功能和算法上相类似,所以在此只讲述各个销售平均价格考核算法。图4.24给出了各个销售平均价格考核界面,如图4.24所示。四月一五月p六月p七月p^月p九月pt重p单价pt重d单价p羹重一单价p想单价p娃p单价p羹量p簟价p59和1513Om36和191000;20∞171000.12∞175l0啦14∞1525Om3l和15110¨25和10P600,29弦105P00.575.,195400.=151300,36呻191000·200.,171000,12呻175l00.140“"152500-315P151100p25和109600.:9如105P00.57知1954叩+151300.36∞19100叭200.】171000.12呻175100.14扣152500.3l弘1511OOp25和109600.2920105908*57知195400.151300.36扣191000.20帅171000.12∞17510m14和152500,3l如151l0∞25和i09500·:9扣10590叭5750195400,l荫蟹莉IlJgep—l胡一IlI.1图4.24平均价格考核界面Fig.4.24AVcfagcpriceinspectionc(rotactsurface平均出厂价格考核表中各个字段的含义如下:(1)每月的数量:该月产品销售数量的总和。(2)每月的价格:该月产品的平均出厂单价。(3)合计中的数量:所查所有月份产品的销售数量的总和。(4)合计中的价格:所查所有月份产品的平均出厂单价。设所查询的月平均出厂单价为x,每个月的产品总数为Y,所查询的几个月的产品数量总和为Z 手机销售系统设计与实现合计中的价格=(jfl半L+¨呻jf量后—十月术】,量后一十月)÷Z在该界面中,可以设定所要查询的时间和机构。设定好查询条件后点击“查询”按钮,在数据窗口中就会把所要查询处室的所有产品的每个月的销售量和平均出厂单价列出来。为了能够直观地查看每种销售产品的价格走向,可以点击“查看图示”按钮,进入图4.25所示界面。图4.25平均价格考核图形显示界面F噜.4.25Average—ce妇pe‘mon鲫hicaldi印lay在此界面中,可以直观地看出所销售产品的价格走向,这给高层管理者提供了方便。4.4.3对调拨费用的处理迅点公司有总公司库房和分公司库房,产品由总公司发送到分公司库房就会产生调拨费用,那么由分公司销售出去的产品价格就包含了调拨产生的费用,所以在计算销售的每种产品的平均出厂价格时,就要把调拨产生的费用减去。但是,一次调拨的产品可能分多次销售出去,或者多次调拨的产品一次销售出去,这样,就存在如何把调拨产生的费用准确的分摊到每比销售中去。本文给出了两种分摊调拨费用的方法,一种是手工分摊,一种是由系统自动分摊。但是从优化的角度考虑,系统采用了自动分摊的方法,也就是待形成销售后由系统自动把调拨发生的费用分摊到每笔销售中去。(1)系统自动对调拨费用的分摊系统对调拨费用的自动分摊算法,如图4.26所示。 大连理工大学专业学位硕士学位论文图4.26调拔考核算法Fig.4.26Theacccntpullsouttheinspectionalgodtkm如果某种产品是调拨到分公司的仓库然后由分公司再销售出去的,那么产品在调拨过程中产生的调拨费用就要分摊到相应的每笔销售记录的费用中。调拨记录和销售记录存在多对多的关系。那么我们要找到一种方法把调拨产生的所有费用自动分摊到其对应的每比销售记录中去。①从调拨表t—requisiton中查找调拨日>=上次分摊日期的所有调拨记录。对每一条调拨记录做如下处理。②从调拨表t—requisiton中得到调拨记录中产品的名称、调拨日期、目的地和提货仓库,然后从销售明细表t—sale—detail中查找相应的销售记录,使销售记录中的产品名称和调拨记录中得到的产品名称一致,销售记录中的提货处与调拨记录中得到的目的地一致、销售记录中的销售日期大于调拨日期。这样我们就可以把调拨发生的费用准确的平摊到相应的销售记录中去了。用d_dbfy表示调拨记录中的费用,用d_xsfy表示销售记录中的费用,用d_dbsl表示调拨数量,用d_xssl表示销售数量,那么: 手机销售系统设计与实现①如果调拨产品的数量大于等于销售产品的数量,即d_dbsl>=d_xssl,那么分摊到销售记录中的费用用如下公式计算:d_xsfy=d-xsfy+d_dbfyX(d_xssl÷d_dbsl)②如果调拨产品的数量小于销售产品的数量,即d_dbsl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭