超市库存管理系统

更新时间:2024-05-21 09:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

四川大学锦江学院计算机学院

毕业论文(设计)

题 目 超市库存管理系统

系 部 计算机科学与技术

专 业

学生姓名

学 号 090512024

指导教师 叶晓鸣

第 1 页

四川大学锦江学院计算机学院

超市库存管理系统

计算机学院计算机科学与技术2009级(2)班

【摘 要】超市库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

本系统主要完成对超市的管理,包括进货管理,销售管理,库存管理和员工管理四个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。

系统的核心是销售、库存查询和进货管理三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成销售或进货操作时系统会自动地完成相对应信息的修改。查询功能也是系统的核心之一,在系统中主要根据商品编号和商品名称等进行查询,其目的都是为了方便用户使用,以求更快的查找到各个物料和产品品质的基本信息。系统有完整的用户添加、删除和密码修改功能,系统采用MySql来设计数据库,并使用当前优秀的开发工具—MyEclipse ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。

论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思想、难点技术和解决方案。

【关键词】: 数据库 超市 信息系统 库存管理

Supermarket Stock Manage System

第 2 页

四川大学锦江学院计算机学院

Abstract

This system chiefly accomplishes the stock management to the storehouse, includes being put in storage, goes out the warehouse and stocks, and staff’s information, six aspects such as supplier's information as well as cryptogram management etc. What the system can accomplish to various kind the information glances over and the function such as inquires about ads, deletes and modification etc.

The systematic nucleus is put in storage, stocks and goes out the contact between the warehouse, and when accomplishes being put in storage or going out a warehouse, the system can accomplish voluntarily the modification of stock to other table of influence that the modification of every table all will be link geed when operating. Inquiring about the function also is one of systematic nucleus, namely having the wall scroll spare to inquire about and inquires about with many conditions in the system, also having accurately the query to inquire about with blurring, not only there is the condition query of static state in the system, also having the condition query of trends formations, his purpose all is using for convenient user. The system has complete user to add, deletes and the cipher modification function, and has the report form and prints the function. The Access 2000 that the system adopted among Microsoft Office comes the design data warehouse, and use before one Zorach development tool - MyEclipse, it has the most nimble data base structure, and the application has the good support to the data warehouses.

The development background of this the subject, course of function and the development that will be accomplished were chiefly introduced to thesis.

The emphatic explanation focal point of systems design, design thought and difficult point technology and settlement scheme.

Key words: data base supermarket information system Stock manage

目 录

第 3 页

四川大学锦江学院计算机学院

第1章 绪 论 ................................................................................................ 6 1.1系统开发背景和选题意义 ................................................................. 6 1.2 国内外研究现状 ............................................................................... 7 1.3 研究思路和方法 .............................................................................. 10 1.4 研究框架和主要研究内容 .............................................................. 10 第2章 系统相关技术概述 ......................................................................... 11 2.1 MySql简介 ........................................................................................ 11 2.2 MyEclipse 8.5简介 ........................................................................... 11 2.3 Struts2框架结构及工作原理 ........................................................... 12 2.4 Hibernate概述 ................................................................................... 13 2.5 Spring 概述 ....................................................................................... 13 2.6 JSP技术............................................................................................. 15 第3章 系统设计.......................................................................................... 16 3.1需求分析............................................................................................ 16 3.2 系统分析......................................................................................... 17 3.2系统资源需求 ................................................................................... 18 3.3 组织机构图 ..................................................................................... 19 3.4业务流程图........................................................................................ 19 3.5数据流程图........................................................................................ 20 3.6 功能模块的设计 ............................................................................ 22 3.7数据库设计........................................................................................ 23 3.7.1数据库设计 .............................................................................. 23 3.7.2 数据库表 ................................................................................. 24 第4章 详细设计与实现 ........................................................................... 29 4.1主界面模块设计 ............................................................................... 29 4.2 系统管理模块设计 .......................................................................... 30 4.3 交易管理模块设计 .......................................................................... 34 4.3.1 进货登记 ................................................................................. 34 4.3.2 销货登记 ................................................................................. 35 4.3.3 退货登记 ................................................................................. 36 4.4 查看数据表模块设计 ...................................................................... 43 4.4.1 查看厂商数据表 ..................................................................... 44 4.4.2 查看进货表 ............................................................................. 45 4.4.3 查看现存商品表 ..................................................................... 45

第 4 页

四川大学锦江学院计算机学院

4.4.4 查看销货表 ............................................................................. 46 4.4.5 查看退货表 ............................................................................. 46 4.5.6 查看员工表 ............................................................................. 47 4.5 进货统计模块设计 .......................................................................... 50 4.5.2 本月进货统计 ......................................................................... 51 4.5.3 本季度进货统计 ..................................................................... 51 4.5.4 今年进货统计 ......................................................................... 52 4.6 销货统计模块设计 .......................................................................... 52 4.6.1 今日销货统计 ......................................................................... 52 4.6.2 本月销货统计 ......................................................................... 53 4.6.3 本季度销货统计 ..................................................................... 53 4.6.4 今年销货统计 ......................................................................... 54 第5章 系统测试........................................................................................ 54 5.1系统测试............................................................................................ 55 5.1.1测试登录页面 .......................................................................... 55 5.1.2测试进货登记 .......................................................................... 56 5.1.3用户退出系统 .......................................................................... 57 参考文献 ........................................................................................................ 58 结束语 ............................................................................................................ 59 致谢 ................................................................................................................ 60

第 5 页

四川大学锦江学院计算机学院

第1章 绪 论

1.1系统开发背景和选题意义

随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市进销存管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。 作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法。

当今社会在不断进步,科学技术和管理也在迅速发展,世界经济正在从工业经济向知识经济转变,我们说知识经济的两个重要特征就是信息化和全球化,要实现信息化和全球化,就必须依靠完善的网络和完善的数据库。在这样一个飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境。面对此番形势,在手工管理的情况下,管理人员很难对进货量及库存量进行良好的控制,商品的供求信息很难正确得到,各部门之间的通讯也经常不畅通,这在激烈竞争的市场中是非常不利的。超市库存管理系统就是在这种状况下出现的,它利用计算机的技术,使得超市进货、库存和销售能够有机结合起来,提高超市的效率和效益,而且超市在客观性、时效性、科学性等方面抢得了先机,为运用现代化手段管理超市提供了保证,使超市的人、财、物最大限度地发挥了效益,杜绝了商品购、销、存多方面的漏洞。因此,针对中小型超市,我选择了超市进销存管理系统设计题目。

第 6 页

四川大学锦江学院计算机学院

1.2 国内外研究现状

目前国外拥有先进的信息技术系统 。在传统的库存管理系统中,管理库存主要是通过企业的MIS系统来实现的。近几年,无线技术、协同合作、供应链等为仓储式连锁超市的库存管理提供了更好的技术平台。 2.无线库存货位管理系统。由于仓储式连锁超市经营面积大,商品品种繁多,对开放式货架上的商品进行实时的数量管理是难以做到的,但可以进行商品的货位管理。当货物被摆上货架时,用无线设备同时扫描商品条码和货架条码,并将商品的货位信息传送到中央数据库。非常方便地利用无线终端来管理和查询商品的货位信息,便于订货和盘点,这种无线库存货位管理系统将会为仓储式库存管理带来极大

便

3.供应商管理库存。一直以来,流通领域的各企业都是各自管理自己的库存,供应链的各环节也都有各自的库存策略,其结果是不但各个企业的库存水平很高,而且整个供应链的库存也很大,这是由于需求的放大作用造成的。为了提高供应链各企业的竞争能力和快速反应能力、降低库存水平,可采用供应商管理库存(Vendor Managed Inventory, VMI)等技术

近几年,借鉴国外的管理模式,我国的仓储式连锁超市有了一定的发展。但是,由于我国的市场环境与国外不同,在库存管理系统的应用上出现了不少问题。

1.

连锁超市库存管理中最核心的业务流程是采购流程和配送流程。国外的连锁体系在建立之初,为了达到规模效应,采用的是集中化采购和中央配送体系。 我国在采用集中化管理模式时遇到了不少困难。我国地域辽阔,经济发展不均衡,并且存在典型的地域性消费习惯、不同的风土人情和品牌概念,很难发挥集中化采购的优势。我国的制造基地不集中,地域广阔交通却并不发达,这就为集中采

第 7 页

四川大学锦江学院计算机学院

购带来了一定的麻烦。这些客观现实使得连锁企业在引进国外的集中化采购管理模式时出现了很多的问题,当发生了这些问题之后,有些企业又可能武断地采用分散化采购。分散式采购通常要求在每一个城市都拥有自己的采购队伍,大大增加了管理的复杂度。而且,分散式采购在商品引进、供应商谈判等方面都很难达到统一,这种各自为政的状态使连锁的规模效应很难发挥出来,企业的核心竞争力很大程度上被削弱了。 集中与分散左右为难的尴尬局面,使得大多数的仓储式连锁超市的管理模式非常不稳定,这给库存管理系统的设计带来了极大的难度。

2.

连锁超市的数据量特别庞大,在数据管理方面比较欠缺。例如:系统中大量无用的冗余数据使得系统运行速度变慢,库存报表中出现很多无用信息;日常管理中单据没有及时录入系统,造成系统中的库存数据与商品的实际库存不一致,管理者根本无法依据系统产生的补货报告来进行库存管理;最小订货量、最大订货量、安全库存量和送货周期等非常重要的数据并没有预先进行合理的设定。 3.

连锁超市在我国兴起不久,懂得经营管理的人员还比较匮乏,系统开发时,提不出比较完整和明确的系统需求,使得系统的设计并不完善。既使购买了一套很好的系统,由于零售行业大多数最终用户的计算机水平比较低,在系统的实际运用中,常会出现使用不当或者根本就不懂得使用,那么系统就无法发挥其应有的功能。此外,供应商企业的信息化程度不高,也是零售企业应用库存管理系统的瓶颈。

4.

连锁企业本身的特点就是通过连锁规模来降低企业的经营成本,由于连锁企业的扩张速度比较快,相应地企业就一直处于变化的过程中。信息系统能否根据企业的变化进行相应的调整也就成了企业非常关心的问题。国内企业构建系统时,缺乏长远的考虑,系统的扩展性不强。另外,企业对信息系统的持续投入比较少,已有的技术不及时更新和升级,落后的技术成了阻碍企业快速发展的主要问题。 针对以上问题,我国连锁超市应当从以下几个方面采取对策。

与库存管理相关的核心业务流程是订货流程,订货流程需要解决的最主要的问

第 8 页

四川大学锦江学院计算机学院

题是订货模式。目前,存在的订货模式主要有单店订货和集中订货两种。通过分析比较可以看出,单店订货和集中订货各有其优缺点(见表1),所以我国的仓储式连锁超市应该兼顾与两种订货模式相适应的业务流程,对原有业务流程进行重新组合,在库存管理系统设计时能充分考虑到这两种流程的运行。

正确的数据是库存管理系统发挥效用的关键条件,采取如下的数据管理流程,将很大程度上保证数据的正确性和完整性。 明确数据输入和设置部门。

与库存管理相关的数据主要包含商品数据、供应商数据和交易数据三个部分,其中商品数据最为重要,目前由采购部门在购进商品时提供。如果将与库存管理相关的数据的所有权划给对库存直接负责的物流部门,他们会比采购部门更负责地对待数据的输入与设置,因为他们需要借助正确的数据管好库存。 建立数据审核和检查机制。

库存管理系统一般对数据的输入都应有校核功能,除此之外,重要的数据输入系统之前必须经上级管理人员审核。只有通过建立合理的审核机制才会避免垃圾数据进入系统,不致影响系统的运行效率和系统的正常使用。在数据的日常管理中,差错是难免的,可以由专门的数据检查部门,通过系统数据与原始数据的比较,来确定数据是否会存在问题,保证错误的数据及时得到更改,从而避免对系统的重大影响。 提高现有的用户技术素质 ,一套好系统的正确性很大程度上依赖最终用户的正确使用,在用户的计算机整体水平不高、培训任务非常艰巨的情况下,我们需要采取以下策略:争取高层管理者的支持。公司高层管理者支持培训工作,既可以鼓励员工积极参与培训,又能创造条件和激励机制让员工乐意参与培训。建立完善的培训文档。完善的培训文档一方面能够帮助受训者更好地理解培训的内容和更快地接受培训的技能,另一方面能够帮助受训者继续巩固和复习培训知识。设计多样化的培训方式。加强在计算机上进行模拟练习,并安排相应的岗位培训。进行必要的培训考核。管理者也应重视培训结果,并将培训考核与上岗机制挂钩。

第 9 页

四川大学锦江学院计算机学院

1.3 研究思路和方法

本系统的开发首先是分析超市库存管理需求的相关功能,后写出需求分析;其次,运用以前所学的相关知识(Java语言等),选择开发工具进行开发(本系统选择了MyEclipse 8.5为开发平台、数据库采用MySql 5.0、开发语言选择的java语言),在设计中以需求分析为基础,写出开发系统计划,实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文档。最后,系统开发完毕后,进行调试和试运行,并做好调试和试运行的相关记录。

1.4 研究框架和主要研究内容

本文分六个方面进行论述。

第1章 绪论。包括选题背景及应用意义.思路、研究方法等内容;超市库存管理国内研究现状和国外研究现状.研究框架和主要研究内容。

第2章,相关技术 利用java和三大框架,以及库存管理理论与优化库存管理理论。 第3章,超市库存管理流程设计及系统需求。对订货,销货,退货提出了具体的系统需求。

第4章,超市库存管理系统的具体实现。包括对各个功能模块的实现 第5章,系统的测试和维护以及总结展望

第 10 页

四川大学锦江学院计算机学院

第2章 系统相关技术概述

2.1 MySql简介

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.2 MyEclipse 8.5简介

“MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。”

“MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。”

在结构上,MyEclipse的特征可以被分为7类:

第 11 页

四川大学锦江学院计算机学院

1. JavaEE模型 ; 2. WEB开发工具 ; 3. EJB开发工具 ;

4. 应用程序服务器的连接器 ; 5. JavaEE项目部署服务 ; 6. 数据库服务 ; 7. MyEclipse整合帮助 。

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。

2.3 Struts2框架结构及工作原理

Struts2是Struts的下一代产品。是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts2可以理解为WebWork的更新产品。因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。

Apache Struts2是一个优雅的,可扩展的Java EE web框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。

Apache Struts2是大家所熟知的WebWork2,在经历了几年的各自发展后,WebWork和Struts社区决定合二为一而成的产品。

Struts2的工作流程如图1-1所示:

1.首先Struts2接收到一个httprequest时Interceptor对其进行一些拦截或者初始的工作。这时候如果有外部的httpservletrequest到来时,数据就会到servlet容器中,然后被传递给一个标准的过滤器链ActionContextCleanUp。

第 12 页

四川大学锦江学院计算机学院

2.然后Struts2开始调用Dispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper Struts2将会将控制权限交给ActionProxy。接着ActionProxy通过ConfigurationManager来查找配置struts.xml文件。

3.最后Struts2通过ActionInvocation来负责命令模式的实现,action返回Result。(返回的Result类型可以是 jsp或者freeMark 等)。

图2-3-1 Struts2响应用户请求的工作流程

2.4 Hibernate概述

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

2.5 Spring 概述

Spring是一个开源框 架,Spring 是于2003 年兴起的一个轻量级的Java 开

第 13 页

四川大学锦江学院计算机学院

发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由 EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 ◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础

第 14 页

四川大学锦江学院计算机学院

功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

2.6 JSP技术

JSP (Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP网站基本结构如图1-2所示:

图2-6-1 Jsp 网站结构示意图

第 15 页

四川大学锦江学院计算机学院

JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需

要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完 全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。

JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。

第3章 系统设计

3.1需求分析

随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,超市库存管理的全面自动化、信息化则是其中极其重要的部分。为了加快超市库存管理自动化的步伐,提高超市的管理业务处理效率,建立超市库存管理系统已变得十分必要。

将计算机这一信息处理利器应用于超市的日常管理已是势必所然,而且这也将为超市库存管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为超市库存管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了超市工作人员的工作效率,大大减少了以往入出存取流程繁琐,杂乱,周期长的弊端,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。

超市管理的操作自动化和信息的电子化,全面提高了超市的管理水平。入库、

第 16 页

四川大学锦江学院计算机学院

库存、出库还是现在企业超市库存管理的常规基本模式,虽然,最近又出现了很多新的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的思想在中国大部分企业的管理中还是难以实现的。所以如何设计好超市库存管理系统,尽可能地减少超市库存管理的重复性和低效性就成为当前最为重要的问题。超市供销管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。另外,经办人信息和厂家信息管理也是超市库存管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用

通过对超市库存管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今超市供销管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。

3.2 系统分析

作为一个超市库存管理系统,其功能是实现超市中商品的进货销售,库存等管理的系统化、规范化和自动化。本系统主要需要完成的功能有:

1.交易管理:包括进货登记、销货登记、退货登记等。其中进货登记中还包含进货商登记,如过是新的进货厂商,可以直接在此登记入库。进货和销售的主要交易都是在此进行。每次交易(包括进货、销货和退货)都需要对商品名称、生产厂商、商品型号、单价、数量、总金额、交易日期、经手业务员编号等各项记录。在交易过程中,程序的编写尽可能的方便员工进行交易,比如:进货登记时,如果商品编号相同,则自动添加该商品的其它属性;销货登记时,只需要选择相应商品,点击销售就会出现此商品的详细信息供操作,比如修改数量,可以自动更新价格。退货登记时,只需要进入到退货管理列表,就可以选择相应商品进行退货处理,尽量的方便了用户的操作,同时对于登陆的员工编号程序也自动的将其列在进货登记、销货登记中,已防止员工进行非正常的交易。

2.进货统计:包括今日进货统计、本月进货统计、本季度进货统计、本年度进货统计等。其中每次进货统计都是按进货厂商和进货总金额统计显示的。使用一个表格显示所选时间段的全部进货数据,包括进货编号、商品名称等。在最后页码显示条目中进行了金额统计。

3.销货统计:包括今日销售统计、本月销售统计、本季度销售统计、本年度销售统计等,其中每次销售统计都是按生产厂商和销售总金额统计显示的。使用一个表格显示所选时间段的

第 17 页

四川大学锦江学院计算机学院

全部销售数据,包括销货编号、商品名称等。在最后页码显示条目中进行了金额统计。

4.查看数据表:实现各种数据表的浏览,包括进货表,商品库存表、销售表、退货表、员工表、进货商表等。对于员工表管理员还可以对其进行删除或添加用户操作。

5.系统管理: 包括更换用户、修改密码、退出系统等。更换用户的操作方便了用户的使用,同时更加方便了管理员对于系统数据的查询,可以做到随时查看,以使管理员对帐目一目了然,同时方便了普通用户的交接班使用本系统。修改密码和退出系统都是对于系统管理的辅助功能。

6.其它界面: 包括主界面、登陆界面。主界面就是将各个模块的大意列在菜单中,然后通过每一个菜单将其它的界面逐个对应的连到主界面中。登陆界面为本系统的启动界面,其功能是让合法的用户使用本系统,已防止其它的非法人员使用该系统。并对登陆的用户做一下权限的区别:分为管理员和普通员工。系统初始化界面的主要目的是:在本系统的试运行阶段成功后是管理员可以直接把除了员工表以外的所有数据表的内容清零。登陆界面中,只需输入用户名和密码,进入系统依照用户自带权限可以区分是员工登陆还是管理员登陆,如果是管理员则提示是否进行系统最高权限管理。

3.2系统资源需求

超市库存管理系统主要是为超市库存员工或管理员而服务的,其目的就是为了减少人力投入,降低经营风险,提高管理和工作效率,使投资者或经营者的经济效益达到最大化。因此系统资源的合理利用是非常有必要的,本软件系统在运行阶段对硬、软件的需求如下:

硬件环境:

A. 一台赛扬2.13Gz(主频相当)及以上的PC机 B.内存256MB及以上 C.硬盘40GB及以上 软件环境:

A.windows 98及以上的操作系统 B.MYSQL5.0以上

第 18 页

四川大学锦江学院计算机学院

3.3 组织机构图

图3-1 组织机构图

3.4业务流程图

业务流程图图例:

图3-2 业务流程图图例

第 19 页

四川大学锦江学院计算机学院

超市库存业务流程图:

图3-3 业务流程图

3.5数据流程图

数据流程图:数据流程图(简称DFD)是便于用户理解的系统数据流程的图形表示,它能精确的在逻辑上描述系统的功能,输入、输出和数据存储等,也是描述管理信息系统逻辑模型的最主要的工具。

总的数据流程图:外部实体主要有消费者,供货商,消费者通过购买从超市购得商品,超市与供货商就是一个供求关系。通过超市向其提供订货单,选择需求的货物。

货币 消费者 超市库存管理系统 商品 第 20 页 订货单 供货商 货物

四川大学锦江学院计算机学院

图3-4 数据流程总图

超市库存管理系统的第一层图:超市库存管理系统主要包括了进货管理管理,销货管理管理,退货管理三个主子模块,进货有进货统计表,销货有销货统计表,退货有退货统计表,三者通过管理员联系在一起,组成超市库存管理系统。

图3-5 数据流程子图1

对于超市库存管理子模块中,主要有添加,删除,修改,查询功能,其中货物的添加要进行详细的数据处理,对货物的信息都要按要求填写,否则不能正常添加。

超市库存管理二层数据流程图:消费者提出交易请求,超市管理员进行交易登记。

P2 退货 D2 退货统计表 管理员 P3 销 货 P1 进 货 D1 进货统计表 D3 销货统计表 第 21 页

四川大学锦江学院计算机学院

图3-6 数据流程子图2

3.6 功能模块的设计

第 22 页

四川大学锦江学院计算机学院

功能模块设计

3.7数据库设计 3.7.1数据库设计

数据库设计作为本系统设计的一部分不可缺少。开发本系统中使用的数据库系统是Windows Access 2000 。

1. E — R图

(1)超市与供货商、消费者之间的关系图。体现超市的进货、销货与退货操作。实体E-R图如下:

(2)管理员与员工之间的关系图:一名管理员可以管理若干员工。实体E-R图如下:

第 23 页

四川大学锦江学院计算机学院

(3)商品属性图:商品的属性包括商品编号、生产厂商、商品名称、型号、进货价、销货价、数量、进货年、进货月、进货日、业务员编号、总金额等。

3.7.2 数据库表

数据库名称:supermarket

本系统需要建立以下几个数据表:buy表(进货表)、goods表(现存商品表)、sell表(销售表)、retreat表(退货表)、employee表(员工表)、manufacturer表(进货商表)。由于数据量比较小,所以这些数据表都存在一个数据库下:supermarket.mdb。

在系统的数据库设计中,进货表、销货表、商品库存表和退货表涉及了交易管理三个子菜单的绝大部分数据,是本系统数据库的核心,所以将对其部分表的设置

第 24 页

四川大学锦江学院计算机学院

列表显示.

数据库物理关系模型图

下面对各个数据表的结构做一下简单介绍

buy表(进货表)中包括有进货编号、商品编号、商品名称、生产厂商、型号、数量、进货时间、总金额、业务员编号等。 表3-1 buy表 列名 编号 商品编号

数据类型 int varchar

长度 50

允许空 否 是

第 25 页

四川大学锦江学院计算机学院

商品名称 生产厂商 型号 数量 进货价 进货时间 总金额 业务员编号

int varchar varchar varchar float date int varchar

50 50 50

是 是 是 否 否 否 否 否

goods表(现存商品表)中包括有商品编号、生产厂商、商品名称、型号、进货价、销货价、数量、进货时间、业务员编号、总金额等字段。 表3-2 goods

列名 商品编号 生产厂商 商品名称 型号 进货价 销货价 数量 进货时间 业务员编号 总金额

数据类型 int varchar int varchar float float int date varchar float

长度 50 50 50

允许空 否 是 是 是 否 否 否 否 否 否

表3-2

sell表(销货表)中包括有销货编号、商品编号、商品名称、生产厂商、型号、数量,单价、总金额、销售时间等字段。 表3-3 sell

第 26 页

四川大学锦江学院计算机学院

列名 销货编号 商品名称 商品编号 型号 数量 单价 数量 总金额 业务员编号 销售时间

数据类型 int varchar int varchar float float int float varchar date

长度 50 50 50

允许空 否 是 是 是 否 否 否 否 否 否

retreat表(退货表)中包括有退货编号、销货编号、生产厂商、商品名称、型号、单价、数量、总金额、退货年、退货月、退货日、业务员编号等。具体设置如表3-3所示。

表3-4 retreat表 列名 销货编号 商品名称 商品编号 型号 数量 单价 数量 总金额 业务员编号

数据类型 int varchar int varchar float float int float varchar

长度 50 50 50

允许空 否 是 是 是 否 否 否 否 否

第 27 页

四川大学锦江学院计算机学院

销售时间 date 否

Manufacturer表(进货商表)中包括有厂商编号、厂商名称、联系人姓名、电话、厂商地址等字段. 表 3.5

列名 厂商编号 厂商名称 联系人姓名 电话 厂商地址

数据类型 int varchar varchar varchar varchar

长度 50 50 50 50

允许空 否 否 否 否 是

employee(员工表)中包括有员工编号、员工姓名、员工密码、员工电话、员工地址等字段. 表 3.6

列名 员工编号 员工姓名 员工密码 员工电话 员工地址

数据类型 int varchar int varchar float

长度 50 50

允许空 否 是 是 是 否

第 28 页

四川大学锦江学院计算机学院

第4章 详细设计与实现

详细设计的目的是为软件结构图中的每一个模块确定所采用的算法和模块内数据结构。详细设计以总体设计阶段的工作为基础,但又不同于总体设计,主要表现在如下两个方面:在总体设计阶段,数据项与数据结构以比较抽象的方式描述,详细设计就要确定用什么数据结构来实现;详细设计要提供关于算法或每个模块的足够细节,使程序员能直接为每个模块编码。详细设计的任务是为每一个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程描述;确定每一模块使用的数据结构;确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节;为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试;在详细设计结束时,应该把上述结果写入详细设计说明书(即程序规格说明书),并通过复审形成正式文档,作为下一阶段(编码)的工作依据。详细设计是解决软件系统“怎样实现”的重要阶段。

4.1主界面模块设计

主界面采用分帧模块设计,使得界面模块分明,便于管理操作,设计界面依照简介、实用的原则,对界面的图标和其他颜色的配置,进行了全面专业的设计,最终完成。

系统界面如图4.1所示。

第 29 页

四川大学锦江学院计算机学院

图 5.1 软件界面图

4.2 系统管理模块设计

系统管理主要功能包括更改用户,修改密码,关于等。此模块设计简洁,目的是让用户可以清晰方便的对其操作。 4.2.1 系统管理员

系统管理员主要负责整个系统的管理和维护工作以及对数据的增删改查等功能,为系统的安全运行做技术保障。系统管理员负责具体系统日常管理和维护,具有系统的最高管理权限。

如对员工的操作如图5.3所示。

图5.3 管理员操作员工图表

第 30 页

四川大学锦江学院计算机学院

管理员对员工操作的相关代码: package com.sell.action; import java.io.IOException; import org.apache.commons.codec.digest.DigestUtils; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionContext; import com.sell.base.BaseAction; import com.sell.domain.TEmployee; @SuppressWarnings(\@Controller @Scope(\public class IndexAction extends BaseAction { /** * 登陆 */ public String loginUI(){ return \ } public String topUI() throws Exception { // TODO Auto-generated method stub return \ } public String menuUI() throws Exception { // TODO Auto-generated method stub return \ } public String mainUI() throws Exception { // TODO Auto-generated method stub return \ } /** * 登录处理 */ public String login(){ //System.out.println(\ TEmployee tmlogin (TEmployee)ActionContext.getContext().getSession().get(\ //这个表示第一次登录 System.out.println(\ // if(tmlogin==null){ System.out.println(\ if(model.getEname()!=null){ System.out.println(\= 第 31 页

四川大学锦江学院计算机学院

tmlogin = employee.check(model.getEname(),model.getEpassword()); //检查用是否有权限登录 if(tmlogin!=null){ System.out.println(\ ActionContext.getContext().getSession().put(\ return \ }else{ System.out.println(\ //登录失败 addFieldError(\用户名或密码不正确!\ return \ } }else{ System.out.println(\ System.out.println(\ return \ } } /** * 退出处理 */ public String logout(){ ActionContext.getContext().getSession().remove(\ return \ } private String newPassword;//新密码 private String oldpassword; //原始密码 /** * 密码修改UI */ public String modifyUI(){ return \ } /** * 密码修改 */ public String modify(){ model = (TEmployee)ActionContext.getContext().getSession().get(\ employee.updatePsw(model,DigestUtils.md5Hex(newPassword)); ActionContext.getContext().put(\ return \ } /** * 验证密码是否正确 第 32 页

四川大学锦江学院计算机学院

} * @return * @throws IOException */ public String checkPsw() throws IOException{ boolean b = false; if(oldpassword!=null){ b = employee.checkPsw(oldpassword); } String result = b ? \ ServletActionContext.getResponse().getWriter().write(result); return null; } public String getNewPassword() { return newPassword; } public void setNewPassword(String newPassword) { this.newPassword = newPassword; } public String getOldpassword() { return oldpassword; } public void setOldpassword(String oldpassword) { this.oldpassword = oldpassword; } 管理员可以随时修改自己的密码,避免系统信息泄露。 密码修改如图5.4所示

图5.4 密码修改

第 33 页

四川大学锦江学院计算机学院

部分关键代码: /** * 密码修改 */ public String modify(){ model = (TEmployee)ActionContext.getContext().getSession().get(\mployee\); employee.updatePsw(model,DigestUtils.md5Hex(newPassword)); ActionContext.getContext().put(\, \); return \; } 4.3 交易管理模块设计

此模块的功能是:对货物的操作,如进货登记,销货登记,退货登记,以及在进货中对厂商的添加与查询。

4.3.1 进货登记

首先是进入到的是现存商品列表(库存列表),可显示查看到现存商品(库存)的相关信息,如需进货,只需点击新建即可添加新的货物商品。 图如 图5.6所示

在进货登记页面中,有相关功能—选择厂商、查看厂商列表,如果在厂商列表

第 34 页

四川大学锦江学院计算机学院

中没有商品的相关厂商,同时是可以对其添加新厂商(此功能只针对于管理员操作)。 进货登记图如图5.6所示。

图5.6 进货登记图

4.3.2 销货登记

在交易管理中,点击销货登记,先将是显示需要销货的列表(现存商品列表),在每一行中,可以再操作当作选择销售,在选择销货的时候,将显示销货信息,可以修改数量,进行销货,以及确定销售信息。

第 35 页

四川大学锦江学院计算机学院

确认销货信息图:

4.3.3 退货登记

在交易管理中,进入到退货登记一栏,首先是显示的退货管理,这样做是让操作员,可以清晰的看到销售出去的商品列表,这样可以方便操作员,选择那些是可以退货的,因此在操作中选择退货,将进行某一商品的退货,以及是否确定对这个商品的退货,即将显示退货信息,以及可以修改退货数量,便于确定对退货信息确定。

第 36 页

四川大学锦江学院计算机学院

确认退货信息图:

关键部分代码: package com.sell.action; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionContext; import com.sell.base.BaseAction; import com.sell.domain.TBuy; import com.sell.domain.TGoods; import com.sell.domain.TManufacturer;

第 37 页

四川大学锦江学院计算机学院

@SuppressWarnings(\@Controller @Scope(\public class JiaoYiAction extends BaseAction{ private Integer id; private String mnum; //厂商编号 private String TENumber; //员工编号 private String pageNow;//当前页 //今日进货统计 public String jinRiJinHuoTJ(){ SimpleDateFormat s = new SimpleDateFormat(\ String date = s.format(new Date()).substring(0, 10); //当前时间 System.out.println(\ String s_pageNow = pageNow; int pageNowInt = 1; if(s_pageNow!=null){ pageNowInt = Integer.parseInt(s_pageNow); //得到页面传过来的页数 System.out.println(\ } List buyList1 = jh.select(date);//以时间查询 int pageCount = (buyList1.size()-1)/5+1; System.out.println(\今日有货吗?\ //计算总金 float totall = 0f; for(TBuy t: buyList1){ totall+=t.getBtotall(); } List buyList = jh.selectFenYe(date,pageNowInt,5);//以时间查询 if(buyList1.size()==0){ buyList = null; } ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ return \ } //本月进货统计 public String benyueJinHuoTJ(){ SimpleDateFormat s = new SimpleDateFormat(\ String date = s.format(new Date()).substring(0, 7); //当前月 System.out.println(\ String s_pageNow = pageNow; 第 38 页

四川大学锦江学院计算机学院

int pageNowInt = 1; if(s_pageNow!=null){ pageNowInt = Integer.parseInt(s_pageNow); //得到页面传过来的页数 System.out.println(\ } List buyList1 = jh.select(date);//以时间查询 int pageCount = (buyList1.size()-1)/5+1; //计算总金 float totall = 0f; for(TBuy t: buyList1){ totall+=t.getBtotall(); } List buyList = jh.selectFenYe(date,pageNowInt,5);//以时间查询 if(buyList1.size()==0){ buyList = null; } ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ return \} //本年进货统计 public String yearJinHuoTJ(){ SimpleDateFormat s = new SimpleDateFormat(\ String date = s.format(new Date()).substring(0, 4); //当前月 System.out.println(\ String s_pageNow = pageNow; int pageNowInt = 1; if(s_pageNow!=null){ pageNowInt = Integer.parseInt(s_pageNow); //得到页面传过来的页数 System.out.println(\ } List buyList1 = jh.select(date);//以时间查询 int pageCount = (buyList1.size()-1)/5+1; //计算总金 float totall = 0f; for(TBuy t: buyList1){ totall+=t.getBtotall(); } List buyList = jh.selectFenYe(date,pageNowInt,5);//以时间查询 if(buyList1.size()==0){ buyList = null; } ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ return \第 39 页

四川大学锦江学院计算机学院

} //季度进货统计 public String jiDuJinHuoTJ(){ SimpleDateFormat s = new SimpleDateFormat(\ String date = s.format(new Date()).substring(0, 7); //当前月 System.out.println(\ String s_pageNow = pageNow; int pageNowInt = 1; if(s_pageNow!=null){ pageNowInt = Integer.parseInt(s_pageNow); //得到页面传过来的页数 System.out.println(\ } List buyList1 = jh.select(date);//以时间查询 int pageCount = (buyList1.size()-1)/5+1; //计算总金 float totall = 0f; for(TBuy t: buyList1){ totall+=t.getBtotall(); } List buyList = jh.selectJiDuFenYe(date,pageNowInt,5);//以时间查询 if(buyList1.size()==0){ buyList = null; } ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ ActionContext.getContext().put(\ return \} //显示进货列表 public String jinHuoListUI(){ String s_pageNow = pageNow; int pageNowInt = 1; if(s_pageNow!=null){ pageNowInt = Integer.parseInt(s_pageNow); //得到页面传过来的页数 System.out.println(\ } List buyList1 = jh.findAll(); int pageCount = (buyList1.size()-1)/5+1; //获得总页数 List buyList = jh.fenye(\每页显示3条 if(buyList1.size()==0){ buyList = null; } 第 40 页

本文来源:https://www.bwwdw.com/article/hzf7.html

Top