JSJ03-069@Delphi超市销售管理系统设计(论文+源代码+开题报告)
收藏
资源目录
压缩包内文档预览:
编号:508124
类型:共享资源
大小:1.32MB
格式:ZIP
上传时间:2015-11-10
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
12
积分
- 关 键 词:
-
毕业设计计算机
- 资源描述:
-
JSJ03-069@Delphi超市销售管理系统设计(论文+源代码+开题报告),毕业设计计算机
- 内容简介:
-
#$k+1主窗口 超市销售系统主窗口包括四个按纽, 进货作业 按纽、 商品信息 按纽、 供应商信息 按纽、 销售作业 按纽。 nts#$k+2进货作业 点击主窗口的进货作业按纽就进入了进货作业窗口。进货作业窗口有六个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 。 nts#$k+3商品信息 点击主窗口的商品信息按纽就进入了商品信息窗口。商品信息窗口有十二个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 、 查询按纽 、 清除按纽 、 安存不足按纽 、 预览安存不足按纽 、 打印安存不足按纽 。 nts#$k+4供应商信息 点击主窗口的供应商信息按纽就进入了供应商信息窗口。供应商信息窗口有八个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 预览按纽 、 打印按纽 、 关闭按纽 、 查询按纽 、 清除按纽 。 nts#$k+5销售作业 点击主 窗口的销售作业按纽就进入了销售作业窗口。销售作业窗口有六个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 。 nts#$k+6新增按纽 新增加一个项目时要先按新增按纽。 nts#$k+7删除按纽 点击删除按纽将删除选定的项目。 nts#$k+8存盘按纽 点击存盘按纽将所输入的项目信息存盘。 nts#$k+9打印预览按纽 点击打印预览按纽可以预览打印的效果。 nts#$k+10打印按纽 点击打印按纽打印项目。 nts#$k+11关闭按纽 点击关闭按纽关闭当 前窗口。 nts#$k+12查询按纽 点击查询按纽可以根据所输入的信息获得相应的数据。 nts#$k+13清除按纽 点击清除按纽清除以前输入的查询信息。 nts#$k+14安存不足按纽 点击安存不足按纽可以查询安存不足的商品。 nts#$k+15预览安存不足按纽 点击预览安存不足按纽预览安存不足的商品的商品信息的打印效果。 nts#$k+16打印安存不足按纽 点击打印安存不足按纽打印安存不足的商品信息。 nts#$k+1#$k+1主窗口超市销售系统主窗口包括四个按纽,进货作业按纽、商品信息按纽、供应商信息按纽、销售作业按纽。nts#$k+2#$k+2进货作业点击主窗口的进货作业按纽就进入了进货作业窗口。进货作业窗口有六个按纽,它们是新增按纽、删除按纽、存盘按纽、打印预览按纽、打印按纽、关闭按纽。nts#$k+3商品信息点击主窗口的商品信息按纽就进入了商品信息窗口。商品信息窗口有十二个按纽,它们是新增按纽、删除按纽、存盘按纽、打印预览按纽、打印按纽、关闭按纽、查询按纽、清除按纽、安存不足按纽、预览安存不足按纽、打印安存不足按纽。nts#$k+4供应商信息点击主窗口的供应商信息按纽就进入了供应商信息窗口。供应商信息窗口有八个按纽,它们是新增按纽、删除按纽、存盘按纽、预览按纽、打印按纽、关闭按纽、查询按纽、清除按纽。nts#$k+5销售作业点击主窗口的销售作业按纽就进入了销售作业窗口。销售作业窗口有六个按纽,它们是新增按纽、删除按纽、存盘按纽、打印预览按纽、打印按纽、关闭按纽。nts#$k+6新增按纽新增加一个项目时要先按新增按纽。nts#$k+7删除按纽点击删除按纽将删除选定的项目。nts#$k+8存盘按纽点击存盘按纽将所输入的项目信息存盘。nts#$k+9打印预览按纽点击打印预览按纽可以预览打印的效果。nts#$k+10打印按纽点击打印按纽打印项目。nts#$k+11关闭按纽点击关闭按纽关闭当前窗口。nts#$k+12查询按纽点击查询按纽可以根据所输入的信息获得相应的数据。nts#$k+13清除按纽点击清除按纽清除以前输入的查询信息。nts#$k+14安存不足按纽点击安存不足按纽可以查询安存不足的商品。nts#$k+15预览安存不足按纽点击预览安存不足按纽预览安存不足的商品的商品信息的打印效果。nts#$k+16打印安存不足按纽点击打印安存不足按纽打印安存不足的商品信息。nts#$k+1 #$k+2 nts#$k+1#$k+1主窗口 超市销售系统主窗口包括四个按纽, 进货作业 按纽、 商品信息 按纽、 供应商信息 按纽、 销售作业 按纽。 nts#$k+2#$k+2进货作业 点击主窗口的进货作业按纽就进入了进货作业窗口。进货作业窗口有六个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 。 nts#$k+3商品信息 点击主窗口的商品信息按纽就进入了商品信息窗口。商品信息窗口有十二个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 、 查询按纽 、 清除按纽 、 安存不足按纽 、 预览安存不足按纽 、 打印安存不足按纽 。 nts#$k+4供应商信息 点击主窗口的供应商信息按纽就进入了供应商信息窗口。供应商信息窗口有八个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 预览按纽 、 打印按纽 、 关闭按纽 、 查询按纽 、 清除按纽 。 nts#$k+5销售作业 点击主窗口的销售作业按纽就进入了销售作业窗口。销售作业窗口有六个按纽,它们是 新增按纽 、 删除按纽 、 存盘按纽 、 打印预览按纽 、 打印按纽 、 关闭按纽 。 nts#$k+6新增按纽 新增加一个项目时要先按新增按纽。 nts#$k+7删除按纽 点击删除按纽将删除选定的项目。 nts#$k+8存盘按纽 点击存盘按纽将所输入的项目信息存盘。 nts#$k+9打印预览按纽 点击打印预览按纽可以预览打印的效果。 nts#$k+10打印按纽 点击打印按纽打印项目。 nts#$k+11关闭按纽 点击关闭按纽关闭当前窗口。 nts#$k+12查询按纽 点击查询按纽可以根据所输入的信息获得相应的数据。 nts#$k+13清除按纽 点击清除按纽清除以前输入的查询信息。 nts#$k+14安存不足按纽 点击安存不足按纽可以查询安存不足的商品。 nts#$k+15预览安存不足按纽 点击预览安存不足按纽预览安存不足的商品的商品信息的打印效果。 nts#$k+16打印安存不足按纽 点击打印安存不足按纽打印安存不足的商品信息。 #$k+1 #$k+2 nts 超市销售管理系统 第 1 页 共 35 页 第一章 总论 1.1 Delphi 6.0 简介 Delphi6.0 是著名的 Borland(现在已和 Inprise 合并)公司开发的可视化软件开发工具。 “真正的程序员用 c,聪明的程序员用 Delphi”,这句话是对Delphi 最经典、最实在的描述。 Delphi 被称为第四代编程语言,它具有简单、高效、功能强大的特点。和 VC 相比, Delphi 更简单、更易于掌握,而在功能上却丝毫不逊色;和 VB 相比, Delphi 则功能更强大、更实用。可以说 Delphi同时兼备了 VC 功能强大和 VB 简单易学的特点。它一直是程序员至爱的编程 工具。 Delphi 具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与 Windows 编程紧密结合,强大而成熟的组件技术。但最重要的还是 Object Pascal 语言,它才是一切的根本。 Object Pascal 语言是在 Pascal 语言的基础上发展起来的,简单易学。 Delphi 提供了各种开发工具,包括集成环境、图像编辑( Image Editor),以及各种开发数据库的应用程序,如 DesktopDataBase Expert 等。除此之外,还允许用户挂接其它的应用程序开发 工具,如 Borland 公司的资源编辑器( Resourse Workshop)。 在 Delphi 众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机服务 器 模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件 nts 超市销售管理系统 第 2 页 共 35 页 1 1 1 专业的客户 /服务器开发工具 客户 /服务器是一种将任务进行分解,然后协同解决的计算模式。客户端的应用程序负责提出任务需求,服务器端的应用程序则为客户提供服务,例如数据查询、打印等。用 Delphi6.0 开 发出的应用程序能够与数据库服务器完美地协同工作,构成客户 /服务器计算模式。 1 1 2 面向对象的编程 在 Delphi6.0 中创建的窗口、菜单、数据窗口等都是对象。除了使用系统预先定义的对象外,开发人员可以自行构造新的对象,扩展系统的预定义对象,将各种对象有机地组合起来就构成了 Delphi 应用程序。 1 1 3 Delphi 和 Object Pascal Object Pascal 是 Delphi 的语言基础, Delphi 是 Object Pascal 的加速引擎。软件开发工具在任何发展阶段都具有一个永远不变的目标: 提高软件生产力。换句话说,就是最大程度为开发者提供方便,在最短时间内建立应用程序。例如,为了降低代码编写难度(对于近几年来才入门的程序员,汇编语言是晦涩难懂的,更不要说去编写代码了),最早的 C 语言和 Pascal 语言出现了;为了提高代码效率,面向对象技术应用到编程语言中;为了提高开发效率,可视化开发工具出现了;为了实现跨平台应用, Delphi6 和 Kylix 出现了。 Delphi 的精华是 VCL。离开了 VCL,开发者又回到了刀耕火种的年代。你可以试着将你编写的单元中的 uses 子句中由 Delphi 自动添加的如 SysUtils、Forms 等单元名删除,你会发现你编写的代码无法编译。 VCL 封装了 Windows消息机制,因此开发者可以方便地通过属性、事件、方法来控制对象; VCL封装了数据库游标机制(准确地说是 BDE 封装的),因此用 Delphi 进行数据库应用开发的开发者完全可以对关系数据库的游标机制一无所知。 Delphi 已经充分提供了积木元件(组件、类、标准例程),而开发者只需要加以利用就能够快速实现构想(应用程序)。可见,快速应用开发( RAD)对于 Delphints 超市销售管理系统 第 3 页 共 35 页 来说是当之无愧的 1 1 4 Delphi 和 SQL SQL 语言 作为关系数据库管理系统中的一种通用的结构查询语言, 已经被众多的数据库管理系统所采用,如 ORACLE、 Sybase、 Informix 等数据库管理系统,它们都支持 SQL 语言。 Delphi 与使用 SQL 语言的数据库管理系统兼容,在使用 Delphi 开发数据库应用程序时,我们可以使用 SQL 语言编程,支持 SQL 编程是 Delphi 的一个重要特征,这也是体现 Delphi 作为一个强大的数据库应用开发工具的一个重要标志。 1 1 5 Delphi 的数据库特性及功能简介 直到目前为止,计算机软件的开发分为两个不同的体系,其 中一个体系是使用传统的程序设计语言(如 Pascal、 Basic 和 C 等)开发数值控制、数值运算等软件,围绕它们的重点是算术、数据结构以及近年产生的面向对象技术。另一个体系则是通用的数据库管理软件领域(数据库应用程序的开发)。这两个体系的发展都极为迅猛,但是二者并没出现混合渗透迹象。如果使用数据库语言进行传统的算术编程,虽然也能完成相应的功能,但是其编程过程可能极为复杂。如果使用传统的编程语言进行数据库编程,通过调用专用的数据库应用程序接口函数和过程,利用这些函数和过程提供的功能,可能也能做得比较完善,但这做起 来大多是极其困难的。而 Delphi 结合了两个体系的优点,它结合了传统的编程语言 Object Pascal 和数据库语言的强大功能, 它即可以用于传统的算术编程又可以用于数据库编程,特别是 Delphi 具有强大的数据库功能,利用 Delphi 的数据库工具,我们根本不需要编写任何 Object Pascal 代码便可以创建一个简单的数据库应用。 nts 超市销售管理系统 第 4 页 共 35 页 1 1 6 Delphi 对多种数据库管理系统的支持 Delphi 在 Window3.1 以上版本的系统环境下运行,目前具有两个版本:Delphi 的标准版本和客户 /服务器版本 。标准版本包含一个 Borland Database Engine 的局部拷贝,它允许用户创建能访问 dBASE、 Paradox 和 Local InterBase 服务器的数据库应用, 它还支持具有 ODBC 接口的数据库。Delphi 的客户 /服务器版本包括 Borland SQL Link , 它能直接访问 ORACLE 、 SyBase 和 Microsoft SQL Server,Informix 以及 InterBase 数据库服务器。 Delphi 可以访问多种数据库管理系统的数据库,凭借窗体 (Forms)和报表 (Reports), BDE(Borland Database Engine)可以访问诸如 Paradox、dBASE、本地 InterBase 服务器的数据库,也可以访问远程数据库服务器上的数据库 (如 ORACLE、 SyBase、 Informix 等客户 /服务器数据库中的数据库 ),或任何经 ODBC(Open Database Connecticity) 可访问的数据库管理系统中的数据库。 1 1 7 异常处理与程序调试 在应用程序开发中如何检测、处理程序的运行错误是一个很重要的问题。在 Delphi 的集成开发环境 ( IDE )中提供了一个完善的内置调试器,可以帮助你发现大部分程序错误。但并不是所有的错误都可以被发现,而且当程序涉及到与外设的数据交换或操作外设,如要求用户输入、读写磁盘等时,错误的发生是程序无法控制的,如输入非法字符、磁盘不能读写等。这些情况不仅会导致应用程序异常中止而且可能引起系统的崩溃。针对这些问题,Delphi 同时提供了一套强大的异常处理机制。巧妙地利用它,可以使你的程序更为强健,使用更为友好。 nts 超市销售管理系统 第 5 页 共 35 页 第二章 系统设计 2 1 系统功能分析 超市销售系统目前国内外做得较多,比较成熟,这个系统是毕业生毕业前 的最后一次模拟,对毕业生的软件开发能力有很大帮助。本系统主要由以下几个功能组成: 商品入库,用于将进来的商品录入到库里。 商品销售,用于售货员销售商品。 商品信息管理,现有库存、库存警报、商品报表三部分。 查询,管理员根据自己的需要进行查询,可按商品代号和商品名称查询。 口令更改,用于员工更改自己的口令。 员工信息维护,用于管理员修改员工的信息。 2 2 系统功能模块设计 根据系统功能要求可以将系统分解成几个子系统模块来分别设计应用程序界面, nts 超市销售管理系统 第 6 页 共 35 页 如图所示: 超市销售管理系统 入 库 子 系 统 销 售 子 系 统 商品信息管理 查 询 子 系 统 口 令 更 改 子 系 统 员 工 信 息 维 护 子 系 统 入库子系统 原库存无 原库存有 销售子系统 前台销售界面 顾客清单 nts 超市销售管理系统 第 7 页 共 35 页 2 3 数据流程图 数据流程图描绘了系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中的流动和处理情况。 对数据流的分析,主要是整体数据流、单元模块数据流。整体数据流概括为进入计算机操作员系统的操作过程和用户(各部门或个人)进入系统的数据流向。 整体数据流:用户通过密码进入系统,分别对上述几大功能逐一 实现,其中涉及到模块数据流分析。 根据上一节业务流程的分析以及业务流程图我们可以得出系统的数据流商品信息管理 库存警报 商品信息报表 现有库存 顾客查询 管理员查询 查询子系统 nts 超市销售管理系统 第 8 页 共 35 页 程。 数据流图图例表示: 数据的源点 /终点 变换数据的处理 数据存储 数据流 本系统各功能模块的数据流程图如下图所示: 入库模块流程图: 新 进 商品 库存 入库记录 库存原有 库存原无 nts 超市销售管理系统 第 9 页 共 35 页 销售模块流程图: 商品信息管理模块流程图: 查询模块流程图: 口令更改模块流程图: 库 存 库 存 销 售 销售信息 库存 现有库存报 进货报表 库存警报报 现有库存 库存警报 进 货 管理员查询 库 存 员工口令 员工口令 管理员查询结果 口令更改 nts 超市销售管理系统 第 10 页 共 35 页 员工信息维护模块流程图: 员工信息 删 除 员工信息 增加 nts 超市销售管理系统 第 11 页 共 35 页 第三章 数据库设计 3 1 数据库需求分析 数据库是信息管理的基础。数据库结构直接关系到各种功能的实现和程序运行的效率。 进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基 础,是最困难、最耗费时间的一步。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 根据上一章的流程图,可以列出以下各模块记录信息所需的数据项和数据结构: 1入库信息管理 入库记录:商品编号( SPNO)、商品名称( SPNAM)、经办人员( JBREN)、进货数量( JHNUM)、进货小计( inprice)、备注 (BEIZHU) 2.销售信息管理 销售记录:商品编号( SPNO)、商品数量( SPNUM)、经办人员( JBREN)、商品名称( SPNAM) 、标准价格( BZJG)、销售小计( XSXJ) 3.商品信息管理 商品信息记录:商品编号( SPNO)、商品名称( SPNAM)、本店库存量( BDKCL)、默认成本( MORCB)、供应商编号( GYSNO)、商品分类( SPKIN)、安全存量( SAFCL)、商品规格( SPGG)、库存单位( KCDW)、商品颜色( SPCOL)、商品尺寸( SPSIZ)、标准价格( BEIZHU BZJG)、会员价格( HYJG)、批发价格( PFJG)、备注( BEIZHU) 4.员工信息管理 员工信息:用户名( user)、口令( password) nts 超市销售管理系统 第 12 页 共 35 页 3 2 数据库概念结构设计 概念模型是对信息世界的建模,所以概念模型应该能够方便、准确的表 示 出 信 息 世 界 中 的 常 用 概 念 。 实 体 - 关 系 模 型( Entity-Relationship Module,简称 E-R 图)是数据库结构设计常用的方法。 E-R 图提供了表示实体、属性和联系的方法。 实体型:用矩形表示,矩形框内写明实体名 属性:用椭圆型表示,并用无向边与其相应实体连接起来 联系:用菱形表示,菱形框内写明联系名,并用无向边与其有关实体连接起来,同时在边旁边标上联系的类型( 1: 1, 1: n 或 m: n)。 对象类型的组成成份可以抽象为实体的属性。组成成份与对象之间是“ is part of”的关系。 实际上实体与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为“属性”,在另一种环境中就必须作为“实体”。一般来说,在给定的应用环境中,属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。属性不能与其它实体具有联系。联系只发生在实体之间。 本系统中部分 E-R 图如图所示: 库存 安全存量 本店库存量 nts 超市销售管理系统 第 13 页 共 35 页 1: m 1: m 1: m 1: m 3 3 数据库结构实现 商品信息表( SPXXB)结构: 入库信息 管理员 商品 销售信息 包含 入库 查询 销售 入库数量 入库价格 销售价格 销售数量 商品名称 商品编号 供应商编号 nts 超市销售管理系统 第 14 页 共 35 页 销售信息表( XSB)结构: 进货信息表( JHZB)结构: nts 超市销售管理系统 第 15 页 共 35 页 供应商信息表( GYSB)结构: nts 超市销售管理系统 第 16 页 共 35 页 第四章 详细设计 4 1 登录界面 为了 提高系统的安全性,我们完全有理由相信,设置用户以及密码是必要的。用户登录界面很简单,首先在用户输入框输入用户名,再对应输入密码,程序将与用户数据库连接,确认用户是其中一员,并输入了正确的密码,然后进入主界面,否则警告出错,让用户重新输入。界面设置如下: 4 2 主界面 主窗口界面主要是完成系统功能模块的划分。超市销售系统主窗口包括四个按纽,进货作业按纽、商品信息按纽、供应商信息按纽、销售作业按纽。界面设置如下: 4 3 入库子系统 nts 超市销售管理系统 第 17 页 共 35 页 商品入库是将购进的商品进行入库。在入库时由入库员将商品信息输入到入库信息表 中,然后系统将入库的商品的代号与库存里的商品信息比较,如果能找到相同的代号,则说明库存里有这种商品,只要相应增加这种商品的库存量。如果找不到,则说明原来库存里没有这种商品,则要增加这种商品的一系列信息,如商品代号、商品名称、进价等,界面设置如下: 4 4 销售子系统 商品销售是将顾客购买的商品销售出去。在销售时,由销售员将顾客购买的商品代号输入到销售窗口中,系统自动根据商品代号把这种商品的相应信息反馈到数据窗口中,每一种商品都有一个小计,最后算出总计。 最后点击“打印”便可打印出顾客清单了。销售界面界面设 置如下: nts 超市销售管理系统 第 18 页 共 35 页 4 5 商品信息管理子系统 商品信息管理子系统包括三个小的基本功能,即: 1 现有库存,本功能是统计现在库存中所有的商品的信息,包括商品的代号,商品名,进价,售价,还有库存量等,主要是要库存量,因为后面的库存警报和进货报表都要建立在现在库存量的基础上。同样,点击“打印”按钮便可打印现有商品的库存信息了。 2 库存警报,本功能是根据现有商品的库存量来判断哪种商品的库存量少于最小库存量,这就能提示管理员哪些商品需要进货。一开始打开窗口时,数据窗口内也是显示所有的库存商品信息,通过点击“安存不足”按钮便可 查询库存量过少的商品信息了。 3 进货报表,本功能是显示要进货的商品的信息,它是建立在库存警报窗口中的过少的商品的信息上的。点击“打印安存不足”便可打印出进货报表,供进货员去进货。 其功能界面设置如下: nts 超市销售管理系统 第 19 页 共 35 页 4 6 查询子系统 查询功能实现管理员查询所需的商品信息。在商品信息界面的快速查询部分,管理员可以根据商品编号、商品名称、供应商编号、商品分类来查询相应的商品信息。界面设置同上。 4 7 口令更改子系统 口令更改功能实现了员工更改自己的口令,在更改口令时,要求用户输入旧口令、新口令和确认新口令,用户必须输 入正确的旧口令和两次相同的新口令,如果输入的旧口令不正确,则系统会弹出错误警告告诉用户旧口令错误,请用户重新输入旧口令。两样,如果两次新口令不一致,也会弹出警告窗口,提醒用户两次新口令不一样,请重新输入两次新口令。最后,点击“确认”就完成口令更改了。 4 8 员工信息维护子系统 员工信息维护功能实现了管理员修改员工的信息。这也要求先用管理员nts 超市销售管理系统 第 20 页 共 35 页 用户名和口令登录,点击“增加”后,数据窗口会自动插入新的一行,管理员在数据窗口中输入员工的用户名和口令后按“保存”就完成增加员工信息的功能了。同样,要删除一个员工的信息只要 先选中这个员工的信息,按“删除”后,这个员工的信息就在数据窗口中删除了,再点击“保存”就可以了。 4 9 帮助子系统 任何一个系统都会有帮助系统,它用来解决用户的一些疑问,如用户对系统的功能及一些功能的使用方面可能有疑问,这时,可参考帮助系统提供的信息,能有效的给用户提供帮助。本系统的帮助系统对每一个子系统的功能及使用方法都有介绍,如用户有疑问或参考。 nts 超市销售管理系统 第 21 页 共 35 页 第五章 各功能模块的部分源代码 主界面代码: procedure TFMMAIN.BitBtn1Click(Sender: TObject); begin FMSPXXB.SHOW; end; 当点击商品信息按纽时调用 show 方法打开商品信息管理界面。 procedure TFMMAIN.BitBtn2Click(Sender: TObject); begin FMGYSB.Show; end; 当点击供应商信息按纽时调用 show 方法打开供应商信息管理界面。 procedure TFMMAIN.BitBtn3Click(Sender: TObject); begin FMJH.Show; end; 当点击进货作业按纽时 调用 show 方法打开进货作业界面。 procedure TFMMAIN.BitBtn4Click(Sender: TObject); begin FMXSB.SHOW; end; 当点击销售作业按纽时调用 show 方法打开商品销售界面。 nts 超市销售管理系统 第 22 页 共 35 页 1 入库子系统 procedure TFMJH.BitBtn2Click(Sender: TObject); VAR LOC1:BOOLEAN; LOC2:BOOLEAN; N:REAL; Na:REAL; STR1:STRING; begin IF (EDIT1.Text=) OR (EDIT2.Text=) THEN BEGIN SHOWMESSAGE(请输入商品编号和进货数量! ); ABORT; END; LOC1:=FMSPXXBD.TSPXXB.Locate(SPNO,EDIT1.Text,LOCASEINSENSITIVE); IF LOC1=TRUE THEN BEGIN FMSPXXBD.TSPXXB.Edit; FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value:=FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value+STRTOINT(EDIT2.Text); FMSPXXBD.TSPXXB.Post; nts 超市销售管理系统 第 23 页 共 35 页 SHOWMESSAGE(新增商品数量成功! ); END; IF LOC1=FALSE THEN BEGIN IF (EDIT1.Text=) OR (EDIT2.Text=) OR (EDIT3.Text=) OR (EDIT4.Text=) OR (EDIT5.Text=) OR (EDIT6.Text=) OR (EDIT7.Text=) OR (EDIT8.Text=) OR (EDIT9.Text=) OR (EDIT10.Text=) OR (EDIT11.Text=) OR (EDIT12.Text=) THEN BEGIN SHOWMESSAGE(新商品!请输入完全信息! ); abort; END ELSE BEGIN FMSPXXBD.TSPXXB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text,STRTOFLOAT(EDIT4.Text),Edit6.TEXT,EDIT7.Text,STRTOFLOAT(EDIT8.Text),EDIT9.Text,EDIT10.Text,EDIT11.Text,EDIT12.Text); SHOWMESSAGE(新增商品成功! ); END; END; BEGIN LOC2:=FMJHD.TJHZB.Locate(SPNO,EDIT1.Text,LOCASEINSENSITIVE); nts 超市销售管理系统 第 24 页 共 35 页 IF LOC2=FALSE THEN BEGIN FMJHD.TJHZB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMJHD.TJHZB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text,EDIT5.Text,Memo1.Text); FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); N:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; STR1:=FMSPXXBD.TSPXXB.FieldByName(SPNAM).AsString; FMJHD.TJHZB.FindKey(EDIT1.Text); FMJHD.TJHZB.Edit; FMJHD.TJHZB.FieldByName(JHXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*N; FMJHD.TJHZB.FieldByName(SPNAM).Value:=STR1; FMJHD.TJHZB.Post; END; IF LOC2=True THEN BEGIN FMJHD.TJHZB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); Na:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; nts 超市销售管理系统 第 25 页 共 35 页 FMJHD.TJHZB.FindKey(EDIT1.Text); FMJHD.TJHZB.Edit; FMJHD.TJHZB.FieldByName(JHNUM).Value:=FMJHD.TJHZB.FieldByName(JHNUM).Value+STRTOINT(EDIT2.Text); FMJHD.TJHZB.FieldByName(JHXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Na+FMJHD.TJHZB.FieldByName(JHXJ).Value; END; END; 当点击存盘按纽时,先检查商品编号和商品数量是否为空,为空就输出消息 请输入商品编号和进货数量! ,不为空就检查 商品信息表中是否有记录用的是 Locate(),有就直接存盘增加库存量,没有就要求输入完整的信息再存盘。 2 销售子系统 procedure TFMXSB.BitBtn2Click(Sender: TObject); VAR LOC3:BOOLEAN; LOC4:BOOLEAN; LOCOP:TLOCATEOPTIONS; Nb:REAL; Nc:REAL; STR2:STRING; nts 超市销售管理系统 第 26 页 共 35 页 begin IF (EDIT1.Text=) OR (EDIT2.Text=) THEN BEGIN SHOWMESSAGE(请输入商品编号和数量! ); ABORT; END; LOC3:=FMSPXXBD.TSPXXB.Locate(SPNO,EDIT1.Text,LOCOP); IF LOC3=TRUE THEN BEGIN FMSPXXBD.TSPXXB.Edit; FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value:=FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value-STRTOINT(EDIT2.Text); FMSPXXBD.TSPXXB.Post; END; IF LOC3=FALSE THEN BEGIN SHOWMESSAGE(无此商品! ); abort; END; / LOC4:=FMXSBD.TXSB.Locate(SPNO,EDIT1.Text,LOCOP); nts 超市销售管理系统 第 27 页 共 35 页 BEGIN IF LOC4=FALSE THEN BEGIN FMXSBD.TXSB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMXSBD.TXSB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text); FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); STR2:=FMSPXXBD.TSPXXB.FieldByName(SPNAM).AsString; Nb:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; FMXSBD.TXSB.FindKey(EDIT1.Text); FMXSBD.TXSB.Edit; FMXSBD.TXSB.FieldByName(XSXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Nb; FMXSBD.TXSB.FieldByName(SPNAM).Value:=STR2; FMXSBD.TXSB.FieldByName(BZJG).Value:=Nb; FMXSBD.TXSB.Post; END; IF LOC4=True THEN BEGIN FMXSBD.TXSB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); nts 超市销售管理系统 第 28 页 共 35 页 Nc:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; FMXSBD.TXSB.FindKey(EDIT1.Text); FMXSBD.TXSB.Edit; FMXSBD.TXSB.FieldByName(SPNUM).Value:=FMXSBD.TXSB.FieldByName(SPNUM).Value+STRTOINT(EDIT2.Text); FMXSBD.TXSB.FieldByName(XSXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Nc+FMXSBD.TXSB.FieldByName(XSXJ).Value; END; END; 在点击存盘按纽后,将该商品的库存量减少。 3 查询子系统 procedure TFMSPXXB.BitBtn2Click(Sender: TObject); begin WITH FMSPXXBD.QSPXXB DO BEGIN CLOSE; SQL.Clear; SQL.Add(SELECT * FROM SPXXB); nts 超市销售管理系统 第 29 页 共 35 页 SQL.Add(WHERE SPNO IS NOT NULL); SQL.Add(AND BDKCL=SAFCL); SQL.Add(ORDER BY BDKCL,SAFCL); OPEN; END; end; 点击安存不足按纽执行上述代码, Delphi 对 SQL 的支持可以体现在 Tquery组件上, Tquery 组件有一个 SQL 属性可以在其中添加 SQL 语句,上面代码中的 SQL 语句就是在商品信息表中查询本店库存量小于安全存量的记录并按 BDKCL,SAFCL 排序 nts 超市销售管理系统 第 30 页 共 35 页 第六章 设计 中遇到的问题和解决办法 ( 1) 一开始建立数据库时,没有把开发系统时将会遇到的一些问题考虑详细。导致在数据库建立好之后,在以后的系统设计过程中发现当时数据库建立得不够完全,还要不断添加一些表。还有就是一些已建立好的表其中有的变量类型不对,所以又要修改,因此浪费了很多宝贵的时间。后来,仔细分析了一下系统,将开发中会遇到的问题都考虑清楚了,才建立数据库。这样,以后就不要改动数据库,为设计节约了很多时间。 ( 2) 一开始做的时候,对数据窗口的操作及编程语言还了解不够透彻,因此在实现数据窗口之间数据传递的功能遇到了很大的困难。后来 ,经过查询资料学习,对它有了较多的了解,做设计的时候也加快了进度。 ( 3) 在入库的时候,原来库里有的只要相应增加这个商品的库存量,这个功能实现了,但原来库里没有的就要增加这种商品的一系列信息,这个功能一直困扰我,但现在解决了。 ( 4) 在销售商品时,商品销售总额的计算这个问题还没解决,正在想办法,以求尽快解决。 nts 超市销售管理系统 第 31 页 共 35 页 第七章 自我评价 7 1系统的特点 本系统是采用 Delphi6.0开发,该系统由四个主要的功能来实现的。( 1)入库功能。本功能实现了将进来的货品录入到库存中,使之在库存中有这些商品的记录,在入库 的同时,要修改库存量。 ( 2)销售功能。本功能实现了出售商品的功能,在销售商品的同时要减少库存量。 ( 3)商品信息管理功能。本功能实现了将一天下来所有入库和销售的商品信息统计出来 ,有助于管理员查询。 ( 4)查询功能。本功能实现管理员可以根据自己需要查询相应的商品信息,管理员可根据商品代号和商品名来查询。 7 1 1优点 本系统软件具有统一的人机界面,这不至于会增加超市员工和管理员的负担,让他们始终以一种轻松的感觉去思考和操作。该系统界面友好,输出界面尽可能接近实际,以增加人机亲和力。 7 1 2缺点 由于时间仓促,本软件功能还不够强大, 系统对实验信息的操作还不够完善,某些地方还存在问题,还有待于进一步改进。日期信息的存盘还没有解决,正在想办法。在销售模块还有缺陷,有些功能还没有实现, 比如顾客给钱后的找零。 结 论 nts 超市销售管理系统 第 32 页 共 35 页 为期半个学期的设计生活很快就要过去, 回忆这一段时间,我的感触很深,由于是第一次开发一个很实用的管理系统,而且是用一种以前我们不太了解的语言,虽然以前学过,但涉及不多。所以开发起来有一定的难度,我们都感到肩上的压力很大。随着开发的进程,一个个问题都被克服了,这使我 深深的体会到了学习 的乐趣和运用的艰辛。 首先,这次设计我觉得最大的收获是软件设计概念思想的建立。以前我们做一些小软件的开
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。