首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

《超市进销存管理系统的设计与实现》论文

2024-09-11 来源:华拓网


摘 要

随着信息时代的飞速发展,计算机技术已经渗透到个个领域,成为各行业必不可少的工具,而超市这种形式具有自身的特点:商品一般齐全,商品的进出货关系较为简单,公司员工人数及种类不多;从软件的角度看,系统数据量较少而且对存储总量和存储速度要求不是很高。但也正是由于员工人数较少,为提高生产销售效率,使用系统软件控制销售和管理已势在必行.

超市进销存管理系统可以说是典型的信息管理系统,它的开发流程包括后台数据库的建立与维护以及前端系统应用的开发这两个主要方面。该系统实现了基本信息管理、商品进货管理、商品销售管理、库存商品管理以及系统数据库的备份还原等功能。该系统采用的是C#做开发语言,使用SQL Server 2008作为数据库存储技术,使用Visual Studio 2012作为系统开发、调试的主要工具..

关键词:超市;进销存;信息管理系统;数据库技术

Abstract

With the rapid development of computer technology, people are becoming more dependent on computers, especially the use of a computer database development and data management system application in life is more prominent, this development of this system。So we develop that We use supermarket inventory management systems, so that the management of the supermarket shop systematic, standardized, automated, simple, intelligent, and thus to improve the efficiency of the supermarket inventory management purposes. KD supermarket management system is a typical information management system, which mainly includes database creation and maintenance, and front—end application development aspects。 That requests for the establishment of strong data integrity and consistency, data, good safety database。 At the same time the latter requires the application functionality complete , easy to use。Information management system achieves a commodity information managament, commodity purchase operations, product delivery operations and inventory information etc。 This paper introduces the software development environment, database design, the supermarket Invoice system testing and functional,Visual Studio 2012 as a system development, the main tool for debugging.

Keywords: Supermarket;Purchase-Sell-Stock;Management Information System;Database Technology

I

目 录

绪 论 .................................................................... 0 1 系统概述 .............................................................................................................................. 1

1.1 系统开发背景 .............................................................................................................. 1

1.1。1 国内外研究现状 ............................................................................................. 1 1。1.2 系统开发的目的与意义 ................................................................................. 2 1.2 系统设计目标 .............................................................................................................. 3 1。3 开发平台介绍 ........................................................................................................... 3

1.3.1 。NET平台介绍 ............................................................................................... 3 1.3.2 C#语言概述 ...................................................................................................... 5 1.4 开发工具介绍 .............................................................................................................. 6 2 系统分析 .............................................................................................................................. 6

2。1 需求分析 ................................................................................................................... 6 2。2 可行性分析 ............................................................................................................... 7

2。2.1 技术可行性 ..................................................................................................... 7 2。2.2 经济可行性 ................................................................................................... 7 2。2.3 研发的必要性 ................................................................................................. 7 2.3 系统流程分析 .............................................................................................................. 8 3 系统总体设计 ...................................................................................................................... 8

3。1 系统体系结构 ........................................................................................................... 8 3。2 数据库设计 ............................................................................................................... 9

3.2.1 数据库需求分析 ................................................................................................ 9 3.2.2 员工信息表 ...................................................................................................... 10 3.2。3 供应商信息表 ............................................................................................... 12 3。2。4 进货信息表 ................................................................................................ 13 3.2。5 销售信息表 ................................................................................................... 15 3.2.6 退货信息表 ...................................................................................................... 16 3。2。7 库存信息表 ................................................................................................ 17 3。2.8 可选属性列表 ............................................................................................... 19

II

3。2。9 数据库的物理模型 .................................................................................... 20

4 系统实现 ............................................................................................................................ 22

4.1登陆功能模块 ............................................................................................................. 22 4。2主界面模块 .............................................................................................................. 23 4。3 基本信息管理模块 ................................................................................................. 25

4。3。1 基本信息管理模块简介 ............................................................................ 25 4。3。2 员工信息管理界面 .................................................................................... 25 4。3。3 供应商信息管理界面 ................................................................................ 27 4.4 进货管理模块 ............................................................................................................ 29

4。4。1 进货管理模块简介 .................................................................................... 29 4.4。2 商品进货管理 ............................................................................................... 29 4.4。3 商品查询管理 ............................................................................................... 31 4.5 销售管理模块 ............................................................................................................ 33

4。5。1 商品销售管理界面 .................................................................................... 33 4。5.2 商品退货信息管理 ....................................................................................... 35 4。6 库存管理模块 ......................................................................................................... 36

4.6.1 库存报警模块 .................................................................................................. 36 4。6。2 库存查询界面 ............................................................................................ 37 4。7 系统维护模块 ......................................................................................................... 39

4。7.1 系统维护模块简介 ....................................................................................... 39 4.7。2 数据备份界面 ............................................................................................... 39 4。7。3 数据还原界面 ............................................................................................ 40

5 系统运行与测试 ................................................................................................................ 43

5.1 测试计划 .................................................................................................................... 43 5。2测试方法及用例 ...................................................................................................... 43 结 论 ........................................................................................................................................ 44 致 谢 ........................................................................................................................................ 45 参考文献 .................................................................................................................................. 46 附录A:英文原文 ..................................................................................................................... 47 附录B:汉语翻译 ..................................................................................................................... 51

III

绪 论

超市的自动化管理模式在很多发达国家已实行了多年,它也是零售业管理的基础。使用自动化的软件管理可以使经营者准确和实时的控制店内的销售情况。超市行业作为零售业的一种企业形态之一,竞争十分激烈,因此,快速的提高竞争能力和效益已成为各个超市企业共同追求的发展目标。现如今,信息管理方便快捷,这就促使超市进销存管理系统被零售企业所重视。超市引入信息管理系统,已成为零售业经营之中的最热门的话题之一。

在我国,超市这种形式在20世纪90年代初期兴起,现已成为我国零售业的一种重要形态。随着超市规模的不断壮大,它的经营管理也变得更加复杂,早期的售货员站柜台的形式已远远不能满足现有超市的发展,这样就迫切地需要引进新的管理技术和思想技术进入到超市管理当中。

在目前的状况下,我国零售业商业企业在运营中仍然存在着落后的一面,如:不能有效合理的管理各种货品,收款结算的速度较慢,营业过程中出错次数较多,清点货品效率低下等,而且在超市的日常经营管理中,货品的进入、销售、库存决策以经验为主,缺乏实时分析的功能,日常所需处理的数据量也日益增加,管理人员对及时传递货品需求的要求始终得不到满足,商业运转的中间环节也越来越多,原始的人工管理模式已经无法应对这复杂的市场了.

基于以上情况的分析,我在这次设计中选择了超市进销存管理系统,虽然进销存系统还不能够完全说为企业信息化管理的表现形式,但是我们清楚,进销存系统虽然是建立在以往经营管理的过程之上,但是倚仗强大的数据库系统,简单友好的操作界面,依靠现代化的计算机技术来管理超市的运营,这不仅能节省了大量的人力和物力,改善超市员工的工作强度,减轻劳动量,并且能够快速反应出货品的基本状况,使管理人员能快速对市场的变化作出相应决策,增强超市的竞争实力。

0

1 系统概述

1.1 系统开发背景

1.1.1 国内外研究现状

美国的计算机技术水平一直处于世界领先地位,在将计算机技术应用于企业管理方面,也已取得大量优异成果,其中包括许多有效的库存管理方面的系统,已广泛应用于汽车、电子、教育、化工、食品等商业企业.国外进销存管理软件的发展是比较成熟的,以 MAXIMO 企业资产管理软件为例进行介绍,它是由 MRO 公司开发的,国外很多企业如纽约电力管理局、摩托罗拉、可口可乐均采用 MAXIMO 软件.库存管理是其中一个组成部分,MAXIMO能随时掌握现有的库存情况,制定合理的库存管理计划,灵活地把握库存、采购、销售等一系列的管理。客户关系管理(Customer Relationship Management, CRM)在国外的发展已有十余年的历史背景。大约在 80 年代初期,最初的 CRM 应用就开始投入 CRM 市场. 从地域来看,目前 CRM 商机最大的市场是北美,其次是西欧市场,其中西欧市场正以全球最快的速度飞速发展。而其使用的管理软件产品都是欧美国家软件公司生产开发的.

我国计算机技术在企业库存管理中的应用大体起始于 70 年代,通过计算机技术的应用产生了一些库存管理系统.但由于受到当时计算机软硬件配置的限制,这些库存管理系统仅限于完成一些简单的功能操作。如北京棉纺一厂材料仓库的微机库存管理系统(该系统是在 COMEMCO—Z-2H 型微型计算机上实现的,系统软件是用 BASIC 语言编制的)、天津物资微型计算机仓库业务管理系统(该系统是在 CROMEMCO CS-3 型微型计算机上实现的,系统软件是用 COBOL 语言编制的)等系统。

信息管理系统这种新的服务模式发展到90年代,产生了C/S服务方式,它将一个数据库应用分为客户端和服务器两部分,客户端在作为终端访问数据库服务器的同时,自身也具有处理数据的能力,能够分担一些任务.C/S方式强大的技术优势给企业带来了巨大的管理效益,从而在相当长一段时间内它成为管理系统的主流方式。虽然基于C/S的MIS普遍存在开放性差,软件的开发周期较长,开发费用较高,软件的维护量较大等缺点,但是对于中小企业来说,拥有一套属于自己的基于C/S架构的管理信息系统是符合其根本利益的。从系统本身来说,虽然具有一些不足之处,但是一旦开发完成应用之后,必将会是一套一劳永逸的系统,前期的投入也必将获得物质上以及精神上的回报。从我国目

1

前情况来看,大部分办公自动化软件都是基于国外软件产品之上经过二次开发生产出来的软件,而且这类软件大部分是为政府机关或传统的国有企业开发的,没有能够从中小企业的实际需求出发,因此不能满足现代中小企业管理的需要。开发一套适合于中小企业实际需求的系统,对于中小企业来说是增强其综合市场竞争力的重要手段.

该超市进销存管理系统,是基于C/S架构而建立起来的,强大的数据处理能力将大大提高超市员工的工作效率,依仗着Microsoft的 SQL Server 2008这套功能强大的数据库服务器,使得数据的处理变得不再那样的繁琐。同样是Microsoft出品的开发工具Visual Studio 2012有快速开发系统工具之称,该系统的开发主要是基于.NET framework 平台[1],利用SQL Server 2008[2]数据库中的友好的界面管理程序,可以轻松地连接数据库以及从数据库中读取和写入信息.对于我国中小企业,尤其是中间商企业或公司来说,采用Microsoft的SQL Server 2008 和Visual Studio 2012这两种产品来开发属于自己的企业信息化管理系统是切合实际的。

1.1.2 系统开发的目的与意义

科学合理的应用计算机技术进行管理企业,不仅可以使管理工作规范化、自动化、系统化,而且可以节省相当的人力和物力。在如今这个时代,以信息技术为主要标志的科技进步日新月异,高科技成果向现实生产力的转化速度越来越快。纵观全球经济的发展,信息技术和信息产业已经成为经济增长的推动力之一,正在改变着传统的生产和经营方式。信息资源的获取已经成为国民经济和社会发展的源动力,信息的资源管理水平也已成为体现现代化水平和综合国力的重要标志.紧随我国经济的发展,为了抓住市场先机,在竞争中占得优势,作为企业的一个必不可少的重要环节——经营管理的信息化已经迫在眉睫了。开发进销存管理系统既可以顺应时代的信息化和现代化潮流,提高经营效益:又可以提高管理的现代化手段,加强管理货品信息近况,提高员工工作效率,增加有效收益等。

从现实来看,在市场经济中,货品销售是企业运营中相当重要的环节。超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管

2

理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,在这种形式下,依靠管理人员人工传递信息和数据的工作方式就无法满足企业日益增长的业务需求了。超市进销存管理系统正是钟对上述的问题而开发的,通过计算机系统来对超市的进货、销售及库存情况进行统一管理。它的优点主要体现在以下几方面:极大的提高了超市员工的工作效率,大大减少了以往进货商品入库到销售出库流程繁琐、杂乱的弊端;基于现代计算机技术的进销存管理系统,可以减少货品入库、货品出库及货品存库中操作的漏洞,可以减少经营管理成本,增加企业有效收入;进销存管理操作的自动化和信息的实时化,全面提高了超市的管理水平。因此,为进一步提高超市管理流程,建立高效的进销存系统就变得十分重要.

1.2 系统设计目标

根据超市的需求和进销存系统管理的特点,该系统应用后,预计到以下目标: (1)界面美观友好、信息查询灵活、方便、快捷、准确。 (2)提高工作效率,降低运营成本,方便员工操作。

(3)对用户输入的数据进行过滤,输入有误时提示用户,准确输入才能登录系统。 (4)系统最大限度地实现了易安装性、易维护性和易操作性。 (5)系统运行稳定、安全可靠,基本不会出现太大错误. (6)强大的库存预警功能,在意外中将损失降到最低。

1。3 开发平台介绍

1。3.1 。NET平台介绍

.NET(全称Dot NET)[3]是由Microsoft公司经过长时间的研发所推出的开发平台,它吸取了以前开发平台的经验和教训,定义了开发和运行企业级客户端应用的一个标准,一个体系结构,它以开发的可靠性好、可扩展性强、可管理性大和安全性高等很快就被Web和Windows Form的开发者所认同。.NET的体系结构如图1.2:

3

图1。2 。NET的体系结构图

。NET体系是由公共语言运行库(CLR全称Common Language Runtime)和。NET Framework类库所构成。CLR是。NET Framework 的核心执行环境,也称为.NET运行库。。NET Framework类库是一个内容丰富的类集合,它可以完成以前要通过Windows API来完成的绝大多数任务。

CLR概述:CLR主要负责托管代码的编译和运行。在.NET中代码的编译通过两阶段任务来完成:一是把源代码编译为Microsoft中间语言(IL),二是CLR把IL编译为平台专用的代码。在CLR控制下运行的代码称为托管代码(managed code)。其优点是: (1)与开发平台无关。源代码先编译成中间语言,运行时由CLR将中间语言编译成平台专用的代码,跟Java的字节代码一样,这样即可实现平台无关性。

(2)性能大幅度提高。首先,IL比Java的字节码的作用要大,因为IL是即时编译的,而Java的字节码是解释性的,在转换为平台可执行代的码的时候会导致性能的损失。其次,。NET的即时编译器(JIT全称Just In Time)并非一次性的把全部代码编译完才执行,而是只编译调用的那部分代码,并把得到的这部分内部可执行代码保存起来,下次需要调用的时候无须重新编译。Microsoft认为这个过程要比一开始编译整个应用程序代码的效率高得多,因为任何程序的大部分代码实际上并不是在每次运行过程中都执行。最后,传统的编译器会优化代码,但它们的优化过程是独立于代码所运行的特定处理器的。

(3)语言的互操作性。互操作性即能将任何一种语言编译为中间代码,编译好的代码可以与从其它语言编译过来的代码进行交互操作。在.NET中可以交互操作的语言有C#、VB.NET、Visual C++.NET、Visual J#、脚本语言等。CLR的工作原理如下图1.3所示:

4

图1.3 CLR的工作原理

。NET的优势:

(1)优秀的设计结构。它仅仅有一个类库,并且以一种非常直观的方式设计出来. (2)语言的无关性.在.NET中,C#、J#、VB.NET和C++等语言都可以编译为通用的中间语言,这说明,语言可以用以前没有的方式进行相互间的操作。

(3)高效的数据库访问系统.一组。NET组件,总称为ADO.NET,提供了对关系数据库和各种数据源的高效访问,这些组件也可以访问文件系统和目录。ADO。NET内置了XML支持,可以处理从非Windows平台导入或导出的数据。

(4)安全性的增强。每个程序集都可以包含内置的安全信息,这些信息可以准确的指出谁或哪种类型的用户或进程可以调用什么类型的哪些方法,这样就可以非常准确的对程序集的使用方式进行控制了。

1。3。2 C#语言概述

C#语言[4]是由Microsoft开发的一种功能强大的、易于理解的、面向对象的、现代的全新语言,是Microsoft新一代开发工具的经典编程语言,由于它是从C和C++语言中派生出来的,因此具有C和C++语言的强大功能。同时,由于是Microsoft公司的产品,它又同VB一样简单,易于理解和操作.对于web开发而言,C#像Java,同时具备了Delphi的一些优点,而且C#专门是Microsoft公司为使用。NET平台而设计的,它吸取了以前语言功能不足的教训,考虑了许多其他语言的优点,并合理的将他们的优点结合起来,还剔除了不足之处,可以说是接近完美的语言了。 C#语言的优势在于:

5

(1)语法简单。C#语言不允许直接操作内存,并且去掉了指针操作,简化了程序开发的难度,方便了用户。

(2)完全的面向对象设计.面向对象语言所应有的一切特性——封装、继承和多态,C#语言应有尽有.

(3)强大的安全机制设计。 可以消除软件开发过程中的常见错误(如语法错误、拼写错误等),Dot。NET提供的垃圾回收机制能够帮助开发者有效地管理内存资源,用户不需要担心垃圾的回收情况及如何回收垃圾,减轻了开发人员的工作。

(4)兼容性.因为C#遵循.NET的公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容.

(5)灵活的版本处理技术.因为C#语言本身内置了版本控制功能,使得开发人员可以更容易地开发和维护。

(6)完善的错误、异常处理机制.C#提供了完善的错误和异常处理机制,使程序在交付应用时,能够有良好的健壮性。

1.4 开发工具介绍

由于本超市进销存管理系统采用SQL Server 2008[5]做为后台数据库,.选择了运行在.NET平台之上的C#语言作为系统的总体开发语言,因此采用专门为开发基于。NET平台的应用程序的Visual Studio 2012 [6]做为系统的开发工具。

Visual Studio 是微软公司推出的开发环境.是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 12.0 版本。

Visual Studio 2012是一套完整的开发工具集,提供了在设计、开发、调试和部署Windows应用程序、Web应用程序、XML Web Services和传统的客户端应用程序时所需的工具,可以快速、轻松地生成Windows桌面应用程序、ASP。NET Web应用程序[7]、XML Web Services和移动应用程序等.

2 系统分析

2.1 需求分析

6

本进销存管理系统主要是为中小型超市而设计,用户首先成功登录系统,这是必要的前提,如果没有成功登陆系统则无法进行任何操作.在用户登录系统后,可以根据需要进行相关模块一些功能的操作。例如添加用户操作:在超市进销存管理系统的主界面上选择基本信息管理下的员工基本信息,在弹出的界面中进行信息的填写,填写完后点击保存,此时数据将会在表格中显示出来。如果发现填写出现错误则选中错误信息,点击修改,数据会自动填充到界面上,方便修改,最后点击保存即可。其他操作的具体流程与此类似。如有不明处可点击帮助按钮寻求帮助.

2。2 可行性分析

2。2。1 技术可行性

技术可行性要研究的是现有的技术条件是否能够顺利完成超市进销存系统的开发工作以及软硬件配置是否满足开发的需求等。本次超市进销存管理系统用的是.NET平台下的C#开发语言,运行调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对趋于成熟,故软件的开发平台成熟可行,它们价格低、速度快、可靠性能高、容量大,完全能满足系统的需求。

2。2.2 经济可行性

经济可行性研究是对研发组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于超市进销存管理系统是作为毕业设计由我自己开发的,在经济上的几乎没有投入,而系统建成之后,它将为超市进销存管理提供很大的方便,因此在经济上是可行的。

2。2。3 研发的必要性

随着超市销售数据规模的日益庞大,商品数目也在呈指数增长,这样就造成了以下问题:

7

(1)产品库存量大,工作人员在为产品进出、出库登记时的工作负荷重、效率低. (2)在商品进出货过程中,时常会出现错误,增加了业务成本和处理上的麻烦。 (3)在对进出货数据进行查询时,需要手工翻阅大量的票据,大大降低了查询效率,而查询的结果也不尽如人意.

以上缺点直接或间接地降低了工作效率,最终影响了商品进出库的管理. 综上所述,本超市进销存管理系统的研发是可行的。

2.3 系统流程分析

打开系统首先显示登录界面,输入正确的用户名与密码后可进入主界面,根据用户权限可以对系统信息进行相应的操作,若用户名或密码错误,系统将给出提示并且无法进入主界面,直至输入正确的用户名与密码.

3 系统总体设计

3.1 系统体系结构

超市进销存管理系统研究的内容涉及超市进销存管理的全过程,包括货品的入库、

8

出库、退货、进货、超市销售统计等等。根据工作流程,超市进销存管理系统将包含以下内容:

(1)系统登录模块,用户在登陆系统时需要输入用户名和密码,信息正确则进入系统,不正确则提醒用户输入信息有误,请重新输入;如果用户还不是该系统的员工则无法登录系统,除非在职人员将信息录入系统才能登录.

(2)基本信息管理模块,包括员工基本信息和供应商基本信息,可以对员工和供应 商进行增、删、改、查几项操作.

(3)进货信息管理模块,包括进货信息的添加﹑删除﹑修改和进货信息查询操作, 可以对进货的商品做到严格的管理,实时的监控。

(4)商品销售管理模块,包括商品销售情况:数量﹑种类﹑价格等和商品退货情况: 退货时间﹑退货商品名称﹑退货原因等。

(5)库存商品管理模块,包括库存商品设定:商品名称﹑所属仓库﹑报警数量等和 库存商品查询:根据所在仓库﹑商品名﹑供应商名等进行精确或模糊查询.

(6)数据信息管理模块,包括数据库备份、还原,以免使用过程中不必要的麻烦。 系统功能模块图

[8]

如图3。1所示:

超市进销存管理系统 销售管理库存管理 库商库商 存品存 品商销报 退品售警 货 管查管设 理 询 理 置 图3.1 系统功能模块图

基本档案 进货管理 系统维护 员工基本信息 供应商信息 商品进货管理 商品查询管理 数据备份 数据还原 3。2 数据库设计

3.2.1 数据库需求分析

超市进销存管理系统需要提供各种数据信息的增加、删除、修改、查询、保存等功

9

能,这就要求数据库能充分满足各种信息的输入和输出.不仅如此,因为这些数据信息位于不同的关系表中,在保存数据后,数据应该保存到与之相应的数据表中。因此,为了把表与表中的字段关系和表中的字段的基本信息明了的表现出来,我通过对系统功能关系的分析,针对超市系统营运的特点,总结出如下的实体E-R图和数据字典:

3.2。2 员工信息表

员工信息表(T_EmpInfo),它的主要功能是存储员工的数据。根据一般企业的员工管理要求,我制定了一些必要的字段,包括员工编号、员工姓名、系统登陆名,登陆密码,员工性别、出生日期、所属部门、员工所在职位、家庭联系电话、家庭住址等,用这些字段能清晰的描述一个员工的基本信息。而且,为了把每个字段的属性信息也表现出来,我用E-R图[9,10]的形式把它表现出来使文章看起来更加直观,读者能够轻松的理解表的性质和功能。员工信息实体E-R图如图3.2所示:

员工姓名 登录姓名 登录密码

员工编号

员工信息 家庭住址 员工性别 出生日期 家庭电话 员工职位 所属部门 图3.2 员工信息实体E—R图

E-R图并不是唯一的一个能够表现表中数据关系的形式,数据字典也能够很好的说明表中字段的属性关系。数据字典从字段名、字段的描述说明、字段类型、

字段是否可为空和是否是主键(Primary Key)这几个方面描述表格。数据字典的表现形式如表3.1员工信息表(T_EmpInfo)所示:

表3。1 员工信息表(T_EmpInfo)

10

字段名 EmpID EmpName EmpLoginPwd EmpSex EmpBirthday EmpDept EmpPost EmpPhone EmpPhoneM EmpAddress EmpRealName Education Marriage

描述-说明 员工编号 员工登录名 登录密码 员工性别 出生日期 部门 职位 固定电话 移动电话 家庭住址 真实姓名 教育程度 婚姻状况

类型 int nvarchar nvarchar nvarchar datetime nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar

是否可为空 否 否 否 否 否 否 否 是 否 否 否 否 否

是否是主键 是 否 否 否 否 否 否 否 否 否 否 否 否

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_EmpInfo)的SQL脚本:

CREATE TABLE [dbo].[T_EmpInfo](

[EmpID] [int] IDENTITY(1,1) NOT NULL, -—员工编号 [EmpName] [nvarchar](50) NOT NULL, --系统登陆名 [EmpLoginPwd] [nvarchar](50) NOT NULL, --登陆系统密码 [EmpSex] [nvarchar](10) NOT NULL, ——员工性别 [EmpBirthday] [datetime] NOT NULL, --出生日期

[EmpDept] [nvarchar](50) NOT NULL, --员工所属部门 [EmpPost] [nvarchar](50) NOT NULL, -—职位名称 [EmpPhone] [nvarchar](50) NULL, --固定电话 [EmpPhoneM] [nvarchar](50) NOT NULL, --移动电话 [EmpAddress] [nvarchar](150) NOT NULL, --家庭住址 [EmpRealName] [nvarchar](50) NOT NULL, —-员工姓名

[Education] [nvarchar](50) NOT NULL, ——文化程度 [Marriage] [nvarchar](50) NOT NULL, -—婚姻状况 [PartyStatus] [nvarchar](50) NOT NULL --政治面貌 )

11

3。2。3 供应商信息表

供应商信息表(T_Company):用于存放供应商的基本信息。在供应商信息表中包括供应商编号、供应商名称、联系人姓名、联系电话、公司传真、起始进货时间、公司地址和公司的备注描述等,商家用这些信息描述一个生产厂家的具体情况。我将字段用E-R图的方式展示出来,使读者更容易理解表中字段的关系。供应商信息实体E—R图如图3.3所示:

供应商名称 供应商编号 联系人姓名

联系电话 供应商信息表 备注描述

公司传真

加入时间 公司地址

图3。3 供应商信息实体E—R图

供应商信息表对于超市来说是非常重要的,为了便于读者的分析理解,我将各字段的字段名和字段说明展示出来做成数据字典,其中还包括了字段类型,字段是否可为空和是否是主键。数据字典的表现形式如表3。2供应商信息表(T_Company)所示:

表3.2 供应商信息表(T_Company)

字段名 CompanyID CompanyName CompanyDirector CompanyPhone CompanyFax CompanyAddress ReDateTime CompanyRemark

描述-说明 供应商编号 供应商名称 公司联系人 供应商的电话 公司传真 供应商地址 加入时间 公司描述

类型 nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar datetime nvarchar

是否可为空 否 否 否 否 是 否 否 是

是否是主键 是 否 否 否 否 否 否 否

12

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_Company)的SQL脚本:

CREATE TABLE [dbo]。[T_Company](

[CompanyID] [nvarchar](50) NOT NULL, --供应商编号

[CompanyName] [nvarchar](100) NOT NULL, ——供应商名称 [CompanyDirector] [nvarchar](50) NOT NULL, -—公司联系人 [CompanyPhone] [nvarchar](20) NOT NULL, -—供应商电话 [CompanyFax] [nvarchar](20) NULL, —-公司传真 [CompanyAddress] [nvarchar](250) NOT NULL, -—公司地址 [CompanyRemark] [nvarchar](450) NULL, --公司备注

[ReDateTime] [datetime] NOT NULL --公司首次合作时间 )

3。2。4 进货信息表

进货信息表(T_InGoodsInfo):主要用于存放进货商品的基本信息。其中包括商品的编号、商品的名称、进货员工编号、进货公司名称、进货数量、进货单价、所属仓库、进货时间、应付金额、实付金额等字段,用这些来描述每次进货的情况,便于管理者分析和统计。进货信息表实体E-R图如图3.4所示:

商品编号 员工编号 商品名称 备注 进货时间 进货公司名称 所属仓库 进货数量 进货单价 进货信息表 计量单位 销售单价 实付金额 应付金额 图3.4 进货信息实体E—R图

进货信息表的数据字典包括以下内容:各字段名称、字段说明、字段类型、是否可

13

为空、是否为主键.数据字典的表现形式如表3。3进货信息表(T_InGoodsInfo)所示:

表3。3 进货信息表(T_InGoodsInfo)

字段名 GoodsID EmpId InCompanyName DepotName GoodsName GoodsNum GoodsUnit GoodsInPrice GoodsSellPrice GoodsNeedPrice GoodsNoPrice GoodsRemark GoodsTime

描述-说明 商品编号 操作员编号 进货公司名称 仓库名称 进货商品名称 进货商品数量 商品单位 进货商品单价 销售商品单价 应付金额 实付金额 进货商品描述 进货时间

类型 nvarchar nvarchar nvarchar nvarchar nvarchar int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar datetime

是否可为空 否 否 否 否 否 否 否 否 否 否 否 是 否

是否为主键 是 否 否 否 否 否 否 否 否 否 否 否 否

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_InGoodsInfo)的SQL脚本:

CREATE TABLE [dbo].[T_InGoodsInfo](

[GoodsID] [nvarchar](50) NOT NULL, ——进货商品编号 [EmpId] [nvarchar](50) NOT NULL, --进货员工

[InCompName] [nvarchar](150) NOT NULL, ——供应商名称 [DepotName] [nvarchar](50) NOT NULL, -—所属仓库 [GoodsName] [nvarchar](50) NOT NULL, -—商品名称

[GoodsNum] [int] NOT NULL, —-商品数量 [GoodsUnit] [nvarchar](50) NOT NULL, —-商品单位 [GoodsInPrice] [nvarchar](10) NOT NULL, -—商品单价 [GoodsSellPrice] [nvarchar](10) NOT NULL, --商品售价 [GoodsNeedPrice] [nvarchar](20) NOT NULL, -—应付金额 [GoodsNoPrice] [nvarchar](20) NOT NULL, -—实付金额 [GoodsRemark] [nvarchar](250) NULL, —-商品描述 [GoodsTime] [datetime] NOT NULL --进货时间 )

14

3。2.5 销售信息表

销售信息表(T_SellGoods),主要用于存放货品销售情况的基本信息。主要包括销售商品编号、销售员工、销售商品名称、销售时间、销售数量、销售单价、商品应付金额、商品实付金额等.销售信息实体E-R图如图3。5所示:

销售员工

商品名称 销售编号 销售时间 商品销售信息表 实付金额

销售数量

应付金额销售单价

图3.5 商品销售信息实体E-R图

我们可以知道,每个E-R图都对应了一个数据表,每个表也相应的对应着自己的数据

字典。商品销售信息表的数据字典包括以下内容:字段名称、字段描述、字段类型、哪个字段为主键,那些字段不能为空等.数据字典的表现形式如表3。4销售信息表(T_SellGoods)所示:

表3。4 销售信息表(T_SellGoods)

字段名 SellID EmpName GoodsName SellGoodsNum SellGoodsTime SellPrice SellNeedPay SellHasPay SellRemark

描述—说明 商品销售编号 操作员名称 销售商品名称 销售商品数量 销售时间 销售商品单价 应付金额 已付金额 销售商品说明

类型 nvarchar nvarchar nvarchar int nvarchar nvarchar nvarchar nvarchar nvarchar

是否可为空 否 否 否 否 否 否 否 否 是

是否为主键 是 否 否 否 否 否 否 否 否

15

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_SellGoods)的SQL脚本:

CREATE TABLE [dbo]。[T_SellGoods](

[SellID] [nvarchar](50) NOT NULL, --销售编号 [EmpName] [nvarchar](50) NOT NULL, ——售货员工 [GoodsName] [nvarchar](50) NOT NULL, --商品名称 [SellGoodsNum] [int] NOT NULL, —-销售数量 [SellGoodsTime] [datetime] NOT NULL, -—销售时间 [SellPrice] [nvarchar](10) NOT NULL, -—销售价格 [SellNeedPay] [nvarchar](10) NOT NULL, ——应付金额 [SellHasPay] [nvarchar](10) NOT NULL, --已付金额 [SellRemark] [nvarchar](250) NULL —-售货评价

3。2。6 退货信息表

退货信息表(T_BackGoodsInfo),是存放被退回的商品的信息。具体包括退货编号、退货商品名称、销售编号、退货商品数量、退货商品单价、应退金额、已退金额、退货原因等。商品退回信息实体E-R图如图3。6所示:

销售编号 销售人员 退货商品名称 退货商品数量 退货商品编号 商品退货信息表 退货商品价格 退货原因 应退款金额 已退款金额 图3.6 商品退货信息实体E-R图

商品退货信息表同以上表相同,都有一个对应的数据字典。添加数据字典的目的就

是将各字段的属性设置呈现给读者。此表的数据字典包括退货商品字段名、字段描述说明、字段类型、那个是主键、哪些可为空等。数据字典的表现形式如表3.5退货信息表所示:

16

表3.5 退货信息表(T_BackGoodsInfo)

字段名 BackGoodsID SellID BackGoodsName BackGoodsNum BackGoodsTime BackGoodsPrice BackNeedPay BackHasPay BackGoodsResult

描述—说明 退货商品编号 商品销售编号 退货商品名称 退货商品数量 退货时间 退货商品单价 应退金额 已退金额 商品退货原因

类型 nvarchar nvarchar nvarchar int datetime nvarchar nvarchar nvarchar nvarchar

是否可为空 否 否 否 否 否 否 否 否 是

是否为主键 是 否 否 否 否 否 否 否 否

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_BackGoodsInfo)的SQL脚本:

CREATE TABLE [dbo]。[T_BackGoodsInfo](

[BackGoodsID] [nvarchar](50) NOT NULL, ——退货编号 [SellID] [nvarchar](50) NOT NULL, --销售编号

[BackGoodsName] [nvarchar](50) NOT NULL, —-退货商品名称 [BackGoodsNum] [int] NOT NULL, --退货商品数量 [BackGoodsTime] [datetime] NOT NULL, --退回时间 [BackGoodsPrice] [nvarchar](10) NOT NULL, —-退货商品单价 [BackNeedPay] [nvarchar](10) NOT NULL, ——应退金额 [BackHasPay] [nvarchar](10) NOT NULL, ——已退金额 [BackGoodsResult] [nvarchar](250) NULL --退货原因 ) 3。2.7 库存信息表

库存信息表(T_KcGoods),是用于存放仓库中商品的信息.它可以说是一个汇总,因为所有的商品都存放在仓库中。此表的意义在于管理者可以查看库存的分配情况、商品的种类及数量。可以随时进行商品的调度和调整。该表含有以下字段:商品编号、供应商名称、商品名称、所属仓库、库存数量、报警数量、商品单位、进货单价、销售单价、进货员工和备注说明这些字段。库存信息实体E—R图如图3.7所示:

17

商品编号

库存信息表

备注

进货员工

商品价格 销售价格

图3。7 库存信息实体E—R图

供应商名称 商品名称 所属仓库 库存数量 报警数量 商品单位 库存信息表数据字典的内容有字段名、字段说明、字段类型、是否为主键和是否可

以为空。数据字典的表现形式如表3.6库存信息表(T_KcGoods)所示:

表3.6 库存信息表(T_KcGoods)

字段名 KcID GoodsID InCompName KcDeptName KcNum KcAlarmNum KcUnit KcTime KcGoodsPrice KcSellPrice KcEmp KcRemark KcGoodsName

描述-说明 库存编号 商品编号 供应商名称 所属仓库名称 库存商品数量 商品报警数量 商品单位 存库时间 库存商品进价 库存商品售价 操作员名称 存库描述 库存商品名称

类型 int nvarchar nvarchar nvarchar int int nvarchar datetime nvarchar nvarchar nvarchar nvarchar nvarchar

是否可为空 否 否 否 否 否 否 否 否 否 否 否 是 否

是否为主键 否 是 否 否 否 否 否 否 否 否 否 否 否

在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_KcGoods)的SQL脚本: CREATE TABLE [dbo]。[T_KcGoods](

18

[KcID] [int] IDENTITY(1,1) NOT NULL, —-仓库编号 [GoodsID] [nvarchar](50) NOT NULL, ——商品编号 [InCompName] [nvarchar](150) NOT NULL, --供应商名称 [KcDeptName] [nvarchar](50) NOT NULL, --所属仓库

[KcGoodsName] [nvarchar](50) NOT NULL, --库存商品名称 [KcNum] [int] NOT NULL, —-库存数量 [KcAlarmNum] [int] NOT NULL, --报警数量 [KcUnit] [nvarchar](50) NOT NULL, -—计量单位 [KcTime] [datetime] NOT NULL, —-存库时间

[KcGoodsPrice] [nvarchar](50) NOT NULL, --库存商品价格 [KcSellPrice] [nvarchar](50) NOT NULL, --销售单价 [KcEmp] [nvarchar](50) NOT NULL, —-进货人 [KcRemark] [nvarchar](250) NULL ——描述 )

3。2。8 可选属性列表

可选属性列表(T_IdName)是专门为ComboBox控件准备的,这里提供了一些可选字段下的各种可选项。这样使他们独自成为一个表,目的是为了方便管理。此表包括编号、可选字段名称和可选字段类型3个字段。可选属性列表实体E-R图如图3。8所示:

可选字段名称

可选属性 可选字段类型 字段编号 图3。8 可选字段编号实体E-R图

此表的数据类型少,相对来说简单易懂.它的数据字典也是用字段名、字段说明、

字段类型、是否可为空和是否是主键 这几个属性来描述。数据字典的表现形式如表3。7可选属性列表(T_IdName)所示:

表3。7 可选属性列表(T_IdName)

字段名 描述—说明 类型 是否可为空 是否为主键 19

Id Name Category 字段编号 可选字段名称 可选字段类型 Int Nvarchar Nvarchar 否 否 否 是 否 否 在基本的数据表的结构确定后,就可以在SQL Server中完成数据表的创建工作,下面给出建立员工信息数据表(T_IdName)的SQL脚本:

CREATE TABLE [dbo]。[T_IdName](

[Id] [int] IDENTITY(1,1) NOT NULL, —-编号

[Name] [nvarchar](50) NOT NULL, —-可选字段名称 [Category] [nvarchar](50) NOT NULL -—可选字段类型 )

3.2.9 数据库的物理模型

在数据库中,各表与各表之间也存在着直接或间接地联系,为了让读者完全领悟该

超市进销存管理系统中数据库的设计,我将各表间的物理关系图也画了出来,这只是根据我的理解简单的将表进行了关系连接,并不完全准确,仅供读者参考。数据库的物理模块图如图3。9所示:

20

图3。9 数据库的物理模型图

21

4 系统实现

4。1登陆功能模块

4。1.1 系统登陆界面

用户在使用本系统时要进行身份验证,将用户名和密码输入对应的文本框中,然后系统会自动连接数据库,判断用户表中是否存在此用户,验证成功后才可进入系统,否则会发出报错信息。登陆后可进行后续操作。(注:首次使用该软件的用户可以用用户名:yangdi 密码:123456登陆。)系统登陆功能界面如图4。1所示:

图4。1 系统登陆功能界面

后台主代码[11,12,13]:

Private oid kd `tnࡌogin_Click (object sender, RoutedEventArgs e) ( {。 ` S‴ring username = tbUserName。Text; String pwd = pwdPassword。Password;

EmpInfo empinfo = new EmpInfoDAL ().GetByUserName (username); If (empinfo == null) {

MessageBox.Show(\"用户名或密码错误”); tbUserName.Focus (); }

Else if (empinfo.EmpLoginPwd == pwd)

22

{

MessageBox。Show(\"登录成功\"); DialogResult = true; } Else {

MessageBox。Show(”用户名或密码错误”); tbUserName。Focus (); } }

4.2主界面模块

4.2。1 主界面

在用户成功登录系统后就会进入如下超市进销存系统主界面,用户可以根据需要对系统进行基本信息管理、进货管理、销售管理、库存管理、系统维护等相关模块的操作,通过对以上大模块下小功能模块进行增加、删除、修改和查询等操作,得到自己想要的结果。主窗体界面如图4.2所示:

图4.2 主窗体界面

后台主代码:

23

〈Grid〉

〈DockPanel 〉

〈Menu DockPanel.Dock=”Top” Height=”30”〉

〈MenuItem Header=\"基本信息管理 \" 〉

〈/MenuItem> 〈/MenuItem〉 〈/MenuItem〉

〈MenuItem Header=\"进货管理”〉

〈MenuItem Header=\"商品进货\" Click=”MenuItem_Click_2\"〉〈/MenuItem>

〈MenuItem Header=”商品查询” Click=”MenuItem_Click_3\"〉

〈MenuItem Header=”销售管理\"〉 〈MenuItem Header=\"商品退货\" Click=”MenuItem_Click_6\"〉〈/MenuItem>

〈/MenuItem〉

〈MenuItem Header=”库存管理\"〉

〈MenuItem Header=”库存报警” Click=\"MenuItem_Click_7\">〈/MenuItem>

〈MenuItem Header=\"库存查询” Click=”MenuItem_Click_8\"〉

〈MenuItem Header=\"数据还原” Click=\"MenuItem_Click_10\"〉

〈MenuItem Header=”退出\" Click=”MenuItem_Click_11\" > 〈/MenuItem〉

24

4.3 基本信息管理模块

4.3.1 基本信息管理模块简介

在该模块中有两个小的基本模块(员工基本信息管理和供应商基本信息管理),用户根据需要选择需要进行操作的模块。在使用过程中,界面加载后有些操作是不可见的,只有可见的按钮才可以进行选择,当用户选择后,之前界面加载时可见的一些按钮变成不可见,但同时会出现一些变得可见的按钮,用户具体想继续进行什么操作,可以根据界面上的可见按钮进行选择.

4。3。2 员工信息管理界面

员工信息管理界面可以对员工进行增加、删除、修改、查询等操作.以添加员工为例,当操作员要添加员工时,首先登陆员工信息表界面,点击添加按钮,此时界面的可编辑区域由原来的不可用变为可用,并且在工具栏中还会出现保存和取消按钮,而删除和修改按钮却消失不见,这时将要添加的员工信息填入编辑框点击保存后,界面下的表中就会出现刚刚添加的员工信息。员工信息界面如图4.3所示:

图4。3 员工信息界面

后台主代码:

25

private void btnSave_Click(object sender, RoutedEventArgs e) //保存

bool isOK = true;//数据检验是否通过

CheckTextboxNotEmpty (ref isOK, txtEmpName,txtEmpAddress , txtEmpPhone, txtEmpPhoneM,txtEmpLoginPwd,txtEmpRealName);

CheckComboBoxNotEmpty (ref isOK, cbEmpSex, cbMarriage, cbPartyStatus, cbEducation, cbEmpDept.cbEmpPost); If (isOK == false) return; if (IsAddNew) {

EmpInfoDAL emp = new EmpInfoDAL (); emp.Insert (empinfo); }

btnCancel_Click (this.new RoutedEventArgs ()); EmpInfoDAL dal = new EmpInfoDAL ();

gridEmpInfos。ItemsSource = dal。ListAll (); btnEdit.Visibility = Visibility.Visible; btnDelete.Visibility = Visibility。Visible; btnAdd。Visibility = Visibility.Visible; btnCancel。Visibility = Visibility.Hidden; btnSave.Visibility = Visibility.Hidden; }

检验是否填入数据:

private void CheckTextboxNotEmpty(ref bool isOK, params TextBox[] textboxes)//检查Texkbox是否为空,为空标记为红色 {

foreach (TextBox txtBox in textboxes)

{ if (txtBox.Text.Length <= 0) { isOK = false;

txtBox.Background = Brushes。Red; } else

{ txtBox.Background = null; } } }

private void CheckComboBoxNotEmpty(ref bool isOK, params ComboBox[] cmbs) //检查ComboBox是否为空,为空标记为红色 {

foreach (ComboBox cmb in cmbs) {

if (cmb。SelectedIndex 〈 0)

26

isOK = false;

cmb。Effect = new DropShadowEffect { Color = Colors。Red };

} else {

cmb.Effect = null; } } }

4.3.3 供应商信息管理界面

生产厂家是超市进货的主要来源,超市可根据进货的需求对供应商进行选择.对此模块,我进行删除供应商的操作,首先登陆系统到供应商信息界面,在下表中选中要删除的数据,点击工具栏中的删除按钮,这时界面会弹出你确定要删除此项信息吗,最后点击确定,数据就会删除了.供应商信息管理界面如图4.4所示:

27

图4.4 供应商信息管理界面

删除供应商信息后台主代码:

private void btnDelete_Click(object sender,

RoutedEventArgs e) //删除的方法

Company com = (Company) gridCompanyInfo.SelectedItem; if (com == null) {

MessageBox.Show(\"没有选中任何行!”); return; }

if (MessageBox.Show(”是否确认删除此项!”, \"消息”, MessageBoxButton。OKCancel, MessageBoxImage.Warning) == MessageBoxResult。OK)

CompanyDAL dal = new CompanyDAL (); dal.Delete (com);

gridCompanyInfo.ItemsSource = dal。ListAll (); } }

调用方法:

public void Delete(Company company) //删除数据方法 {

SqlHelper。ExecuteNonQuery (@”delete from T_Company where CompanyID=” + company。CompanyID); }

字段的声明和定义(Model):

public class Company {

public string CompanyID { get; set; }

public string CompanyName { get; set; } public string CompanyDirector { get; set; }

public DateTime ReDateTime { get; set; } public string CompanyPhone { get; set; } public string CompanyFax { get; set; } public string CompanyAddress { get; set; } public string CompanyRemark { get; set; }

28

4。4 进货管理模块

4。4.1 进货管理模块简介

进货管理模块主要负责进货信息的管理,此模块下有商品进货和商品查询两个小模块,用户根据需求的不同选择不同的模块进行操作.

4。4。2 商品进货管理

当用户登录选择商品进货模块时,屏幕上会出现商品进货界面的窗体,在窗体的表格中会加载此前进货商品的信息,然后根据用户需要对这些数据进行删除和修改工作。我们对此模块进行修改操作.用户登录到此界面后选中要修改的数据信息,然后点击修改数据信息就会自动加载到可编辑框中,如果没有选中,它会提示你没有选中任何行.进货信息管理界面如图4.5所示:

29

图4.5 进货信息管理界面

修改进货信息后台主要代码:

internal void btnEdit_Click(object sender, RoutedEventArgs e)

//编辑

{

InGoods ings = (InGoods) gridInGoodsInfo.SelectedItem; if (ings == null) {

MessageBox。Show(”没有选中任何行!\"); return; } else {

DataContext = ings。Clone (); }

IsAddNew = false;

btnDelete。Visibility = Visibility。Hidden; btnAdd。Visibility = Visibility。Hidden; btnCancel。Visibility = Visibility.Visible; btnSave.Visibility = Visibility。Visible;

30

YesOrNo (); }

字段的声明和定义:

public class InGoods //进货信息表model {

public string GoodsID { get; set; } public string EmpId { get; set; }

public string InCompName { get; set; } public DateTime GoodsTime { get; set; } public string DepotName { get; set; } public string GoodsName { get; set; } public Int32 GoodsNum { get; set; } public string GoodsUnit { get; set; } public string GoodsInPrice { get; set; } public string GoodsSellPrice { get; set; } public string GoodsNeedPrice { get; set; } public string GoodsNoPrice { get; set; } public string GoodsRemark { get; set; }

}

4。4.3 商品查询管理

商品查询模块主要负责商品的查询工作,用户在查询时可以选择一个到几个条件进行查询,系统会根据用户选择的条件进行查询,查询出的数据信息会在表格中显示出来,查询结束后点击退出即可。商品查询界面如图4.6所示:

31

图4。6 商品查询界面

商品查询后台主代码:

private void btnSearch_Click(object sender, RoutedEventArgs e)//查询

{ List (); string s = ”select * from T_InGoodsInfo where”; If(checkDepotName。IsChecked==true) { s+= ” DepotName=@DepotName and\";

parameters.Add(newSqlParameter(\"@DepotName\。Selecte dValue)) ; }

If (checkEmpId.IsChecked==true) { s+=\" EmpId=@EmpId and”;

parameters。Add (new SqlParameter (\"@EmpId”, cbEmpId.SelectedValue)) ; }

If (checkGoodsName.IsChecked ==true) { s+= ” GoodsName=@GoodsName and”;

parameters.Add(newSqlParameter(\"@GoodsName”,cbGoodsName。Selected Value)) ; }

If (checkGoodsUnit.IsChecked == true) { s += \" GoodsUnit=@GoodsUnit and”;

parameters.Add(newSqlParameter(”@GoodsUnit”,cbGoodsUnit。Selected Value)) ; }

32

If(checkInCompName。IsChecked== true) { s+=\"InCompName=@InCompNameand\";

parameters。Add(newSqlParameter(”@InCompName”,cbInCompName。Selected

Value)) ; }

s += ” 1=1\";

gridInGoodsInfo.ItemsSource=InGoodsInfoDAL。Search(s,parameters。ToArray ()); }

调用的方法:

Public static InGoods [] Search (string s, params SqlParameter [] p) //根据条件查询进货信息方法 {

DataTable table = SqlHelper.ExecuteDataTable(s, p); InGoods [] ings = new InGoods [table。Rows.Count]; for (int i = 0; i 〈 table.Rows。Count; i++) {

Ings [i] = ToInGoodsInfo (table.Rows[i]); }

return ings; }

4.5 销售管理模块

4。5.1 商品销售管理界面

商品的销售是一个企业的灵魂所在,企业的主要目的是盈利,而应盈利的主要

来源又是商品的销售。所以,销售在企业中占据着主导性的地位,就拿产品的销售来说,当有商品被销售出去时,在商品销售表中添加销售的时间、商品名称等信息,这为以后的查询和管理都有很大的好处.商品销售管理界面图4.7所示:

33

图4。7 商品销售管理界面

添加销售信息后台主要代码:

private void btnSave_Click(object sender, RoutedEventArgs e) //保存

{ int s = Convert.ToInt32(sellgoods。SellPrice) * Convert.ToInt32(sellgoods.SellGoodsNum);

txtSellNeedPay。Text = sellgoods.SellNeedPay = Convert。ToString(s); bool isOK = true;//数据检验是否通过

CheckTextboxNotEmpty (ref isOK, txtEmpName, txtGoodsName, txtSellGoodsNum, txtSellHasPay, txtSellID, txtSellNeedPay, txtSellPrice); if (isOK == false) return; if (IsAddNew) {

SellGoodsDAࡌ!sel|g = new SellGoodsDALР(); `ࡌ0 ! ` s䁥llg。Insert (selmgoods); $ Ƞ }

”ࡌnCancel_Click (tèisl ~%w RࡌutedMventArg3 ())? SedìࡌoodsDAL d!l = new SellGoodsDAL ();

gridSellGooɥs。ItemsՓour#e ? dal。ListAll (); btnSave。Visibility = Visibility。Hidden;

34

btnEdit.Visibility = Visibility。Visible; btnDelete。Visibility = Visibility.Visible; btnCancel。Visibility = Visibility.Hidden; btnAdd。Visibility = Visibility.Visible; }

4.5.2 商品退货信息管理

虽说销售是企业的灵魂,但在销售过程中难免会出现一些失误或货品品质上的问题,所以我绘制了商品退货信息管理模块。出现商品退货时,操作员要对退货商品的情况进行说明,也要把相应的该商品的销售信息填入表中,方便以后的管理工作。商品退货信息管理界面如图4.8所示:

图4.8 商品退货信息管理界面

35

4。6 库存管理模块

4。6.1 库存报警模块

在库存报警模块中可以对存入的商品信息进行设置,如报警数量、所属仓库、存库时间等信息。在这里我不做过多的介绍。 库存报警界面如图4.9所示:

图4.9 库存报警界面

库存报警界面布局代码: 〈DataGrid AutoGenerateColumns=\"False\" IsReadOnly=\"True\" Name=\"gridKcGoods\" DockPanel。Dock=”Top” Height=\"227\" 〉

〈/DataGridTextColumn〉

〈DataGridTextColumn Width=\"100\" Header=\"供应商名称\" Binding=\"{Binding InCompName}\"〉

〈DataGridTextColumn Width=”70\" Header=”进货人\"

36

Binding=\"{Binding KcEmp}”>〈/DataGridTextColumn〉

〈DataGridTextColumn Width=\"100” Header=”所属仓库” Binding=”{Binding KcDeptName}”〉〈/DataGridTextColumn〉

〈DataGridTextColumn Width=”100” Header=\"进货时间\" Binding=\"{Binding KcTime}\">〈/DataGridTextColumn>

〈DataGridTextColumn Header=\"库存数量\" Binding=”{Binding KcNum}\"〉

〈DataGridTextColumn Width=”40\" Header=”单位\" Binding=”{Binding KcUnit}”>〈/DataGridTextColumn>

〈DataGridTextColumn Width=\"100\" Header=”进货价格\" Binding=\"{Binding KcGoodsPrice}”>

〈DataGridTextColumn Width=\"100\" Header=\"销售价格\" Binding=\"{Binding KcSellPrice}”〉〈/DataGridTextColumn〉

4.6.2 库存查询界面

在库存查询中,用户可以对商品编号、进货人和所属仓库中的一个和多个进行查询,不仅如此,在这些查询中支持模糊查询,用户可以提供简单的、部分的或不完整的信息就可以得到想要的结果。库存查询界面如图4。10所示:

37

图4。10 库存查询界面

库存查询后台主代码:

private void btnFind_Click(object sender, RoutedEventArgs e) //查找 {

List〈SqlParameter〉 parameters = new List〈SqlParameter〉 (); string s = \"select * from T_KcGoods where”; if (checkGoodsID。IsChecked == true) { s+=\"GoodsID=@GoodsID and\"; parameters。Add(new SqlParameter(”@GoodsID\)); }

if(checkKcDeptName.IsChecked==true) { s+=”KcDeptName=@KcDeptNameand”; parameters.Add(newSqlParameter(\"@KcDeptName”,cbKcDeptName。Selec ted Value)); }

if(checkKcEmp。IsChecked==true){ s+=”KcEmp=@KcEmpand”;

parameters.Add(new SqlParameter(”@KcEmp\); } s += \" 1=1”;

gridKcGoodsSearch。ItemsSource = KcGoodsDAL。Search(s, parameters。ToArray

()); Clear ();

38

}

private void Clear() //清空 {

checkGoodsID.IsChecked = false;

checkKcDeptName。IsChecked = false; checkKcEmp.IsChecked = false; txtGoodsID.Text = \"\"; txtKcEmp。Text = ”\";

cbKcDeptName。SelectedValue = ””; }

4。7 系统维护模块

4.7。1 系统维护模块简介

该模块的主要功能就是对数据库进行备份和还原。由于在操作过程中,操作员

难免会出现操作错误,当用到此数据时,系统运行就会出错。所以系统数据就要还原到以前的状态。因此,经常的备份数据库中的数据是有好处的,当需要数据库还原时,找到数据库备份文件,点击【确定】即可。否则,一旦系统发生重大错误,自己也后悔莫及.

4。7。2 数据备份界面

数据备份主窗体界面简单易懂,用户只需要选择文件要保存的路径、起一个文件

名字即可将当时的数据库备份一次,以备不时之需。数据库备份界面如图5。11所示:

图5。11 数据库备份界面

数据备份后台主代码:

39

Private void btnOpen_Click (object sender, RoutedEventArgs e)

//打开窗体,找到数据库想要备份的地点 {

FolderBrowserDialog f = new FolderBrowserDialog ();

If (f.ShowDialog () ==System。Windows。Forms.DialogResult.OK){ txtPath.Text = f。SelectedPath.ToString (); } }

private void btnOK_Click(object sender, RoutedEventArgs e)//保存 {

try{

if (txtPath.Text != \"” && txtName.Text != \"\") {

String str = \"backup database Sheji to disk=’\"+txtPath.Text.Trim () +\"\\\\\"+txtName。Text.Trim ( ) +\"。bak’”;

if (SqlHelper。ExecuteNonQuery (str) != 0){

System.Windows.MessageBox。Show(”数据备份成功!\\"消息”, MessageBoxButton.OK, MessageBoxImage.Information); this。Close (); }

else{

System。Windows.MessageBox。Show(\"数据备份失败!\", \"消息”, MessageBoxButton。OK, MessageBoxImage.Information); } }

else{

System。Windows。MessageBox.Show(”请填写备份文件的正确位置及文件名!”,”提示框\。OK,MessageBoxImage.Information); } }

Catch (Exception ee){

System.Windows.MessageBox.Show (ee。Message.ToString ()); } }

4。7.3 数据还原界面

数据的备份和还原是相对的,既然用到数据的备份,那么数据的还原也不可缺

少了,要不然数据的备份就失去了它存在的意义。数据的还原是指在数据库出错时,你需要将数据库返回到它原来正确的时候,这时你就应该找到之前备份过的数据库,点击确定还原,这样系统数据才会回到正常状态。数据库还原界面如图5—12所

40

示:

图5。12 数据库还原界面

数据库还原代码:

Private void btnOpen_Click (object sender, RoutedEventArgs e) //查找之前的备份文件 {

OpenFileDialog opd = new OpenFileDialog (); opd。FilterIndex = 0; opd。FileName = ””;

opd.Filter = \"txt files (*.bak)|*.bak|All files (*.*)|*。*\";

if (opd。ShowDialog() ==System.Windows.Forms。DialogResult。OK) {

txtPath。Text = opd.FileName。ToString (); } }

private void btnOK_Click object sender, RoutedEventArgs e)

//点击确定,还原数据库

{

if (txtPath.Text != \"\") {

string connStr = ConfigurationManager。ConnectionStrings[”dbConnStr”]。ConnectionString;

SqlConnection con = new SqlConnection (connStr); if (con。State == ConnectionState。Open) {

con。Close (); }

string DateStr = \"Data Source=.;Database =master;User Id=sa; Password=yzc10430123\";

SqlConnection conn = new SqlConnection (DateStr); conn.Open ();

string strSQL = \"select spid from master.。sysprocesses where dbid=db_id(’Sheji’) \";

DataTable table = SqlHelper。ExecuteDataTable (strSQL);

41

SqlCommand Cmd = new SqlCommand (); Cmd.CommandType = CommandType.Text; Cmd。Connection = conn;

for (int row = 0; row 〈= table.Rows。Count — 1; row++) {

Cmd.CommandText = ”kill ” + table。Rows[row][0]。ToString(); //强行关闭用户进程

Cmd。ExecuteNonQuery (); }

string str = ”backup log Sheji to disk=’\" + txtPath。Text。Trim () + \"' restore database Sheji from disk=’” + txtPath.Text。Trim () + ”’\"; Cmd。CommandText = str; Cmd.ExecuteNonQuery (); conn。Close (); conn.Dispose ();

System.Windows.Forms.MessageBox。Show(\"数据还原成功!\提示\", MessageBoxButtons。OK, MessageBoxIcon.Information);

System.Windows。Forms.MessageBox。Show(\" 为了必免数据丢失,在数据库还原后将关闭整个系统.\");

System.Windows.Forms。Application。Exit (); }

else {

System。Windows.Forms.MessageBox。Show(\"请选择备份文件!”, \"提示\", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }

42

5 系统运行与测试

5。1 测试计划

严格遵照测试用例设计的基本原则,对每一个概念都尽量做到详尽描述,尽量避免含糊的测试用例出现;尽量避免冗长和复杂的测试用例;尽量将具有相似功能的测试用例抽象并归类;对每个功能模块都设计相应的测试用例(并去除功能类似模块测试用例的重复性)。所有的测试都应可追溯到客户需求.在设计测试用例时,应该包括合理的输入条件和不合理的输入条件,并按照要求严格执行测试计划,剔除测试的随意性,最后应当对每一个测试结果,做全面的检查。

检查系统程序是否做了应做的事,这仅仅是成功的一半,另一半是检查系统程序是否做了不该做的事。在规划测试时不要设想程序中不会出现错误.

5。2测试方法及用例

测试方法: 白盒[14] 测试用例:

表5。1 测试用例说明图表

序号 1 2 3 4 5 6 7 8

测试项 系统登陆

输入说明(操作)

用户名正确,用户密码不正确。

输出说明(预期结果) 提示‘您输入的信息有误,请从新输入!’

未输入信息框颜色变为红色。 正确不提示信息。

提示‘没有选中任何行!'

添加员工 员工信息输入不完整. 添加供应商 准确填写。

删除商品信息 未选中信息,点击删除.

选中要操作的信息,点击修改,然后

修改销售信息 正确不提示信息.

用户再继续下一步操作。

界面无变化,没有效果。原因:选定

查询库存信息 根据选定的查询条件进行查询.

条件前的CheckBox没选中. 数据备份 数据还原

在用户选择路径后,点击保存.

提示‘数据备份成功’

提示‘数据还原成功!’‘为了必免

用户找到之前备份的(.bak)数据

数据丢失,在数据库还原后将关闭整

文件,点击确定。

个系统。'

43

结 论

该系统是针对超市的进销存管理而设计的,在这个系统中研究的内容涉及超市进销存管理的全过程,包括对超市商品的采购、查询、销售、库存管理等等进行一系列的操作。虽然,此系统在许多方面还不够完善,还存在一些问题需改进,但界面设计简洁,美观大方,基本功能是比较完善的.

在超市进销存系统的开发初期,必须要了解超市进销存管理系统的整个运行流程,查阅该系统的相关知识,只有这样才能进入到设计的过程中去。从开始熟悉这些基础知识到对整体系统设计有了解,再从需求分析、系统实现,以及最后的测试,整个过程感觉很充实,但我发现自己在数据库的应用方面学习的不够扎实,在表的设计与表间连接方面还需进一步学习,因此,我查阅了相关书籍,多做练习加强自己对新知识的应用能力.

经过一段时间的设计与构架,终于完成了毕业论文超市进销存系统的开发。在这次开发过程中,遇到了很多很多的困难。包括技术实现方面,数据库设计方面,系统测试方面以及毕业论文的撰写方面,但通过老师的悉心指导和自己的学习最终顺利完成了本系统的开发。

44

致 谢

本次毕业设计让我学到了很多东西,在此得到了很多老师和同学的帮助,才顺利完成这次设计。这对我日后从事计算机方面的工作提供了很多有益的经验,奠定了扎实的基础,在此我向他们表示衷心的感谢!

通过毕业设计,发现设计要比实现更复杂。比如这次设计时,开始我的数据库未考虑主码和外码,让我在编写程序中出了很多的错误,后来经过吕艳辉老师的提点和细心教导,让我顺利的解决了数据库方面的一个个难题。在后期调试过程中遇到了比较多的Bug,甚至有些Bug让我一天都无法突破(比如:商品热销绑定、购物车结算),但是同学和导师的耐心帮助,和技术上的提点及资料的提供,使我的网上商城系统很好的完成了任务要求.在此再次谢谢他们对我的帮助。

经过这次毕业设计,我的能力有了很大的提高,比如分析问题的能力、操作能力、合作精神等方方面面都进步了。首先,我要特别感谢吕老师对我在整个毕设过程中的帮助支持,在设计初期吕老师帮助我收集文献资料,理清设计思路;系统设计期间经常对我遇到的难点和疑惑给出合理、精妙的解决指导并提出有效的改进方案.后期又督促我对系统的完善维护。吕老师丰富的知识、认真的态度和学术上精益求精的精神让我受益终生。

另外,感谢各位老师在学习期间对我的严格要求,同时也要感谢身边朋友的热心帮助和鼓励,使我的毕业设计能够如期的完成,在这里我要深深的感谢他们。

45

参考文献

[1] 泰格斯,.NET Framework编程思想,清华大学出版社,2011。9 [2] 崔群法,SQLServer2008从入门与精通。北京电子工业出版社,2009.10 [3] 罗江华,.NET Web高级程序开发.北京:电子工业出版社,2008。7 [4] 内格尔,C#高级编程 北京:清华大学出版社 ,2008.10

[5] 黄明, C#+SQL Server 中小型信息系统开发实例精选。 北京: 机械工业出版社,2007。1

[6] 王晟,Visual C#.NET数据库开发经典案例解析.北京:清华大学出版社,2008。3

[7] 麦克卢尔,ASP。NET 2.0数据库入门经典。北京:清华大学出版社,2008 [8] 史嘉权,数据库系统概论. 清华大学出版社,2006年1月

[9] 王珊、萨师煊,数据库系统概论(第4版).高等教育出版社,2006. [10] 姜桂洪等。,SQL Server 2008数据库应用与开发[M]。北京:清华大学出版社,2010。3

[11] 王小科,C#从入门到精通。北京:清华大学出版社,2008.9

[12] 张孝祥,C#基础与案例开发详解。 北京:清华大学出版社,2009.7 [13] 扶松柏,深入体验C#项目开发。北京:清华大学出版社,2011.7 [14] 赵斌,软件测试技术经典教程第二版,科学出版社,2011.9

46

附 录

附录A:英文原文

1。feasibility study

(1) the technical feasibility study

In the IT industry in the employment of staff generally require mastering computer technology, hardware and software has some basis, the use of management software will be familiar with IT products。 This is because some of the supermarket staff relatively high quality requirements, from the management to the sales staff below, requires a certain degree of basic computer, the new system put into use, as long as a small number of staff to conduct the training, the function of the system and Basically, the use of the system can run smoothly. (2) economic feasibility study

Because sales information through the network transmission distance can be exempted from the restrictions, it can borrow a lot of human and material resources, and facilitate management, which can reduce unnecessary expenditures, while the system can improve the efficiency of supermarket sales, which increased the economic Supermarket benefits, and so on the economy is feasible.

① supermarket afford systems development costs

Development of the new system is a complex task spacing, it is mainly the investment of human and material investment。 For the developers of the system, its major investment in human and material resources or two. If it is our own development system for the staff, or its major investment in human resources, from the investigation to the business needs of the coding system are produced enormous human needs investment。 Software enterprises as a short high-tech industries and their employees than general corporate requirements of the request must be high, and the development of the system and more understanding of the software industry, in a self—management system developed in the course of our own relatively easy manpower, Such enterprises will be able to borrow most of the additional expenditure。 At the same time on other software products, a high—end industry, whether it is the price or quality of products

47

with relatively high, and the operator product distributors or businesses are required to have strong financial support。 Therefore, in the system development process, enterprises are able to assume full development costs。 ② new enterprise system will bring economic benefits

Is a management system of information, intelligence and advanced management concept of aggregation。 The management is a dynamic process, in the course of its operation a number of measures to be taken。 Therefore, in the management of access to comprehensive benefits is a cost—effective, it must engage in direct quantitative analysis is more difficult. General the economic benefits of the new system are outlined, the most important is to reduce the performance of enterprise management costs and manpower expenditure. And other food through cumbersome new system to be analysed solution not only saves a great deal of time, but also the decision—making enterprises has provided valuable information for enterprises bring enormous economic benefits. (3)operating feasibility study

The system uses a Windows—based graphical user interface, and the system is the operating system we are familiar with, for those who have general computer knowledge can be easy—to-use staff. Supermarkets and the entire management system by the most friendly interface, brief and clear, no need to conduct an in—depth understanding of the database。

Thus, the operation of the system is feasible, it is necessary to develop the system。 Based on the above three areas, the system has a high feasibility of the development, whether it is technically or economically or operationally。 Therefore, we can design the system data flow diagram, establish a data dictionary。 2.system needs analysis (1) users workflow

Purchase or sale of goods, the user must Jinhuochan or sale of single-check review and registration; users to obtain purchase, sales, inventory information, it is necessary to the purchase, sales, inventory query and print。 (2)users business needs

① the inventory management software will be tea for management and statistical information, products and product sales Jinhuochan a single input management and

48

statistics;

② The management software will be depending on the user’s need to purchase, sales, inventory query, and print detailed information;

③ The management software will provide users with account management tools so that users on the account management, for specific users add, delete users, modify user passwords;

④ The management software provides enterprise management, enterprise employees can be classified management and the addition of new employees, as well as employees to delete, modify the information into functional。 3。detailed design (1) Design thinking:

① System is divided into several relatively independent modules, but these modules to centralized management.

② Hierarchical modular design thinking process, the entire system is modular in design agencies. Application procedures are as strong operational and scalability。 ③ Reasonable data flow design, in the design of applications, relatively independent of the data flow between modules interconnected so that the coupling between modules and lower for the system’s operation and improve the security of the system。

(2) Design principles: In order to make the system fully functional comprehensive, easy to operate, the maximum improve software quality, and to meet the practical needs of users in the design and development process followed, as the following principles: ① the principle of legality: accounting products based on the work requirements as well as system requirements, in the light of the actual accounting work conducted by the goods such as product, sales and other work。

② practical principles: product information management for the actual needs, and be able to deal with some special circumstances require, in addition, as far as possible, set aside space for expansion capabilities。

③ accuracy principles: on the importation of relevant information to establish mechanisms seized the wrong time error, allowing users to input timely and accurate legal information (such as matching type, length not exceeding limits, etc。).

49

④ easy operating principles: to demand the complete system design, friendly interface, easy to operate, suggested that the necessary places.

⑤ source readability principles: In order to facilitate other design, maintenance personnel understand the code or modify the code after software upgrade maintenance, can be both good code Notes work。

⑥ optimization principles: In order to achieve the purpose of optimizing and reasonable use of windows, menus, objects of succession, since the user—defined objects, events, function, reduce unnecessary repetition code, the procedure simplicity, ease of the future maintenance.

⑦ safety of principle: the system administrator can set up a landing password, password privilege. After the previous design of the whole system we have a preliminary understanding of the various modules and functional differentiation.

50

附录B:汉语翻译

1.系统可行性研究

(1) 技术可行性研究

在IT行业中从业的工作人员一般都要求掌握计算机技术,具有一定的软硬件基础,会使用各种管理软件,熟悉IT产品。因为,有的超市对员工的素质要求比较高,从管理层到下面的销售人员,都要求具有一定的计算机基础,所以在新系统投入使用时,只要对员工进行少量的培训,系统的功能和使用方法就基本上能够是系统顺利运行. (2) 经济可行性研究

因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。 ① 超市有能力承担系统开发费用

开发新系统的工作是一项间距复杂的工作,它的投资主要是人力和物力的投资.对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。 ② 新系统将为企业带来经济效益

管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简介的,其最主要的表现就是减少了企业管理费用和人力开支.而其它一些繁琐的食物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。

51

(3)操作可行性研究

本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。 由此,该系统的操作是可行的,有必要开发该系统.

综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上.因此,可以设计该系统的数据流程图,建立数据字典。

2。系统需求分析

(1) 用户工作流程

进货或销售商品时,用户要对进货单或销售单进行核对审查,并进行登记;用户要获得进货、销售、库存信息时,要对进货情况、销售情况、库存情况进行查询并打印。

(2) 用户业务需求

① 该管理软件将对库存茶品进行资料管理和统计,对产品的进货单和产品的销售单进行录入管理和统计;

② 该管理软件将根据用户的需要对进货、销售、库存情况进行查询,并能打印详细信息;

③ 该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码;

④ 该管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改进本信息等功能。 (3)需求分析 一、 系统功能分析 (1)基本信息的维护

商品类型的建立与维护,包括商品类型的新建、修改和删除等。 商品基本信息管理:包括商品基本信息的新建、修改和删除等。 供货商信息管理:包括供货商信息的新建、修改和删除等. 管理员信息管理:系统管理员的添加、删除和修改密码等。 (2)进货管理

商品进货信息管理:商品进货信息包括商品进货数量、单价、供货商等。商品进货管理功能完成进货信息登记、修改和删除等.

52

分类查看:可以根据商品类型来查看某种商品的进货情况。 更新库存:进货信息的变动直接关系到库存的变化。

进货分析:列出当前进货量最多的前几项商品和进货量最少的前几项商品。 库存分析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。 (3)销售管理

商品销售信息管理:商品销售信息包括商品销售数量、单价、统计日期等.商品销售管理功能完成销售信息登记、修改和删除等。

分类查看:可以根据商品类型来查看某种商品的销售情况。 更新库存:销售信息的变动直接关系到库存的变化.

销售分析:列出当前销售量最多的前几项商品和销售量最少的前几项商品。 (4)报损管理

商品报损信息管理:商品报损信息包括商品报损数量、报损原因等。商品报损管理功能完成报损信息登记、修改和删除等。

分类查看:可以根据商品类型来查看某种商品的报损情况。 更新库存:报损信息的变动同样直接关系到库存的变化。

报损分析:列出当前报损量最多的前几项商品和报损量最少的前几项商品。 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。 (5) 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。 二、系统性能分析 (1)多层结构设计

严格意义上的三层结构设计,其程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层.本系统采用的上有三层结构进一步扩展而成的多层结构。 (2)面向对象设计

在系统中将商品类型、商品等都封装成相应的类,同时每个类都有自己对应的集合类和操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。 (3)指导经营的功能

进销存管理系统并不仅仅能代替传统的书面操作,更重要的是它提供了信息分析的功能,只要单击一个按钮就可以查到目前销售最好的商品或是库存最多的商品,从而起到指导经营的作用。

53

3。详细设计

(1)设计思想:

① 系统分成几个相对独立的模块,但这些模块都进行集中式管理。

② 分层的模块化程序设计思想,整个系统采用模块化机构设计.作为应用程序有较强的可操作性和扩展性。

③ 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性.

(2)设计原则:为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了,如下原则:

① 合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况, 进行诸如产品经货、销售等工作。

② 实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能.

③ 准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如类型匹配,长度不超限等)。

④ 易操作原则:要求设计的系统功能齐全,接口友好,操作方便,必要的地方进行提示.

⑤ 源程序可读性原则:为了便于其它设计,维护人员读懂代码或以后的代码修改,软件升级维护,既可能做好代码注释工作。

⑥ 优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便了将来的维护。

⑦ 安全性原则:该系统的管理员具有可设置登陆密码,修改密码的权限。经过前面的设计,我们对整个系统有了一个初步的认识,并对各个模块进行了功能分化。

54

因篇幅问题不能全部显示,请点此查看更多更全内容