PB 日常用品进销存管理系统.doc_第1页
PB 日常用品进销存管理系统.doc_第2页
PB 日常用品进销存管理系统.doc_第3页
PB 日常用品进销存管理系统.doc_第4页
PB 日常用品进销存管理系统.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京林业大学南京林业大学 本科毕业设计 论文 本科毕业设计 论文 题题 目 目 日用品进销存管理系统日用品进销存管理系统 Management System of Commodity Purchase sale and storage 学学 院 院 信息科学技术学院 专专 业 业 计算机科学与技术 学学 号 号 0181113 学生姓名 学生姓名 林汉业 指导教师 指导教师 沈丽容 职职 称 称 讲 师 二二 OO 五年五月二十五日五年五月二十五日 南京林业大学本科毕业设计 日常用品进销存管理系统 1 摘 要 进销存管理系统是针对中小型企业的管理特点 融合了众多先进管理知识 开发而成的通用商业进销存一体化计算机管理软件 用于满足用户进货管理 销售管理 财务管理 库存管理 基本资料管理 综合查询等各项要求 系统开发的目标是实现企业进销存管理的系统化 规范化和自动化 该系 统具有完成产销衔接 产品库存管理 客户管理 发货管理 订单管理等多个 功能 满足企业高效管理的需求 该进销存管理系统是一个易用 实用的好软件 是针对中小型企业进货 销 售 仓储等业务制作的进销存管理软件 系统具有稳定性高 安全 易扩展 结构合理 界面友好 操作方便 实 用而科学 性能价格比高等特点 方便的查询 统计和排序功能 将大量的 动态的数据和信息直观化 真正实现对物流 信息流 资金流的轻松管理 减 少人为误差 关键字 关键字 数据库 管理信息系统 进销存管理 南京林业大学本科毕业设计 日常用品进销存管理系统 2 Abstract According to the characteristics of the medium and small scaled enterprises using the knowledge of enterprises management I develop the management information system of purchase sale and storage The system can stratify the requirements of commodity management sell management finance management and stock management etc The target of the system is to make the management of purchase sale and storage systematic standard and automatic The system could make the production and sales link up together The functions of the system include stock management customer management sell management order forms management ect The system can enhance the efficiency of enterprises management The system is very easy to use It is aimed at medium and small scaled business enterprises to purchase goods sell productions and manage stock The system has many advantages such as stability safety expansibility reasonable structure amicable interface convenient operation practical The convenient search statistics and sort will make a great deal of data and information more direct and realize the management of the flows of commodity information and funds easily reduce the amount of mistakes made by persons Keywords Database Management Information System Management of Purchase Sale and Storage of Commodity 南京林业大学本科毕业设计 日常用品进销存管理系统 0 目目 录录 前前 言言 1 第一章第一章 研究目的及意义研究目的及意义 2 1 1 课题意义 2 1 2 实现目标 2 第二章第二章 开发工具简介开发工具简介 3 2 1 POWERBUILDER面向对象的程序设计 3 2 1 1 PowerBuilder 的对象 3 2 1 2 PowerBuilder 面向对象的特性 3 2 1 3 PowerBuilder 面向对象程序设计的过程 4 2 2 数据库的事务管理 5 2 2 1 PowerBuilder 中的事务管理 6 2 2 2 事务对象的 AutoCommit 属性 6 2 2 3 用数据库的事务管理指令实现完全控制 7 2 3 数据库设计理论 7 2 3 1 数据库模型 7 2 3 2 数据库体系结构 8 第三章第三章 系统分析设计系统分析设计 9 3 1 业务流程分析 9 3 2 系统结构设计 9 3 3 数据库设计 10 3 3 1 数据库需求分析 10 3 3 2 数据库逻辑结构设计 10 3 4 关键技术 15 3 4 1 多页窗体设计 15 3 4 2 数据记录的快速查询 15 第四章第四章 系统关键模块设计与实现系统关键模块设计与实现 16 4 1 主程序界面设计 16 4 1 1 实现目标 16 4 1 2 实现过程 16 4 2 菜单的设计 17 4 3 系统登陆窗口设计 18 4 3 1 实现目标 18 4 4 进货管理 19 4 4 1 入库登记设计 19 4 4 2 入库登记查询设计 19 4 4 3 入库报表设计 20 4 5 库存管理 21 4 5 1 库存查询设计 21 4 5 2 库存盘点设计 22 南京林业大学本科毕业设计 日常用品进销存管理系统 1 4 5 3 库存报表设计 23 4 6 销售管理 23 4 6 1 销售登记设计 23 4 6 2 销售登记查询设计 24 4 6 3 销售报表设计 25 4 7 系统管理 26 4 7 1 操作员管理设计 26 第五章第五章 系统的编译和发布系统的编译和发布 28 5 1 创建工程对象 28 5 2 编译生成和测试 28 5 3 发布 29 第六章第六章 结论与展望结论与展望 30 6 1 结论 30 6 2 展望 30 致致 谢谢 31 参考文献参考文献 32 附附 录录 33 南京林业大学本科毕业设计 日常用品进销存管理系统 0 前 言 要提高市场竟力 既要有好的产品质量 同时也要有好的客户服务 企业要 作到能及时响应客户的产品需求 根据需求迅速生产 按时交货 就必须有一个 好的计划 使得市场销售和生产制造2个环节能够很好地协调配合 进销存管理 是商业企业经营管理中的核心环节 也是一个企业能否取得效益的关键 如果能 做到合理生产 及时销售 库存量最小 减小积压 那么企业就能取得最佳的效 益 由此可见 进销存管理决策的正确与否直接影响了企业的经济效益 系统开发的目标是实现企业进销存管理的系统化 规范化和自动化 该系统 具有完成产销衔接 产品库存管理 客户管理 发货管理 生产计划管理 库存 管理 定单管理等多个功能 满足企业高效管理的需求 本论文绪论部分对数据库应用系统的结构 开发进行了简要介绍 分析了日 用品进销存管理信息系统设计的特点和任务 第一章介绍了对要完成的系统进行了分析 使读者了解课题的来源 实现目 标和需求分析 第二章介绍了PowerBuilder数据库编程技术和数据库设计理论 第三章介绍了对整个系统的设计 包括系统的结构图 业务流程图 以及数 据库设计 包括了数据库需求分析 数据流程分析 数据库的概念结构和逻辑结 构设计 然后还介绍了相关的关键技术 包括了多页窗体设计和数据记录的快速 查询 第四章是本系统的关键模块设计与实现方法 包括了主界面设计 菜单设计 系统登陆窗口的设计和六个主要功能模块设计 分别是 销售管理 销售登记 销售查询 销售报表 销售统计 进货管理 入库登记 入库查询 入库报表 入库统计 库存管理 库存查询 库存盘点 库存报表 财务管理 财务报表 财务结帐 系统管理 操作员管理 权限管理 系统帮助 关于 帮助 第五章介绍了系统的编译和发布方法 第六章是结论与展望 总结了系统的特点和编程体会 并指出了系统存在的不 足之处和改进的方向 南京林业大学本科毕业设计 日常用品进销存管理系统 1 第一章 研究目的及意义 1 1 课题课题意义意义 要提高市场竟力 既要有好的产品质量 同时也要有好的客户服务 企 业要作到能及时响应客户的产品需求 根据需求迅速生产 按时交货 就必 须有一个好的计划 使得市场销售和生产制造 2 个环节能够很好地协调配合 进销存管理是商业企业经营管理中的核心环节 也是一个企业能否取得效益 的关键 如果能做到合理生产 及时销售 库存量最小 减小积压 那么企 业就能取得最佳的效益 由此可见 进销存管理决策的正确与否直接影响了 企业的经济效益 在手工管理的情况下 销售人员很难对客户作出正确的供 货承若 同时企业的生产部门也缺少一份准确的生产计划 目前的生产状况 和市场的需求很难正确反映到生产部门中去 部门之间的通讯也经常不畅通 这在激烈竞争的市场中是非常不利的 企业进销存管理系统就是在这种状况 下出现的 它利用计算机的技术 使得企业生产 库存和销售能够有利结合 起来 产销衔接 提高企业的效率和效益 1 2 实现目标实现目标 开发的目标是实现企业进销存管理的系统化 规范化和自动化 该系统具有完成产销 衔接 产品库存管理 客户管理 发货管理 生产计划管理 库存管理 定单管理等多个 功能 满足企业高效管理的需求 用 PB 构造起管理系统 利用 SQL 语言对该系统 进行结构化的查询 访问 在实施后应能达到以下目标 1 计算机信息化管理 2 操作简单易行 查询方便灵活 3 系统集进销存于一体 4 系统内部控制严密 可靠性高 5 详细的记录审查 应用系统的安全保密性更加完善 6 系统构架清晰 界面美观友好 功能全面 数据存储安全可靠 7 通过系统的实施 可提高日用品管理水平 提升员工的素质 南京林业大学本科毕业设计 日常用品进销存管理系统 2 第二章 开发工具简介 2 1 PowerBuilder 面向对象的程序设计面向对象的程序设计 在 PowerBuilder 的应用开发中 运用面向对象技术不是必须的 但是对一个 大型复杂应用系统的开发 如果采用了面向对象技术 则开发效率会大大提高 用 PowerBuilder 开发的好处是 即使您不懂得什么是面向对象技术 您也可 能会下意识地用到面向对象技术的一些特性 但是如果您对这一技术有了充分的 了解 那对您所设计程序的可重用性 可维护性和其他各方面的质量都会有大幅 度提高 2 1 12 1 1 PowerBuilderPowerBuilder 的对象的对象 PowerBuilder 对象有三个部分元素 属性 函数和事件 1 属性 也就是数据 包括系统属性和用户定义属性两类 描述该对象的各 种特性 如在窗口对象中的系统属性包括标题 高度 宽度等 用户定义的属性 可以是实例变量或共享变量 对这种属性的访问同系统属性相同 只是在封装性 上有所不同 2 事件 PowerBuilder 中的事件与 Windows 的事件存在着映射关系 当用 户的操作或系统本身产生 Windows 的标准事件 就转化成 PowerBuilder 中的事 件 例如命令按钮有一个叫 Clicked 事件 当用户按按钮时触发 操作系统首先 检测到鼠标被点击 并把 Clicked 这一消息转给该按钮 PowerBuilder 运行时的 工作引擎翻译了这一事件 并执行适当 PowerScript 语句 PowerBuilder 中大 部分的事件都是可以映射成由用户激发的 Windows 事件 另一类事件是用户定 义事件 这种事件是用户声明并可以在任何时刻由用户触发的 Power Builder 中保留了 75 个用户事件可由程序员使用 3 函数 用户通过函数来使对象完成某些操作 Pow erSoft 公司建议用户 通过调用对象事件和函数来修改对象而不要直接修改对象属性 以满足对象封装 的要求 例如采用 Window hide 而不要用 Window visi ble false 来使窗口不 可见 2 1 22 1 2 PowerBuilderPowerBuilder 面向对象的特性面向对象的特性 提到一门语言的面向对象特性 它应当具有继承性 多态性和封装性 如缺 少其中的一个则只能称其为基于对象的系统 而不是面向对象的系统 而 PowerBuilder 则很好地具备了全部三个特性 继承 PowerBuilder 中 窗口 菜单和用户对象是可以继承的 而其他对象则都不 能 当您继承了一个对象 那您得到的子类将具有父类的属性 实例变量 共享 变量 控件 用户自定义事件 对象级函数 事件和代码 script 也就是说 当您继承了一个类 您几乎得到了这个类的全部 不过有一点值得注意 您不能在 子类中删除任何一个继承到的特性 南京林业大学本科毕业设计 日常用品进销存管理系统 3 在继承了祖先类后 您可以在子类中扩展或覆盖祖先的元素 例如代码 在 PowerBuilder 中缺省的是采用扩展方式 先执行继承到的祖先代码 后执行 子类 的扩展代码 您也可以选择菜单 Compiler OverrideAncestorScript 选项 只执 行子类的代码 并可在代码中的任何位置调动祖先代码如 CALLw l open 重载函数是面向对象程序设计的重要特性 即同一函数名却有着 不同的参数 和返回值 在运行时 系统自动寻找执行参数相匹配的那个函数 例如我们常用的 MessageBox 这个函数就有 12 个不同参数的重载函数 遗憾 的是 对 Power Builder 我们不能在同一个继承对象中定义 2 个不同参数的重载 函数 只能在后继的类中定义重载函数 这使我们对重载函数的定义带来了很大 的不便 这不能不说是 PowerBuilder 的缺陷 不过在即将发布的 PowerBuilder5 0 中 正是支持了函数重载这一特性 对于对象的继承 PowerBuilder 中所有对象都有其共同的基类 PowerObject 从 这一个基类下面分成继承类 Graph icObject 和 NonVisualObject 等 它们的继 承关系和扩展函数及属性如下表 多态性 在 PowerBuilder 中有大量的多态函数如 print TriggerEvent 等 在 运行过程中 您只需要指出对象和函数名即可 在有些函数中 即使不知道对象 类 也可以用 ClassName 函数得到对象类 或得到实例名 将对象名作为函数参 数调用该函数 封装性 封装的目的是为了实现数据隐藏和数据保护 封装的目标是为对象提供一个 对外操作的接口 使其他对象通过函数来访问 而不允许直接操纵对象的属性 在 PowerBuilder 中有三种访问类型 Public Protect Private 这三种访问控 制类型可以用在对象的变量和函数上 缺省的实例变量和对象函数都是 public 类型的 为了保护数据 应尽可能多地使用 private 和 protect 类型 前者只允 许对象内部的元素来访问 后者可以接受对象内部和继承类的元素访问 2 1 32 1 3 PowerBuilderPowerBuilder 面向对象程序设计的过程面向对象程序设计的过程 事实上用户在运用 Power Builder 进行程序设计的一开始 就已经开始进行 对象类的设计 例如在建立窗口时可以用窗口画笔 painter 建立一个新窗口 命 名为 w emp 建立的窗口就是从 PowerBuilder 的窗口对象继承下来的 所以窗 口会自动具备一些属性 例如 X 和 Y 的坐标 高度 宽度 窗口类型 标题等 当用窗口画笔建立窗口时 您给这些属性赋了值 你还可以增加窗口的函数和事 件 当窗口被保存时 你就建立了一个新的窗口继承类 称为 w emp 输出对象 的句法显示的部分程序如下 globaltypew empfromWindow intX 200 intY 233 intWidth 2405 intHeight 1285 booleanTitleBar true stringTitle EmployeeMainte nance stringMenuName m emp longBackColor 12632256 南京林业大学本科毕业设计 日常用品进销存管理系统 4 booleanControlMenu true booleanMinBox true booleanMaxBox true booleanResizable true endtype globalw empw emp 请注意系统在这里做了什么 首先定义了 w emp 窗口类是从 window 类继承 而来 接着定义这一对象类的各属性值 在句法的最后一行声明了一个全局变量 变量的类型 对象类 是 w emp 变量名 对象实例 也是 w emp 也就是说在您建 立了 w emp 这一窗口对象后 系统就具有了 w emp 这一对象类和 w emp 这一全局 变量 这个变量是引用变量 也就是在有些语言称之为指针的变量类型 引用变 量并不真正含有窗口实例的属性 而是包含了一个位置或是内存中的一个地址 在那儿你可以找到实例的实际属性和程序 但在应用的开始时这一指针为空 因 为在内存中并没有一个这样的窗口实例 当系统执行了 Open w emp 后 系统在 内存中复制了一份 w emp 对象类的拷贝或实例 w emp 这一参照变量指向了这一 地址 由于窗口对象的 visible 等属性都是 Public 类型 所以继承类也都具有 了这些属性 2 2 数据库的事务管理数据库的事务管理 在数据库中 所谓事务是指一组逻辑操作单元 使数据从一种状态变换到另 一种状态 为确保数据库中数据的一致性 数据的操纵应当是离散的成组的逻辑 单元 当它全部完成时 数据的一致性可以保持 而当这个单元中的一部分操作失 败 整个事务应全部视为错误 所有从起始点以后的操作应全部回退到开始状态 对事务的操作是这样进行的 先定义开始一个事务 然后对数据作修改操作 这时如果提交 COMMIT 这些修改就永久地保存下来 如果回退 ROLLBACK 数据 库管理系统将放弃您所作的所有修改而回到开始事务时的状态 此外有些数据 库支持事务的 存储点 savepoint 这一概念 即在一个事务进程中任意一点您都 可以进行当前状态的存储 回退时只是回到你所设定的存储点 而不必退回全部 的事务 如果您的事务可以分成几组对数据库的修改 那就可以设置多个存储点 根 据需要您可以回退到任意一个存储点 而不使所有事务的修改数据全部丢失 正确地管理事务可以保证数据的完整性 当您所做的工作全部完成和得到确 认之前 没有任何数据物理地写进数据库 让我们来看这样一个实例 我们有这 样一个银行应用系统 前台使用者作出将储户甲的一百元存款划归储户乙帐下的 操作 在后台的数据库中 这两个客户的记录分储在两张表中 当使用者在屏幕上 作出如上操作时 在后台需要对两张表进行修改 如果在数据库中对甲用户存款 余款作减去一百元修改后 对乙用户加一百元的操作修改却失败时 前一张表也 必须回到修改前的状态 否则数据库的内容不统一 甲储户白白损失一百元 信息 必然是不正确的 因此进行事务管理是必须的 传统地 我们认为一个事务包括了对一个或多个表的修改 而随着分布式数 据库和数据仓库的发展 事务可能包括了对一个或多个数据库的修改 在上例中 甲乙两用户就可能是异地用户 信息分储在不同地域的不同数据库中 上述的一 个事务就涉及到了对不同数据库的操作 南京林业大学本科毕业设计 日常用品进销存管理系统 5 2 2 12 2 1 PowerBuilderPowerBuilder 中的事务管理中的事务管理 作为数据库的前台开发工具 Power Builder 支持事务管理的操作 在 Power Builder 中有一种称作事务 transaction 的对象 这个对象是 PowerBuilder 应用与数据库的通讯区域 PowerBuilder 在应用开始时建立一个 全局的事务对象 SQLCA 由于大多数的应用只用到一个数据库 所以一般开发者 主要也只用 SQLCA 作为与唯一数据库连接的事务对象 PowerScrip 中常用的事务管理的语句有 4 个 COMMIT ROLLBACK CONNECT DISCONNECT 当您需要应用与数据库建立连接时使用 CONNECT 这一操作命令 取消连接时 执行 DISCONNECT 这两个命令一般分别用在应用的开始和结束 也就是 Appli cation 的 Open 和 Close 事件中 当一个事务的数据库修改都成功地完成后 修改须提交给数据库 COM MIT 语句是一个旧事务结束和一个新事务开始的界线 在修改被提交前 数据库的数 据并没有被真正地修改 这些修改被保留在某个工作区 只有作修改的用户才能 看到这些被修改后的值 提交之后 则所有的用户就都可以看到新值了 在事务的进程中发生某些错误 或者在操作中出于种种原因打算中止事务 须用 ROLLBACK 命令回退事务 如果已作的操作不用 ROLLBACK 命令取消 这些操 作必将错误地作为下一个事务的一部分而导致数据库的混乱 如果您使用的是多窗口的应用 却只用一个事务对象 就应格外注意 ROLL BACK 和 COMMIT 会影响事务的逻辑一致性 在某个窗口执行的这两个指令会使 其他窗口应用中所进行到一半的工作提交或回退 在多用户系统中 修改和提交的时间越接近 提交成功的可能性就越高 因 为一个事务中所有的 SQL 语句全部执行成功而提交却失败是完全可能发生的 例 如在您的事务过程中 另一个用户修改了数据并提交 这很可能使您作出的修改 无效 这时 COMMIT 将失败 您必须回退这一事务的全部 2 2 22 2 2 事务对象的事务对象的 AutoCommitAutoCommit 属性属性 事务对象有一个 AutoCom mit 的属性可以使开发者简化对事务管理的操作 这一布尔型的属性可以用 TRUE 或 FALSE 来对其赋值 当其为真时 PowerBuilder 不通过其他额外的交互就将您的 SQL 语句传输给后台数据库 而 且执行完毕自动提交 当然 您可以设置 AutoCommit 属性为假 缺省值 使用 COMMIT 或 ROLLBACK 这样的关键词提交或回退事务 在大多数应用中 一部分的数据库操作是要成组 提交的 而另一些则不用 因此我们可以利用 AutoCommit 的特性来确定事务的 起点 当我们把 AutoCommit 的属性设为 False 时 系统设定此时为事务的起点 当 AutoCommit 设为真时 系统自动消取这一事务 因此你可以先把 AutoCommit 设为真 当您需要开始一个事务时 将其置为 false 此刻即为事务起始点 PowerBuilder 内部这种事务管理的最大优点是方便 您不去考虑整个事务 而 只需把您所作的修改提交或滚回即可 但是方便与可控性总是矛盾的 在 Power Builder 中没有存储点和嵌套事务管理的机制 即使您所使用的数据库支 持这些特性 在 PowerBuilder 中却无法得以体现 不过在普通的应用中 存储点 和嵌套事务管理并不是必须的 一般的事务管理足以够用 南京林业大学本科毕业设计 日常用品进销存管理系统 6 2 2 32 2 3 用数据库的事务管理指令实现完全控制用数据库的事务管理指令实现完全控制 上述的事务管理方式尽管简单方便 但是在某些应用中 我们也的确需要利用 所用的数据库系统的嵌套事务和存储点的特性 而 PowerBuilder 内部的事务管理 没有提供这样的功能 您必须自己设计 自己进行事务管理的方式是直接使用数据库本身的事务指令 当您使用自己 的管理方式时 就应使 Power Builder 停止管理事务 即设置 Auto Commit 为 TRUE 系 统内部就不会自动建构事务处理的命令了 实现人工事务管理的方式是采用 EXECUTEIMMEDIATE 这条 PowerBuilder 指令来执行任意的数据库操作 你所需做 的是将数据库指令编辑成一个字符串 您可以执行任何的数据定义语句如建表 建主键 存储过程等 例如您可以用 EXECUTEIMMEDIATEBEGINTRANSACTIONtrans name 这样的指令开始一个事务 采用这种方法 只要您所用的数据库支持嵌套事 务和存储点等事务管理 我们通过 PowerBuilder 开发出的应用也就同样可以实现 在 PowerBuilder 中提供的事务管理的方法是多种多样的 只要您灵活运用 就一定能设计出优秀的数据库应用来 2 3 数据库设计理论数据库设计理论 数据库是一种存储数据并对数据进行操作的工具 数据库的作用在于组织和 表达信息 简而言之 数据库就是信息的集合 创建任何一个数据库的第一步是 仔细的规划数据库 设计必须是灵活的 有逻辑的 创建一个数据库结构的过程 被认为是数据模型设计 实际上设计任何一种数据库应用系统 不论是层次的 网状的还是关系的 都 会遇到如何构造合适的数据模式即逻辑结构的问题 由于关系模型有严格的数学 理论基础 并且可以向别的数据模型转换 因此人们往往以关系模型为背景来讨 论问题 形成了数据库逻辑设计的一个有力工具 关系数据库规范化理论 关系数据库是以关系模型为基础的数据库 它利用关系描述现实世界 一个 关系既可用来描述一个实体及其属性 也可用来描述实体间的一种联系 关系模 式是用来定义关系的 一个关系数据库包含一组关系 定义这组关系的关系模式 的全体就构成了该数据库的模式 范式是符合某一种级别的关系模式的集合 关系数据库中的关系必须满足一 定的要求 满足不同程度要求的为不同范式 目前主要有六种范式 第一范式 第二范式 第三范式 BC范式 第四范式 第五范式 满足最低要求叫第一范式 数据库之间的关系指明两个库之间共享一个共同的关键字值 一个连接是指 一种虚拟的表 这种表是在当用户要求从相互关联的各个不同的表中获取信息时 建立的 关键字段用于在相互连接的不同表中查找匹配的记录 一个更高级的连 接形式称为自连接 这种连接是指一个表被连接到它自己的一个字段 或在不同 的纪录中由重复数据的组合字段 数据库中有三种不同类型的关键字 主关键字 组合关键字和外关键字 在表中使用的关键字类型用于描述库表示什么以及在数 据库中如何与其它的库建立关系 南京林业大学本科毕业设计 日常用品进销存管理系统 7 2 3 12 3 1 数据库模型数据库模型 目前广泛作用的数据模型可分为两种类型 独立于计算机系统的模型 完全不涉及信息在系统中的表示 只是用来描述 某个特定组织所关心的信息结构 这类模型称为 概念数据模型 要领模 型用于建立信息世界的数据模型 强调其语义表达功能 应该概念简单 清 晰 易于用户理解 它是现实世界的第一层抽象 是用户和数据库设计人员 之间进行交流的工具 这一其中著名的模型是 实体联系模型 直接面向数据库的逻辑结构 它是现实世界的第二层抽象 这类模型涉及到 计算机系统和数据库管理系统 又称为 结构数据模型 例如 层次 网 状 关系 面向对象等模型 这类模型有严格的形式化定义 1 层次模型 用树型结构表示实体类型及实体间联系的数据模型 树的结点是 记录类型 每个非根结点有且只有一个父结点 上一层记录类型和下一层记录类 型间联系是 1 N 联系 层次模型的特点是记录之间的联系通过指针实现 查询 效率较高 但层次模型有两个缺点 一是只能表示 1 N 联系 虽然有多种辅助 手段实现了 M N 联系 但都较复杂 二是由于树型结构层次顺序的严格和复杂 引起数据的查询和更新操作也很复杂 因此 编写应用程序也很复杂 2 网状模型 用有向图结构表示实体类型及实体间联系的数据模型 1969 年 DBTG 报告提出的数据模型是网状模型的主要代表 有向图中的结点是记录类型 有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是 1 N 联系 网状模型的特点 记录之间联系通过指针实现 M N 联系也容易实现 查询效率 较高 网状模型的缺点是编写应用程序比较复杂 程序员必须熟悉数据库的逻辑 结构 由于层次系统和网状系统的应用程序编制比较复杂 因此 从 20 世纪 80 年代中期起 其市场已被关系系统所取代 但是使用这两种模型建立起的许多数 据库仍然在正常运转 只是在外层加了个关系数据库语言的接口 3 关系模型 关系模型的主要是用二维表格结构表达实体集 用外键表示实体 间联系 关系模型是由若干个关系模式组成的集合 关系模式相当于前面提到的 记录类型 它的实例称为关系 每个关系实际上是一张二维表格 关系模型和层 次 网状模型的最大判别是用关键码而不是用指针导航数据 表格简单用户易懂 编程时并不涉及存储结构 访问技术等细节 关系模型是数学化模型 SQL 语言 是关系数据库的标准化语言 已得到了广泛的应用 4 面向对象模型 目前 关系数据库的使用已相当普遍 但是 现实世界中 仍然存在着许多含有复杂数据结构的应用领域 例如 CAD 数据 图形数据等 而关系模型在这方面的处理能力就显得力不从心 因此 人们需要更高级的数据 库技术来表达这类信息 面向对象的概念最早出现在程序设计语言中 随后迅速 渗透到计算机领域的每一个分支 面向对象数据库是面向对象概念与数据库技术 相结合的产物 2 3 22 3 2 数据库体系结构数据库体系结构 数据库的体系结构分三级 内部级 internal 概念级 conceptual 和 外部级 external 这个三级结构有时也称为 三级模式结构 或 数据抽象 的三个级别 虽然现在 DBMS 的产品多种多样 在不同的操作系统支持下工作 但是大多数系统在总的体系结构上都具有三级模式的结构特征 外部级最接近用户 是单个用户所能看到的数据特性 单个用户使用的数据 南京林业大学本科毕业设计 日常用品进销存管理系统 9 视图的描述称为 外模式 概念级涉及到所有用户的数据定义 是全局的数据 视图 全局数据视图的描述称为 概念模式 内部级最接近于物理存储设备 涉及到实际数据存储的结构 物理存储数据视图的描述称为 内模式 南京林业大学本科毕业设计 日常用品进销存管理系统 10 第三章 系统分析设计 3 1 业务流程业务流程分析分析 该日常用品管理系统的业务流程图如图 3 1 所示 图 3 1 业务流程图 3 2 系统结构系统结构设计设计 本系统共分 5 大部分 14 个完整的功能模块 系统结构图如图 3 2 所示 日常用品进销存系统 进 货 管 理 销 售 管 理 库 存 管 理 财 务 管 理 系 统 管 理 入 库 查 询 入 库 报 表 登 记 销 售 登 记 销 售 查 询 销 售 报 表 库 存 查 询 库 存 盘 店 库 存 报 表 财 务 报 表 财 务 结 帐 入 库 登 记 操 作 员 管 理 权 限 管 理 供应商 入库信息 入库作业 厂家往来帐 库存信息销售作业客户 销售信息 客户往来帐 入库查询 入库报表 库存报表 库存盘点 库存查询 销售报表 销售查询 图 3 2 日 常用品管 理系统流 程图 入 库 登 记 南京林业大学本科毕业设计 日常用品进销存管理系统 11 图 3 2 日用品进销存管理系统结构图 3 3 数据库设计数据库设计 本系统采用了大型的 SQLServer 数据库 数据库名称成为 yyglxt 数据库 yyglxt 包含表有 出库登记表 ckdj 操作员信息表 czy 供应商信息表 gysxx 库存信息表 kc 客户信息表 khxx 入库登记表 rkdj 商品信息表 spxx 销售表 xsbb 等 3 3 13 3 1 数据库需求分析数据库需求分析 根据业务流程分析得E R 图如下 mnmn n m 图 3 3 实体之间关系的 E R 图 可以得到数据库由以下几个部分组成 库存基本信息表 操作员信息表信息表 供应商基本信息表 客户信息表 入库登记表 商品信息表 销售信息表 3 3 23 3 2 数据库逻辑结构设计数据库逻辑结构设计 根据系统功能设计的要求以及功能模块的划分 对于系统用户的信息数据库 对各个表结构设计如下 库存基本信息表 kc 表 商品编号 spbh 商品名称 spmc 简称 jc 仓库名称 ckmc 类型 lx 货位 hw 产地 cd 规格 gg 包装 bz 单位 dw 商标 sb 批准文号 pzwh 进价 jz 数量 zl 商品 仓库 客户供应商供应 存放 需求 南京林业大学本科毕业设计 日常用品进销存管理系统 12 操作员信息表信息表 czy 表 操作员编号 czybh 操作员级别 czyjb 操作员 czy 密码 pwd 供应商基本信息表 gysxx 表 供应商编号 gyhbh 简称 jc 供应商全 称 gysqc 所属地区 ssdq 地址 dz 邮政编码 yzbm 电话 dh 传真 cz 联系人 lsr 联系人电话 lsrdh 开户银行 khyh 银行帐号 yhzh 纳税 人登记 nsrdy 邮箱网址 yqwz 客户信息表 khxx 表 客户编号 khbh 简称 jc 客户全称 khqc 所属地区 ssdq 地址 dz 电话 dh 传真 cz 联系人 lxr 联系人电话 lxrdh 开户银行 khyh 银行帐号 yhzh 邮箱网址 yxwz 入库登记表 rkdj 表 供应商全称 gyzqc 操作员 jsr 入库票号 rkbh 入库日期 rkrc 商品名称 spmc 类型 lx 货位 hw 产地 cd 包装 bz 单位 dw 批准文号 pzwh 批发价 pfh 优惠价 yhj 零售价 lsj 金额 jy 商品信息表 spxx 表 商品编号 spbh 商品名称 spmc 简称 jc 类 型 lx 货位 hw 产地 cd 规格 gg 包装 bz 单位 dw 商标 zb 进 价 jj 零售价 lsj 保质期 bsq 货源 hy 销售表 xsdj 表 客户全称 khqc 操作员 czy 销售票号 xsph 出 库日期 ckrq 商品编号 spbh 仓库名称 ckmc 简称 jc 货位 hy 规格 gg 单位 dw 批准文号 pzbh 保质期 bzq 单价 dj 数量 sl 金额 je 表 3 1 库存基本信息表 kc 表 表结构 南京林业大学本科毕业设计 日常用品进销存管理系统 13 表 3 2 操作员信息表信息表 czy 表 表结构 表 3 3 供应商基本信息表 gysxx 表 表结构 表 3 4 客户信息表 khxx 表 表结构 南京林业大学本科毕业设计 日常用品进销存管理系统 14 表 3 5 入库登记表 rkdj 表 表结构 表 3 6 商品信息表 spxx 表 表结构 南京林业大学本科毕业设计 日常用品进销存管理系统 15 表 3 7 销售表 xsdj 表 表结构 南京林业大学本科毕业设计 日常用品进销存管理系统 16 3 4 关键技术关键技术 3 4 13 4 1 多页窗体设计多页窗体设计 为了节省空间 可以使用 Tab 控件进行多业窗体设计 这样既节省空间又方 便对软件的操作 更有利于系统的维护 要使用 Tab 控件实现多业窗体的设计 首先应向窗体添加一个 Tab 控件 刚 刚添加的 Tab 控件只有一个 Tab 标签 TabPage 1 也就是说 此时只是一个简单 的窗体 那么如何进行多业窗体的设计呢 只需要在Tab 标签上单击鼠标右键 在弹出的快捷菜单中选择 Insert TabPage 就可 这时候窗体已经有两个 Tab 标签 TabPage 1 和 TabPage 2 用同样的方法可以添加更多的 Tab 标签 这样便可以 在一个 Tab 标签 TabPage 1 中放置一些文本控件实现数据的添加 在另一个 Tab 标签 TabPage 2 中放置一个数据窗口控件实现报表管理 至此 多页窗体的设计 已经完成 3 4 23 4 2 数据记录的快速查询数据记录的快速查询 在窗体上放置 4 个按钮 分别为 第一个 上一个 下一个 最后一个 当单击相应的按钮时 就会把光标定位在相应的数据记录上面 这里用了数据窗口控件的 3 个函数 分别是 Scrolltorow Scrollpriorrow 和 Scrollnextrow Scrolltorow 函数的功能是把指定的行作为当前记录 Scrolltorow 函 数的语法格式为 dwname Scrolltorow row 其中 dwname 是数据窗口的 控件名 row 是指定的行号 当 row 为 0 或 1 时 移动光标到第一条记录 当 row 是 2 时 移动光标到第二条记录 当 row 大于或等于记录总数时 移 动光标到最后一条记录 Scrollpriorrow 函数的功能是把当前行的上一条记录 如果存在 作为当 前记录 Scrollpriorrow 函数的语法格式为 dwname Scrollpriorrow 其中 dwname 是数据窗口控件名 如果当前行是第三条记录 则执行完刚 函数后第二条记录成为当前记录 Scrollnextrow 函数的功能是把当前行的下一条记录 如果存在 作为当 前记录 Scrollnextrow 函数的语法格式为 dwname Scrollnextrow 其中 dwname 是数据窗口的控件名 如果当前行是第三条记录 则执行完该函数后第 四条记录成为当前记录 南京林业大学本科毕业设计 日常用品进销存管理系统 17 第四章 系统关键模块设计与实现 4 1 主程序界面设计主程序界面设计 4 1 14 1 1 实现目标实现目标 程序启动后 在系统登陆窗口验证操作员密码后 进入主程序界面 主程序界 面主要实现如下功能 选择主界面的菜单 调用相应程序 进行相应操作 执行相应的权限操作 主程序界面如图 4 1 所示 图 4 1 主程序界面 4 1 24 1 2 实现过程实现过程 1 新建一个工作空间 名称为 csjxcxt 在该工作空间中创建一个目标应用 程序 名称为 csjxc 在该应用程序中添加一个窗体 窗口设置为 mdi 类型 单击窗体属性页面的 MenuName 的打开文件按钮 在弹出的窗口 中选择 menus 使菜单绑定在窗体上 窗口名称为 main 南京林业大学本科毕业设计 日常用品进销存管理系统 18 2 开发本软件用到的全局变量定义如下 string czyvar czyjbvar 3 程序代码如下 窗口 main 的 open 事件 初始化菜单项的可用状态 选择数据 select czyjb into czyjbvar from czy tab where czy czyvar if trim czyjbvar string 2 then 使菜单项不可用 menus m 销售管理 m 销售登记 enabled false menus m 销售管理 m 销售统计 enabled false menus m 销售管理 m 销售报表 enabled false menus m 进货管理 m 入库登记 enabled false menus m 进货管理 m 入库统计 enabled false menus m 进货管理 m 入库报表 enabled false menus m 财务管理 m 财务结帐 enabled false menus m 财务管理 m 财务报表 enabled false menus m 系统管理 m 操作员管理 enabled false menus m 系统管理 m 权限管理 enabled false end if czyjbvar czyvar opensheet w111 main 7 Layered 4 2 菜单的设计菜单的设计 在菜单中设计应用程序的主窗口所连接的菜单 menus 该菜单的结构如图 4 2 所示 各个菜单中的程序代码都使用 open windowname 其中 windowname 是各个子菜单窗口名 南京林业大学本科毕业设计 日常用品进销存管理系统 19 图 4 2 菜单的结构 4 3 系统登陆窗口设计系统登陆窗口设计 4 3 14 3 1 实现目标实现目标 程序启动后 首先进入系统登陆窗口验证操作员密码 系统登陆窗口主要实 现如下功能 选择操作员 凭口令进入系统 确认用户的身份及使用权限 支持键盘和鼠标操作 系统登陆窗口如图 4 3 所示 南京林业大学本科毕业设计 日常用品进销存管理系统 20 图 4 3 系统登陆窗口 程序代码见附录程序 1 4 4 进货管理进货管理 4 4 14 4 1 入库登记设计入库登记设计 1 1 实现目标 实现目标 程序启动后 调用主菜单 进货管理 下的 入库登记 窗口 入库登记 窗口主要实现以下功能 完成商品的入库登记操作 入库登记 窗口如图 4 4 所示 图 4 4 入库登记 窗口 2 2 实现过程 实现过程 1 在日用品管理系统的应用程序中 添加一个窗体 命名位 rkdj win 2 在窗体中添加 25 个 StaticText 控件 5 个 DropDownListBox 控件 7 个 EditMask 控件 13 个 SingleLineEdit 控件 4 个 GroupBox 控件 1 个 DataWindow 控件 4 个 CommandButton 控件 3 创建数据窗口对象 其中数据表选择 rkdj tab 保存数据窗口对象为 rkdj data 1 单击数据窗口控件 dw 1 单击属性栏中 DataObject 右侧的按钮 在 弹出的对话框中选择数据窗口对象 rkdj data 使其绑定在数据窗口控件 dw 1 上 程序代码见附录程序 2 4 4 24 4 2 入库登记查询设计入库登记查询设计 1 1 实现目标实现目标 程序启动后 调用主菜单 进货管理 下的 入库登记查询 窗口 南京林业大学本科毕业设计 日常用品进销存管理系统 21 入库登记查询 窗口主要实现以下功能 可按不同字段 不同条件查询商品入库信息 以卡片 列表两种形式显示商品入库信息 支持快速浏览入库商品信息 入库登记查询 窗口如图 4 5 所示 图 4 5 入库登记查询 窗口 2 2 实现过程实现过程 1 在日用品管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论