论文例文 (超市进销存系统).docx

上传人:牧羊曲112 文档编号:2030738 上传时间:2023-01-02 格式:DOCX 页数:34 大小:257.53KB
返回 下载 相关 举报
论文例文 (超市进销存系统).docx_第1页
第1页 / 共34页
论文例文 (超市进销存系统).docx_第2页
第2页 / 共34页
论文例文 (超市进销存系统).docx_第3页
第3页 / 共34页
论文例文 (超市进销存系统).docx_第4页
第4页 / 共34页
论文例文 (超市进销存系统).docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《论文例文 (超市进销存系统).docx》由会员分享,可在线阅读,更多相关《论文例文 (超市进销存系统).docx(34页珍藏版)》请在三一办公上搜索。

1、目录摘要.2ABSTRACT2第一章 系统概述.3一. 应用背景3二. 系统功能3三. 系统预览3 四. 系统特点4第二章 .系统分析4一. 初步调查4 (一)进销存系统的任务4 (二)进销存系统的作用4 二. 详细调查4 (一)进销存系统需求分析4 (二)进销存系统数据库分析5(三)进销存系统E-R图5三. 可行性分析5 (一)系统功能5 (二)系统流程图6第三章 系统设计和数据库设计6 一. 系统功能模块划分6 二. 系统流程分析7三. 数据库设计7 (一)数据库结构设计8 (二)创建数据库8 (三)设计数据表8 (四)创建存储过程13四. 窗体设计14(一)创建系统主窗体14(二)创建数

2、据访问模块15(三)实现系统登录功能17(四)实现商品资料维护功能19(五)实现进货功能26(六)实现进货单单据打印功能31第四章 系统平台选择32一. 开发工具选择.32二. 开发和运行平32结束语32谢辞34参考文献35【摘要】本系统是实现一个公司进货、销售和库存管理的管理系统,并用于简单的资料管理及权限管理。是单机版应用程序。该系统使用microsoft公司的Visual Basic.NET 作为前台开发工具,微软公司的SQL Server 2000做后台数据库。文章论述了系统的设计与实现。【关键词】 进销存系统; 数据库; 系统设计 【Abstract】This system is a

3、 management system that implements the purchase,sell and storage management of a company,also for the simple information management and purview management.It is a stand-alone application program.This system designed with Visual Basic.NET of the microsoft company as proscenium emploiture tool,and wit

4、h the SQL Server 2000 as the background data-base.This article discussed the design and implement of the system. 【Key words】The purchase,sell and storage management system ; data-base ; system design超市进销存系统第一章 绪论一 应用背景随着企业的发展,以及软件开发的逐步成熟,进销存系统使得原来繁重而又容易出错的进销存管理变得简单而有条理。能够节省大量的人员成本,也使管理变得可靠方便。它可以是一个独

5、立的项目,也可以是一个完整的功能模块,对于整个ERP系统的开发也可以轻易的将它集成进去.二 系统功能 进销存管理系统的主要功能如下所示。1. 资料管理:管理商品信息,供货商信息和客户信息,分别用于维护企业所经营商品的基本信息,供货商及客户的基本信息。2. 进货管理:管理进货单信息,用于录入企业的进货单,分为主从两张表,主表“进货单”内容包括编号、供货商号、进货日期、业务员等,从表“进货单明细”内容包括编号、进货单号、货号、进货数量、进价等。3. 销售管理:管理销售单信息,用于录入企业的销售单。主表“销售单”内容包括编号、客户编号、销售日期、业务员等,从表“销售单明细”内容包括编号、销售单号、货

6、号、销售价等。4. 库存管理:管理库存信息,用于查询企业商品的库存。5. 系统管理:管理用户权限,用于设置各操作员使用系统的权限,为了方便设置,一般的应用系统都是可以将操作人员分组的,将通用的权限赋予整个组,个别的权限单独赋予个人,这样可以大大减少权限管理的工作量。三 系统预览 由于在下面的章节中会给出具体的介绍,在此只给出主界面的一个预览,如图2.1所示。图1.1 主界面预览四 系统特点进销存管理系统的制作就是为了将进销存管理变得简单可靠,节省人力,实现傻瓜的操作。本系统给出了一套较完善的易学易用的进销存管理系统。 第二章 系统分析一 初步调查(一)进销存管理的任务1. 进销存管理工作的主要

7、任务有:2. 企业的采购管理3. 企业的销售管理(批发、零售、连锁)4. 企业各部门的商品配送管理5. 企业库存商品的管理6. 企业应收款,应付款的管理7. 企业经营状况分析与决策(二)进销存管理系统的作用1. 提高管理效率,降低人工成本2. 降低采购成本3. 及时调整营销策略,防止价格流失4. 防范陈呆死帐,降低应收帐款5. 减少仓储面积,提高房产综合利用6. 降低储备资金占用7. 加快资金周转,实现经济效益8. 强化财务监控制,实现经济效益9. 商业数据智能分析10. 高效决策二 详细调查(一)进销存管理系统需求分析根据以上对进销存管理内容和进销存管理系统的分析,一个标准的进销存管理系统应

8、该包括如图2.1所示的几大功能。其中每个功能都由若干相关联的子功能模块组成。图2.1 进销存管理系统的基本功能模块(二)进销存管理系统数据库分析根据以上需求分析,一个基本的进销存管理系统数据库中大致包括60多张数据表,分别存放相应子功能的数据信息,其中商品清单、供货商清单和客户清单是起关键作用的表,用于存放基础的数据信息。其他涉及商品、供货商和客户信息的表,都只记录这些元素的编号,根据作为外键的“编号”字段来对应。因此这3张表和其他表间的关系是1:N的关系。因为整个系统涉及的实体和属性较多,限于时间和篇幅不能逐一列举。图2.2为进销存管理系统关键实体的E-R图。图2.2 进销存管理系统E-R图

9、其他实体与基本信息表间的对应关系都是类似的。三 可行性分析(一)系统功能分析由于篇幅和时间有限,本设计详细介绍如下图所示功能的开发过程,并简化其中各功能所包含的属性,其他功能完全可以参照这些功能的开发方法实现。图2.3本设计介绍的功能模块(二)系统流程图图2.4系统流程图第三章 系统设计和数据库设计一 系统功能模块划分系统大致可分为如下几个功能模块:登录模块:登录模块是一个很重要的模块,是进入系统的门户,对用户信息起到了一定的保护作用.资料管理模块:资料管理模块中包括了对商品信息,供货商信息以及客户信息的管理,并提供简单的查询功能.进销存管理模块:进销存系统中非常重要的就是对进货单,销售单和库

10、存记录的管理,它是进销存系统的核心部分.系统管理模块:该模块是对各操作员使用权限的管理,为了方便设置,一般的应用系统都是可以将操作人员分组的,将通用的权限赋予整个组,个别的权限单独赋予个人,这样可以大大减少权限管理的工作量。二 系统流程分析进销存系统的流程如下所示。第一步,进行登录,如果成功则进入第二步。第二步,打开系统的主界面,根据相应的操作,分别跳入不同的步骤,共有五种不同的选择。资料管理:在该模块中可以对客户信息、供货商信息和商品信息进行设置与管理。进货管理:在该模块中可以对进货单的记录进行一定条件下的查询。销售管理:在该模块中可以对销售单的记录进行一定条件下的查询。库存管理:在该模块中

11、可以对库存情况进行一定条件下的查询。系统管理:在该摸块中不同操作员的使用权限进行设置。具体的流程如图所示。图3.1系统流程图三 数据库设计数据只有用数据库来管理才能有自动化管理的可能。数据的结构将影响整个管理机制的应用,而且一但建立以后要修改常会出现麻烦。所以一开始就要仔细慎重地搭建一个完整而合理的结构。所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据的结合,数据库管理系统(Database Management System)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数

12、据库管理,数据库建立和维护,于操作系统通信等。DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。(一)数据库结构设计本系统的数据比较复杂,存储数据的表也比较多,如何让各个表有机地结合起来充分发挥各自的作用,是结构复杂数据库的难点。本设计共需要14张表,多数是平行结构,部分表必须配对存在,有主表、副表之分。用途分别如下表所示。数据表名称 数据表用途用户清单 保存系统使用者的信息权限清单 保存系统使用者的权限信息,可以指定到菜单级权限商品清单 保存企业经营商品的资料信息供货商清单 保存企业供货商的资料客户清单 保存企业客户的资料信息仓

13、库清单 保存企业库房的分类信息,可以用于数据辞典业务员清单 保存企业的业务员信息,可以用于数据辞典进货单 进货单主表进货单明细 进货单从表进货单历史 保存进货单历史进货单明细历史 保存进货单明细历史销售单 销售单主表销售单明细 销售单从表销售单历史 保存销售单历史销售单明细历史 保存销售单明细历史库存库 保存企业商品库存的数量、金额等信息应付款、应收款 保存企业应付款明细、应收款明细表3.1个数据表之间的E-R图可以参考图(二)创建数据库打开SQL Server企业管理器,新建一个数据库,将其命名为jxcbook.(三)设计数据表创建“商品清单”数据表CREATE TABLE dbo.商品清单

14、 ( 货号 char (14) NOT NULL Primary Key, 条码 char (14) NULL, 拼音编码 char (40)NULL, 品名 varchar (80) NULL, 规格 varchar (40) NULL, 单位 char (6) NOT NULL, 产地 varchar (50) NULL, 类别 char (20) NULL, 进货价 decimal (28,6) NULL default(0), 销售价1 decimal (28,6) NULL default(0), 销售价2 decimal (28,6) NULL default(0), 最低售价 d

15、ecimal (28,6) NULL default(0) )GO创建“供货商清单”数据表CREATE TABLE dbo.供货商清单 ( 恭货商号 char (10) NOT NULL Primary Key,拼音编码 char (40)NOT NULL, 简称 varchar (80) NULL, 名称 varchar (80) NULL, 地址 varchar (80) NULL, 邮编 char (6) NULL, 区号 char (6) NULL, 地区 char (10) NULL, 电话 varchar (20) NULL, 传真 varchar (20) NULL, 电报 va

16、rchar (20) NULL, 开户行 varchar (40) NULL, 开户行邮编 char (6) NULL, 银行帐号 varchar (20) NULL, 税号 varchar (20) NULL, 库房地址 varchar (40) NULL, 库房电话 varchar (20) NULL, 业务员 char (10) NULL, 业务部门 varchar (20) NULL)GO创建“客户清单”数据表CREATE TABLE dbo.客户清单 ( 客户编号 char (10) NOT NULL Primary Key, 拼音编码 char (20)NOT NULL, 简称 v

17、archar (80) NULL, 名称 varchar (80) NULL, 联系人 varchar (30) NULL, 地址 varchar (80) NULL, 邮编 char (6) NULL, 区号 char (6) NULL, 地区 varchar (12) NULL, 电话 varchar (20) NULL, 传真 varchar (20) NULL, 电报 varchar (20) NULL, 开户行 varchar (40) NULL, 开户行邮编 char (6) NULL, 银行帐号 varchar (20) NULL, 税号 varchar (20) NULL, 性

18、质 varchar (10) NULL, 业务员 char (10) NULL, 业务部门 varchar (20) NULL, 授信额度 decimal (28,6) NULL,)GO创建“进货单和进货单明细”数据表CREATE TABLE dbo.进货单 ( 编号 char (14) NOT NULL Primary Key, 供货商号 char (10)NOT NULL, 进货日期 datetime NULL, 业务员 char (10) NULL, 制单人 char (10) NULL, 验收员 char (10) NULL, 保管人 char (10) NULL, 税价合计 deci

19、mal (28,6) NULL, 不含税价 decimal (28,6) NULL, 税额 decimal (28,6) NULL, 订单号 char (14) NULL)GOCREATE TABLE dbo.进货单明细 ( 编号 char (14) NOT NULL Primary Key, 进货单号 char (14)NOT NULL, 货号 char (14) NOT NULL, 进货数量 decimal (28,6) NOT NULL, 进价 decimal (28,6) NULL, 税价合计 decimal (28,6) NULL, 扣率 decimal (28,6) NULL, 税

20、率 decimal (28,6) NULL, 不含税价 decimal (28,6) NULL, 税额 decimal (28,6) NULL, 仓库 char (20) NULL, 货物质量 varchar (50)NULL)GO创建“销售单和销售单明细”数据表CREATE TABLE dbo.销售单 ( 编号 char (14) NOT NULL Primary Key, 客户编号 char (10)NOT NULL, 销售日期 datetime NULL, 业务员 char (10) NULL, 制单人 char (10) NULL, 保管人 char (10) NULL, 税价合计 d

21、ecimal (28,6) NULL, 不含税价 decimal (28,6) NULL, 税额 decimal (28,6) NULL, 订单号 char (14) NOT NULL)GOCREATE TABLE dbo.销售单明细 ( 编号 char (14) NOT NULL Primary Key, 销售单号 char (14)NOT NULL, 货号 char (14) NOT NULL, 销售数量 decimal (28,6) NOT NULL, 销售价 decimal (28,6) NULL, 税价合计 decimal (28,6) NULL, 扣率 decimal (28,6)

22、 NULL, 税率 decimal (28,6) NULL, 不含税价 decimal (28,6) NULL, 税额 decimal (28,6) NULL, 仓库 char (20) NULL )GO创建起他重要数据表CREATE TABLE dbo.库存库 ( 货号 char (14) NOT NULL, 仓库 varchar (20)NOT NULL, 库存数量 decimal (28,6) NOT NULL, 库存金额 decimal (28,6) NOT NULL, 库存单价 decimal (28,6) NOT NULL, 最新进价 decimal (28,6) NULL, )G

23、OCREATE TABLE dbo.权限清单 ( 权限序号 int IDENTITY (1,1) NOT NULL,用户编号 char (6) NULL, 部门 char (20)NULL, 权限名称 char (6) NOT NULL )GO创建外部关键字ALTER TABLE dbo.进货单 ADD CONSTRAINT 进货单_供货商_fk FOREIGN KEY ( 供货商号 ) REFERENCES dbo.供货商清单( 供货商号 )GOALTER TABLE dbo.进货单明细 ADD CONSTRAINT FK_进货单明细_进货单 FOREIGN KEY ( 进货单号 ) REF

24、ERENCES dbo.进货单( 编号 ), CONSTRAINT 进货单明细_货号_fk FOREIGN KEY ( 货号 ) REFERENCES dbo.商品清单( 货号 )GOALTER TABLE dbo.销售单 ADD CONSTRAINT 销售单_客户编号_fk FOREIGN KEY ( 客户编号 ) REFERENCES dbo.客户清单( 客户编号 )GOALTER TABLE dbo.销售单明细 ADD CONSTRAINT FK_销售单明细_销售单 FOREIGN KEY ( 销售单号 ) REFERENCES dbo.客户清单( 编号 ),CONSTRAINT 销售单

25、明细_货号_fk FOREIGN KEY ( 货号 ) REFERENCES dbo.商品清单( 货号 )GO(四)创建存储过程系统使用了两个存储过程,分别实现进货时增加库存、产生应付款和销售时减少库存、产生应收款的功能。建库脚本如下:CREATE PROCEDURE sf_进货单 记账人 char(10) = NULLASBegin transactionINSERT INTO 库存库(货号,仓库,库存数量,库存金额,库存单价) SELECT DISTINCT j.货号,j.仓库,0,0,0 FROM 进货单明细 AS J left join 库存库 as k on (j.仓库=k.仓库 a

26、nd j.货号=k.货号) Where k.货号 is null UPDATA 库存库 SET 库存单价=case when 库存数量=0 or (库存数量+数量ALL)=0 then 进价 Else (库存金额+税价合计ALL)/(库存数量+数量ALL)end, 库存数量=库存数量+数量ALL, 库存金额=case when 库存数量=0 or(库存数量+数量ALL)=0 then 进价+(库存数量+数量ALL)Else (库存金额+税价合计ALL) end, 最新进价=进价 FROM (SELECT 仓库,货号,数量ALL=sum(进货数量),进价=sum(税价合计)/sum(进货数量),

27、税价合计ALL =sum(税价合计)FROM 进货单明细GROUP BY 仓库,货号)AS LSJ WHERE 库存库.仓库=LSJ.仓库 AND 库存库.货号=LSJ.货号 INSERT INTO 应付款(编号,进货单号,货号,进货商号,数量,进货单价,金额,进货日期,状态) SELECT 付+a.编号,b.编号,a.货号,b.供货商号,进货数量,进价,a.税价合计,进货日期,应付 FROM 进货单明细 as a.进货单 as b Where a.进货单号=b.编号INSERT INTO 进货单历史 SELECT * FROM 进货单INSERT INTO 进货单明细历史 SELECT *

28、FROM 进货单明细Delete from 进货单明细Delete from 进货单CommitGoCREATE PROCEDURE sf_销售单 记账人 char(10) = NULLASBegin transactionUPDATA 库存库 SET 库存数量=库存数量-数量ALL,库存金额=库存单价 * (库存数量-数量ALL) FROM(SELECT 仓库,货号,数量ALL=sum(销售数量)FROM 进货单明细GROUP BY 仓库,货号)AS LSJ WHERE 库存库.仓库=LSJ.仓库 AND 库存库.货号=LSJ.货号 INSERT INTO 应付款(编号,销售单号,货号,客户

29、编号,数量,销售价,金额,销售日期,状态) SELECT 收+a.编号,b.编号,a.货号,b.客户编号,销售数量,销售价,a.税价合计,进货日期,应收 FROM 销售单明细 as a.销售单 as b Where a.销售单号=b.编号INSERT INTO 销售单历史 SELECT * FROM 销售单INSERT INTO 销售单明细历史 SELECT * FROM 销售单明细Delete from 销售单明细Delete from 销售单CommitGo四.窗体设计(一)创建系统主窗体1.利用系统默认生成的窗体作为主窗体,并将其对应的文件更名为frmMain.vb,为其添加一个主菜单(

30、MainMenu)控件。2.窗体的部分属性设置如下:对象(控件)名 属性 取值(说明)frmMain Name frmMainfrmMain Caption 进销存管理frmMain IsMdiContainer TruefrmMain StartPosition CenterScreen frmMain WindowState Maximized表3.23.在主菜单控件上单击鼠标左键进入菜单编辑模式,编辑菜单。4.在窗体frmMain对应的代码文件中添加私有变量以及程序入口函数Main. Public UserId As String 整个程序的入口 Public Shared Sub Ma

31、in() 显示登陆对话框 Dim loginFrm As frmLogin = New frmLogin loginFrm.ShowDialog() 合法用户进入系统 If loginFrm.bResult = True Then Dim frm As frmMain = New frmMain frm.UserName = loginFrm.UserName frm.UserId = loginFrm.UserId Application.Run(frm) End If 5.设置程序的启动项目,选择项目|进销存管理 属性命令,在弹出的对话框中的启动对象下拉列表中选择Sub Main,点击确定

32、。6.添加判断子窗体实例状态的函数GetInstanceState,此函数的主要作用是实现单机主窗体的某菜单项,如进货单只是出现一个进货单子窗体。 Private Function GetInstanceState(ByVal name As String) As Boolean 获得frmMain窗体的子窗体的数量 Dim i As Integer = Me.MdiChildren.Length 循环判断是否有名为name的子窗体实例 For i = 0 To Me.MdiChildren.Length - 1 If Me.MdiChildren(i).Name = name Then 存在

33、名为name的子窗体,是子窗体获得焦点并返回True Me.MdiChildren(i).Focus() Return True End If Next 不存在名为Name的子窗体False Return FalseEnd Function7.为菜单商品资料维护的Click事件添加相应函数。 Private Sub MenuItemGoodsInfo_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MenuItemGoodsInfo.Click 判断商品资料维护窗体是是否已经创建 If Ge

34、tInstanceState(frmGoodsInfo) Then 商品资料维护窗体已经创建并返回 Exit Sub End If 创建并显示商品资料维护窗体 Dim childFrm As frmGoodsInfo = New frmGoodsInfo childFrm.MdiParent = Me childFrm.Show() End Sub其他菜单的Click事件相应代码已上面的基本一致,这里不再一一叙述。(二)创建数据访问模块因为各个窗体均需要对数据库进行访问,可以把数据库的一些操作通过一个类实现,这样可以使对数据库的访问更加简单。1.选择文件|添加新项命令添加一个名为“DataBa

35、se.vb” 的类文件。 2.用如下内容替换DataBase.vb中的内容。Imports System.DataImports System.Data.SqlClientImports System.ComponentModelPublic Class DataBase 实现接口IDisposable Implements IDisposable 数据库连接对象 Private SqlConn As SqlConnection Public Shared sConn As String = Persist Security Info=False; _ + Integrated Security=SSPI;database=jxcbook; _ + server=localhost;Connect Timeout=30 Public Sub Dispose() Implements System.IDisposable.Dispose

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号