首页 学校食堂管理系统

学校食堂管理系统

举报
开通vip

学校食堂管理系统学校食堂管理系统 毕业设计(论文) 题 目:学校食堂管理系统 院 (系): 年 级: 专 业: 学生姓名:(其余用三号字、宋体字) 学 号: XXXXXXX 指导教师: XXXX 职 称: XXXX 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 2008 年 05 月10日 本科学生毕业设计论文 目 录 目 录 摘 要.............................................................. 4 Abstract..............

学校食堂管理系统
学校食堂管理系统 毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (论文) 题 目:学校食堂管理系统 院 (系): 年 级: 专 业: 学生姓名:(其余用三号字、宋体字) 学 号: XXXXXXX 指导教师: XXXX 职 称: XXXX 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 2008 年 05 月10日 本科学生毕业设计论文 目 录 目 录 摘 要.............................................................. 4 Abstract.............................................................. 4 1前 言 ............................................................... 5 2开发工具 ............................................................ 6 2.1Visual Basic 编程开发工具 ...................................... 6 2.1.1Visual Basic语言概述 ..................................... 6 2.1.2Visual Basic编程环境 ..................................... 7 2.2使用Access2000 实现关系型数据库 ............................... 8 2.2.1数据库的概念 ............................................. 8 2.2.2实现关系型数据库的联系 ................................... 8 3需求分析 ........................................................... 10 3.1系统功能分析.................................................. 10 3.2 系统性能分析 ................................................. 11 3.3 系统功能模块设计 ............................................. 11 3.4数据流程图.................................................... 12 4 总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计....................................................... 16 5 数据库设计......................................................... 17 5.1 数据库需求分析 ............................................... 17 5.2 数据库概念结构设计 ........................................... 18 5.3 数据库逻辑结构设计 ........................................... 21 5.4 数据库的生成与配置 ........................................... 23 5.5 创建应用程序结构 ............................................. 23 6 详细设计........................................................... 24 6.1 开发业务逻辑处理组件 ......................................... 24 6.1.1 信息管理类加集合类的设计思想............................ 24 6.1.2 创建组件的通用模块...................................... 25 - 2 - 本科学生毕业设计论文 6.1.3 食品类型信息管理模块.................................... 27 6.1.4 食品信息管理模块........................................ 29 6.1.5 供货商信息管理模块...................................... 31 6.1.6 进货信息管理模块........................................ 32 6.1.7 销售信息管理模块........................................ 34 6.1.8 报损信息管理模块........................................ 35 6.1.9 管理员信息管理模块...................................... 36 6.2 开发基本界面组件 ............................................. 36 6.3界面端应用程序设计............................................ 40 6.3.1 公共模块的设计.......................................... 40 6.3.2用户登入模块的设计 ...................................... 40 6.3.3系统主界面的设计 ........................................ 42 6.3.4 添加主界面模块.......................................... 43 6.3.5 用户管理模块............................................ 45 6.3.6经营分析模块 ............................................ 46 7 测试分析........................................................... 48 7.1 强制变量声明 ................................................. 48 7.2 常见错误的避免 ............................................... 48 总结................................................................. 49 致谢................................................................. 50 参考文献............................................................. 51 - 3 - 本科学生毕业设计论文 摘 要 学校食堂管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的 建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和 完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,容易使用等特 点。 经过分析,我使用了Microsoft公司的 Visual Basic开发工具,利用其提供的 各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化 对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断 修正和改进,直到形成最后的可行系统。 关键字:控件、记录、管理系统。 Abstract School canteens management system is a typical management information system (MIS), including the development of its database background to the establishment and maintenance, and front-end application development aspects. With regard to the former request to establish data consistency and integrity of strong, good for data security. For the latter request applications fully functional, easy to use and so on. After analysis, I use Microsoft's Visual Basic development tools, provided by the use of its object-oriented development tools, in particular the window of this data can be convenient and simple manipulation of the intelligence database objects, first established in a short period of time Application of the prototype system, and then, the initial prototype system needs iteration, and constantly revised and improved, until the final formation of a viable system. Keyword: control, recording, management systems. - 4 - 本科学生毕业设计论文 1前 言 当今社会为信息社会,世界已进入在计算机信息管理领域中激烈竞争的时代。信息已成为继劳动力、土地、资本之后的又一大资源,谁控制的信息越多,谁利用信息资源的效率越高,谁就会在各方面的竞争中,占有一席之地,谁就会更有优势,这一点已得到举世公认。随着WTO的加入和我国工业的迅猛发展,为了抓住机遇,在竞争占得先机,作为生产学校食堂的一个必不可少的重要环节—学校食堂进销存管理的信息化、计算机化也就迫在眉捷了。开发学校食堂管理系统即有宏观上的意义,那就是顺应时代信息化、现代化潮流,提高效益,促进国民经济结构优化;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高工作效率,增加单位效益。 学校食堂管理系统按分类、分级的模式对仓库进行全面的管理和监控,缩短了学校食堂信息流转时间,使学校食堂的物资管理层次分明、井然有序,为采购、销售提供依据;智能化的预警功能可自动提示存货的短缺、超储等异常状况;系统还可进行材料学校食堂ABC分类汇总,减少资金积压。完善的学校食堂管理功能,可对学校食堂的存货进行全面的控制和管理,降低学校食堂成本,增强学校食堂的市场竞争力。 目前,无论是公司还是食堂对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在学校食堂中,食品的进销存涉及产品原料的采购、库存、报损,甚至有时涉及到销售,同时,对于产品也有相应的生产、库存、销售、和报损等环节。在其他非生产性单位,如学校食堂、商店等,则主要涉及到进货、库存、销售和报损4个方面。 在设计一个系统时,首先要做好需求分析。合理地运用好Visual Basic的基本方法,建立一个适合学校食堂管理系统。 - 5 - 本科学生毕业设计论文 2开发工具 2.1Visual Basic 编程开发工具 2.1.1Visual Basic语言概述 1(VB简介 VB是微软公司出品的一个快速可视化程序开发工具软件,借助微软在操作系统和办公软件的垄断地位,VB在短短的几年内风靡全球。VB是极有特色和功能强大的软件,主要 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现在:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成代码。 美国微软公司在1991年推出VB1.0至今已经经历了6个版本,VB6.0运行在Win9x或Winme,Win2000,Winxp,WindowsNT等操作系统下,是一个32位的应用程序开发工具。 2.VB语言的基本特点及VB应用程序的基本持点 VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程. (1)可视化设计 同其他的一些可视化程序开发工具一样,VB具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是"所见即所得"的字处理功能,VB在设计应用程序界面时也可以说是"所见即所得".在设计时,头脑中所想象的应用程序界面,完全可以通过键盘鼠标以及徒手画出来,而不是编制大量的代码然后再编译生成,如果需要修改,也是利用键盘鼠标和手画,而底层的一些程序代码由VB自动生成或修改。 VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生,如"窗体"、"菜单"、"命令按钮"、"工具按钮"、"检查框"等等,用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置,设置它们的大小、形状、属性等,就可以设计出所需的应用程序界面。 (2)事件驱动编程 - 6 - 本科学生毕业设计论文 Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用VB设计应用程序时,必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时,由用户编写的代码控制这些事件的响应,这就是所谓的事件驱动编程。 2.1.2Visual Basic编程环境 1.面对对象的编程 Visual Basic应用程序由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等。这些对象和控件都可在许多应用中重复使用,每一个对象都具有一些特性和行为(属性、事件和 方法)。开发员工可以最有效利用所创建的每一个对象,使应用程序具有可通用性,可扩展性和强有力的功能。 2.实现菜单选项 菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic也提供了强大的创建菜单功能是程序更加 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。我们可以使用Visual Basic的Application Wizard,也可以使用Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单。 3.实现工具栏 Toolbar 是工具条控件,是实现工具条的主体。其中的按钮可以显示图像和标题,并按功能分组或加入分隔符,还可以围棋设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有Style属性,并可以为其增加下拉按钮和平滑按钮等。选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后,工具箱中增加 修改控件。其属性及对象如下: 1. Align属性定义工具条在窗体中的位置 2. ToolTipText属性是字符串类型,定义控件的提示字符 3. Style属性定义按钮外观。 4. ImageList属性定义与数据条对应的ImageList控件名,该控件定义工 具条按钮显示的图像。 - 7 - 本科学生毕业设计论文 5. HotImangeList属性设置一个ImageList控件名,该控件定义按钮获得 热点时显示的图像。 6. DisabledImageList属性定义工具条按钮无效时显示的图像。 创建工具条包括ImageList和Toolbar控件,ImageList用于为其他控件提供图像库,将ImageList控件加入到工具箱的操作于前述Toolbar控件相同。 4( 关于版本 为了是程序显得更具有专业风格,首先可以在其中加入通常的应用程序信息。这些信息包括公司名称、版本号、修订号以及其他类似信息。Visual Basic允许你使用APP对象来保存这些信息,APP对象是一个预定义对象,不需要在程序中创建它。APP对象的大多数属性被应用程序用来提供常规的信息,通过使用这些APP提供的属性,可以在应用程序和用户之间交流重要信息,在项目属性框中可以设置它的属性。 2.2使用Access2000 实现关系型数据库 2.2.1数据库的概念 数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如:记录、域等。 2.2.2实现关系型数据库的联系 Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中 - 8 - 本科学生毕业设计论文 同时拥有桌面数据库的便利和关系数据库的强大功能。 1. 创建数据库 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。 标识需要的数据; 收集被标识的字段到表中; 标识主关键字字段; 绘制一个简单的数据图表; 规范数据; 标识指定字段的信息; 创建物理表。 2. 修改已建的数据库 数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成。 3. 二者的结合 数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指 一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的记录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。 微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。 DATA 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个 - 9 - 本科学生毕业设计论文 dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。 3需求分析 3.1系统功能分析 1)基本信息的维护 食品类型的建立与维护,包括食品类型的新建、修改和删除等。 食品基本信息管理:包括食品基本信息的新建、修改和删除等。 供货商信息管理:包括供货商信息的新建、修改和删除等。 管理员信息管理:系统管理员的添加、删除和修改密码等。 2)进货管理 食品进货信息管理:食品进货信息包括食品进货数量、单价、供货商等。食品进货管理功能完成进货信息登记、修改和删除等。 分类查看:可以根据食品类型来查看某种食品的进货情况。 更新库存:进货信息的变动直接关系到库存的变化。 进货分析:列出当前进货量最多的前几项食品和进货量最少的前几项食品。 库存分析:列出当前库存量最多的前几项食品和库存量最少的前几项食品。 3)销售管理 食品销售信息管理:食品销售信息包括食品销售数量、单价、统计日期等。食品销售管理功能完成销售信息登记、修改和删除等。 分类查看:可以根据食品类型来查看某种食品的销售情况。 更新库存:销售信息的变动直接关系到库存的变化。 销售分析:列出当前销售量最多的前几项食品和销售量最少的前几项食品。 4)报损管理 食品报损信息管理:食品报损信息包括食品报损数量、报损原因等。食品报损管理功能完成报损信息登记、修改和删除等。 分类查看:可以根据食品类型来查看某种食品的报损情况。 更新库存:报损信息的变动同样直接关系到库存的变化。 - 10 - 本科学生毕业设计论文 报损分析:列出当前报损量最多的前几项食品和报损量最少的前几项食品。 3.2 系统性能分析 1)多层结构设计 严格意义上的三层结构设计,其程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。本系统采用的上有三层结构进一步扩展而成的多层结构。 2)面向对象设计 在系统中将食品类型、食品等都封装成相应的类,同时每个类都有自己对应的集合类和操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。 3)指导经营的功能 进销存管理系统并不仅仅能代替传统的书面操作,更重要的是它提供了信息分析的功能,只要单击一个按钮就可以查到目前销售最好的食品或是库存最多的食品,从而起到指导经营的作用。 3.3 系统功能模块设计 按结构化程序设计思想,分析得出如下系统功能模块图: 学校食堂管理系统 食供食食食操作销售用户食品货品品品员登分析管理品管商进报销类入模模块 模块 理管货损售型模理管管管块 管块模理理理 理块模模模 系块块块 统 添加修删添修删登修删登修删登修改删除添加修改删除 食品改除加改除记改除记改除记报损报损食品食品食品 商商供供供进进进销销销报信息 记录 记录 类型 类型 类型 品品货货货货货货售售售损 信信信信信记信信商 商 商 表 息 息 息 息 息 录 息 息 系统功能模块图 - 11 - 本科学生毕业设计论文 3.4数据流程图 成功 失败 登入窗体 退出 主界面 食食食食食供品品品品品货类管进销报商型货售损管理 管管管管理 理 理 理 理 - 12 - 本科学生毕业设计论文 食品类型管理 添加 修改 删除 食品信息管理 添加 修改 删除 食品进货管理 登记 修改 删除 - 13 - 本科学生毕业设计论文 食品销售管理 登记 修改 删除 食品报损管理 登记 修改 删除 - 14 - 本科学生毕业设计论文 供货商管理 添加 修改 删除 - 15 - 本科学生毕业设计论文 4 总体方案设计 失败 系统登入 退出登入 成功 主窗体 食品类型管理 食品管理 食品进货管理 食品销售管理 食品报损管理 供货商管理 添加食品类型 添加食品 删除进货食品 登记报损食品 添加供货商 修改食品类型 删除食品 删除供货商 修改报损食品 登记销售食品 删除食品类型 登记进货食品 修改销售商品 删除报损食品 修改进货食品 删除销售食品 修改供货商 修改食品 一、系统设计概述 - 16 - 本科学生毕业设计论文 1)经济可行性分析 货物管理中节省人力,减轻的劳动强度。 降低成本及其他费用。 赶紧薄弱环节,提高工作效率。 提高数据处理的及时性和准确性。 2)技术可行性分析 CPU PIII 800 RAM 64MB 硬盘 3G 网络 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 TCP/IP 打印机 windows98/windowsxp/windos2000支持的各类打印机 二、代码设计 采用规划的格式和命名方式,层次分明,有条理,代码中附有程序注释,让人容易 明白,可读性强。 三、 界面设计 界面设计美观,用户友好性强。 5 数据库设计 5.1 数据库需求分析 1)针对学校食堂管理系统,分别对采购部、销售部和库存保管部进行详细的调研和 分析,总结出如下的需求信息: 食品按类管理,所以需要有一食品类型信息。 食品必须属于一个食品类型。 如果一个食品类型存在食品,或存在下级食品类型,则该类型不可删除。 需要记录供应食品信息。 在涉及食品数量的地方,要给出相应的单位。 食品销售信息单中要包含登记食品销售数量、单价等信息。 - 17 - 本科学生毕业设计论文 在进货信息中要包含食品供应商等信息。 食品报损要有报损原因。 进货、销售、报损操作要有相应操作员信息。 只有管理员登录之后才可以使用系统。 默认的管理员不可以删除。 进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。 当进行进货、销售和报损操作后,能相应更新库存。 需要对进货、销售、库存、报损进行分析,总结热门食品。 2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构: 食品类型信息,包括数据项有:食品类型编号、食品类型名称等。 食品信息,包括的数据项有:食品编号、食品名称、食品介绍、库存量等。 食品单位信息,包括单位编号、单位名称等。 供应商信息,包括供应商名称、介绍等。 进货信息,包括进货食品、数量、单位、单价、进货时间经手人等。 销售信息,包括销售食品、数量、单位、单价、登记时间等。 报损信息,包括报损食品、数量、单位、原因、登记时间等。 管理员信息,包括管理员账号、密码、是否是默认账号等。 5.2 数据库概念结构设计 本系统根据以上的设计规划出的实体有:食品类型信息实体、食品信息实体、食品单位信息实体、供应商信息实体、进货信息实体、销售信息实体、报损信息实体和管理员信息实体。 各个实体具体的描述,-,图如下 食品类型信息实体E-R图 - 18 - 本科学生毕业设计论文 食品类型 商品类型号 商品类型名 备注 食品信息实体E-R图 商品 库存量 商品编号 商品名称 商品类型ID 单位信息实体E-R图 单位 单位编号 单位名称 供应商信息实体E-R图 - 19 - 本科学生毕业设计论文 供货商 备注 供货商编号 供货商名称 供货商介绍 进货信息实体E-R图 进货信息 进货单价 供应商ID 商品ID 进货时间 销售信息实体E-R图 销售信息 登记日期 商品编号 销售数量 卖出单价 报损信息实体E-R图 - 20 - 本科学生毕业设计论文 报损信息 登记日期 商品编号 报损数量 报损原因 管理员信息实体E-R图 管理员 是否默认用户 用户名 密码 5.3 数据库逻辑结构设计 首先将罪犯管理信息系统的数据库概念结构转化为Access数据库或SQL Server 2000数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计结果如下 数据表:食品类型信息表(MerchandiseType) 列名 数据类型 字段大小 必填字段 默认值 说明 MT_ID_N 自动编号 长整型 是 食品类型号,递增,主键 MT_Name_S 文本 15 是 食品类型名 “” MT_RemarkR 备注 是 备注 - 21 - 本科学生毕业设计论文 数据表:食品信息表(Merchandise) 列名 数据类型 字段大小 必填字段 默认值 说明 M_Id_N 自动编号 长整型 是 食品编号,递增,主键 M_Name_S 文本 80 是 食品名称 M_Introduce_S 文本 255 是 食品介绍 M_TypeId_N 数字 长整型 是 1 食品类型ID M_Storage_N 数字 长整型 是 0 库存量 M_UnitId_N 数字 长整型 是 1 单位编号 “” M_Remark_R 备注 是 备注 数据表:食品单位信息表(Unit) 列名 数据类型 字段大小 必填字段 默认值 说明 U_ID_N 自动编号 长整型 是 单位编号,递增,主健 U_NAME_S 文本 10 是 单位名称 数据表:供应商信息表(Provider) 列名 数据类型 字段大小 必填字段 默认值 说明 P_Id_N 自动编号 长整型 是 供货商编号,主健 P_Name_S 文本 50 是 供货商名称 “” P_Introduce_S 文本 255 是 供货商简介 “” P_Remark_R 备注 是 备注 数据表:进货信息表(Buy) 列名 数据类型 字段大小 必填字段 默认值 说明 B_ID_N 自动编号 长整型 是 进货ID,递增,主健 B_ProviderId_N 文本 长整型 是 供应商ID B_MerchandiseId_N 数学 长整型 是 食品ID B_StockDate_D 日期 短日期 是 Dare() 进货时间 B_Deliver_S 文本 20 是 送货人姓名 B_Consignee_S 文本 20 是 经手人姓名 B_Count_N 数字 长整型 是 0 购入量 B_StockPrice_N 数字 单精度型 是 0 进货单价 B_OperatorId_S 文本 20 是 操作员ID “” B_Remark_R 备注 是 备注 数据表:销售信息表(Sell) - 22 - 本科学生毕业设计论文 列名 数据类型 字段大小 必填字段 默认值 说明 S_ID_N 自动编号 长整型 是 销售编号,递增,主键 S_MerchandiseID_D 数字 长整型 是 食品ID S_RegDate_D 日期 短日期 是 Date() 登记日期 S_Count_N 数字 长整型 是 0 售出数量 S_SellPrice_N 数字 单精度型 是 0 卖出单价 “” S_OperatorId_S 文本 20 是 操作员ID “” S_Remark_R 备注 是 备注 数据表:报损信息表(Dispose) 列名 数据类型 字段大小 必填字段 默认值 说明 D_ID_N 自动编号 长整型 是 报损编号,递增,主键 D_MerchandiseID_N 数字 长整型 是 食品ID D_RegDate_D 日期 短日期 是 Date() 登记日期 D_Count_N 数字 长整型 是 0 报损数量 “” D_Reason_S 文本 255 是 报损原因 D_Operatorld_S 文本 20 是 操作员ID “” D_Remark_R 备注 是 备注 数据表:管理员信息实体(Admins) 列名 数据类型 字段大小 必填字段 默认值 说明 A_Account_S 文本 20 是 账号,主键 A_Pwd_S 文本 20 是 密码 A_IsDefault_B 是/否 是 False 是否是默认用户 5.4 数据库的生成与配置 经过以上的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在Access数据库或SQL Server 2000数据库中创建表了。 5.5 创建应用程序结构 1)创建用户界面端程序 VB中选择文件-新建工程,打开,选择VB应用程序向导。设置后将向导生成的模块命名mdlMain保存与文件夹Merchandise中。 2)创建业务逻辑处理组件 - 23 - 本科学生毕业设计论文 新建ActiveX DLL工程-设置工程属性-加入对ADO的引用。 3)创建基本界面组件 新建ActiveX DLL工程-设置工程属性-加入对业务逻辑组件的引用。 4)在界面端程序中使用组件 在工程资源管理器中选中工程Merchandise,选择菜单工程-引用命令。打开引用对话框,在可用的引用列表中选择BuySellStorageUI和BuySellStorageDB。 6 详细设计 6.1 开发业务逻辑处理组件 进销存业务处理组件用来处理进销存管理系统中的业务逻辑,既负责与界面进行数据传递,同时也要将界面端的请求应用业务逻辑之后对数据库进行操作。它包含以下功能: , 食品类型信息管理,对应clsMType类和clsMTypes类。 , 食品信息管理,对应clsMerchandise类和clsMerchandises类。 , 供应商信息管理,对应ClsProvider类和ClsProviders类。 , 进货信息管理,对应clsBuy类和clsBuys类。 , 销售信息管理,对应clsSell类和clsSells类。 , 报损信息管理,对应clsDispose类和clsDisposes类。 , 管理员信息管理,对应clsAdmini类和clsAdminis类。 6.1.1 信息管理类加集合类的设计思想 在本组件中,每一个模块的设计都是由这个模块的信息管理类加与之对应的集合类求实现的。具体完成的功能如下: , 在信息管理类:实现与单个信息相关的操作,包括添加、修改和删除。 , 在信息管理集合类:实现与多个信息先观的操作,主要是根据不用的条件查找。 因此,每个模块在设计上都是独立的,除非它在逻辑上有不可分割的关系,如进货 - 24 - 本科学生毕业设计论文 信息的操作,与食品库存直接挂钩,将进货信息表的操作与食品表的操作放入到一个事务中,这样来确保数据的安全性与一致性。 6.1.2 创建组件的通用模块 这里需要给组件添加两个通用模块,他们分别是: , 自定义枚举类clsPunliv:主要功能是保存一些自定义枚举类型。 , 公共模块mdlMain:组件初始化的函数和数据库操作的常用函数与过程。 1) 自定义枚举类 我们已经将新建工程时自动生成的类名称设为clsPublic,此类没有其他具体的意义,主要功能是保存一些自定义枚举类型,,这些枚举类型在以后其他各类中要经常用到,所以这里首先介绍。 2) 组件的公共模块 在工程中添加一个模块,命名为mdlMain,此模块有两个功能: , 用来连接数据库及相关的初始化操作。 , 存放在对数据库的操作过程中可能用到的一些公共函数。 (1) 添加全局变量 (2) Sub Main()过程——组件启动入口 手动加入Sub Main()过程,这个就是刚才在“工程属性”中指定的启动对象。这个过程完成ActiveX DLL的初始化工作。在这个过程中假如对g_DBPath的默认设置,并打开数据库连接。 在Sub Main 中的ConnectToDatabase函数,功能是用来连接到数据库。 (3) ConnectToDatabase函数——与数据库建立连接 , 功能:根据传入参数是DBAccess还是DBSQLSever来决定连接到Access数据库还是SPLSever数据库。 , 参数设计:gxDBType类型,参见clsPublic类中的枚举定义。 , 返回值:Boolean类型,True表示成功,False表示失败。 (4) RealString——替换字符串的单引号 - 25 - 本科学生毕业设计论文 (5) MaxID——获取编号的最大值 MaxID函数用来获取表中当前主健的最大值,这个函数用于在数据库中添加新记录后,立即获取刚才添加记录的主健值。 3)创建模块类 (1)设计、总结公共属性和方法 单个模型的信息管理类有以下共同的属性和方法: , 属性ID , 方法AddNew() , 方法Update() , 方法Delete(lngID As Long) , 方法DeleteEx() 多个模型的集合类有以下共同的属性和方法: , 方法AddEx , 方法Clear , 方法Find (2)创建模板类 下面,首先利用类生成器创建一个类clsDBbase,作为模板类,向其中添加一个属性,名称为ID,类型为Long,声明为Let/Get,然后,如下表所示。 名称 参数 返回值 说明 AddNew 无 gxcAddNew 添加数据 Update 无 gxcUpdate 更新数据 Delete gxcDelete 删除数据 DeleteEx 无 gxcDelete 删除数据 然后再新建一个集合类clsDBbase,作为集合类的模板类,集合组成选clsDBbase,如下表所示。 名称 参数 返回值 说明 AddNew Obj As clsDBbase 无 以对象为单位添加元素 - 26 - 本科学生毕业设计论文 Clear 无 清空集合 Find Optional lngID As Long=-1 clsDBbase 查找数据 Optional lngTypeId As Long=0 (3)使用模板类 模板类的使用很简单,在用类生成器新建类时,只要在“基于”下拉列表框中选择所需要的模板类即可。 6.1.3 食品类型信息管理模块 食品类型信息管理模块的功能需要由clsMType和clsMTypes两个类来实现,它的主要功能是: , 添加食品类型信息。 , 修改食品类型信息。 , 删除食品类型信息。 , 查找食品类型信息。 , 其他与食品类型相关的常用操作。 1)、食品类型信息管理类clsMType (1)创建clsMType类并添加属性 食品类型信息类clsMType用来处理单个食品类型的信息,实现食品类型操作的基本功能,如添加、修改、删除等。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器向工程中添加clsMType类,基于下拉列表框中选择clsDBbase。如下表所示。 属性名称 数据类型 属性声明 ID Long Get/Let SuperID Long Get/Let TypeName String Get/Let 属性添加完毕并应用后,可以看到在clsMType类中已经自动添加了类的成员变量和 - 27 - 本科学生毕业设计论文 属性。 (2)AddNew方法 , 功能:添加耽搁食品类型。 , 参数设计:无。 , 返回值:gxcAddNew类型请参考clsPublic类中gxcAddNew枚举类型的定义。 (3)Update方法 , 功能:修改食品类型。 , 返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。 (4)Delete方法 , 功能:删除食品类型。 , 参数设计:可选参数lngID表示食品类型ID,默认为-1。 , 返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。 2)、食品类型信息管理集合类clsMTypes 食品类型信息集合类clsMTypes用来处理多个食品类型的信息,其最小的单元是clsMType,它完成与一组食品类型信息相关的操作,比如查找功能。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMTypes类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMType类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,另外也加入了clsDBbases中方法的定义。 (1) 添加AddEx方法 (2)添加Find方法 , 功能:根据给定参数查找食品类型,结果以clsMTypes类型返回。 , 参数设计:一个可选的类型ID,默认值为-1。 , 返回值:clsMTypes类型,一个clsMType的集合。省略参数时,返回全部食品类 型。 - 28 - 本科学生毕业设计论文 6.1.4 食品信息管理模块 食品信息管理模块的功能需要有clsMerch和clsMerchs两个类来实现,它的主要功能 是: , 添加食品信息 , 修改食品信息 , 删除食品信息 , 查找食品信息 , 其他与食品信息相关的常用操作 1)、食品信息管理类clsMerch (1)创建clsMerch类并添加属性 属性名称 数据类型 说明 ID Long 食品编号 MerchName String 食品名称 Introduce Integer 食品介绍 TypeId gxcSex 食品类型ID Storage Long 库存量 UnitID String 单位编号 Remark String 备注 TypeName String 食品类型名称 (2) AddNew方法 , 功能:添加单个食品信息 , 参数设计:无。 , 返回值:gxcAddNew类型,参考clsPublic类中gxcAddNew枚举类型的定义。 (3) Update方法 , 功能:修改食品信息。 , 参数设计:无。 , 返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。 (4)Delete方法 , 功能:删除食品信息。 - 29 - 本科学生毕业设计论文 , 参数设计:可选参数lngID表示食品ID,默认为-1。 , 返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。 3) 食品信息管理集合类clsMerchs 食品信息集合类clsMerchs用来具体处理多个食品的信息,其最小的单元是clsMerch,它完成与一组食品信息相关的操作,比如查找等。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMerchs类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMerch类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsMerchs添加必要的方法。 (1) 添加AddEx方法 (2) 添加Find方法 功能:根据给定参数查找食品信息,结果以clsMerchs类型返回。 , 参数设计:如下表。 , 返回值:clsMerchs类型,一个clsMerch的集合。显然当上面两个参数都不指定时,返回全部食品。 Find参数设计 参数名 参数类型 功能 是否可选及默认值 说明 lngID Long 传入食品ID 可选,默认值=0 如果取默认值,表示不限制食品ID lngTypeId Long 传入食品类型ID 可选,默认值=0 如果取默认值,表示不限制食品类型 (3) 添加FindStorage方法 , 功能:按库存量排序查找食品,结果以clsMerchs类型返回。 , 参数设计:参见下表。 , 返回值:clsMerchs类型,一个clsMerch的集合。 FindStorage方法参数设计 参数名 参数类型 功能 是否可选及默认值 说明 IsDesc Boolean 表示是否采用降序 可选,默认值=true 无 nCount Integer 最多显示多少条记录 可选,默认值=10 无 - 30 - 本科学生毕业设计论文 6.1.5 供货商信息管理模块 供货商信息管理模块的功能需要由clsProvider和clsProviders两个类来实现,它的主要功能是: , 添加供货商信息。 , 修改供货商信息 , 删除供货商信息 , 查找供货商信息 , 其他与供货商信息相关的常用操作。 1) 供货商信息管理类clsProvider (1) 创建clsProvider类并添加属性 供货商信息类clsProvider用来具体处理单条供货商信息,完成供货商信息的基本操作功能,如添加、修改、删除等。 clsProvider类的属性设置 属性名称 数据类型 说明 ID Long 供货商编号 ProviderName String 供货商名称 Introduce String 供货商简介 Remark String 备注 (2)AddNew方法 , 功能:添加单个供货商信息。 , 参数设计:无。 , 返回值:gxcAddNew类型,参考clsPublic类中的gxcAddNew枚举定义。 (3) pdate方法 , 功能:修改供货商信息。 , 参数设计:无。 , 返回值:gxcUpdate类型,参考clsPublic类中的gxUpdate枚举类型的定义。 - 31 - 本科学生毕业设计论文 (4) Delete方法 , 功能:删除供货商信息。 , 参数设计:可选参数lngID表示供货商信息ID,默认为-1。 , 返回值:gxcDelete类型,参考clsPublic类中gxcDelete枚举类型的定义。 在删除供货商的同时,必须先删除与这个供货商相关的进货信息,而且要把这两个操作放在一个事务里面。 2) 供货商信息管理集合类ClsProviders 供货商信息集合类clsProviders用来处理多条供货商信息,其最小的单元是clsProvider,它完成与一组供货商信息相关的操作,比如查找等。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsProviders类,在“集合组成”栏中选择clsProvider类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsProviders添加必要的方法。 (1) 添加AddEx方法 (2) 添加Find方法 , 功能:根据给定参数查找供货商信息,结果以clsProviders类型返回。 , 参数设计:一个可选的类型ID,默认值为-1。 , 返回值:clsProviders类型,一个clsProvider的集合。省略参数是,返回全部 供货商。 6.1.6 进货信息管理模块 进货信息管理模块的功能需要由clsBuy和clsBuys两个类实现,它的主要功能是: , 添加进货信息。 , 修改进货信息。 , 删除进货信息。 , 查找进货信息。 - 32 - 本科学生毕业设计论文 , 按食品统计分析进货信息。 , 其他与进货信息相关的常用操作。 1) 进货信息管理类clsBuy (1) 创建clsBuy类并添加属性 属性名称 数据类型 说明 ID Long 进货ID ProviderId String 供应商ID ProviderName String 供应商名称 MerchandiseID Long 食品ID MerchName String 食品名称 StockDate Date 进货时间 Deliver String 送货人姓名 Consignee String 经手人姓名 Count Long 购入量 StockPrice Single 进货单价 OperatorId String 操作员ID Remark String 备注 TypeName String 食品类型名称 StockTimes Long 进货次数 TotalPrice Single 总进货支出 (2) AddNew方法 , 功能:添加单条进货信息。 , 参数设计:无。 , 返回值:gxcAddNew类型,请参考clsPublic类中的gxcAddNew枚举定义。 (3) Update方法 , 功能:修改进货信息。 , 参数设计:无。 , 返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。 (4) Delete方法 , 功能:删除进货信息。 , 参数设计:可选参数lngID表示供货商信息ID,默认值为-1。 , 返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。 - 33 - 本科学生毕业设计论文 2) 进货信息管理集合类clsBuys (1) 添加AddEx方法 (2) 添加Find方法 , 功能:根据给定参数查找进货信息,结果以clsBuys类型返回。 , 参数设计:两个可选参数,一个是进货编号,另一个是食品类型编号。 , 返回值:clsBuys类型,一个clsBuy的集合,省略参数时,返回全部进货。 (3) 添加FindStorage方法 , 功能:统计各种食品的进货次数和累计进货总支出,最后按进货总支出来 排序,结果以clsBuys类型返回,最多返回前nCount条记录。 , 参数设计:参加下表 参数名 参数类型 功能 是否可选及默认值 说明 IsDesc Boolean 表示是否采用降序 可选,默认值=True 无 nCount Integer 最多显示多少条记录 可选,默认值=10 无 , 返回值:clsBuys类型,一个clsBuy的集合。 6.1.7 销售信息管理模块 销售信息管理模块的功能需要由clsSell和clsSells两个类实现,它的主要功能是: , 添加销售信息。 , 修改销售信息。 , 删除销售信息。 , 查找销售信息。 , 按食品统计分析销售信息。 , 其他与销售信息相关的常用操作。 销售信息类clsSell用来具体处理单条销售信息,完成销售信息的基本操作功能,如添加、修改、删除等。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”框,选择“VB类生成器”,使用类生成器在工程中添加clsSell类,如下表所示。 属性名称 数据类型 说明 - 34 - 本科学生毕业设计论文 ID Long 销售编号 MerchandiseID Long 食品ID MerchName String 食品名称 RegDate Date 登记日期 Count Long 售出数量 SellPrice Single 售出单价 OperatorId String 操作员ID Remark String 备注 TypeName String 食品类型名称 RegTime Long 登记次数 TotalPrice Single 售出总价 clsASell类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。 6.1.8 报损信息管理模块 报损信息管理模块的功能需要由clsDispose和clsDisposes两个类来实现,它的 主要功能是: , 添加报损信息。 , 修改报损信息。 , 删除报损信息。 , 查找报损信息。 , 按食品统计分析报损信息。 , 其他与报损信息相关的常用操作。 报损信息类clsDispose用来具体处理单条报损信息,完成报损信息的基本操作功能, 如添加、修改、删除等。 选择菜单[工程]— [添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsDispose类,如下表所示。 属性名称 数据类型 说明 ID Long 报损编号 MerchandiseID Long 食品ID MerchName String 食品名称 RegDate Date 登记日期 Count Long 报损数量 Reason Single 报损原因 OperatorId String 操作员ID Remark String 备注 - 35 - 本科学生毕业设计论文 RegTimes Long 登记次数 TotalCount Long 报损总数量 TypeName String 食品类型名 clsDispose类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。 6.1.9 管理员信息管理模块 管理员信息管理模块的功能需要由clsAdmin和clsAdmins两个类来实现,它的主要功能是: , 添加管理员信息。 , 修改管理员信息。 , 删除管理员信息。 , 查找管理员信息。 , 验证管理员密码。 , 其他与管理员信息相关的常用操作。 管理员信息类clsAdmin用来具体处理单条管理员信息,完成管理员信息的基本操作功能,如添加、修改、删除和验证密码等。 选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsAdmin类,如下图所示。 属性名称 数据类型 说明 Account String 管理员账号 Pwd String 密码 IsDefault Boolean 是否是默认用户 clsAdmin中的AddNew、Update和Delete方法,与以上各类中的处理很类似,只是数据库中的字段不同而已。 6.2 开发基本界面组件 进销存管理系统基本界面组件用来处理进销存管理系统中与界面相关的操作,既负责与用户界面层进行数据传递,同时也要将界面端的请求传递给业务处理层,进一步转化为数据库操作。它包括以下功能: , 食品类型操作管理,对应frmMType窗体和clsOpMType类。 - 36 - 本科学生毕业设计论文 , 食品操作管理,对应frmMerch窗体和clsOpMerch类。 , 供货商操作管理,对应frmProvider窗体和clsOpProvider类。 , 进货操作管理,对应frmBuy窗体和clsOpBuy类。 , 销售操作管理,对应frmSell窗体和clsOpSell类。 , 报损操作管理,对应clsDispose窗体和clsOpDispose类。 , 管理员操作管理,对应frmUser窗体和clsOpAdmin类。 1、 信息输入界面加操作类的设计思想 1)每个模块的组成 在本组件中,每一个模块都是由信息输入界面与相应的操作类来实现的,具体完成的功能如下: , 信息输入界面:可供添加或修改时调用,用来获取用户输入,将用户输入封 装到对应的信息管理类中。 , 操作类:可供界面端程序调用,实现了两个功能:其一是用来调出信息输入 界面,接收用户输入,将输入存入数据库,并给出数据库操作的结果;其二 是通过传引用的方式,向用户界面端传入的控件添加数据,从而在用户截面 端显示。 2)输入界面的代码结构 为了方便维护和快速开发,每个界面的实现代码结构都很相似,大多都包括如下的方法: , ShowDlg:用来显示对话框,内部调用Me.Show vbModal,程序停止在这里。 , SetStatus:设计对话框控件的默认状态。 , SetDefaultValue:设计对话框的默认值。 , OKButton_Click:[确定]按钮单击处理事件。 , CheckValid:检查用户输入有效性。 , SaveValue:保存用户输入。 , CancelButton_Click:[取消]按钮单击处理事件。 当用户单击[确定]或[取消]按钮后,程序继续执行ShowDlg函数后面的语句,用来保 - 37 - 本科学生毕业设计论文 存或放弃用户输入。 3)操作类的代码结构 同样为了方便维护和快速开发,每个操作类的代码结构也都很相似,大多包括如下方 法: , Add:管理增加操作。 , Modify:管理修改操作。 , Delete:管理删除操作。 , AddToLvw:将单个对象加入列表,或在列表中更新。 , InitListview:设置ListView的显示样式。 , ObjsToListView:将对象集合显示到ListView中。 , FillListView:显示指定类型对象到列表控件。 , GetObjFromControl:从列表或树形图中得到一个对象。 , ObjsToCornbo:传入参数为对象的单向类与组合框。 , FillCombo:将全部对象加入到组合框中。 2、 创建组件的公共模块 为了将来扩展方便,这里加入一个公共模块,命名为mdlMain ,现在只添加一个空 的Sub Main作为组件的初始化函数。 3、 食品类型操作管理模块 食品类型管理模块实现以下功能: , 处理添加食品类型的操作。 , 处理修改食品类型的操作。 , 处理删除食品类型的操作。 , 处理列举或查找食品类型的操作。 4、 食品操作管理模块 食品操作管理模块实现以下的功能: , 处理添加食品的操作。 , 处理修改食品的操作。 , 处理删除食品的操作。 - 38 - 本科学生毕业设计论文 , 处理分析食品库存量的操作。 , 处理列举或查找食品的操作。 5、 供货商操作管理模块 供货商操作管理模块实现以下的功能: , 处理添加供货商的操作。 , 处理修改供货商的操作。 , 处理删除供货商的操作。 , 处理列举或查找供货商的操作。 6、 进货操作管理模块 进货操作管理模块实现以下的功能: , 处理添加进货的操作。 , 处理修改进货的操作。 , 处理删除进货的操作。 , 处理分析进货总支出的操作 , 处理列举或查找进货的操作。 7、 销售操作管理模块 销售操作管理模块实现以下的功能: , 处理添加销售的操作。 , 处理修改销售的操作。 , 处理删除销售的操作。 , 处理分析销售总收入的操作。 , 处理列举或查找销售的操作。 8、 报损操作管理模块 报损操作管理模块实现以下的功能: , 处理添加报损的操作。 , 处理修改报损的操作。 , 处理删除报损的操作。 , 处理分析报损总数量的操作。 - 39 - 本科学生毕业设计论文 , 处理列举或查找报损的操作。 9、 管理员信息操作管理模块 管理员信息操作管理模块实现以下的功能: , 处理添加管理员信息的操作。 , 处理修改管理员信息的操作。 , 处理删除管理员信息的操作。 , 处理列举或查找管理员信息的操作。 6.3界面端应用程序设计 6.3.1 公共模块的设计 在创建用户界面端应用程序时,向导已经为我们生成了一个名为mdlMain的模块,我 们对这个模块稍微修改即可使用。 , 添加成员变量 , 修改Main过程 6.3.2用户登入模块的设计 用户登入对话框设计 , 用户登入界面设计 - 40 - 本科学生毕业设计论文 , 修改[确定]按钮的处理代码 Private Sub cmdOK_Click() 'ToDo: 创建测试密码是否正确 '检查正确密码 Dim Account As String Dim Pwd As String Account = RealString(txtUserName.Text) Pwd = RealString(txtPassword.Text) '判断密码是否正确 If Not m_Admin.CheckPwd(Account, Pwd) Then m_nErrCount = m_nErrCount + 1 If m_nErrCount >= 3 Then MsgBox "输入密码错误次数太多,请稍后重试", vbExclamation End End If MsgBox "密码错误,再试一次~还有 " & 3 - m_nErrCount & " 次机会,注意 - 41 - 本科学生毕业设计论文 密码区分大小写", vbCritical, "登录" txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text) Else OK = True g_Account = Account Me.Hide End If End Sub 6.3.3系统主界面的设计 , 设计主窗体控件布局 控件名称 属性 属性取消 功能 frmMain Caption 进销存管理系统 系统主窗体 inlViewSIconImageHeight 16 树形控件和列表框小图标所使用(ListView) 的图片 ImageWidth 16 inlViewBIconImageHeigh 32 列表框大图标所使用的图片(未(ImageList) 用:待扩展) ImageWidth 32 tvTreeViewLineStyle TvwRootLines 显示食品类型树 (TreeView) ImageList inlViewSIcon sstabView(ListView) Style O-ssStyleTabbedDialog 右侧选项卡,做容器用 TabOrientation O-ssTabOricntationTop lvMerch(ListView) FullRowSelect True 分别用来显示食品食品信息列表 lvBuy(ListView) 进货信息列表 GridLines True lvSell(ListView) 销售信息列表 View lvwRiport lvDispose(ListView) lvProviderIcon imlViewBIcon 报损信息列表 (ListView) SmallIcon imlViewSIion 供货商信息列表 , 设计选项卡sstabView - 42 - 本科学生毕业设计论文 给sstabView控件添加5个选项卡,选项卡标题分别设置为“食品库存”、“进货记录”、 “销售记录”、“报损记录”和“供应商”,分别对应5个ListView。 , 添加菜单 6.3.4 添加主界面模块 , 界面设计 , 其他代码 Private Sub Form_Load() LoadResStrings Me Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500) lvMerch.View = Val(GetSetting(App.Title, "Settings", "ViewMode", "0")) - 43 - 本科学生毕业设计论文 '初始化数据 Call InitMain End Sub Private Sub Form_Unload(Cancel As Integer) Dim i As Integer 'close all sub forms For i = Forms.Count - 1 To 1 Step -1 Unload Forms(i) Next If Me.WindowState <> vbMinimized Then SaveSetting App.Title, "Settings", "MainLeft", Me.Left SaveSetting App.Title, "Settings", "MainTop", Me.Top SaveSetting App.Title, "Settings", "MainWidth", Me.Width SaveSetting App.Title, "Settings", "MainHeight", Me.Height End If SaveSetting App.Title, "Settings", "ViewMode", lvMerch.View End Sub Private Sub Form_Resize() On Error Resume Next If Me.Width < 3000 Then Me.Width = 3000 SizeControls imgSplitter.Left End Sub - 44 - 本科学生毕业设计论文 6.3.5 用户管理模块 , 用户管理对话框界面设计 , 用户管理对话框代码设计 Option Explicit Dim opAdmin As New clsOpAdmin Private Sub CancelButton_Click() Unload Me End Sub Private Sub cmdAdd_Click() opAdmin.Add lvAdmin End Sub Private Sub cmdDel_Click() opAdmin.Delete lvAdmin - 45 - 本科学生毕业设计论文 End Sub Private Sub cmdModify_Click() opAdmin.Modify lvAdmin End Sub Private Sub Form_Load() opAdmin.FillListView lvAdmin End Sub 6.3.6经营分析模块 经营分析模块用来对学校食堂的运作情况进行分析,具有以下功能: , 库存量排行。 , 进货总量与登记次数排行。 , 销售总量与登记次数排行。 , 报损总量与登记次数排行。 1) 经营分析对话框界面设计 控件名称 属性 属性取消 功能 Caption 经营分析 经营分析对话框 库存分析 FrmAnalysis(Form) List 进货分析 销售分析 报损分析 Style 2-DropDownList 前?:降序排列,取前CboOrder(ComboBox) 若干项;?后:降序排 前? 列,取后若干项。然后List ?后 再按由小到大显示 TxtCount(TextBox) MaxLength 3 显示数量 CmdSearchCaption 查看 [查看]按钮 (CommandButtom) CmdCloseCaption 关闭 [关闭]按钮 (CommandButtom) GridLines True 显示数据容器 - 46 - 本科学生毕业设计论文 LvAna(ListView) View lvwRiport 界面设计 代码分析 Option Explicit Private Sub cmdClose_Click() Me.Hide End Sub Private Sub cmdSearch_Click() Dim nCount As Integer Dim IsDesc As Boolean Dim opMerch As New clsOpMerch Dim opBuy As New clsOpBuy Dim opSell As New clsOpSell Dim opDispose As New clsOpDispose nCount = Val(txtCount.Text) If nCount = 0 Then nCount = 10 IsDesc = IIf(cboOrder.ListIndex = 0, True, False) Select Case cboAnaType.ListIndex Case 0 '库存分析 opMerch.FindStorage lvAna, IsDesc, nCount Case 1 '进货分析 opBuy.FindStorage lvAna, IsDesc, nCount Case 2: '销售分析 opSell.FindStorage lvAna, IsDesc, nCount Case 3 '报损分析 - 47 - 本科学生毕业设计论文 opDispose.FindStorage lvAna, IsDesc, nCount Case Else End Select End Sub Private Sub Form_Load() cboAnaType.ListIndex = 0 cboOrder.ListIndex = 0 txtCount.Text = 10 End Sub 7 测试分析 7.1 强制变量声明 选择菜单[工具]—[选项]命令,打开“选项“对话框”,在“编辑器”属性页中,把“要求变量声明”复选框选上,或者手工在每个文件的开头加上关键字: option Explicit 这样在编译时会对没有声明的变量报错,从而减少很多不必要的调试。 7.2 常见错误的避免 1、数据类型不匹配 数据类型的判断错误,比如一个功能模块,接受传入的数据为id,要求其值必须是正数。如果写程序时传入的是小数,或者是非数字的字符串,那么程序将会出现错误。又如查询数据表时,使用了WHERE子句,但是数据类型不匹配,数据库中字段类型为数字的值,却使用了字符串去查询,就会出现错误。 2、数据与数据库限制相冲突 数据与数据库限制相冲突,可能是其值超过了数据库的上限和下限。比如在数据库中,用户名称字符数量上限是20个字符,而在程序中没有对此进行判别,如果一个添加新食品时名字有21个字符,那么在使用SQL语句插入数据与记录的时候就会出 - 48 - 本科学生毕业设计论文 错。 3、变量声明错误 最后是一些常识性错误,比如在If…Else…End If过程中,认为判断只会执行其中的一段代码,于是在两段中都使用了Dim obj as clsMerch,事实上,编译器在语法分析阶段,是首先将一个函数内声明的全部变量都放符号表中,而不管这个变量的声明是在这个函数的什么位置。 又如在Select Case中,Case的条件是字符串,但是没有加引号,就变成了Case一个空变量。 4、资源的建立与释放 在将类实例化时,必须使用New关键字,未实例化类无法使用,例: 误: Dim obj as clsMerch ClsMerch.AddNew 正: Dim obj as clsMerch Set obj=New clsMerch ClsMerch.AddNew 同理,在调用Set obj=Nothing后,资源已经释放,无法再调用类内的方法。 5、系统的编译和发行 3个工程的项目属性在前面创建项目时均已设置完毕,由于在本系统中生成了名为 BuySellstorageDB.dll和BuySellstorageUI.dll的组件,当移植到其他机器使用时,需要先注册此组件。另外系统中默认的数据库的路径是与BuySellstorageDB.dll同目录下的DB文件夹,因此当移植到其他机器时,这个路径关系依然不能改变。 总结 一个完整的多层结构学校食堂管理系统就创建完毕了。对学校食堂管理系统的设计与实现,重点介绍了多层结构的开发思想,在完成系统搭建的同时还可以体会 - 49 - 本科学生毕业设计论文 到软件工程在项目开发中各个环节的具体应用,并对使用Visual Basic 6.0开发数据库应用程序的方法和技巧有了更一步的掌握。 在整个设计过程中,出现过很多的问题,得到了老师和同学的帮助,在不断学习的过程中我体会到: 1、作是一个不断学习的过程,从设计初的模糊认识到最后能够顺利完成,我体会到在实践中学习的重要性。 2、由于开始时对系统缺乏整体认识,不具备软件开发思想,对系统的功能需求分析的要求认识不够清楚,使得后续的工作不得不经常返回去修改数据表和个别代码。使我体会到在设计中的每一步的重要性,如果上一个步骤不能很好的完成,在后续的设计将会付出几倍的代价。 3、在设计过程中,遇到很多困难,我学会通过别人的代码理解语言的含义但这并不是抄袭,然后根据自己的设计要求编写代码。 4、设计过程中,由于要实现某些功能,网上资源解决了我的问题。。 总之,通过这次设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样对于系统而言才能更加有效。就比如说在这次的设计,我不但对ASP和Access有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,同时最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我以后的学习受益匪浅。 致谢 本次毕业设计的开发,使我对计算机软件开发有了更进一步的认识,也从中学到了许多宝贵的知识。并且加强了自己动脑和动手的能力,加深了自己对软件工程、对程序设计的热爱。 在这里首先要感谢我的导师老师。老师平日里工作繁多,他在百忙之中抽出大量的时间在我整个设计的过程中都给予了我悉心的指导,他的教导和不拘一格的思路给予了我很大启迪;对我的毕业设计的完成起着决定性的作用,除了敬老师的专 - 50 - 本科学生毕业设计论文 业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。然后还要感谢大学以来所有的老师,为我们打下了牢固的专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。 最后感谢学院和我的母校对我的大力栽培。 参考文献 [1] 陆惠恩;陆陪恩,软件工程[M],电子工业出版社,2002年1月. [2] 王春森,程序员教程[M],清华大学出版社,2001年5月. [3] 蒋加伏;张林峰,Visual Basic程序设计教程[M],北京邮电大学出版社, 2003年. [4] 赵玮,Visual Basic中文版快捷编程实战训练[M],人民邮电出版社,2003年9月. [5] 孟小峰,WEB数据管理研究综述[M],清华大学出版社,2001年 [6] 黄吻,现代远程教育结教育发展启示[N],浙江大学学报,1995年5月 [7] 吴竞华;陈根才,基于三层模式的档案管理系统的设计与实现[M],北京,机械工业出版社,2000年 [8] 金汉均,数据库实现的方法[N],华中师范大学学报,1999专辑 [9] 杨汉平;王小蕾等,数据库中间件技术在三层操作系统模型中的实现[N],华中师范大学学报,2001年 4月 [10]廖信彦,Visual Basic应用大全[M],清华大学出版社,2002年 [11]康博,Visual Basic应用程序开发新技术[M],人民邮电出版社,2003年 [12]陈子侠,基于B/S结构的在线商店技术开发[N],浙江大学学报,2002 [13]清源计算机工作室,Visual Basic设计与制作[M],机械工业出版社,2004年 [14]周佩德,数据库原理及应用[M],电子工业出版社,2005年 [15]刘炳文等,VISUAL BASIC程序设计--数据库篇[M],人民邮电出版社,1999年3月 [16]李光明,Visual Basic 6.0编程实例大制作[M],冶金工业出版社,2002年8月 [17]刘炳文,精通VISUAL BASIC 6.0入门与提高[M],人民邮电出版社,2001年 [18]黄淼云,VB6.0办公自动化编程[M],国防工业出版社,2003年 [19]王要武,信息管理系统[M],电子工业出版社,2003年 [20]李红等编著,管理信息系统开发与应用[M],电子工业出版社,2003年 - 51 - 本科学生毕业设计论文 - 52 -
本文档为【学校食堂管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:163KB
软件:Word
页数:53
分类:企业经营
上传时间:2017-09-28
浏览量:65