• 1.28 MB
  • 2022-04-22 13:33:32 发布

超市管理系统 毕业论文.doc

  • 35页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'超市管理系统毕业论文目录摘要IABSTRACTII目录III第1章概述51.1引言51.2超市管理的研究现状61.3超市管理系统主流开发技术71.4超市管理中存在问题81.5选题的意义91.6本文研究内容10第2章开发环境及关键技术研究122.1开发环境及相关介绍122.1.1开发环境122.1.2数据库122.1.3java语言132.2关键技术142.2.1AJAX技术142.2.1JSON技术142.2.2SESSION和JQuery15第3章需求分析和系统设计163.1需求分析163.1.1功能需求163.1.2性能需求163.1.3用户体验需求163.2系统结构和流程图17II 3.2.1系统的组成结构173.2.2流程图173.3系统设计183.3.1数据库设计183.3.2功能模块设计22第4章超市管理系统的实现234.1超市管理系统界面与功能简述234.2系统代码结构294.3网站关键技术实现30第5章总结和展望335.1总结335.2展望34参考文献35致谢37II 第1章概述1.1引言我国超市形成在90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用Error!Referencesourcenotfound.。随着超市的快速发展,其经营管理也变得愈加复杂,售货员站柜台的形式早已不能满足销售业的发展,超市的管理软件就显得必不可少了。一款好的超市管理系统,应该是可以帮助超市提高工作效率,帮助超市工作人员利用计算机,极为方便的对超市的有关数据进行管理、输入、输出、查找等有关操作,使杂乱的超市数据能够具体化、直观化、合理化等。超市软件系统从企业运营及管理的实际情况出发,结合当前中国零售业业态发展趋势,顺应了零售行业对信息化的要求,为商业管理信息系统提供了系统全面的技术解决方案。基于以上原因,超市信息管理系统目前在各个商业领域都发挥了很大的作用,也得到了越来越多的大、中、小型商业企业的应用。但就目前的应用状况分析,管理系统在中、高端企业得到了广泛的应用和重视,在小型企业、零售店的应用,仅局限于信息化的表面层次,没有得到高度的重视。同时,小企业也因资金方面问题限制了其向更高程度信息化的应用。目前,中国主流的超市管理软件有金蝶系列管理软件,如金蝶K/3、金蝶KIS、金蝶HR等;金动力管理软件,如金动力企业管理软件、金动力库存管理软件;瑞星的超市管理系统;百财超市管理系统;精诚超市管理系统;科脉超市管理系统等等。但是,这一系列管理系统大多采用C/S架构进行开发的。超市采用C/S架构开发的系统成本高,难维护,一些大型的超市软件业务繁琐不适合中小型超市的业务管理。B/S架构的出现正好解决了这个问题。基于B/S的架构开发已经成为了近几年软件开发的主流。其中J2EE的开源框架发展良好,以其优秀的可扩展性、良好的可维护性在软件开发领域大受欢迎,同时应用于各种需要信息服务、无纸化办公的领域,降低了开发的难度和成本。使用常见的框架35 Struts2、Hibernate、Spring(SSH),将其整合使用,达到提高工作的效率的目标并能适应多变的业务需求,是现在软件开发中一个流行解决方案。1.1超市管理的研究现状超市管理自超市出现以来,一直受到社会的广泛关注,经过国内外许多学者的研究得出了许多针对超市管理的方法,超市的管理最主要有采购、销售和库存。(1)采购管理的研究采购的重要性最早是在1832年被提出,CharlesBabbage指出“负责资源的关键职员是负责选择采购、接受合格配送的物料人”。20世纪初,采购进入了第二个比较重要的时期,第一本针对采购的《TheBookOn-Buying》在1905年被出版,这本书介绍了采购的一般原则以及在不同公司采购系统中所使用的形式和流程。在20世纪90年代采购概念和采购管理得到了极大的发展,采购的5R原则即正确的时间、正确的地点、以正确的价格条款、从正确的供应商那儿买到正确数量和质量的商品。2007年,赵道致和贾金英通过分析当时各大超市的采购方法,采用ABC分类方法重组超市采购商品结构Error!Referencesourcenotfound.,达到降低成本与供应商实现双赢。楼曙英于2012年结合集力公司当时的采购模式,通过设置评价值和权重,建立了供应商选择模型Error!Referencesourcenotfound.。尹逊芹和徐耀群于2012年在AHP层次分析理论基础上,建立了采购模式的选择模型Error!Referencesourcenotfound.。(2)销售管理的研究商品是超市的重要组成部分,而商品的销售是超市管理中非常重要的一块。商品销售信息采集与计算直接影响到超市的采购与库存。黄宏本和卢雪燕于2011年提出了一种基于二维数组的关联规则挖掘算法Error!Referencesourcenotfound.,并使用编程实现挖掘系统,通过超市购物数据测试表明,算法高效可行,所实现的系统轻巧,性能出色。王新春和汝艳红于2012年基于复杂网络建立了一个数学模型Error!Referencesourcenotfound.,使复杂的销售信息更加直观。(3)库存管理的研究1915年,美国的F.W.哈里斯发表关于经济订货批量的模型,开创了现代库存理论的研究。1965年约瑟夫•奥利奇博士总结出了一种新的管理理论:物料需求计划(MRP)理论。MRPII理论Error!Referencesourcenotfound.35 由维特于1981年推出。MRPII从市场预测、生产计划、物料需求、库存控制、车间控制,延伸到产品销售的整个生产经营过程以及与之有关的所有财务活动中。随着管理工作的科学化,库存管理的理论有了很大的发展,形成许多库存模型,应用于企业管理中已得到显著的效果。张庆民等于2011年基于模糊理论和贝叶斯学习理论设计了协商模型Error!Referencesourcenotfound.,有效的化解了在供应链多级库存管理的过程中,公司间的订货冲突。顾志强于2011年通过数学建模构建了一个库存优化模型Error!Referencesourcenotfound.,经大量数据验证该模型在有效的减轻了库存成本。余黎于2012年利用Witness软件模拟企业库存问题,给出了九种不同的订货策略Error!Referencesourcenotfound.,从中选出了最优策略。根据学者的诸多研究,同时随着计算机技术的出现,软件开发人员设计与开发出了许多超市管理系统。刘汝洁于2012年开发的收银管理系统Error!Referencesourcenotfound.就对超市的收银管理带来了很大的便利。吴效珩于2012年通过对数据库的研究优化了计算机对超市库存的管理,编写了超市后台管理系统Error!Referencesourcenotfound.。赵博通过分析超市进销存流程开发了一个超市进销存管理系统。伍明星Error!Referencesourcenotfound.等通过java语言编写了一个超市信息管理系统。秦宇伟Error!Referencesourcenotfound.于2011年根据当时的主流技术开发了一个超市管理系统。随着计算机技术的不断发展,超市管理软件开发的质量越来越高,性能也越来越好。1.1超市管理系统主流开发技术针对超市的管理许多学者研究出了许多方法,而计算机管理软件出现,更是开发出了许多优秀的超市管理软件。超市管理软件开发的技术多种多样,目前主要是基于B/S或C/S结构开发的。(1)B/S超市管理系统的主流开发技术B/S超市管理系统开发技术有ASP,PHP,J2EE等。ASP是ActiveServerPage的缩写,意为“动态服务器页面”Error!Referencesourcenotfound.。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。PHPError!Referencesourcenotfound.35 是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。PHP的优势是开放的源代码,程序开发快,运行快,技术本身学习起来快,跨平台性强,效率高。J2EEError!Referencesourcenotfound.是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。(2)C/S超市管理系统的主流开发技术B/S超市管理系统开发技术有Java,C++,C#,以及Dephi等。Java语言是基于Java虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,同时Java的优势还在于它的开源和封装,Java提供了强大的类库支持,包括多线程,数据结构,socket编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时,Java还提供了垃圾回收机制。C++的特质在于它的高效性,它是直接和底层打交道的语言。C++的特性还在于它的面向对象的封装,这点和Java是类似的,但是它有兼有了C语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++。C#是微软主推的一种面向对象的语言,它是建立在.NETFramework之上的。C#在VisualStudio之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于制作C/S程序也是非常方便的,很多代码都是IDE直接生成的,开发者只需要实现部分逻辑。1.1超市管理中存在问题中国超市主要存在问题有以下四点:(1)供货引起的存货管理问题35 我们大多数企业的存货周转期在50到70天之间。中小型超市由于进货量少又大多是食品其周转期大多为一周左右。因为周转周期短,所以及时供货成了超市经营的主要问题。而中小型超市在供货中的问题是:一方面,计划员没有较高的业务素质,由于工作时间短,对供货渠道和进价没有充分的了解.同时对于销售商品的记录不及时,不能做出合理的供货计划。另一方面,供货行为不规范.透明度低。采购员未对供货单位的品质、价格、财务信誉动态监控;未做到同类产品货比多家。以求价格最低、质量最优;未督促供货商及时供货。(2)存货管理中存在的实务操作问题大型超市存货管理组织架构是仓库主管下设置收货员、订货员和仓库核算人员,中小型超市连这种分工都没有.仅由两人共同负责超市存货的收转和管理。组织架构设置的过于笼统。导致下列问题:收货员之间的分工不明.不利于明确责任;未设验货人员.无法实现内部控制;存货信息失真;订货员的专业技术性差。(3)销售中的存货管理问题做到及时补货,以销定存,这作为以销售作为根本的超市来说是重中之重。在销售过程中应将不同的商品按分类分批管理的原则来存放。由于中小型超市存储空间较小,货品主要是不固定位置弹性运作,这样所有货品剩存货物主要由营业员靠记忆力来记忆,常常是柜台缺货无法及时找到货补.或是存货已尽未及时联系供货商,造成缺货,影响超市正常销售。(4)国内大多数超市管理系统是采用C/S架构开发的。基于典型的C/S架构方式来完成,业务逻辑位于客户端,每完成一项事务都要频繁的访问数据库,使得网络上数据流量非常大,而且需在每一台客户机上安装客户端软件,客户端软件的维护量特别大,传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,它无法面对众多的操作系统和软件快速的升级换代。需要高昂的维护成本且投资大。1.1选题的意义本文宗旨在建立一个基于B/S的超市信息管理系统。35 超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。随着中小型超市发展规模的不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。本文设计的超市信息管理系统采用了struts2+spring+hibernate的技术框架来构建其核心的业务流程控制。通过AJAX技术来实时更新商品,供应商,销售和采购信息。同时,系统的开发成本低,易于维护是中小型超市管理系统开发的最好选择。1.1本文研究内容随着互联网的飞速发展,网络成为了人们快速获取和传递信息的重要渠道,它在人们的生活中发挥着重要的作用。在此基础上,网站形式的管理系统越来越收到人们的爱戴。网站形式的管理系统开发快速,使用方便,便于维护和扩展,而且成本低。目前大多数的超市管理系统都是采用客户端服务器的形式进行开发的,成本高,且难维护,所以本文就针对开发一个B/S的超市管理系统做了以下研究工作。1、Struts2+String+Hibernate搭建系统。使用Struts2+String+Hibernate三大框架采用注解的技术。Struts2在系统中对每个页面的请求和返回数据的走向做控制。Spring控制着系统中所有的DAO层和Action之间的调用,起到控制反转的作用,将控制权交到Spring容器中。Hibernate封装了系统的数据持久层,完成了对象关系映射,将对数据操作从原先繁琐的数据字段提取封装起来,开发者只要操作与数据表对应的实体类对象就可以操作对象,并且可以定义表关系。2、Ajax的形式发送请求,用json封装数据35 本系统在很多地方都采用了Ajax+json的方式对请求进行了封装。采用Ajax可以实现数据提交后获取返回数据无刷新显示,可以给用户更良好的使用体验。Ajax在Jquery中进行了简化,所以使用起来非常方便快捷。Json有两种数据格式,一种数组,一种对象,我们可以将返回页面的数据转换为JsonObject的对象给页面,页面上可以通过对象获取属性的方式轻松的获取到后台返回回来的数据。3、使用html标签和一些js扩展包搭前台界面本系统采用的是比较简单的table标签来对一张网页进行布局,还有一些特殊的控件(如时间控件)是采用网上提供的js包,使用里面的接口来进行搭配,一些后台传回来的数据需要动态显示或隐藏,本系统通过Struts2自带的标签获取到后台的数据,判断数据的显示与隐藏。35 第1章开发环境及关键技术研究2.1开发环境及相关介绍超市管理系统是基于Struts2+String+Hibernate三大框架,在Microsoft7下环境下使用MyEclipse10.0开发。系统主要分为系统前台销售和系统后台管理,由数据库(本系统采用MySQL)、前台销售、后台管理三部分组成。2.1.1开发环境操作系统:MicrosoftWindowsXP程序语言:Java开发包:JDK1.6+Struts2+String+HibernateIDE:MyEclipse10.0Web服务器:Tomcat6.02.1.2数据库本系统采用的是MySQL数据库。如果本系统投入实际使用,那么从数据量、性能和安全上考虑的话,商品信息库应该采用性能更好且更稳定的大型数据库系统,如甲骨文的Oracle数据库。之所以本系统选择MySQL,是考虑到本系统的数据来源主要是人工输入的或者程序生成的模拟数据,而并非庞大的大型超市的实际数据,数据量不大。选择采用轻量级的MySQL,对于本系统的开发和部署相对比较简易和迅速。MySQLError!Referencesourcenotfound.是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。1、使用C和C++编写,经多种编译器进行测试,保证源代码可移植性;35 2、支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;3、为多种编程语言提供了API。这些编程语言包括C、C++、PHP、Python、Java、Perl、Eiffel、Ruby和Tcl等;4、支持多线程,充分利用CPU资源;5、优化的SQL查询算法,有效地提高查询速度;6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中;7、提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;8、提供TCP/IP、ODBC和JDBC等多种数据库连接途径;9、提供用于管理、检查、优化数据库操作的管理工具;10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库;11、支持多种存储引擎。2.1.3java语言Java是一种面向对象的程序设计语言,它可以撰写跨平台应用软件,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称Error!Referencesourcenotfound.。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。Java具有一下特点:1、简单易学。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。2、面向对象。Java语言提供类、接口和继承等原语,具备面向对象的抽象、继承、封装和多态四大属性。3、健壮且安全。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。35 4、可移植。Java程序(.java文件)通过java平台编译成字节码文件(.class文件),就可以在任何具有java平台的系统中执行。Java的编译器是用java写的,java的运行环境是用c写的。5、多线程。在Java中,线程是一种特殊的对象,它必须由Thread类或其子孙类来创建。通常有两种方法来创建线程:其一,去实现Runnable借口,实现里面的run方法,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。2.1关键技术2.2.1AJAX技术在本超市管理系统中,同一jsp页面中可能有许多数据请求,如果采用传统的提交表单的方式来发送请求,就会刷新页面,出现页面闪动,所以本系统采用了ajax技术异步发送请求,来实现页面的无刷新交互数据。AJAX是一种用于创建更好更快以及交互性更强的Web应用程序的技术。  通过AJAX,我们可以通过XMLHttpRequest对象来直接与服务器进行通信Error!Referencesourcenotfound.。通过这个对象,我们可以在不重载页面的情况下与Web服务器进行数据交互。AJAX在浏览器与Web服务器之间使用异步数据传输,这样就可使网页从服务器请求少量的信息,而不是整个HTML页面。我们甚至可以毫无察觉的发现,我们的页面数据悄无声息地改变了,而页面的排版、格式和表单设定都没有变化。AJAX是一种独立于Web服务器软件的浏览器技术,并被所有的主流浏览器支持。AJAX使得Web应用既保留了B/S结构的优点,又具有C/S结构应用的强大功能和用户感受。可以认为Ajax是Web标准和Web应用的可用性理论的集大成者。它极大地改善了Web应用的可用性和用户的交互体验。2.2.1JSON技术JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它可以将35 对象转换为字符串,然后就在函数之间轻松地传递这个字符串,它也可以在异步应用程序中将字符串从客户端传递给服务器端程序。JSON字符串的结构看上去有点类似哈希表,利用键值结构来表达,但它可以具有层次性,其实现方式就是键值对的值本身也可以是一个完整的JSON字符串,因此它可以表示比较复杂的对象,比如数组、树等。图2.1是一个JSON字符串,该字符串最顶级的key为workerlist,而它的值为一个数组,因此workerlist它代表了一个数组。数组的每个元素是一个结构体,拥有属性id和name,且相应有取值。图2.1示例JSON字符串JSON的优点是它的结构简单,可读性也不错。就字节数来说,相比XML,JSON一般可以用更少的字节数表示相同的信息。电力信息智能交互系统的Web平台拥有较多需要AJAX支持的部分,比如实时数据刷新和实时图表更新,另外Android终端也需要即时地访问不少服务器的最新数据,我们在返回服务器数据时,其数据载体采用了JSON的方式。由于要频繁的进行数据交换,在带宽有限的情况下,选择JSON这种轻量级的数据交换方式,是比较合适的。2.2.2SESSION和JQuery超市管理系统采用了SESSION会话机制,来对登录用户信息进行存储和管理,使用JQuery来简化ajax请求格式,并且用JQuery对页面输入信息进行初步的验证。35 第1章需求分析和系统设计3.1需求分析3.1.1功能需求超市管理系统主要有收银员、采购员和系统管理员三大用户,不同用户身份其操作权限不一样,所以他们的可操作的系统功能也不一样。1、商品管理。在商品管理模块可以新增商品条目,对已有商品信息进行修改,删除商品条目,查询商品信息,查看信息详情,新增商品类型。2、库存管理。可以商品入库,退货出库。3、供应商管理。该模块可以新增供应商信息,可以修改已存在的供应商信息,对供应商进行查询。4、采购和销售历史信息查询。5、系统管理。可以新增用户,设置用户的初始信息,设置用户权限。6、个人信息管理。用户可以对自己的基本信息进行查看和修改。采购员可以查看每天的采购信息,收银员可以销售商品。3.1.2性能需求考虑到商品数据信息的庞大,超市管理系统对性能需求(特别是涉及数据库的作业)会很高。由于本文的主旨在于交互系统的设计,且所设计的原型系统只处理模拟商品数据,因此本文没有在系统性能上做过多的研究。如何提高系统性能这本身也是一个相当有难度和有意义的课题,这里就不展开了。3.1.3用户体验需求1、超市管理系统的收银员用户可以对商品进行销售,在销售界面可以通过商品的条码对商品进行卖出,系统可以结算总价钱,在商品数量不够的情况下系统会给出提示,销售成功后可以生成销售历史。收银员可以查询商品的基本信息,也可查看和修改个人的基本信息。2、超市管理系统管理员可以操作出了销售之外的任何操作,拥有最高权限。3、超市管理系统中的采购员可以查看采购历史和采购任务,35 根据采购任务上的信息去对应的供应商那进行采购。4、UI界面要求简洁大方,风格统一,功能操作的响应时间短。功能导航方便快捷。3.1系统结构和流程图3.1.1系统的组成结构超市管理系统主要是用浏览器作为一个客户端,用户通过浏览器来进入该系统的操作。用户的操作请求通过网络交给服务器,服务器结合数据库对请求数据进行计算和比较,再通过网络将结果返回给用户。超市管理系统的结构如图3.1所示。图3.1超市管理系统网络结构图3.2.2流程图如图3.2所示,超市管理系统的用户通过系统的身份验证,获得不同的操作权限的web界面,操作上面的功能,通过服务器对提交数据和数据库数据的业务处理返回结果到系统界面。35 图3.2超市管理系统流程图3.1系统设计3.3.1数据库设计根据系统的需求分析,总结出了一下几张数据表和表之间的关系如图3.3所示,表具体结构如表3-1到表3-8。l用户表:编号、名称、性别、密码、权限、电话、联系地址、邮箱、真实姓名、备注说明l权限表:权限ID、名称l供应商表:编号、名称、联系地址、联系电话、联系人、备注l商品类型表:编号、名称l商品表:编号、名称、规格、类型、采购价、销售价、供应商、上限、下限、说明、操作人l库存表:商品ID、数量l采购历史表:商品ID、用户ID、供应商ID、数量、日期l销售历史表:商品ID、用户ID、供应商ID、数量、日期、类型35 图3.3超市管理系统表关系图(1)user用户表:表3-1:user表结构FieldNameTypeKeyNullCommentidbigintPKNOUser表主键user_novarchar(20)NO用户编号namevarchar(20)NO用户姓名sexint(2)NO性别(1:男,2:女)passwordvarchar(20)NO密码(默认111111)power_idint(11)FKNO外键,与权限表id关联phonevarchar(20)电话号码addressvarchar(100)地址emailvarchar(20)NO邮箱real_namevarchar(20)NO全名35 create_timedate创建时间update_timedate更新时间user_descvarchar(100)备注(2)power权限表:表3-2:power表结构FieldNameTypeKeyNullCommentidint(11)PKNOpower表主键power_typevarchar(20)NO权限类型(3)supplier供应商表:表3-3:supplier表结构FieldNameTypeKeyNullCommentidint(11)PKNOsupplier表主键novarchar(20)NO供应商编号namevarchar(80)NO供应商名称addressvarchar(100)联系地址phonevarchar(20)联系电话s_descvarchar(200)备注personvarchar(20)联系人(4)good_type商品类型表:表3-4:good_type表结构FieldNameTypeKeyNullCommentidint(11)PKNOgood_type表主键novarchar(20)NO商品类型编号namevarchar(50)NO商品类型名称create_timedate创建时间(5)good商品表:表3-5:good表结构FieldNameTypeKeyNullCommentidbigintPKNOgood表主键novarchar(20)NO商品条码namevarchar(50)NO商品名称specvarchar(50)商品规格type_idint(11)FKNO外键,与商品类型id关联35 buyfloatNO进货价salefloatNO销售价supplier_idbigintFKNO外键,与供应商id关联upper_limitbigintNO商品上限lower_limitbigintNO商品下限create_timedate创建时间update_timedate更新时间user_idbigint与user表id关联(6)good_counts库存表:表3-6:good_counts表结构FieldNameTypeKeyNullCommentidbigintPKNOgood_counts表主键good_idbigintFKNO外键,与good表id关联countbigintNO库存数量create_timedate创建时间update_datedate更新时间(7)buy供应商表:表3-7:buy表结构FieldNameTypeKeyNullCommentidbigintPKNObuy表主键good_idbigintFKNO外键,与good表id关联supplier_idbigintFKNO外键,与supplier表id关联user_idbigintFKNO外键,与user表id关联countbigintNO购买数量buy_datedate采购日期(8)sale供应商表:表3-8:sale表结构FieldNameTypeKeyNullCommentidbigintPKNOsale表主键good_idbigintFKNO外键,与good表id关联supplier_idbigint外键,与supplier表id关联user_idbigintFKNO外键,与user表id关联countbigintNO销售数量35 sale_datedate销售日期stateint(10)NO1:销售2:退货3.3.2功能模块设计为了响应需求,原型系统的功能主要分为7大模块,分别是商品管理模块、库存管理模块、供应商管理模块、销售管理模块、采购管理模块、系统管理模块和个人信息管理模块。各模块包含的主要功能如图3.4所示。图3.4超市管理系统功能设计图35 第1章超市管理系统的实现4.1超市管理系统界面与功能简述超市管理系统的Web平台采用J2EE实现,动态页面主要采用JSP技术实现,采用CSS+DIV的方式进行页面布局,通过Struts2+String+Hibernate三大框架来进行系统架构的设计和对数据流动的控制,下面简单介绍下原型系统Web平台:1、登录模块。登录模块的界面如图4.1所示。输入用户编号和密码后点击登录按钮进行登录,如果验证通过,则进入超市管理系统主界面。图4.1登录2、主界面。主界面布局上采用TopFrame+LeftFrame+MainFrame的HTML框架式布局。根据登录用户的身份和权限,主界面的导航菜单会有所不同。LeftFrame页的导航条为菜单,而MainFrame则作为内容呈现主体。Web平台的功能、导航菜单的设计主要参考3.3.2章节的功能设计部分。当收银员、采购员和管理员登录后主界面菜单如图4.2所示。图4.2菜单35 3、商品管理模块。如图4.3至4.7所示,商品管理模块包括商品基本信息的增删改查和商品类型的新增。该模块只能是管理员可以操作。图4.3新增商品条目图4.4新增商品类型图4.5查询商品信息35 图4.6修改商品信息图4.7查看商品详情4、库存管理模块。该模块可以商品入库和出库退货,如图4.8至4.9所示。图4.8商品入库35 图4.9退货5、供应商管理模块。该模块可以对供应商进行增删改查,如图4.10至4.12所示。图4.10新增供应商35 图4.11供应商信息查询图4.12修改供应商信息6、销售管理模块。该模块可以查询销售历史,收银员登录可以操作收银台,并且可以查询商品的基本信息,如图4.13至4.15所示。收银台可以将每一件商品加入账单,最后再结算。图4.13收银台图4.14查询商品库存35 图4.15查询销售历史7、采购管理模块。该模块可以查询采购历史和当前的采购任务,如图4.16至4.17所示。图4.16查询采购历史图4.17查询采购任务35 8、系统管理模块。系统管理主要就是可以新增用户,并为其分配权限如图4.18所示。图4.18新增用户9、个人信息管理模块。该模块提供了用户查看个人的基本信息和进行修改,如图4.19。图4.19修改/查看用户信息4.1系统代码结构超市管理系统采用J2EE实现,并采用Struts2框架来控制请求的传递给哪个Action处理,再通过Spring控制Action和Service的调用,对数据库的访问采用的是Hibernate框架。本系统只有一个String的ApplicationCountext.xml配置文件,其他所有配置都是采用注解的方式进行配置。Web平台的代码结构如图4.2035 所示,工程所有的Java类位于shop及它的子包下。action包中的类是各种业务逻辑的Action所对应的类。这些Action通过注解的方式进行了配置,具体实现方式将在4.3节叙述。beans包中的类是对实体的封装类,比如用户类User等。本系统使用ORM模板,而是将所有对数据库的增、删、改、查操作进行了封装,有一个公共的DAO接口实现了表中最简单的数据操作。common包中是一些放置常量的类。service包中包含了对每个模块的业务进行了封装,方便Action调用。util包中包含了一些工具类。图4.19超市管理系统包结构4.1网站关键技术实现1、权限控制。超市管理系统的权限分为三种,第一种是收银员权限,第二种是采购员权限,第三种是管理员权限。权限不同每个人可操作的系统功能也不同。本系统在数据库设计时就定义了一个权限表,不同权限的用户都具有自己的唯一标注,当用户登录系统时,系统先对用户最基本的身份验证,并把登录用户的基本信息存到Session的loginUser中,JSP通过Struts2自带的taglib获取到loginUser的标注35 ,更具不同的标注对给出的主页面进行不同的隐藏和显示。2、数据交互。超市管理系统对数据库基础的增删改查比较频繁,而且每张表都有基本的增删改查操作,所以本系统对简单的单表操作进行了封装。超市管理系统对DAO层封装使用了泛型,包含常用的增删改查和分页操作。DAO层封装借口的实现类BaseDaoSupport继承了HibernateDaoSupport类可以获取事务来进行对数据库的操作。BaseDaoSupport使用GenericsUtils工具类封装的getSuperClassGenricType(this.class)方法通过反射机制来获取实体类,再用getSimpleName()方法得到实体类的名字,再到具体的增删改查方法内进行sql字符串拼接。Service包下的业务实现类中只要继承BaseDaoSupport类,并定义具体的T类型,就有了最基础的一些数据库操作。超市管理系统中有很多数据提交时需要不刷新页面的动态提交,本系统应用AJAX+JSON技术(技术介绍请参考2.2章节)来实现。为了加强用户体验,原型系统使用了JQuery等优秀的JavaScript脚本库。下面以新增商品为例对动态发送请求,实现页面无刷新尽心阐述。当用户在新增商品条目页面填写完基本信息后,使用JQuery封装的serialize函数获得序列化表单数据,在通过JQuery封装过的ajax将数据请求返回后台,后天对应的Action使用注解的方式在对应的方法上面定义(@Result(type="json"))返回类型为json格式,执行成功后前台ajax的回调函数获取到了返回回来的json数据,通过分析json数据提示用户是否新增成功,新增成功用JS代码将输入框清空。3、分页浏览。超市管理系统有很多数据的查询,如销售历史,采购历史,商品基本信息等,这些数据都是数据量比较大的不可能可以一页就显示出来的,而且当页数比较多的时候你要去浏览中间的某一页,如果一页页的翻下去会非常麻烦,所以本系统不仅可以上下翻页,还可以直接跳到首页和末页,也可以跳到具体的某一页。在上面我们介绍了本系统对DAO层进行了封装,在封装的BaseDaoSupport中有一个getScrollData方法可以传入页码、每页的最大数据条数、sql语句和sql中的参数,返回QueryResult对象。QueryResult中有查询出来的数据列表和35 总数据条数。系统封装了一个PageView类来对分页数据进行保存,将查询出来的QueryResult数据set到PageView对象中,再把该对象返回到页面,PageView可以获取分页数据、总页数和当前页数,将这些数据显示到具体的页面中。在页面中定义了一个表单,里面是hidden类型的input标签value值为后台返回的当前页面值,当你做翻页操作时,通过JS方法将该表单数据进行对应的修改(如下一页就是将当前页加一),再把表单提交。35 第1章总结和展望5.1总结随着互联网的飞速发展,网络成为了人们快速获取和传递信息的重要渠道,它在人们的生活中发挥着重要的作用。在此基础上,网站形式的管理系统越来越收到人们的爱戴。网站形式的管理系统开发快速,使用方便,便于维护和扩展,而且成本低。目前大多数的超市管理系统都是采用客户端服务器的形式进行开发的,成本高,且难维护,所以本文就针对开发一个B/S的超市管理系统做了以下研究工作。1、使用Struts2+String+Hibernate搭建一个基础系统框。本文在使用Struts2+String+Hibernate三大框架采用的是注解的技术。Struts2在系统中对每个页面的请求和返回数据的走向做控制。Spring控制着系统中所有的DAO层和Action之间的调用,起到控制反转的作用,将控制权交到Spring容器中。Hibernate封装了系统的数据持久层,完成了对象关系映射,将对数据操作从原先繁琐的数据字段提取封装起来,开发者只要操作与数据表对应的实体类对象就可以操作对象,并且可以定义表关系。框架搭好后,根据超市管理系统的分析和设计将业务写入到具体的类中,通过框架来进行调度,方便管理。2、使用Ajax的形式发送请求,用json封装数据本系统在很多地方都采用了Ajax+json的方式对请求进行了封装。采用Ajax可以实现数据提交后获取返回数据无刷新显示,可以给用户更良好的使用体验。Ajax在Jquery中进行了简化,所以使用起来非常方便快捷。Json有两种数据格式,一种数组,一种对象,我们可以将返回页面的数据转换为JsonObject的对象给页面,页面上可以通过对象获取属性的方式轻松的获取到后台返回回来的数据。3、使用html标签和一些js扩展包搭前台界面本系统采用的是比较简单的table标签来对一张网页进行布局,还有一些特殊的控件(如时间控件)是采用网上提供的js包,使用里面的接口来进行搭配,一些后台传回来的数据需要动态显示或隐藏,本系统通过Struts2自带的标签获取到后台的数据,判断数据的显示与隐藏。35 5.2展望本文还需要对以下方面做进一步的研究:1、人员管理。本文在人员的管理上只是普通的一些基本信息查看,人员的信息也是管理员手动录入的,比较麻烦,可以用一个通用的类,已某个格式去解析人员信息的excel或者其他文档,用代码录入,并且权限在录入后可以修改。2、财务管理本文只通过代码存储了采购和销售的历史,但是在具体的财务上只是做了简单的乘法运算将数据显示给用户看下,本系统可以在添加财务表对超市的收支进行业务封装。3、任务管理本系统在任务查看上,只有采购员有在采购任务单上的查看,但是显示超市中每个岗位每天都有自己的任务,而且可能会变,所以可以给系统增加一个任务的管理。每天管理员可以为每个员工分配任务,员工通过任务信息查询,查看自己当天是什么任务,完成后可以简述任务并点击完成,没完成也要说明原因,管理员后台可以看到每个人的任务完成情况。35 参考文献[1]王永洋,赵德平,李畅,张弛.基于B/S模式小型超市进销存系统的设计[D].沈阳:沈阳建筑大学,2010.[2]赵道致,贾金英.连锁超市采购策略与采购成本研究[J].内蒙古农业大学学报,2007,9(35):136-138.[3]楼曙英.集力公司供应商管理精益化模式探讨[J].中国电力教育,2012,(24):74-78.[4]尹逊芹,徐耀群.基于AHP法的采购模式的评估与选择[J].商业经济,2012,(8):20-23.[5]黄宏本,卢雪燕.关联规则挖掘在超市销售系统中的应用及实现[J].梧州学院学报,2011,21(3):59-63.[6]王新春,汝艳红.基于复杂网络的超市销售分析[J].江苏经贸职业技术学院学报,2012,(1):15-19.[7]戴航.库存管理技术综述[J].物流工程与管理,2012,34(10):46-47.[8]张庆民,吴士亮,孙树垒,吴春梅.冲突条件下供应链库存管理的协商模型[J].工业技术经济,2011,(1):118-122.[9]顾志强.数学模型建构在超市库存管理系统中的应用[J].科教文汇,2011,(12):92-93.[10]余黎.Witness在库存管理中的模拟仿真研究[J].科技经济市场,2012,(10):5-6.[11]刘汝洁.小型超市收银管理系统的设计与实现[D].湖北:湖北工业大学,2012.[12]吴效珩.如何运用数据库设计与实现超市管理平台[D].河南:河南省新乡市计算机研究应用推广中心,2012.[13]赵博.超市进销存管理系统[D].郑州:郑州轻工业学院,2008.[14]伍明星,郑多玲,关玉蓉.基于Java的超市管理系统的开发与研究[J].科技情报开发与经济,2006,16(24):241-243.[15]秦宇伟.基于B/S的连锁超市管理系统的设计与实现[J].电脑学习,2011,35 (2):17-18.[1]YongchangRen,DeyiJiang,TaoXing,PingZhu.ResearchonsoftwaredevelopmentplatformbasedonSSHframeworkstructure[J].ProcediaEngineering,2011,(15):3078-3082.[2]RenwangLi,HaoLuo,ZhigangBao.BasedontheInternetofThingstheSupermarketChainManagementInformationSystemDevelopmentandSafetyStockResearch[J].ICETCInternationalConferenceonEducationTechnologyandComputer,2010,(2):368-371.[3]王建国,王建英.Struts+String+hibernate框架及应用开发[M].北京:清华大学出版社,2011.35 致谢本论文在刘启玉老师的悉心指导下得以完成。从论文的选题、设计方案直至论文的最终完成,都得到了刘老师耐心细致的指导。历时四载,刘老师一丝不苟的作风,严谨求实的态度,不仅授我以文,那种敬业精神更是令我敬佩。在此,真诚感谢诸位老师四年来的教导与帮助,你们的谆谆教诲指引着我走好每一步;感谢和我朝夕相伴的同学,你们陪我走过了轻松快乐令人终生难忘的四年;感谢我的寝室室友,四年来能够和谐相处、相互包容。论文的完成意味着即将作别四年陪伴的母校,这四年的欢笑、痛苦、喜悦、泪水都将成为最美丽的回忆。我相信对理想的坚持加上自己的努力,就一定可以实现梦想,我会朝着这个方向努力的。35'