资源描述:
《学士学位论文—-中小型超市商品管理系统设计与实现【开题报告+文献综述+】.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
本科毕业论文开题报告信息管理与信息系统中小型超市商品管理系统设计与实现一、立论依据1.研究意义、预期目标随着中国经济的不断发展,计算机的普及率越来越高,超市的管理手段发生了改革,系统管理代替了人工管理。这就需要管理系统能够准确的记载和查阅所有的经营活动,帮助超市经营者掌握和和分析营销情况。超市管理系统的运用能够提高店内的财务、库存和销售情况的管理水平,现在市场上有很多的大型超市管理系统,这些大型软件功能丰富,涉及到商品供应商信息管理、员工档案管理、员工权限设定,商品资料的录入,商品进货的入库等等。但对于一个中小型超市来说,有些功能完全是多余的,而且市场上绝大部分的小型超市经营者计算机应用水平较低。针对小型超市的特点,计划开发一个小型超市管理系统。功能只涉及到财务、库存和销售这3方面。界面尽可能的做到简单易用,适合一般人员使用。2.国内研究现状魏秀芳、张晓霞、贾岩、顾树卫(2008)就超市营销的几个关键性因素进行了研究。根据国内的超市经营现状,提出了网点规划、提高超市文化竞争力、发展新型超市营销策、寻求新卖点、研究超市顾客的心理、提升超市综合实力、诚信和谐的观点[1]。代慧祥(2010)在校园超市选址的问题中,对校园超市的销售计划及选址问题进行讨论,根据实际的问题考虑所给的数据和合理的假设以及调查数据,对问题建立了线性规划模型。考虑到宿舍距离和宿舍人数及购买力对超市销售量的影响,采用类平均的思想对超市选址建立模型,并用此模型求解该选址问题,得到一个优化地址[2]。陈晓(2007)在对我国本土超市现状的研究中,发现一些超市的问题并借助外国超市的管理经验来指出我过超市的发展方向。文中指出了市场定位雷同、超1 市难以实现规模效应、超市与供应商之间缺乏协作、经营管理理念落后的经营难题[3]。杨刚、彭丽、宋猛、周意、黎意、周秦武(2009)提出一种一种超市购物结账装置及自助结账方法。这种超市购物结账装置及自助结账方法,包括后台管理系统、自助结账系统、门道检测系统。后台管理系统包括服务器、交换机、主PC机,完成对整个系统的管理。自助结账系统包括:柜台PC机、第一读写器、标签检测天线、解码箱、触摸屏显示器、读卡器、打印机。顾客通过触摸屏显示器进行操作,第一读写器通过标签检测天线读取贴在物品上的PVC标签;读卡器读取会员卡信息。门道检测系统包括:第二读写器、门道天线、报警装置。第二读写器通过门道天线一直检测通过门道的软标签,门道PC机将检测到的软标签UID与数据库中已交费商品信息表比较,实现报警功能[4]。李丽(2007)发表了对我国连锁超市物流配送体系建设研究。文章首先提出了作者对连锁超市物流配送的现状分析和现有配送方案存在的局限性,然后通过对我国连锁超市上海联华与沃尔玛的比较分析,得出我国发展连锁超市物流配送体系的思路[5]。袁作为(2008)在中小型超市管理系统分析中,提出了对中小型超市开发管理系统的看法。文章中主要通过进、销、存三方面来分析中小型超市的功能和需求,并根据功能和需求制定出自己的管理系统模型[6]。王旭辉(2007)在社区超市发展现状分析与对策探讨一文中指出:分析我国社区超市业的发展特点,总结社区超市发展中存在的不足,对于促进我国社区超市的进一步完善有极其重要的现实意义。文章中总结了社区超市的基本特点和经营优势,并根据雅戈尔品牌的成功案例来规划出超市的发展对策[7]。刘勤侠(2009)就如何设计超市自有品牌满意度调查进行探讨。作者认为:一要确定调查目的,解决为什么要调查的问题。二是确定调查对象,解决向谁调查和由谁来提供资料的问题。三是确定调查项目和调查问卷,解决调查的问题。顾客对超市自有品牌的满意度直接影响着顾客忠诚度,关系到超市的成败兴襄,研究超市自有品牌的满意度有着重要的意义,而调研的首项工作就是进行超市自有品牌满意度调查方案设计[8]。董军农、王培桓、傅元慧(2009)就如何建立行之有效的超市管理模式进行了探讨。作者通过对众多超市的管理进行调查、分析、比对和研究,总结出超市管理模式的法规性、计划性、规范性和人文性四个大方面[9]。杜新丽(2009)用问卷调查的方式,从超市形象及购物环境、商品的质量与价格、员工及超市服务、超市的便利性、超市促销等方面了解超市顾客流失的原因,并提出自己的应对方法:化超市形象及购物环境;在保证商品质量的基础上2 合理定价;强化员工的服务意识;以方便顾客为原则开展经营活动;开展积极有效的促销活动;高度重视并妥善处理顾客抱怨;实施关系营销以提高顾客的忠诚度[10]。3.参考文献[1]魏秀芳,张晓霞,贾岩,顾树卫.超市营销关键因素分析及发展趋势研究[J].工会论坛,2008(1).[2]代慧祥.校园超市选址问题[J].中国科技博览,2010(7).[3]陈晓.我国本土超市现状与发展对策研究[J].科技咨询导报,2007(11).[4]杨刚,彭丽,宋猛,周意,黎意,周秦武.一种超市购物结账装置及自助结账方法[D].西安:西安交通大学,2009.[5]李丽.我国连锁超市物流配送体系建设研究[J].中国市场,2007(8).[6]袁作为.中小型超市管理系统分析[J].时代经贸,2008(6).[7]王旭辉.社区超市发展现状分析与对策探讨[J].科技资讯,2007(9).[8]刘勤侠.超市自有品牌满意度调查方案设计[J].商场现代化,2009(4).[9]董军农,王培桓,傅元慧.浅析我国超市的管理模式[J].现代商业,2008(10).[10]杜新丽.超市顾客流失原因及规避策略研究[J].河南社会科学,2009(4).二、研究方案1.主要研究内容(或预期章节安排)1概述1.1开发背景1.2目的与意义1.3国内发展现状分析2系统分析2.1系统工具介绍2.2可行性研究2.3需求分析2.4数据流图2.5数据字典3系统设计3.1总体结构设计3.2功能模块设计3.3数据库设计3 3.4编码设计4系统实现4.1一般功能的实现4.2采购模块的实现4.3商品信息模块的实现4.4仓库模块的实现4.5统计和提醒模块的实现2.实施方案和进度计划第7学期第10周至第7学期第11周:在指导教师的指导下,广泛搜集、研究相关文献资料,完成章节1系统概述中的研究意义、国内研究现状、存在的问题及研究分析,确定毕业论文选题第7学期第12周:完成外文翻译、文献综述和开题报告撰写;参加开题答辩,进一步论证选题价值、确立主要研究内容,论证研究方案的合理性和可行性。第7学期第13周:这周完成开发的系统分析阶段,多去了解其他超市管理系统的管理流程,各取长处,设计自己的流程。第7学期第13周:还是分析阶段,完成数据部分:制定出完整的数据流DFD图,编制数据字典,完成数据分析。完成章节2中的其他内容:功能模型设计和系统逻辑模型设计。第7学期14周:工作进入到系统设计部分,首先把系统的总体结构设计好,然后做好数据库部分:数据库概念设计ER图、数据库逻辑设计、代码设计。最后做好输入输出设计和模块功能设计。第7学期第15周:工作进入到系统实施部分,确定软件的编写语言和工具,逐步完成系统的编写和调试,遇到困难找老师和同学帮忙。第7学期第16周:完成全部工作内容,如果没有完成;查找系统工作遗漏的功能和改进系统第7学期第16周:定稿并上交,参加第一次答辩。4 文献综述中小型超市商品管理系统设计与实现世界各国零售业态的发展与电子计算机技术在商业领域的应用密不可分,尤其是在超市行业。在我国,有很多在偏僻区域的中小型超市,这些超市的超市规模和实力远不如大型超市,信息化管理相对落后,致使中小型超市难以降低经营成本、难以提高经营效率。目前购物中小超市应用管理系统普遍采用的是C/S结构,其开发重点是商品的管理功能。如果不能保证正确的困存和进货控制,将会导致管理费用的增加。在如今这个“数字化年代”,一个适合超市的管理系统对于超市来说是必要的。1中小型超市在市场上的现状及发展分析1.1中小型超市在市场上的现状与一些资金雄厚的、管理先进的超市相比,我国超市想要在市场上站稳脚跟尚需加倍努力,陈晓(2007)我国超市经营存在的问题:市场定位雷同、超市难以实现规模化、超市与供应商之间缺乏协作概念、经营管理理念落后[1]。屈道群(2008)认为中小型超市在市场上面临着几个方面的困境。商业方面:营业效果不佳,卖场布局混乱;管理上的困境:管理流程,业务流程的管理不到位,一般是照搬照抄其他超市,商品和仓库管理不健全,成本增加;发展方面:发展规划不明确,网店布局不科学,竞争性不强[2]。1.2中小型超市的发展对策黄智萌认为(2009)这几年的房地产市场蓬勃发展,大量新社区的出现给中小型超市带来生存空间,社区人口流动量小,大型超市无暇顾及。其次,乡镇市场能给超市的发展带来新的增长空间,乡镇的购买力比较密集,中国的农民市场潜力也是不可估量的[3]。不仅如此,中小型超市还可以应该合理运用自己的优势来赢取市场地位,一是要明确需求,合理安排商品结构,中小型超市规模虽不及大型城市,但可以根据对居民的消费调查来安排店面。田春兰(2008)二要运用情感经营,提供超值服务,中小型超市一般离居民去近,超市的服务人员应该多与顾客进行交流,了解他们的具体需求和习惯。有利于增加顾客的满意度[4]。5 袁作为(2008)超市能否在农村这个广大的市场连接起来,关键在于是否树立了开拓农村市场的战略观念和针对其市场特征制定的相应策略[5]。杜锋(2009)要在农村发展连锁超市,必须注意转变营销观念,实行低价优质,让利与消费者的价格策略,同时激发消费者的购买欲望。另外,农村超市产品以日常用品为主,注意超市经营产品的选择[6]。2中小型超市运作流程和系统的结构选择2.1超市的管理流程和需求罗玉葵(2009)认为在超市日常管理中,最重要的是对流程的管理和对商品的管理,在大多数的超市管理类软件中,都能找到相似的流程。超市管理的需求围绕的是采购、销售、库存三个方面发展[7]。中小型超市的必要功能需求:(1)在需要时生成商品的库存情况报表,实时报告商品库存情况,如果库存不足,可生成缺货提醒。(2)采购商品后及时录入商品信息等数据,并更新库存量(3)随时录入售出的商品信息(4)当超市末端时间内,某种商品的售出数量较大,可将此类商品归为热卖商品,用于市场采购指导[8]。杜锋(2009)超市围绕系统运行的几个通用工作流程也是一样的:(1)根据缺货提醒进行商品的采购,然后进行采购入库的处理(2)从商品库存中提取商品后可以根据商品的信息放入超市的货物架(3)顾客完成选货后,收银员输入商品的编码,系统获得商品的信息,提示收银员完成收银和找零工作[9]。为了应对激烈的市场竞争,各家超市都会推出会员功能来吸引和留住顾客。王卫强(2007)通过会员信箱、手机短信、互联网等方式深入了解顾客,尽可能地记录顾客的消费习惯,然后通过手机,E‐MAIL等方式及时的将适合顾客的商品信息促销信息告知会员顾客,从而不断挖掘顾客的潜在需求,引导消费[10]。2.2超市管理的软件模式的选择目前阶段软件系统结构主要有两种:C/S和B/S模式。两种模式的各种模式各有优缺点。鲁春燕、孙娟(2008)认为C/S模式的主要特点是:应用服务器运行6 数据负荷较轻;贾蓉生(2009)数据的存储管理功能较为透明。相对来说,B/S模式更适合信息化的管理系统。但是中小型超市的管理系统一般为局域网内管理,而且不会经常去更新系统,这使得B/S模式成本和维护方面的优势得不到体现。综合考虑下,C/S结构更适合在中小型超市管理类系统软件运用[11]。3中小型超市管理系统设计上的几个问题3.1库存存量上下限及警报问题超市库存对每一种商品都要有一个下限和平均水平,以避免支出过高库存成本。吴迪冲(2009)认可超市可以采用定期定量(t,s,S)订货库存控制方法,实现系统警报。每经过t时间检查剩余库存量x,如果x大于库存下限s不去补充,小于下限s就要及时补充商品并及时发出库存报警,补充量Q可以为Q=S-s,使库存达到平均水平S,这样做可以剩下人工计算的精力去做好其它管理,同时还可以发出及时的缺货提醒[12]。3.2数据表中主键的设定在进货表和销售表中使用进货编号、销售编号和商品编号做为主键。叶乃文(2009)觉得双主键的设计会使得对这两个表的操作变得复杂,一般考虑到性能问题,要避免使用双主键设计。在数据检索中要大量使用到primarykey,只对比一个primarykey的速度要比双主键设计快的多,而且单主键在编程上也有好处,sql语句中的where条件可以写更少的代码,这代表出错的机会少了。如果把每一种商品的编号做主键,用这种方法设计主要为了每个表中的商品的主键保持一致[13]。3.3滚动查询和模糊查询在系统检索的时候,有时候我们不仅仅满足于单项的查询结果,余永红(2008)在Java程序设计教程书中提示,有一些可以提高效率的技巧:(1)获得可滚动的结果集Statementstmt=con.createStatement(intType,intConcurrency);根据两个参数的情况,可以设定结果集的滚动。7 (2)排序查询及模糊查询排序查询可以通过SQL语句中的ORDERBY实现,按照不同的字段进行排序,输出排序后的结果。SQL语句附加LIKE关键字实现模糊查询。利用JDBC访问数据库的基本过程完成相关操作后,在创建Statement对象时,应通过相关的属性,建立滚动集,并设置滚动集的相关属性,可充分利用SQL语句中的ORDERBY和LIKE执行查询[14]。数据库中视图,嵌套查询,交集的应用:视图可以理解为保存后的查询,它保存的是‘实在’表格经查询后的结果。吴亚辉(2007)认为基本表是视图的来源和基础,视图可以丰富基本表的表达;嵌套查询是指在一个外层查询中包含有另一个内层查询,即一个SQL查询语句块可以嵌套在另一个查询块的WHERE子句中。交集主要运用在对多张表的同一字段进行查询,可以使查询更加简便、效率[15]。3.4SQLServer定时作业的运用肖丽杰(2008)认为通过定时作业,用户可以定期地进行数据的计算处理,更新合并、汇总、统计数据。从根本上提高检索的效率,同时可以将这类计算安排在非工作时间由计算机自动完成。如果超市举行一个促销活动,人工管理的话,需要去哦修改商品的价格信息,促销结束后又要改回来,这样很麻烦。加入定时作业以后,只需要在商品字段中加入促销价格和促销日期,这样在每天定时作业,让系统自动判断应该用促销价格还是普通价格。此外,运用定时作业还可以实现缺货提醒,当某种商品的库存量过低时,可以提醒用户[16]。3.5JavaSwing组件和框架Swing包是JFC的一部分,提供了从按钮到列表的所有可视化组件。余永红(2008)认为Swing用轻量级的组件代替了AWT中的重量级组件,并且Swing替代的组件中都包含一些其他的特性Swing为基于窗体的应用程序开发提供了一套精美、丰富的基本组件,以及一个能使用图形用户界面的GUI独立于特定平台的显示框架。用Swing组件设计的程序,比AWT程序更加优美[17]。JoshuaBloch(2008)认为Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定的J2EE服务的可重用业务和数据访问对象,这样可以在不同J2EE环境、独立应用程序、测试环境之间重用[18]。吴亚峰、王鑫磊(2007)认为Hibernate框架能够提8 供基础的对象/关系映射,并支持虽有其他的复杂功能,如缓存,延时加载,主动抓取,分布式缓存等。Hibernate框架已经成为了事实上标准的O/R映射技术,因此在Spring框架中已经对Hibernate框架进行了最深入的集成,他是一个高性能的、开发源码的持久框架,一中对象/关系映射的解决方案[19]。4总结:超市的管理主要还是在流程和商品的管理,而竞争主要是在成本的竞争。通过对中小型超市的分析和研究,采用java平台,SQLServer数据库系统开发一个管理信息系统。可以对超市进行科学和规范的现代化管理,提高工作效率,超市运营决策,降低人力成本有很大的帮助,建立一套适合的管理系统有助于增强市场竞争力。9 参考文献[1]陈晓.我国本土超市现状与发展对策研究[J].科技咨询导报,2007(11).[2]屈道群.浅议中小型连锁超市的困境和出路[J].现代商业,2008(4).[3]黄智萌.中小型超市的现状及发展对策研究[J].湖南工业技术学院报,2009(6).[4]田春兰,钱巍.发展农村连锁超市应注意的问题与对策分析[J].黑龙江科技信息,2008(31).[5]袁作为.小型超市管理系统的分析[J].时代经贸,2008(6).[6]杜锋.基于C/S模式的超市管理系统的设计与实现[D].成都:电子科技大学,2009.[7]罗玉葵.超市会员制客户关系管理分析与对策[J].民营科技,2009(4).[8]鲁春燕,孙娟.浅谈C/S模式和B/S模式的优缺点[J].福建电脑,2008(6).[9]吴迪冲.零售超市进销存管理系统设计与研究[J].长三角,2009(3).[10]王卫强,孙强.中小型超市MIS系统建设中若干问题的分析研究[J].微计算机信息(管控一体化),2007(7).[11]贾蓉生,胡大源,林金池.Java典型应用彻查1000例[M].北京:科学出版社,2009.[12]胡静,吴东成,韩中华,马建宇.SQL定时作业在管理系统中的应用[J].计算机技术与发展,2007(6).[13]叶乃文,王丹.Java语言程序设计教程[M].北京:机械工业出版社,2009.[14]王国辉,吕海涛,李钟尉.Java数据库系统开发案例精选[M].北京:人民邮电出版社,2007.[15]吴亚峰,王鑫磊.精通NetBeans‐Java桌面、web与企业级程序开发详解[M].北京:人民邮电出版社,2007.[16]肖丽杰,曾平.基于C/S结构局域网安全管理系统的开发[J].电子科技,2008(21).[17]余永红.Java程序设计教程[M].北京:机械工业出版社,2008.nd[18]JoshuaBloch.EffectiveJava2Edition[M].Boston:AddisionWesley,2008.[19]ReneBrunner,FelixFreitag.ElaboratingaDecentralizedMarketInformationSystem[D].Barcelona:PolytechnicUniversityofCatalonia,2009. 本科毕业论文(20__届)中小型超市商品管理系统设计与实现 摘要随着社会的发展,人们的生活水平不断地提高,中小型超市遍布城市各个社区,它们繁荣了社会经济,也便利了人们的生活,是人们生活中不可缺少的一部份。同大型超市一样,中小型超市商品的采购、库存、销售等方面的工作,需要一个稳定、可靠的管理系统,因此开发中小型超市商品管理系统具有较好的应用价值。本文首先通过查阅文献和分析已有的类似的系统,并经过了一定的社会需求调研,明确了中小型超市商品管理系统的设计框架,对需要实现的功能模块进行了分析,完成了数据库的规划和设计,并且实现了主要模块的代码编写,系统能够正常运行,对中小型超市商品管理有一定的应用价值。关键词:超市;商品管理;设计I AbstractWiththedevelopmentofsociety,people'slivingstandardsimproved,smallandmediumsizedsupermarketsinvariouscommunitiesthroughoutthecity,themhelpnotonlysocialandeconomicprosperity,butalsofacilitatepeople'slives.Supermarketgoods'sprocurement,inventory,sales,work,etcneedsastable,reliablemanagementsystem,sothedevelopmentofsmallandmediumsupermarketmerchandisemanagementsystemhasgoodapplicationvalue.Thispaperfirstthroughliteraturereviewandanalysisofexistingsimilarsystems,explicitlythesmallandmediumsizedsupermarketmerchandisemanagementsystemframework,thefunctionoftheneedtoimplement.andanalysismoduletocompletetheplanninganddesignofthedatabase,andtherealizationofthemainmodulecoding,thesystemcanfunctionproperly.Keywords:Supermarket;GoodsManagement;DesignII 目录1概述11.1开发背景11.2目的与意义11.3国内发展现状分析22系统分析42.1系统开发环境42.1.1JAVA42.1.2MSSQLSERVER42.2可行性研究52.2.1市场调查52.2.2技术可行性52.2.3经济可行性62.2.4操作可行性62.3需求分析62.3.1需求分析的作用62.3.2功能性需求分析72.3.3非功能性需求分析72.4系统数据流程程分析82.4.1系统整体流程图82.4.2系统数据流图82.5系统数据字典103系统设计133.1总体结构设计133.2功能模块设计133.2.1采购设计133.2.2商品信息设计143.2.3仓库设计143.2.4提醒和统计设计153.3数据库设计153.3.1概念结构设计153.3.2逻辑结构设计17 3.3.3物理设计203.4编码设计214系统实现224.1基本功能的实现224.1.1登录功能224.1.2数据库连接234.2采购模块的实现244.2.1供应商管理244.2.2采购单264.3商品信息模块的实现274.4仓库模块的实现294.4.1采购入库294.4.2商品存货304.5统计和提醒模块的实现314.5.1仓库核对314.5.2缺货报告324.5.3采购计划33结论35参考文献36III 1概述1.1开发背景随着社会的发展,计算机已经被认为是一种高效的管理工具,它在现代企业的管理中发挥着越来越重要的作用,而中小型超市是目前重要的经营模式之一,它在整个商品经营经济中占据着不可替代的作用,信息系统的在超市行业的应用背景也由来已久,但在国内,还有很多小型超市没有应用现代计算机技术来进行管理。随着中小超市规模的发展不断扩大,商品数量不断增加,有关商品的各种信息量也成倍增长。在超市的日常经营中,需要时时刻刻需要对商品各种信息进行统计分析,而大量的超市管理信息造成的繁琐操作降低了中小超市的工作效率。近年来,我国的超市经营者为了进一步提高超市的管理水平和竞争力,也在不断引入管理信息系统。这些形形色色的超市信息管理系统在市场上的盛行程度不亚于其他超市应用,记得几年前很容易在一个电脑市场都能找到卖超市软件的小贩,由此可见,信息系统应用的盛行程度可见一斑。目前超市商品管理系统主要模块包含以下几个方面:系统权限设定、数据录入、数据汇总及查询等。借助计算机运行的高效性,实现对采购、库存及员工信息等实现全面、动态、及时的管理(陈晓,2007)[1]。1.2目的与意义我国经济的每年都保持着高速发展,市场的竞争越来越激烈,消费者对企业产品的质量和服务的要求越来越高,超市行业特别是中小型超市在竞争中面临着极大的考验。如果无法适应这样的竞争环境,超市甚至会面临被淘汰的危险。超市要适应新的竞争环境,就是要在竞争中求生存,在生存中求发展。也就是说,必须提高超市的竞争力和抗风险的能力,加强超市内部的信息化管理水平,借助计算机工具和信息技术,提高内部经营效率,提高管理水平,不断降低管理和运营成本,综合地提高自身的竞争力(黄智萌,2009)[2]。而建立健全一整套完善适用的管理信息系统无疑是实现上述目标的最有力、最简单的手段之一。但是面对市场上品目繁多,质量层次不齐的软件公司,中小企业本身很难抉择。而且鲜有哪家软件公司会考虑超市的特殊状况,因而造成了实施成功率不高,人力、财力浪费严重的现象。中小型超市因此,我对一家在学校里的小超市进行了访问,并由此设计出一套超市商品管理系统,期望能够帮助超1 市经营者提升自身的管理能力和运作效率。1.3国内发展现状分析随着我国综合国力的不断提升,我国的计算机和信息技术已经逐渐和世界水品接轨。但是,还有一部分国内市场小型超市,它们在信息化过程中的步伐要落后于大中型超市,但它们对于自身的资源管理,信息储存以及数据处理也是迫切需要的,要适应市场竞争环境就要有高效的管理方法,因此超市的信息化进程是必不可少的方法。超市作为一种现代的商业零售模式,在整个管理体系中需要用到大量的现代管理技术,系统中各个环节的功能实现和协同性也需依托信息系统来完成。而我国许多中小型超市仍然采用传统的旧模式来管理,这样的管理水平远低于国外的水平,主要体现在门店运营上包括单品管理混乱,无法根据客户的需求进行调整,导致成本过高,利润低下(宁立苗,2006)[3]。国外超市零售业管理信息化相对国内要高很多,黄艳(2009)[4]认为在经济发达国家,计算机管理信息技术已经渗入到各行各业,包括超市行业。美国沃尔玛早在上世纪70年代就为总部和分部引入了计算机管理,80年代为各个连锁店实施了各种信息管理系统,使其进货、仓储、配送、供应等实现了快速可靠、及时准确的信息化管理,让它在40年时间里从一家小小的单体折扣店发展成为世界性的零售业巨无霸,沃尔玛的发展模式有很多地方是值得我国中小超市值得借鉴的地方的。国内零售市场的开放进程骤然加快,超市的竞争也会越来越激烈,与外资企业相比较,国内超市从总体上还处于明显的弱势地位。现在国内各地的超市数量越来越多,一方面向规模大,品种全发展,另一方面,中小型社区超市的发展也呈上升势头。我过目前的中小型超市目前属于发展的初级阶段,商品的品牌和质量,企业的管理水平和经营模式与发达国家相比仍然很落后。我国70%的中小型超市都采用了电子收款机,但还没建立起完整的商品管理系统。在进行企业管理时,很多企业还停留在笔纸管理时代的方式,有些超市虽然配备了电脑,但还没形成系统性的管理,这是制约我国中小型超市的管理水平的原因之一(王旭辉,2007)[5]。我国的超市行业从起步至今,走过了一段艰难的创业期后,现在已经成为全国商业领域各种零售业态中增长最快的业态之一。飞速的增长也带来了日益激烈的竞争,很多超市均已用信息技术来重组和提升自身的竞争力。对于大型超市来说,其资金实力雄厚,在能够负担高额的经济投入的前提下,他们能充2 分利用系统的优点。而对于中小型超市来说,如何在有限的资金条件下,最大化的利用各方面资源达成最高效率,从而产生经济效益,成为中小型信息管理系首先要实现的目标。利用MVC模式进行整个管理信息系统开发的方案,实现用户界面和系统业务的逻辑分离,同时,对业务处理逻辑和数据访问逻辑进一步分离,这种对现实、业务逻辑及数据清楚分离的设计方案,一方面对于开发人员进行角色分工,在定义良好的各部分之间通信接口的基础上,有利于并行开发;另一方面各个部分之间的耦合度很小,在进行拓展和改动时只需对业务逻辑进行重组,不会牵一发而动全身,从而使整个系统具有良好的运行性、可拓展性和易维护性,这样的系统更适合中小型超市(袁宝国,2006)[6]。调查显示:我国零售市场中15%的市场份额由中小超市占领,而大型超市的市场份额也仅约为10%。可见中小型超市在我国具有很大的发展潜力,但是市场份额更大的中小型超市的销售额却比不上大型超市,这其中的原因之一就是中小型超市的信息化程度不高造成的,所以,中小型超市要想在激烈的竞争中存活下来,不仅仅靠一个个微机收银系统来实现管理,而必须建立一个包括进、销、存的完整信息系统来提高自身的竞争力,缩小与大型超市之间的差距。目前我国存在很多超市管理系统,比如维思、思讯、精诚等,但这些系统都不是针对中小型超市开发的系统,由于功能过于复杂和中小型超市使用者计算机水平等原因,不适用与中小型超市。所以要开发一套针对中小超市的商品管理系统必须进行事先针对中小超市的功能、业务等进行分析(贾蓉生,2009)[7]。3 2系统分析2.1系统开发环境2.1.1JAVAJava是一种通过解析方式来执行的语言,它的语法规则和C++相似。同时,Java也是一种平台无关性的编程语言,用Java语言编写的程序,可以运行在任何安装Java环境的平台和设备上,比如IBM的PC、手机平台以及各种微处理器硬件平台,以及Windows、UNIX、Linux、OS/2、MACOS等系统的计算机平台,Java软件编程真正实现了“一次编写,到处运行”。Java非常适用于网络和Internet,目前已经成为Internet中最有影响力、最受欢迎的编程语言之一。Java与目前热门的C++相比,它的语言简洁得多,并且在C++的基础上提高了可靠性,除去了最常见的程序错误问题,此外它还有较高的安全性,可以说是编程史以来最为优秀的编程语言。Java语言编写的程序既属于编译型的,又属于解析型的。程序代码经过编译之后首先转换为一种称为Java字节码的中间语言,然后Java虚拟机JVM将对字节码进行解释和运行。Java可以说是无处不在,它可应用于任何地方、任何领域,它的用户群已经发展到了数百万,这样的发展速度比以往任何语言都要快。Java能给企业带来的利益是无可估量的,Oracle公司董事长和首席执行官LarruEllison说过:Java正在进入企业、家庭和学校。它正在像Internet本身一样成为普遍存在的技术(叶乃文,2009)[8]。2.1.2MSSQLSERVERMicrosoftSQLServer是一个关系型的数据库管理系统。它起初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。Microsoft在推出WindowsNT后专门为其开发了对应的版本;Sybase则专注于SQLServer在UNIX版本上的开发应用。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,它不仅有使用方便、可伸缩性好和与相关软件集成程度高等优点,而且可以在Windows98到Windows2003等多种系统平台中运行和使用。众所周知,SQLServer是一套能够满足目前商业环境下不同类型要求的数据库4 解决方案(余永红,2008)[9]。它是一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。2.2可行性研究2.2.1市场调查可行性分析的基础是对系统的市场调查。我主要对一些学校里、社区里的中小超市进行调查。这个调查主要由分两块:行情调查和信息需求调查。行情调查包括找出类似的超市,对它们现有的经营模式进行统计,以及他们对信息系统的看法,写出对这些超市的经营状况报告,并了解整个超市运作情况,以便帮助分析系统带来的帮助。信息需求的初步调查是通过查询书籍,互联网搜索初步材料。然后深入超市进行调研,并且研究其它超市所用管理系统的功能,以及客户对这些系统功能的认同度(喻问兰,2007)[10]。这里对一家学校里的小超市调查发现:超市有计算机,但是它仅仅起到一个商品记录和利润计算的作用,并没有将超市各个功能连接起来,没有深入到仓库和采购方面进行系统管理。超市的老板对我超市商品信息管理系统没有理解,但是我给他们说明了引入系统管理的方法和好处,他们表示很愿意去实施这样的系统,但是资金的投入是他们最需要考虑的问题。2.2.2技术可行性Javaswing组件是Java的一个特色,它也能够和delphi、vb一样开发出强大的桌面应用程序。目前SUN公司通过对几个版本的修改和拓展后,swing在一些方面和其他的界面开发方式相比具有很大的优势:具有丰富的组件类型集合:swing提供了很多很多的标准组件,它们不仅扩展性良好,还可以选择更多的大量第三方组件。优越的组件特性:swing不仅包含了所有平台上的特性,它还会根据平台的不同而提供不同的而外特性,它们大多易于扩展,能够提供比awt和swt更多的功能。标准的GUI库:swing其实来源于awt,因此他和awt一样是JRE中的标准库,所以你可以不用单独地将他们随你的应用程序分开,他们是与平台无关的。5 版本成熟、开发完善:由于它是用Java实现的,也不会有什么兼容性的问题,swing在每个平台上都有相同的特性和功能,不会有很大的区别。可扩展性和灵活性:swing是基于MVC的结构的,所以它可以发挥java的面向对象的语言的优势(伍明星,2006)[11]。其实,利用javaswing开发一个小型数据库系统并不难,只要你学过基本的java语法,熟悉Java的面向对象基础。用过Vb和delphi的同学可能会被它们的简单的设计用户界面方法所吸引,因仅只需要拖几个控件到窗体上,为每个控件编写event事件就可以简单的实现功能设计。在这里,利用NetBeans开发swing应用程序也丝毫不会逊色于其他开发工具,而且可以设计出更加精美的界面。Swing具有丰富且方便简洁的用户界面元素,且它对于底层平台的依赖更少,利用swing设计的界面一定会给予用户不同于Windows界面的新感觉。2.2.3经济可行性开发适合超市的管理系统,其投入比较小,最主要的费用是系统设计费用:其中包括软件开发费用、管理等。后续的投入相对较小,很长时间内都不会需要进一步投资,维护费用也很少,除非超市的规模扩大需要重新开发。而一套管理系统实际能够起到的作用会远远大于投入的开发费用,管理系统能够给予超市经营很打的帮助。因此开发系统是可行的。2.2.4操作可行性现在的人们已经不会也不愿意去人工管理超市商品了。设计一套管理系统,让超市的所有管理动作都可以在这个系统上完成,这样做既方便有效率。超市经营者都愿意去接受这样的管理方式。因为这样不仅能快速的完成很多费时费力的工作,还可以避免出现很多问题,相信应用管理系统会取得很好的效果。另外,利用系统工具和数据库,统一记录商品,信息和计算销处理数据,产生货物进货管理,可以减少员工的工作量和帮助管理人员规范化管理动作。2.3需求分析2.3.1需求分析的作用需求分析就是把系统规划时期建立的系统可行性分析求精和细化,分析各6 种可能的解决方法,并且设计和分配给各个系统元素。需求分析是系统定义阶段中的最终一步,目的是要确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析是一座在系统分析和软件设计阶段之间的重要桥梁。一方面来说,需求分析以系统规格说明和系统规划为分析活动的起始点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的需求分析活动有助于避免或尽早剔除早期需求上的错误,然而这些错误往往是致命的(向征,2009)[12]。2.3.2功能性需求分析通过一段时间的调查分析,并针对一些已有的超市管理信息系统分析,总结出中小型超市商品管理系统的功能需求:进货单中要包含商品信息,有入库单的编号。库存单中要包含商品信息,可以使用商品表中的商品编号。定期对超市商品进行保质期,库存量进行检查,排除断货或者商品过期的现象。对即将过期的商品进行促销销售活动。超市商品管理的数据库的创建中需要注意各个信息之间的联系。商品信息:包含商品编号、商品名称、商品单价、类别、产地及说明等超市商品种类多而杂,很多大超市还专门设定品类管理,设计到根类,子类等等,商品的单价可以改动,对即将过期商品归类为促销商品。采购信息:包含进货编号、商品编号、单价、数量、采购时间、供应商等。信息查询:包含对商品信息、采购、库存信息等的查询(宗承玉,2007)[13]。2.3.3非功能性需求分析一个信息系统除了超市客户功能需求外,还需要有其他隐性非功能需求,以满足实际经营使用:(1)设置用户登录口令。(2)信息显示简便,易懂。(3)符合目标客户的使用习惯。(4)系统能长时间稳定运行,响应时间短,启动快。7 2.4系统数据流程程分析2.4.1系统整体流程图中小超市的人员组成相对于大型超市要简单,因此,系统根据超市情况把使用者分为两类:一类是操作员,主要负责完成相关业务后数据的收集并录入,操作员在录入数据的过程会使用一些其它的信息,所以系统分配给操作员查询和录入数据的权限。另一类是管理员,管理员的权限要高于操作员,除了操作员的权限外,还可以修改或者删除操作员的数据。管理员可以进行添加供应商和商品,系统更新信息后,操作员根据商品和供应商信息负责采购和入库的工作,操作员完成数据录入后,管理员根据信息进行定期检查,仓库核对,数据有误的进行修改,缺货的通知操作员采购,这样形成一个设计采购和仓库的循环过程,依靠系统进行系统性的管理。系统整体流程图如下(见图1):图1系统整体流程图2.4.2系统数据流图数据流图是一种图形化技术,它具体形象地描述了信息流和数据从输入到8 输出的过程中所经过的变换过程。在数据流图中不会存在物理单位,它只是描绘数据在软件中流动和被处理的逻辑过程。因为数据流图是逻辑系统的图形表示,所以即使不是专业的计算机技术人员也容易理解,所以它是极好的交流工具,软件公司接受业务后,都会要求他们的客户提交相应的数据流图。设计数据流图只需要考虑系统必须完成的基本逻辑功能,这个阶段并不需要考虑如何具体地实现这些功能(杜锋,2009)[14]。中小型超市商品管理系统的用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典。超市商品管理系统数据库商品数据库包含:供应商表、采购表、库存表、类别表、商品表、采购计划表、缺货报告表七个表。供应商表主要存储的数据是供应商数据,可以通过供应商管理来修改、添加、删除其中的数据。采购表主要存储的是采购单的数据,可以通过采购管理来修改、存储数据。库存表存储各商品在仓库的存货量,也包含最佳存货量的信息,是采购计划和缺货管理的基础数据。类别表存储商品类别信息,定义商品所属的品类。商品表存储所有商品的数据,主要通过商品信息模块的商品管理来实现数据的修改、保存。采购计划表和缺货报告表的数据不需要人工的修改和添加删除,它由数据库系统生成的表,主要存储缺货信息和每月的采购计划信息。系统的数据流图根据自顶向下,逐层分解的原则和本系统的特点,绘制出如下顶层图(见图2)。管理操作业务操作员工管理员中小型超市商品管理系统图2系统顶层图在上边顶层图的基础上,根据超市业务数据的传递和加工,绘制出系统0程图(见图3),该图可以更加详细清除地描述系统数据之间的关系。9 图3系统0层图2.5系统数据字典数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录,是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果(吴迪冲,2009)[15]。根据数据流程图,得出中小型超市商品管理系统的数据字典(见表1‐4)。表1数据元素表编号元素类型说明E01商品名称字符商品在系统中的名称E02供应商编号字符商品的供应商的编号E03类别编号字符商品的具体种类E04采购日期日期商品的日期E05商品编号数字商品的编号记录E06入库日期日期入库的具体时间E07商品价格整型商品的价格E08库存量整型商品的剩余库存量10 E09采购价格整型商品的进货价格E10入库数量整型入库的具体数量E11保质期日期商品的保质期E12供应商名称字符商品的供应商的名称E13最佳库存量数字商品在仓库的适合库存量E14采购数量整型采购单中的数量E15计划采购量整型库存和最佳库存的差值E16类别名称字符商品的种类名称E17品类子节点数字商品的子分类表2数据流条目编号说明组成说明D1入库商品E01+E05+E06+E08+E09入库表单填写的入库商品信息D2采购商品E01+E05+E07+E10采购单需要填写的采购商品信息D3缺货信息E01+E08+E13系统产生的缺货报告单D4供应商信息E02+E12新增供应商的信息D5商品信息E01+E03+E02+E11+E07+E02新增商品的信息D6采购计划信息E01+E03+E05+E15系统的计划采购量D7商品品类E01+E03+E05商品分类信息D8核对数据E01+E03+sum(E14)+sum(E10)+E08仓库核对需要的数据D9库存信息E01+E03+E05+E13+E11+E08仓库中商品的数据信息表3数据存储编号存储名组成说明F1商品信息表E01+E05+E02+E09商品表中的信息F2入库单信息E01+E05+E09+E02+E08入库单中的信息F3采购单信息E01+E05+E14+E02采购单的信息11 F4缺货管理E01+E08+E13qhbg表中的信息F5采购计划E01+E15采购计划中的信息F6供应商信息E01+E05+E02+E12供应商的信息表F7品类表E03+E16+E17保存品类信息F8库存表E03+E05+E01+E08+E13仓库中的商品存货情况表4处理逻辑编号名称说明P1采购单管理采购单的修改,添加和删除P2商品信息管理商品信息查询,可以连接存货表获取更多信息,并修改删除相关信息。P3缺货提醒当存库存表中商品的数量过低时产生缺货信息P4入库单管理入库单信息的修改和删除P5采购计划系统依据最佳库存和实时库存生成的采购计划单P6供应商管理商品的供应商信息P7品类管理商品的品类管理P8仓库核对根据每月的采购和入库信息核对库存信息P9库存管理管理仓库中商品的信息,如保质期、库存量等等P10应急采购主要是针对库存量为零时的临时采购12 3系统设计3.1总体结构设计根据系统分析的成果进行中小型超市商品管理系统的总体结构设计。结合中小超市日常业务需求,设计了如下接个模块,各模块之间区分明确,用具结构图来描述系统模块划分如下(见图4)。中小型超市商品管理系统商品信息管理系统提醒与统计仓库管理采购管理商品管理供应商管理品类管理采购计划缺货管理库存单管理入库单管理仓库核对采购单管理应急采购图4系统结构图3.2功能模块设计3.2.1采购设计采购设计模块主要负责采购业务流程的处理,我希望中小型超市能够借助这套系统来规范自己的采购流程,按照采购计划来采购货物。首先管理员根据库存情况制作一张采购单,根据采购单完成采购动作后,打开采购设计模块,输入相关商品信息,经过采购模块的销售处理和存货量和销售量的处理,经过汇总和处理,得出仓库报表、缺货提醒,或者仓库核对(见表5)。13 表5采购模块设计系统名称:超市管理系统模块名称:采购设计输入处理输出商品相关信息供应商信息日常采购处理采购单管理采购单商品信息3.2.2商品信息设计商品信息设计模块主要负责商品的信息查询和更新模块。具体功能为:按上架商品查询,按总类查询,所有商品查询,添加删除商品。任何一项动作都涉及到表中的商品表,由这张表和相关的查询连接来获取用户所想要的商品信息(见表6)。表6商品信息模块系统名称:超市管理系统模块名称:商品信息查询与更新输入处理输出查询条件供应商管理更新后的商品信息商品信息商品管理更新后的供应商信供应商信息查询息查询结果3.2.3仓库设计仓库设计模块负责商品的库存管理,它设计到采购销售和系统提醒。采购模块完成采购业务处理后,给据采购单的具体数据修改存货表。SQLSERVER中的定时作业每天都会检查存货表中的商品库存量和保质期,当这两项存在异常时,会产生系统日志提交给系统统计和提醒模块来提醒管理员。这个模块的功能,比如商品的存货管理、入库管理等等,设计的内容多,所以比较重要,一般由管理员进行定期的仓库和对,确保仓库的商品信息一目了然,可以说一个超市只要把仓库管理好了,超市商品管理就基本到位了,因为其它模块的功能都是基于仓库为后台的。14 表7仓库模块统系统名称:超市管理系模块名称:库存管理输入处理输出入库商品信息存货商品管理更新的存货数修改的入库单数据入库单管理据存货数据日常入库更新的采购单3.2.4提醒和统计设计设计提醒和统计模块的目的是为了随时提醒管理员某些商品的存货量低于事先设定的最低值,或者某些商品的保质期已经到了。点开相应的商品可以查看到具体的商品情况。采购、销售和存货量的情况每月都会由SQLSERVER定时作业设置相应的命令进行统计和汇总,生成每月的销售、库存、采购报表,用以提供具体的经营管理数据(见表8)。表8提醒和统计模块系统名称:超市管理系统模块名称:提醒和统计输入处理输出系统数据缺货提醒过期提醒缺货提醒日志过期提醒日志3.3数据库设计3.3.1概念结构设计概念结构设计是整个数据库设计的关键,它能通过对需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型在概念结构设计阶段,所用的代表工具主要是E-R图,它实质上就是根据现实世界客观存在的事物及其关系所给出的语义要求,组合基本E-R图形为E-R模型。在构造概念数据模型时要注意以下几点:应充反映现实世界中实体与实体之间的联系;满足不同用户对15 数据处理的要求;易于理解,可以和用户交流;易于更改;易于向关系模型转化。概念结构是DBMS所用数据模型的基础,是数据库设计过程的关键步骤之一(刘仲英,2006)[16]。通过对系统进行的需求分析、流程设计以及系统功能结构的确定和E-R图的了解,绘制了中小型超市管理系统的E-R图(见图5-7)。商品信息编码名称单价分类供应商保质期图5商品信息供应商说明编码名称图6供应商信息库存商品最佳库存供应商库存量分类名称图7存货信息综合各个实体之间的联系如下(见图8):16 编码供应商仓库nn商品说明名称n供应1入库库存保质期名称编号分类名称编码供应商单价图8系统E-R图3.3.2逻辑结构设计逻辑结构设计的任务是系统地运用管理知识、计算机知识以及系统分析与设计的理论和方法在基础设计的前提下构思新的信息系统流程,按照具体说法就是把概念机构设计好的基本E-R图转化为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。逻辑结构是独立于任何一种数据模型的,一般所用的数据库环境已经给定。由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系型,然后根据具体DBMS特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化(吴亚峰,2007)[17]。根据本系统的总体设计的E-R图,以及转换的步骤,在保证数据库基本设计范式的基础上,对应用系统的数据库的逻辑结构进行设计,设计生成的关系数据表共8张,下面分别对8张表进行功能定义(见表9-16):gyshang表(供应商表):记录为供应商行业、提供商品、价格等等信息。shangpin表(商品表):主要记录商品相关信息。qhbg(缺货报告表):主要记录日常销售商品的订单相关信息。fenlei表(品类表):主要记录商品所涉及到的种类信息。cunhuo表(库存表):主要记录商品在仓库中的存货信息。caigou表(采购单表):主要记录采购单的相关信息。ruku表(入库单表):主要记录系统的入库单中的相关信息。cgjh表(采购计划表):系统生成的采购计划。17 表9供应商定义字段名描述数据类型长度NULLSupply_Name供应商的名称Varchar20NSupply_ID供应商的编号Varchar2Supply_Des供应商描述Varchar100表10商品表定义字段名描述数据类型长度NULLGood_Name商品名Varchar20NGood_ID商品编号Varchar5NGood_BZQ商品保质期Datetime8Supply_Id商品供应商Varchar2Kind_Id商品分类Varchar2Good_Num商品库存Int3表11分类表定义字段名描述数据类型长度NULLKind_name分类名称Varchar10NKind_ID分类编号Varchar2NKind_sub子节点Varchar2表12缺货表的定义字段名描述数据类型长度NULLGood_Name商品名称Varchar20Good_Id商品标号Varchar5NGood_Num库存量Int3N18 表13存货表定义字段名描述数据类型长度NULLGood_Name商品名称Varchar20Good_ID商品编码Varchar5NGood_Num商品存量Int3NGood_Bes最佳库存量Int3NGood_SupID供应商编号Varchar2NKind_Id商品分类Varchar2表14采购单表定义字段名描述数据类型长度NULLBuy_Id采购单编号Varchar9NGood_Name商品名称Varchar20Good_ID商品编号Varchar5NBuy_Pri采购价格Int3Buy_Dat采购日期Datetime8Buy_Num计划的采购量Int3NSupply_ID供应商编号Varchar2表15入库单表定义字段名描述数据类型长度NULLRu_Id入库单编号Varchar9NBuy_Id采购单编号Varchar9NGood_Name商品名称Varchar20Good_ID商品编号Varchar5NRu_Dat入库日期Datetime8字段名描述数据类型长度NULLCgjh_Id采购计划编号Varchar9NGood_Id商品编号Varchar5NGood_Name商品名称Varchar2019 Cgjh_Num计划采购量Int5Cgjh_Dat计划日期Datetime8表16采购计划定义3.3.3物理设计数据库的物理设计就是把设计好的逻辑结构建立在特定的数据库管理系统中,同时建立视图、索引等数据库对象。为逻辑结构选取最适合应用环境的物理结构,包括存储结构和存取方法。它主要依赖于给定的计算机系统。在进行物理设计时主要考虑数据存储和数据处理方面的问题。数据存储是确定数据库所需空间的大小,以尽量减少空间占用为原则。数据处理是决定操作次数的多少,应尽量减少操作次数,使响应速度越快越好。根据以上原则,中小型超市商品管理系统做到以下几点:(1)为特定的操作开辟缓冲区或临时文件,比如缺货报告表,这次生成缺货表会以临时表的形式保存,直到这些缺货信息被阅读后,才会被删除。这样可以避免多次重复查询库存表中的缺货商品。(2)添加和删除是只对特定表的进行操作,比如删除商品信息是直接在商品表和库存表中删除,而不会删除在缺货表、核对表中的记录。(3)采购单和入库单的记录条数是按次计算的,也就是每次采购和入库可以有多种商品。每条记录记录多条商品的信息。这样可以减少采购表和入库表的总记录条数。在查询采购表和入库表的时候提高效率。下面是商品表SQL设计:USEchaoshicreatetableshangpin(Good_NameVarchar(20)notnull,Good_IdVarchar(5)primarykeynotnull,Good_BZQDatetime(8),Suply_IdVarchar(2),Kind_IdVarchar(2)foreignkeyreferencekind.Kind_Id,Good_Num_Int(3),);go存货表的设计:20 createcunhuo(Good_NameVarchar(20)foreignkeyreferenceshangpin.Good_Name,Good_IdVarchar(5)primarykeyforeignkeyreferenceshangpin.Good_Id,Good_NumInt(3)notbull,Good_BesInt(3)notbull,Kind_IdVarchar(2)foreignkeyreferencekind.Kind_Id);采购单的设计:createcunhuo(Buy_IdVarchar(9)primarykeynotnull,Buy_NameVarchar(20),Good_IdVarchar(5)foreignkeyreferenceshangpin.Good_Id,Buy_PriInt(3)notnull,Buy_DateDatetime(8),Buy_NumInt(3)notnull,Supply_IdVarchar(2)foreignkeyreferencegongyingsh.Supply_Id);3.4编码设计编码是用来表示事物名称、属性和状态的计算机符号。在管理信息系统中,它主要起到信息分类、校对、统计和检索的作用。编码设计就是设计出一套能够为系统各模块公用的优化的编码系统。超市管理系统的代码设计,主要遵循以下原则(见表17):(1)唯一性:每一个代码都仅代表一个属性或实体(2)短小精悍:代码的长度不会占据存贮单元和信息处理速度,也不会影响代码的输入错误。(3)便于识别和设计:同时适应计算机和人工处理,简单明了(安境,2008)[18]。编码信息长度规则说明商品编号5xx‐xxx分类编号+顺序编码种类编号2xx非含义码供应商编号2xx非含义码入库单编号9xx‐xx‐xxxxx日期+顺序采购单编号9xx‐xx‐xxxxx日期+顺序21 存货单编号7xx‐xxx引用商品表编号采购计划编号9xx‐xx‐xxxxx日期+顺序缺货报告单编号9xx‐xx‐xxxxx日期+顺序表17代码设计22 4系统实现4.1基本功能的实现4.1.1登录功能任何一个信息系统,都应该有口令登录的功能,以防止信息外露,但考虑到中小型超市基本上没有太大的人员规模,不涉及到人员管理,因此,系统只需简洁地完成登录功能就好,因此也不用用户表中添加什么额外的信息,只需把密码集成到程序中就行了(见图9):部分代码:图9登录窗口publicclassdengluextendsFrameimplementsActionListener{JButtonbtn,btn1;JLabeljlab1,jlab2;denglu(){JFrameframe=newJFrame("登陆");frame.setLayout(null);frame.setLocationRelativeTo(null);frame.setVisible(true);JPanelpnl=newJPanel();btn=newJButton("取消");btn1=newJButton("确定");jlab1=newJLabel("用户:");22 jlab2=newJLabel("密码:");JTextFieldjt1=newJTextField(8);JPasswordFieldjt2=newJPasswordField(8);add(btn);add(btn1);frame.add(btn);frame.add(btn1);frame.add(jlab1);frame.add(jlab2);frame.add(jt1);frame.add(jt2);pack();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}})};4.1.2数据库连接JDBC:JavaDataBaseConnectivity(Java数据库连接技术),它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API‐它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成)。有了JDBC从而可以使Java程序员用Java语言来编写完整的数据库方面的应用程序。另外也可以操作保存在多种不同的数据库管理系统中的数据,而与数据库管理系统中数据存储格式无关。同时Java语言的与平台的无关性,不必在不同的系统平台下编写不同的数据库应用程序(黄明,2009)[19]。中小型超市商品管理系统的数据库连接是通过Microsoft的JDBC驱动连接的。要保证系统稳定的运行,数据库的连接是关键。每次系统启动时都会检查SQLSERVER数据库连接是否正常,并给出相应的警告。数据库连接测试代码:23 publicclasslianjie{publiclianjie{try{Class.forName("com.microsoft.jdbc.sqlServer.SQLServerDriver");System.out.println("注册数据库驱动程序成功!");Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlServer://localhost:1433;DatabaseName=chaoshi;User=sa;Password=123");System.out.println("数据库连接成功!");}catch(Exceptione){jlab.text:="数据库连接失败!";e.printStackTrace();}}}4.2采购模块的实现4.2.1供应商管理供应商管理这个界面主要有供应商信息的查询,添加或删除供应商,以及供应商的商品信息修改保存。包括表中的内容都可以随时的修改,点击保存按钮完成编辑。要添加供应商,点击添加按钮,字符框自动清空,输入信息后点击保存就完成添加了。这里对应数据库中的gyshang表,用于记录所有供应商的信息(见图10)。24 部分代码如下:图10供应商管理publicvoidAddgysh()throwsException{gysname=jTextField1.text;gysid=jTextField2.txt;gysdes=jTextAera1.text;StringStr="Insertintogyshang(Supply_Name,Supply_ID,Supply_Des)values('"+gysname+"',"+gysid+"',"+gysdes"')whereSupply_ID=gysid";DBConnectdbc=newDBConnect();dbc.executeUpdate(Str);dbc.close();}/添加供应商publicvoidEditgysh()throwsException{gysname=jTextField1.text;gysid=jTextField2.txt;gysdes=jTextAera1.text;StringStr="UpdategyshsetSupply_Name='"+gysname+"',Supply_ID="+gysid+",Supply_Des="+gysdes+"Supply_ID="+gysidwhereSupply_ID=gysid";DBConnectdbc=newDBConnect();dbc.executeUpdate(Str);dbc.close();}/编辑供应商25 4.2.2采购单每一笔销售记录都会生成一张订单,详细记录采购商品的数量、价格等。Java中主要设计了Addcaigou、Editcaigou、Delcaigou三个方法来实现对应的新增、修改、删除操作。系统的采购单每一张可以有不同的数量和商品,但是只能有一个供应商。就是说采购单是按照供应商和日期来填写的,而不是商品的种类和数量。要新增采购单,点击新增,在表格上方输入基本数据,在表格里直接输入采购商品信息,点击保存即可(见图11):部分代码如下:图11采购单处理publicvoidEditcaigouthrowsException{caigouid=jTextField1.text;caigougysh=jTextField2.textshangpinid=jTextField3.text;caigounum=jTextField4.text;caigoupri=jTextField5.text;caigoudate=jTextField6.text;StringStr="UpdatecaigousetBuy_Id='"+caigouid+"',Buy_Id="+shangpinid+",Buy_Num="+caigounum+",Buy_pri="+caigoupri+",Buy_dat='"+caigoudate+"'whereSupply_ID=gysid";26 DBConnectdbc=newDBConnect();dbc.executeUpdate(Str);dbc.close();}publicvoidAddcaigouthrowsException{caigouid=jTextField1.text;caigougysh=jTextField2.textshangpinid=jTextField3.text;caigounum=jTextField4.text;caigoupri=jTextField5.text;caigoudate=jTextField6.text;StringStr="Insertintocaigou(Buy_Id,Supply_id,Buy_Id,Buy_Num,Buy_pri,Buy_dat)values('"+caigouid+"',"+caigougysh+"',"+shangpinid+",'"+caigounum+",'"+caigoupri+"',"+caigoudate"')whereSupply_ID=gysid";DBConnectdbc=newDBConnect();dbc.executeUpdate(Str);dbc.close();}4.3商品信息模块的实现这个模块的功能就是查询和管理现有商品的信息,添加、删除、修改等。其中还涉及到供应商。要对商品信息进行修改,可以先查询商品中找到该商品。查询方式可以有很多种,按种类、按编号、按名称、按供应商,这样随着超市商品的增多,查询效率不会下降。找到商品后可以在相应的表中修改信息(见图12)。27 图12商品查询部分代码如下:StringBufferchaxun=newStringBuffer();chaxun.append("selectGood_Name,Good_Pri,Good_BZQ,Good_SHJ");chaxun.append("fromGood");Chaxun.append("whereGood_Namelikes"+JtextField1.text);Connectioncon=Config.getConnectionPool();PreparedStatementpStmt1=con.prepareStatement(chaxun.toString());ResultSetrs=pStmt1.executeQuery();Objectvalue=null;if(rs.next())value=rs.getObject(1);/按商品名称查询各种查询方法大同小异,就是查询语句的不同,上面按照名称查询是通过likes关键字查询,如果是按照编号查询的话,需要把SQL语句改成:selectGood_Name,Good_Pri,Good_BZQ,Good_SHJfromshangpinwhereGood_Id=JtextFied2.text;按照供应商查询,只要更改搜索条件。selectGood_Name,Good_Pri,Good_BZQ,Good_SHJfromshangpinwhereGood|_Supid=JtextFied3.text;28 4.4仓库模块的实现4.4.1采购入库采购入库需要填写入库单,系统的每一张入库单都需要有与之对应的采购单,讲究业务的对接性,确保系统不会出现下达了采购单,但是没有商品入库和没有下达采购单,但是多出一笔入库单的现象。已有的入库单会在左侧列表框中显示,点击相应的选项进行修改操作,新增直接输入采购单,并在右侧表中输入信息后点击保存(见图13)。部分代码如下:图13入库单publicvoidAddrukuthrowsException{caigouid=jTextField1.text;rukuid=jTextField2.text;StringStr="Insertintorukudan(Good_Id,Good_Name,Ru_Num,Ru_Dat)values('"+"',"+"',+",'"",'")whereRuku_Id=rukuid";DBConnectdbc=newDBConnect();dbc.executeUpdate(Str);dbc.close();}按照上述代码的方法填写入库单,管理员只要从左侧列表框选择入库单号,就能在右侧表中查询入库情况。可以很简洁地查看每笔入库单具体入了多少种商品,多少数量[21]。29 4.4.2商品存货商品存货表是最重要的表,里面记录了仓库中所有商品的所有信息,供应商查询,甚至包括缺货报告等相关信息都来自或间接来自这张存货表。商品有个保质期的字段,系统用它来判断商品是否过期。表中的存货数量代表了该商品的目前存货量,所有商品的低库存量为20,存货量低于这个数时,系统提醒该商品为低库存量商品。我为这张表的查询专门设计了一个界面,用以查看存货信息(见图14)。图14存货单部分代码如下:Connectioncon=DriverManager.getConnectio(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=chaoshi,"sa","123");Statementsmt=con.createStatement;StringselCode="selectGood_Id,userNamefromUserTable";ResultSetrs=smt.executeQuery(selCode);if(rs.last()){StringuserId=rs.getString(1);StringuserName=rs.getString(2);System.out.println(userId+":"+userName);}rs.close();smt.close();con.close();30 4.5统计和提醒模块的实现4.5.1仓库核对在计算机没有出现以前,人们都是用纸和笔来记录和统计数据,就比如民间的豆腐账,将自己每天的帐记在本子上,每月进行汇总计算,这样的方式很难检查和修改,因为它几乎只有记账的人才能理解,况且仓库具有的空间是非常有限的,用于储存物品,并根据储存物品的特性按照一定的顺序和数量采购保存,以保持超市的正常运行是非常重要的。如果一个超市不计成本,所有商品仅凭销售人员的经验去采购,那么后果是要么采购数量过多,造成仓库堆积,成本过高,特别是一些保质期短的食品,更不容易保存,如果未及时售完,就造成更大的浪费成本。要么数量不够,可能当月中旬某些商品就出现断货了。当计算机出现以后,人们利用计算机处理数据,并设计出相应的界面来展示和宣传报表。核对的目的在于提高数据处理效率。本系统设计仓库核对的功能目的也在这里,为了能够快速统计每月份的采购和库存信息,即使出现差错了,也可以回头在相应的采购单和入库单中修改(见图15)。图15仓库核对计算采购总和的SQL语句:selectsum(Buy_Num)ascaigousumfromcaigouwhereBuy_Dat>110301001andBuy_Dat<110401001在Java中发送并执行SQL语句,用IF语句判断采购总和与入库总和是否相等。31 Connectioncon=DriverManager.getConnection(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=chaoshi,"sa","123");Statementstmt=con.createStatement();ResultSetrs1=stmt.executeQuery("selectsum(Buy_Num)ascaigousumfromcaigouwhereBuy_Dat>110301001andBuy_Dat<110401001");Caigousum=rs1.getString("caigousum");ResultSetrs2=stmt.executeQuery("selectsum(Buy_Num)ascaigousumfromcaigouwhereBuy_Dat>110301001andBuy_Dat<110401001");rukusum=rs2.getString("rukusum");ifrukusum!=caigousumthenJtextField1.text:="采购量和库存量不相等!";4.5.2缺货报告在涉及到商品管理的行业中,超市行业的管理最难,因为它的商品种类多而杂,需求量小单批次多。特别是一些中小型超市的管理相对滞后,经常出现断货的现象。那么针对这样的情况,本系统数据库后台采用了SQLSERVER,只需在SQLSERVER的定时作业功能中增加几句SQL语句,就能让让系统自动定时检查存货量,发现有商品的困存量过低的话,就提早提醒经营者制定采购计划,确保不会出现断货现象(胡静,2007)[20]。系统首先在SQLSERVER的自动作业中指定时间里的自动作业命令,具体命令如下(见图16):SelectGood_Id,Good_Name,Good_Num,Good_SupintoqhbgFromcunhuowhereGood_Num<20SelectGood_Id,Good_Name,Good_Num,Good_SupintoqhbgFromcunhuowhereGood_Num=032 图16作业制定当某商品的存货量不足时,数据库系统自动作业会检查出信息,并会将这缺货商品的信息记录在qhbg这张表中,超市管理员在打开界面时能看到如下图的报告(RobHarrop,2008)[20](见图16):图16缺货报告4.5.3采购计划不管超市规模大小如何,应该定期地制定采购计划,及时采购入库,确保到月中旬不会出现仓库缺货需要紧急采购的情况,但也不能随意采购,因为这样对导致仓库商品的堆压,特别是一个保质期短的商品。一堆压就过期,过期就浪费了。这里系统有个采购计划的功能,主要通过SQLSERVER定时作业计算最佳库存量帮助经营者快速制定采购计划。这里涉及到一个存货表中的最佳33 库存量的值,需要经营者提前输入系统的初始数据,通过最佳库存量和现有存货量的差值来确定采购计划,公式如下:S=A-P其中,p代表现有存货量,A为最佳库存量,S就是计划采购量了。对于超市经营者来说,每种商品每月能售出多少,他们最清楚了。通过这个公式确定出来的计划采购量很适合,这样避免了盲目采购,把库存成本降至最低[22(]见图17)。SQL代码如下:图17采购计划SelectGood_Id,Good_Name,Good_Num,Good_besNum,Good_besNum-Good_Numas计划采购量intocgjhfromcunhuo让数据库系统选择相应的数据,并按照公式计算计划采购量(RobertEckstein,2009)[21]点击刷新,实际上进行数据库数据的重新读取,按钮的点击事件代码如下:privatevoidjButton1MouseClicked(java.awt.event.MouseEventevt){Connectioncon=DriverManager.getConnection(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=chaoshi,"sa","123");Statementstmt=con.createStatement();ResultSetrs1=stmt.executeQuery("selectGood_Id,Good_Name,Good_Num,Good_besNum,Good_besNum-Good_Numas计划采购量intojhcgfromcunhuodan");}34 结论中小型超市商品管理系统与其它同类管理系统相比,并没有太多、太复杂的功能,但它具备超市商品管理系统应该有的管理功能。采用SQLSERVER和JDBC数据库连接技术,能够保证系统和数据库的稳定、安全,而且采用JDBC技术比ODBC桥接等其它数据库驱动技术来得更效率。本系统主要分为采购、库存提醒和统计、商品信息四个大模块,涉及了中小型超市日常经营功能。各个模块之间设计这个系统的目的就是希望通过计算机计算的高效性取代繁杂人工计算。SQLSERVER的定时作业功能,设定每天定时检查商品表中的保质期字段和存货表中存货量字段的值,为该系统提供了保质期过期提醒和商品库存过低或为零的提醒。这让超市经营者剩去了每天人工检查的时间和精力。系统中一些需要修改数据的地方,比如采购单改和入库单修改,可以直接在表中修改,这样的好处是方便,当时也容易误改,这就要求管理员每周采购报表和入库报表的数量进行校对。总的来说,本系统较适合小乡镇地区的中小超市使用,能够有效的提升这些超市经营者的管理水平。35 参考文献[1]陈晓.我国本土超市现状与发展对策研究[J].科技咨询导报,2007(11).[2]黄智萌.中小型超市的现状及发展对策研究[J].湖南工业技术学院报,2009(6).[3]宁立苗.国内中小型超市竞争战略及典型案例研究[D].昆明:昆明理工大学,2006.[4]黄艳.中小型超市进销存管理系统[D].成都:电子科技大学,2009.[5]王旭辉.社区超市发展现状分析与对策探讨[J].科技资讯,2007(9).[6]袁宝国.MVC模式在中小型超市信息管理系统中的应用[J].计算机应用与软件,2006(9).[7]贾蓉生,胡大源,林金池.Java典型应用彻查1000例[M].北京:科学出版社,2009.[8]叶乃文,王丹.Java语言程序设计教程[M].北京:机械工业出版社,2009.[9]余永红.Java程序设计教程[M].北京:机械工业出版社,2008.[10]喻问兰.浅谈高校超市管理[J].科技信息,2007(10).[11]伍明星,郑多玲.基于Java的超市管理系统的开发与研究[J].科技情报开发与经济,2006(11).[12]向征.超市管理信息系统的设计与实现[J].软件导刊,2009(4).[13]宗承玉.超市管理理念对图书馆管理理念的对冲效应[J].新世纪图书馆,2007(10).[14]杜锋.基于C/S模式的超市管理系统的设计与实现[D].成都:电子科技大学,2009.[15]吴迪冲.零售超市进销存管理系统设计与研究[J].长三角,2009(3).[16]刘仲英.管理信息系统[M].北京:高等教育出版社,2006.[17]吴亚峰,王鑫磊.精通NetBeans‐Java桌面、web与企业级程序开发详解[M].北京:人民邮电出版社,2007.[18]安境.轻松学用JAVA2[M].北京:电子工业出版社,2008.[19]黄明,梁旭.java信息系统设计与开发实例(第二版)[M].北京:机械工业出版社,2009.[20]胡静,吴东成,韩中华,马建宇.SQL定时作业在管理系统中的应用[J].计算机技术与发展,2007(6).[21]RobHarrop,JanMachacek.ProSwring[M].北京:电子工业出版社,2008.[22]RobertEckstein,DaceWood.JavaSwing[M].北京:O’Reilly&Associates,2009.36