超市管理系统 毕业论文
毕业设计(论文)
题 目 超市管理系统
姓 名
学 号
专业班级
指导教师
分 院 信息科学与工程学院
完成日期 2013年5月28日
摘 要
本文建立了一种基于粒子群(PSO )算法优化BP 神经网络的改进股票预测模型。该模型采用时间序列作为输入数据,以此来构造BP 神经网络拓扑结构,利用粒子群算法优化BP 神经网络的权值和阈值。同时,考虑到由于股票市场受到多种因素的影响,故股票价格形成的时间序列是非平稳的且具有强噪声的,本文用小波降噪来处理样本数据,使得数据更加真实地反映股票趋势。
结果表明,经过小波降噪处理后的时间序列数据更加平稳;粒子群算法优化后的BP 神经网络预测模型能够有效弥补BP 神经网络的不足,改善BP 神经网络易陷入局部最优的问题,在一定程度上达到了提高算法性能的目的。
关键词:小波降噪;BP 神经网络;股票预测;PSO 优化
Abstract
Based on the analysis and study of the artificial neural network (ANN), this paper proposes the improved stock forecasting model of BP neural network optimized on the foundation of Particle Swarm Optimization. This model uses time series as the input data to establish BP’s (Back Propagation) neural network topology, and uses Particle Swarm Optimization to optimize the its weight and threshold. In the meantime, taking the various factors that affect stock market into consideration, it can be found that the time series of stock price is unstable and strong-noisy. Wavelet de-noising is used to deal with sample data so that the data can more authentically reflect the stock tendency.
The results show that the time series data after wavelet de-noising are more stable; BP neural network forecasting model after Particle Swarm Optimization can make up the weakness of BP neutral network and mend the problem that BP neural network can easily get stuck into local optimum. As a result, this can obviously improve arithmetic performance to certain extend.
Keywords : Wavelet noise reduction; BP neural network; Stock forecast; PSO optimization
目 录
摘 要 ......................................................................................................................... I ABSTRACT . ................................................................................................................ I I 目 录 ........................................................................................................................ III
第1章 概述 ............................................................................................................... 5
1.1
1.2
1.3
1.4
1.5
1.6 引言................................................................................................................ 5 超市管理的研究现状.................................................................................... 6 超市管理系统主流开发技术........................................................................ 7 超市管理中存在问题.................................................................................... 8 选题的意义.................................................................................................... 9 本文研究内容.............................................................................................. 10
第2章 开发环境及关键技术研究 ......................................................................... 12
2.1 开发环境及相关介绍.................................................................................. 12
2.1.1开发环境..................................................................................................... 12
2.1.2 数据库........................................................................................................ 12
2.1.3 java 语言 . ................................................................................................. 13
2.2 关键技术...................................................................................................... 14
2.2.1 AJAX技术.................................................................................................. 14
2.2.1 JSON技术 .................................................................................................. 14
2.2.2 SESSION和JQuery . .................................................................................. 15
第3章 需求分析和系统设计 ................................................................................. 16
3.1 需求分析...................................................................................................... 16
3.1.1 功能需求.................................................................................................... 16
3.1.2 性能需求.................................................................................................... 16
3.1.3 用户体验需求............................................................................................ 16
3.2 系统结构和流程图...................................................................................... 17
3.2.1 系统的组成结构...................................................................................... 17
3.2.2 流程图........................................................................................................ 17
3.3 系统设计...................................................................................................... 18
3.3.1 数据库设计................................................................................................ 18
3.3.2 功能模块设计............................................................................................ 22
第4章 超市管理系统的实现 ................................................................................. 23
4.1
4.2
4.3 超市管理系统界面与功能简述.................................................................. 23 系统代码结构.............................................................................................. 29 网站关键技术实现...................................................................................... 30
第5章 总结和展望 ................................................................................................. 33
5.1 总结 ................................................................................................................... 33
5.2 展望 ................................................................................................................... 34
参考文献 ..................................................................................................................... 35
致谢 ............................................................................................................................. 37
第1章 概述
1.1 引言
我国超市形成在90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用错误!未找到引用源。。随着超市的快速发展,其经营管理也变得愈加复杂,售货员站柜台的形式早已不能满足销售业的发展,超市的管理软件就显得必不可少了。
一款好的超市管理系统,应该是可以帮助超市提高工作效率,帮助超市工作人员利用计算机,极为方便的对超市的有关数 据进行管理、输入、输出、查找等有关操作,使杂乱的超市数据能够具体化、直观化、合理化等。
超市软件系统从企业运营及管理的实际情况出发,结合当前中国零售业业态发展趋势,顺应了零售行业对信息化的要求,为商业管理信息系统提供了系统全面的技术解决方案。基于以上原因,超市信息管理系统目前在各个商业领域都发挥了很大的作用,也得到了越来越多的大、中、小型商业企业的应用。但就目前的应用状况分析,管理系统在中、高端企业得到了广泛的应用和重视,在小型企业、零售店的应用,仅局限于信息化的表面层次,没有得到高度的重视。同时,小企业也因资金方面问题限制了其向更高程度信息化的应用。
目前,中国主流的超市管理软件有金蝶系列管理软件,如金蝶K/3、金蝶KIS 、金蝶HR 等;金动力管理软件,如金动力企业管理软件、金动力库存管理软件;瑞星的超市管理系统;百财超市管理系统;精诚超市管理系统;科脉超市管理系统等等。但是,这一系列管理系统大多采用C/S架构进行开发的。超市采用C/S架构开发的系统成本高,难维护,一些大型的超市软件业务繁琐不适合中小型超市的业务管理。B/S架构的出现正好解决了这个问题。
基于 B/S 的架构开发已经成为了近几年软件开发的主流。其中 J2EE 的开源框架发展良好,以其优秀的可扩展性、良好的可维护性在软件开发领域大受欢迎,同时应用于各种需要信息服务、无纸化办公的领域,降低了开发的难度和成本。使用常见的框架 Struts2、Hibernate 、Spring(SSH),将其整合使用,达到提高工作的效率的目标并能适应多变的业务需求,是现在软件开发中一个流行解决
方案。
1.2 超市管理的研究现状
超市管理自超市出现以来,一直受到社会的广泛关注,经过国内外许多学者的研究得出了许多针对超市管理的方法,超市的管理最主要有采购、销售和库存。
(1) 采购管理的研究
采购的重要性最早是在1832年被提出,Charles Babbage指出“负责资源的关键职员是负责选择采购、接受合格配送的物料人”。20世纪初,采购进入了第二个比较重要的时期,第一本针对采购的《The Book On-Buying 》在1905年被出版,这本书介绍了采购的一般原则以及在不同公司采购系统中所使用的形式和流程。在20世纪90年代采购概念和采购管理得到了极大的发展,采购的5R 原则即正确的时间、正确的地点、以正确的价格条款、从正确的供应商那儿买到正确数量和质量的商品。2007年,赵道致和贾金英通过分析当时各大超市的采购方法,采用ABC 分类方法重组超市采购商品结构错误!未找到引用源。,达到降低成本与供应商实现双赢。楼曙英于2012年结合集力公司当时的采购模式,通过设置评价值和权重,建立了供应商选择模型错误!未找到引用源。。尹逊芹和徐耀群于2012年在AHP 层次分析理论基础上,建立了采购模式的选择模型错误!未找到引用源。。
(2) 销售管理的研究
商品是超市的重要组成部分,而商品的销售是超市管理中非常重要的一块。商品销售信息采集与计算直接影响到超市的采购与库存。黄宏本和卢雪燕于2011年提出了一种基于二维数组的关联规则挖掘算法错误!未找到引用源。,并使用编程实现挖掘系统,通过超市购物数据测试表明,算法高效可行,所实现的系统轻巧,性能出色。王新春和汝艳红于2012年基于复杂网络建立了一个数学模型错误!未找到引用源。,使复杂的销售信息更加直观。
(3) 库存管理的研究
1915年,美国的F.W. 哈里斯发表关于经济订货批量的模型,开创了现代库存理论的研究。1965 年约瑟夫•奥利奇博士总结出了一种新的管理理论:物料需求计划(MRP)理论。MRPII 理论错误!未找到引用源。由维特于1981年推出。MRPII 从市场预测、生产计划、物料需求、库存控制、车间控制,延伸到产品销售的整个生
产经营过程以及与之有关的所有财务活动中。随着管理工作的科学化,库存管理的理论有了很大的发展,形成许多库存模型,应用于企业管理中已得到显著的效果。张庆民等于2011年基于模糊理论和贝叶斯学习理论设计了协商模型错误!未找到引用源。,有效的化解了在供应链多级库存管理的过程中, 公司间的订货冲突。顾志强于2011年通过数学建模构建了一个库存优化模型错误!未找到引用源。,经大量数据验证该模型在有效的减轻了库存成本。余黎于2012年利用Witness 软件模拟企业库存问题,给出了九种不同的订货策略错误!未找到引用源。,从中选出了最优策略。
根据学者的诸多研究,同时随着计算机技术的出现,软件开发人员设计与开发出了许多超市管理系统。刘汝洁于2012年开发的收银管理系统错误!未找到引用源。就对超市的收银管理带来了很大的便利。吴效珩于2012年通过对数据库的研究优化了计算机对超市库存的管理,编写了超市后台管理系统错误!未找到引用源。。赵博通过分析超市进销存流程开发了一个超市进销存管理系统。伍明星错误!未找到引用源。等通过java 语言编写了一个超市信息管理系统。秦宇伟错误!未找到引用源。于2011年根据当时的主流技术开发了一个超市管理系统。随着计算机技术的不断发展,超市管理软件开发的质量越来越高,性能也越来越好。
1.3 超市管理系统主流开发技术
针对超市的管理许多学者研究出了许多方法,而计算机管理软件出现,更是开发出了许多优秀的超市管理软件。超市管理软件开发的技术多种多样,目前主要是基于B/S或C/S结构开发的。
(1) B/S超市管理系统的主流开发技术
B/S超市管理系统开发技术有ASP ,PHP ,J2EE 等。
ASP 是Active Server Page的缩写,意为“动态服务器页面”错误!未找到引用源。。ASP 是微软公司开发的代替CGI 脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
PHP 错误!未找到引用源。是一种HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML 文档的脚本语言,语言的风格有类似于C 语言,被广泛地运用。PHP 的优势是开放的源代码,程序开发快,运行快,技术本身学习起来快,跨平台性强,效率高。
J2EE 错误!未找到引用源。是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE 架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。
(2) C/S超市管理系统的主流开发技术
B/S超市管理系统开发技术有Java ,C++,C#,以及Dephi 等。
Java 语言是基于Java 虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM 的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,同时Java 的优势还在于它的开源和封装,Java 提供了强大的类库支持,包括多线程,数据结构,socket 编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时,Java 还提供了垃圾回收机制。 C++的特质在于它的高效性,它是直接和底层打交道的语言。 C++的特性还在于它的面向对象的封装,这点和Java 是类似的,但是它有兼有了C 语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++。
C#是微软主推的一种面向对象的语言,它是建立在.NET Framework之上的。C#在Visual Studio 之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于制作C/S程序也是非常方便的,很多代码都是IDE 直接生成的,开发者只需要实现部分逻辑。
1.4 超市管理中存在问题
中国超市主要存在问题有以下四点:
(1) 供货引起的存货管理问题
我们大多数企业的存货周转期在50到70天之间。中小型超市由于进货量少又大多是食品其周转期大多为一周左右。因为周转周期短,所以及时供货成了超市经营的主要问题。而中小型超市在供货中的问题是:
一方面,计划员没有较高的业务素质,由于工作时间短,对供货渠道和进价没有充分的了解.同时对于销售商品的记录不及时,不能做出合理的供货计划。
另一方面,供货行为不规范.透明度低。采购员未对供货单位的品质、价格、财务信誉动态监控;未做到同类产品货比多家。以求价格最低、质量最优;未督促供货商及时供货。
(2) 存货管理中存在的实务操作问题
大型超市存货管理组织架构是仓库主管下设置收货员、订货员和仓库核算人员,中小型超市连这种分工都没有.仅由两人共同负责超市存货的收转和管理。组织架构设置的过于笼统。导致下列问题:收货员之间的分工不明.不利于明确责任;未设验货人员.无法实现内部控制;存货信息失真;订货员的专业技术性差。
(3) 销售中的存货管理问题
做到及时补货,以销定存,这作为以销售作为根本的超市来说是重中之重。在销售过程中应将不同的商品按分类分批管理的原则来存放。由于中小型超市存储空间较小,货品主要是不固定位置弹性运作,这样所有货品剩存货物主要由营业员靠记忆力来记忆,常常是柜台缺货无法及时找到货补.或是存货已尽未及时联系供货商,造成缺货,影响超市正常销售。
(4) 国内大多数超市管理系统是采用C/S架构开发的。
基于典型的C/S架构方式来完成,业务逻辑位于客户端,每完成一项事务都要频繁的访问数据库,使得网络上数据流量非常大,而且需在每一台客户机上安装客户端软件,客户端软件的维护量特别大,传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,它无法面对众多的操作系统和软件快速的升级换代。需要高昂的维护成本且投资大。
1.5 选题的意义
本文宗旨在建立一个基于B/S的超市信息管理系统。
超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。
随着中小型超市发展规模的不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
本文设计的超市信息管理系统采用了struts2 + spring + hibernate的技术框架来构建其核心的业务流程控制。通过AJAX 技术来实时更新商品,供应商,销售和采购信息。同时,系统的开发成本低,易于维护是中小型超市管理系统开发的最好选择。
1.6 本文研究内容
随着互联网的飞速发展,网络成为了人们快速获取和传递信息的重要渠道,它在人们的生活中发挥着重要的作用。在此基础上,网站形式的管理系统越来越收到人们的爱戴。网站形式的管理系统开发快速,使用方便,便于维护和扩展,而且成本低。目前大多数的超市管理系统都是采用客户端服务器的形式进行开发的,成本高,且难维护,所以本文就针对开发一个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自带的标签获取到后台的数据,判断数据的显示与隐藏。
第2章 开发环境及关键技术研究
2.1 开发环境及相关介绍
超市管理系统是基于Struts2+String+Hibernate三大框架,在Microsoft7下环境下使用MyEclipse 10.0开发。系统主要分为系统前台销售和系统后台管理,由数据库(本系统采用MySQL )、前台销售、后台管理三部分组成。
2.1.1开发环境
操作系统:Microsoft Windows XP 程序语言:Java
开发包:JDK 1.6 + Struts 2 + String + Hibernate IDE :MyEclipse 10.0 Web 服务器:Tomcat 6.0
2.1.2 数据库
本系统采用的是MySQL 数据库。如果本系统投入实际使用,那么从数据量、性能和安全上考虑的话,商品信息库应该采用性能更好且更稳定的大型数据库系统,如甲骨文的Oracle 数据库。之所以本系统选择MySQL ,是考虑到本系统的数据来源主要是人工输入的或者程序生成的模拟数据,而并非庞大的大型超市的实际数据,数据量不大。选择采用轻量级的MySQL ,对于本系统的开发和部署相对比较简易和迅速。
MySQL 错误!未找到引用源。是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 的SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库。
1、使用C 和C++编写,经多种编译器进行测试,保证源代码可移植性;
2、支持AIX 、FreeBSD 、HP-UX 、Linux 、Mac OS、NovellNetware 、OpenBSD 、OS/2 Wrap、Solaris 、Windows 等多种操作系统;
3、为多种编程语言提供了API 。这些编程语言包括C 、C++、PHP 、Python 、Java 、Perl 、Eiffel 、Ruby 和Tcl 等;
4、支持多线程,充分利用CPU 资源;
5、优化的SQL 查询算法,有效地提高查询速度;
6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中;
7、提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;
8、提供TCP/IP、ODBC 和JDBC 等多种数据库连接途径; 9、提供用于管理、检查、优化数据库操作的管理工具;
10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库; 11、支持多种存储引擎。
2.1.3 java 语言
Java 是一种面向对象的程序设计语言,它可以撰写跨平台应用软件,是由Sun Microsystems公司于1995年5月推出的Java 程序设计语言和Java 平台(即JavaSE, JavaEE, JavaME )的总称错误!未找到引用源。。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC 、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。Java 具有一下特点:
1
容易学习和使用Java 。
2、面向对象。Java 语言提供类、接口和继承等原语,具备面向对象的抽象、继承、
封装和多态四大属性。
3、健壮且安全。Java 的强类型机制、异常处理、垃圾的自动收集等是Java 程序健壮性的重要保证。Java 对通过网络下载的类具有一个安全防范机制(类ClassLoader ),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager )让Java 应用设置安全哨兵。
4、可移植。Java 程序(.java 文件)通过java 平台编译成字节码文件(.class 文件),就可以在任何具有java 平台的系统中执行。Java 的编译器是用java 写的,java 的运行环境是用c 写的。
5、多线程。在Java 中,线程是一种特殊的对象,它必须由Thread 类或其子孙类来创建。通常有两种方法来创建线程:其一,去实现Runnable 借口,实现里面的run 方法,其二,从Thread 类派生出子类并重写run 方法,使用该子类创建的对象即为线程。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized )。
2.2 关键技术
2.2.1 AJAX技术
在本超市管理系统中,同一jsp 页面中可能有许多数据请求,如果采用传统的提交表单的方式来发送请求,就会刷新页面,出现页面闪动,所以本系统采用了ajax 技术异步发送请求,来实现页面的无刷新交互数据。
AJAX 是一种用于创建更好更快以及交互性更强的Web 应用程序的技术。 通过 AJAX ,我们可以通过XMLHttpRequest 对象来直接与服务器进行通信错误!未
找到引用源。
。通过这个对象,我们可以在不重载页面的情况下与Web 服务器进行数据
交互。AJAX 在浏览器与Web 服务器之间使用异步数据传输,这样就可使网页从服务器请求少量的信息,而不是整个HTML 页面。我们甚至可以毫无察觉的发现,我们的页面数据悄无声息地改变了,而页面的排版、格式和表单设定都没有变化。
AJAX 是一种独立于Web 服务器软件的浏览器技术,并被所有的主流浏览器支持。AJAX 使得Web 应用既保留了B/S结构的优点,又具有C/S结构应用的强大功能和用户感受。可以认为Ajax 是Web 标准和Web 应用的可用性理论的集大成者。它极大地改善了Web 应用的可用性和用户的交互体验。
2.2.1 JSON技术
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它可以将 对象转换为字符串,然后就在函数之间轻松地传递这个字符串,它也可以在异步
应用程序中将字符串从客户端传递给服务器端程序。JSON 字符串的结构看上去有点类似哈希表,利用键值结构来表达,但它可以具有层次性,其实现方式就是键值对的值本身也可以是一个完整的JSON 字符串,因此它可以表示比较复杂的对象,比如数组、树等。图2.1是一个JSON 字符串,该字符串最顶级的key 为workerlist ,而它的值为一个数组,因此workerlist 它代表了一个数组。数组的每个元素是一个结构体,拥有属性id 和name ,且相应有取值。
图2.1 示例JSON 字符串
JSON 的优点是它的结构简单,可读性也不错。就字节数来说,相比XML ,JSON 一般可以用更少的字节数表示相同的信息。
电力信息智能交互系统的Web 平台拥有较多需要AJAX 支持的部分,比如实时数据刷新和实时图表更新,另外Android 终端也需要即时地访问不少服务器的最新数据,我们在返回服务器数据时,其数据载体采用了JSON 的方式。由于要频繁的进行数据交换,在带宽有限的情况下,选择JSON 这种轻量级的数据交换方式,是比较合适的。
2.2.2 SESSION和JQuery
超市管理系统采用了SESSION 会话机制,来对登录用户信息进行存储和管理,使用JQuery 来简化ajax 请求格式,并且用JQuery 对页面输入信息进行初步的验证。
第3章 需求分析和系统设计
3.1 需求分析
3.1.1 功能需求
超市管理系统主要有收银员、采购员和系统管理员三大用户,不同用户身份其操作权限不一样,所以他们的可操作的系统功能也不一样。
1、商品管理。在商品管理模块可以新增商品条目,对已有商品信息进行修改,删除商品条目,查询商品信息,查看信息详情,新增商品类型。
2、库存管理。可以商品入库,退货出库。
3、供应商管理。该模块可以新增供应商信息,可以修改已存在的供应商信息,对供应商进行查询。
4、采购和销售历史信息查询。
5、系统管理。可以新增用户,设置用户的初始信息,设置用户权限。 6、个人信息管理。用户可以对自己的基本信息进行查看和修改。
采购员可以查看每天的采购信息,收银员可以销售商品。
3.1.2 性能需求
考虑到商品数据信息的庞大,超市管理系统对性能需求(特别是涉及数据库的作业)会很高。由于本文的主旨在于交互系统的设计,且所设计的原型系统只处理模拟商品数据,因此本文没有在系统性能上做过多的研究。如何提高系统性能这本身也是一个相当有难度和有意义的课题,这里就不展开了。
3.1.3 用户体验需求
1、超市管理系统的收银员用户可以对商品进行销售,在销售界面可以通过商品的条码对商品进行卖出,系统可以结算总价钱,在商品数量不够的情况下系统会给出提示,销售成功后可以生成销售历史。收银员可以查询商品的基本信息,也可查看和修改个人的基本信息。
2、超市管理系统管理员可以操作出了销售之外的任何操作,拥有最高权限。 3、超市管理系统中的采购员可以查看采购历史和采购任务,根据采购任务
上的信息去对应的供应商那进行采购。
4、UI 界面要求简洁大方,风格统一,功能操作的响应时间短。功能导航方便快捷。
3.2 系统结构和流程图
3.2.1 系统的组成结构
超市管理系统主要是用浏览器作为一个客户端,用户通过浏览器来进入该系统的操作。用户的操作请求通过网络交给服务器,服务器结合数据库对请求数据进行计算和比较,再通过网络将结果返回给用户。超市管理系统的结构如图3.1所示。
收银员或采购员
图3.1 超市管理系统网络结构图
3.2.2 流程图
如图3.2所示,超市管理系统的用户通过系统的身份验证,获得不同的操作权限的web 界面,操作上面的功能,通过服务器对提交数据和数据库数据的业务处理返回结果到系统界面。
图3.2 超市管理系统流程图
3.3 系统设计
3.3.1 数据库设计
根据系统的需求分析,总结出了一下几张数据表和表之间的关系如图3.3所示,表具体结构如表3-1到表3-8。
● 用户表:编号、名称、性别、密码、权限、电话、联系地址、邮箱、真
实姓名、备注说明 ● 权限表:权限ID 、名称
● 供应商表:编号、名称、联系地址、联系电话、联系人、备注 ● 商品类型表:编号、名称
● 商品表:编号、名称、规格、类型、采购价、销售价、供应商、上限、
下限、说明、操作人 ● 库存表:商品ID 、数量
● 采购历史表:商品ID 、用户ID 、供应商ID 、数量、日期 ● 销售历史表:商品ID 、用户ID 、供应商ID 、数量、日期、类型
图3.3 超市管理系统表关系图
(1) user用户表:
表3-1:user 表结构
(2) power权限表:
表3-2:power 表结构
(3) supplier供应商表:
表3-3:supplier 表结构
(4) good_type商品类型表:
表3-4:good_type表结构
(5) good商品表:
表3-5:good 表结构
(6) good_counts库存表:
表3-6:good_counts表结构
(7) buy供应商表:
表3-7:buy 表结构
(8) sale供应商表:
表3-8:sale 表结构
3.3.2 功能模块设计
为了响应需求,原型系统的功能主要分为7大模块,分别是商品管理模块、库存管理模块、供应商管理模块、销售管理模块、采购管理模块、系统管理模块和个人信息管理模块。各模块包含的主要功能如图3.4所示。
图3.4 超市管理系统功能设计图
第4章 超市管理系统的实现
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 菜单
3、商品管理模块。如图4.3至4.7所示,商品管理模块包括商品基本信息的
增删改查和商品类型的新增。该模块只能是管理员可以操作。
图4.3 新增商品条目
图4.4 新增商品类型
图4.5 查询商品信息
图4.6 修改商品信息
图4.7 查看商品详情
4、库存管理模块。该模块可以商品入库和出库退货,如图4.8至4.9所示。
图4.8 商品入库
图4.9 退货
5、供应商管理模块。该模块可以对供应商进行增删改查,如图4.10至4.12
所示。
图4.10 新增供应商
图4.11 供应商信息查询
图4.12 修改供应商信息
6、销售管理模块。该模块可以查询销售历史,收银员登录可以操作收银台,
并且可以查询商品的基本信息,如图4.13至4.15所示。收银台可以将每一件商品加入账单,最后再结算。
图4.13 收银台
图4.14 查询商品库存
图4.15 查询销售历史
7、采购管理模块。该模块可以查询采购历史和当前的采购任务,如图4.16
至4.17所示。
图4.16 查询采购历史
图4.17 查询采购任务
8、系统管理模块。系统管理主要就是可以新增用户,并为其分配权限如图
4.18所示。
图4.18 新增用户
9、个人信息管理模块。该模块提供了用户查看个人的基本信息和进行修改,
如图4.19。
图4.19 修改/查看用户信息
4.2 系统代码结构
超市管理系统采用J2EE 实现,并采用Struts2框架来控制请求的传递给哪个Action 处理,再通过Spring 控制Action 和Service 的调用,对数据库的访问采用的是Hibernate 框架。本系统只有一个String 的ApplicationCountext.xml 配置文件,其他所有配置都是采用注解的方式进行配置。Web 平台的代码结构如图4.20所
示,工程所有的Java 类位于shop 及它的子包下。
action 包中的类是各种业务逻辑的Action 所对应的类。这些Action 通过注解的方式进行了配置,具体实现方式将在4.3节叙述。
beans 包中的类是对实体的封装类,比如用户类User 等。
本系统使用ORM 模板,而是将所有对数据库的增、删、改、查操作进行了封装,有一个公共的DAO 接口实现了表中最简单的数据操作。
common 包中是一些放置常量的类。
service 包中包含了对每个模块的业务进行了封装,方便Action 调用。 util 包中包含了一些工具类。
图4.19 超市管理系统包结构
4.3 网站关键技术实现
1、权限控制。
超市管理系统的权限分为三种,第一种是收银员权限,第二种是采购员权限,第三种是管理员权限。权限不同每个人可操作的系统功能也不同。本系统在数据库设计时就定义了一个权限表,不同权限的用户都具有自己的唯一标注,当用户登录系统时,系统先对用户最基本的身份验证,并把登录用户的基本信息存到Session 的loginUser 中,JSP 通过Struts2自带的taglib 获取到loginUser 的标注,
更具不同的标注对给出的主页面进行不同的隐藏和显示。
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中有查询出来的数据列表
和总数据条数。系统封装了一个PageView类来对分页数据进行保存,将查询出来的QueryResult数据set 到PageView对象中,再把该对象返回到页面,PageView可以获取分页数据、总页数和当前页数,将这些数据显示到具体的页面中。在页面中定义了一个表单,里面是hidden 类型的input 标签value 值为后台返回的当前页面值,当你做翻页操作时,通过JS 方法将该表单数据进行对应的修改(如下一页就是将当前页加一) ,再把表单提交。
第5章 总结和展望
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自带的标签获
取到后台的数据,判断数据的显示与隐藏。
5.2 展望
本文还需要对以下方面做进一步的研究:
1、 人员管理。
本文在人员的管理上只是普通的一些基本信息查看,人员的信息也是管理员手动录入的,比较麻烦,可以用一个通用的类,已某个格式去解析人员信息的excel 或者其他文档,用代码录入,并且权限在录入后可以修改。
2、 财务管理
本文只通过代码存储了采购和销售的历史,但是在具体的财务上只是做了简单的乘法运算将数据显示给用户看下,本系统可以在添加财务表对超市的收支进行业务封装。
3、 任务管理
本系统在任务查看上,只有采购员有在采购任务单上的查看,但是显示超市中每个岗位每天都有自己的任务,而且可能会变,所以可以给系统增加一个任务的管理。每天管理员可以为每个员工分配任务,员工通过任务信息查询,查看自己当天是什么任务,完成后可以简述任务并点击完成,没完成也要说明原因,管理员后台可以看到每个人的任务完成情况。
参考文献
[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, (2): 17-18.
[16] Yongchang Ren, Deyi Jiang, Tao Xing, Ping Zhu. Research on software development platform based on SSH framework structure[J]. Procedia Engineering, 2011, (15): 3078-3082.
[17] Renwang Li, Hao Luo, Zhigang Bao. Based on the Internet of Things the Supermarket Chain Management Information System Development and Safety Stock Research[J]. ICETC International Conference on Education Technology and Computer, 2010, (2): 368-371.
[18] 王建国, 王建英. Struts+String+hibernate框架及应用开发[M]. 北京: 清华大学出版社, 2011.
致谢
本论文在刘启玉老师的悉心指导下得以完成。从论文的选题、设计方案直至论文的最终完成,都得到了刘老师耐心细致的指导。历时四载,刘老师一丝不苟的作风,严谨求实的态度,不仅授我以文,那种敬业精神更是令我敬佩。 在此,真诚感谢诸位老师四年来的教导与帮助,你们的谆谆教诲指引着我走好每一步;感谢和我朝夕相伴的同学,你们陪我走过了轻松快乐令人终生难忘的四年;感谢我的寝室室友,四年来能够和谐相处、相互包容。
论文的完成意味着即将作别四年陪伴的母校,这四年的欢笑、痛苦、喜悦、泪水都将成为最美丽的回忆。我相信对理想的坚持加上自己的努力,就一定可以实现梦想,我会朝着这个方向努力的。