欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    仓库管理系统的设计与实现6309.docx

    • 资源ID:62677300       资源大小:468.69KB        全文页数:73页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    仓库管理系统的设计与实现6309.docx

    数据库课程设计计报告题目:仓仓库管理理系统组长:王王 宁宁(P007155132228)组员:胡胡乐乐(PP071151332277)徐 建建(P007155132237)葛 东东(P007155132256)张 超超(P007155132267)指导教师师:曹永永春计算机科科学与信信息工程程学院仓库管理理系统一、设计计目标企业的仓仓库物资资管理往往往复杂杂、繁琐琐。本系系统主要要针对企企业生产产所需要要的各种种设备而而设计,实实施验收收入库并并填写入入库单和和入库登登记;企企业各个个部门根根据所需需要提出出物质申申请,计计划员根根据整个个企业的的需求开开出物资资设备出出库单,仓仓库管理理员根据据出库单单核对发发放设备备;设备备使用完完毕需要要及时归归还入库库,填写写还入库库单。系系统还根根据需要要按照月月、季、年年进行统统计分析析,产生生相应报报表。根据系统统功能的的要求,仓仓库管理理系统可可以分为为日志管管理、入入库、出出库、还还库、查查询、报报表等主主要模块块。企业的物物资供应应管理往往往是很很复杂、繁繁琐的。由由于掌握握的物资资种类众众多,订订货、管管理、发发放的渠渠道各有有差异,各各个企业业之间的的管理机机制不尽尽相同,各各类统计计计划报报表繁多多,因此此物资管管理必须须实现计计算机化化,而且且必须根根据企业业的具体体情况制制定相应应的方案案以便提提高工作作效率。根据当前前的企业业管理体体制,一一般物资资供应管管理系统统,总是是根据所所掌握的的物资类类别,相相应分成成几个科科室来进进行物资资的计划划、订货货、核销销托收、验验收入库库。根据据企业各各个部门门的来发发送物资资设备,并并随时按按期进行行库存盘盘点、做做台帐、根根据企业业自身领领导和自自身管理理的需要要按月、季季、年进进行统计计分析,产产生相应应的报表表。为了了加强相相应物资资、设备备的管理理,要定定期掌握握其储备备、消耗耗情况,根根据计划划定额和和实际消消耗定额额的比较较,进行行定额管管理。仓库管理理的物资资在本章章中主要要是企业业生产所所需的各各种设备备。进货货时检查查合同确确认为有有效托收收之后,进进行验收收入库、填填写入库库单和入入库登记记。企业业各个部部门根据据所需要要的物资资设备总总额和部部门生产产活动所所需要提提出物资资需求申申请,计计划员根根据企业业的需求求开出物物资设备备出库单单,仓库库管理员员根据出出库单核核对发放放设备。设设备使用用完毕需需要及时时归还入入库,填填写还入入库单。系系统还根根据需要要按照月月、季、年年进行统统计分析析,产生生相应报报表。为了跟好好的理解解该系统统和读懂懂该系统统的源代代码,读读者应对对以下的的知识点点有所了了解:·Acccesss数据库库操作的的基础知知识。·ODBBC数据据源基础础知识。·基本的的SQLL语句,如如添加、查查询、修修改和删删除记录录语句。·Vissuall C+界面面设计和和关于数数据库的的基础知知识。二、系统统设计仓库管理理的特点点是信息息处理量量比较大大,所管管理的物物资设备备种类繁繁多,而而且入库库单、出出库单、需需求单等等单据的的发生量量特别大大,关联联信息多多,查询询和统计计的方式式各不相相同,在在管理上上实现起起来有一一定的困困难。在在管理的的过程中中经常出出现信息息的重复复传递;单据、报报表的种种类繁多多,各个个部门管管理规格格不统一一等问题题。在本系统统的设计计过程中中,为了了克服这这些困难难,满足足计算机机管理的的需要,采采取了下下面的一一些原则则:·统一各各种原始始单据的的格式,统统一账目目和报表表的格式式。·删除不不必要的的管理冗冗余,实实现管理理规范化化、科学学化。·程序代代码标准准化,软软件统一一化,确确保软件件的可维维护性和和实用性性。·界面尽尽量简单单化,做做到实用用、方便便,尽量量满足企企业中不不同层次次员工的的需要。·建立操操作日志志,系统统自动记记录所进进行的各各种操作作。1、系统统功能分分析本例中的的仓库管管理系统统需要完完成的功功能主要要有以下下几点:·仓库管管理各种种信息的的输入,包包括入库库、出库库、还库库、需求求信息的的输入等等。·仓库管管理各种种信息的的查询、修修改和维维护。·设备采采购报表表的生成成。·在库存存管理中中加入最最高储备备和最低低储备字字段,对对仓库中中的物资资设备实实现监控控和报警警。·企业各各部门的的物资需需求的管管理。·操作日日志的管管理。·仓库管管理系统统的使用用帮助。2、系统统功能模模块设计计 在系统统功能分分析的基基础上,结结合Viisuaal CC+程程序编制制的特点点,得到到如图11所示的的系统功功能模块块图。仓库管理系统系统模块输入模块维护模块查看模块报表模块帮助模块日志管理需求模块还库模块出库模块入库模块图1 系系统功能能模块图图系统主要要界面及及流程如如下所示示。 程程序开始始运行之之后先出出现如图图2的登陆陆界面。成成功输入入用户名名和密码码后将进进入主对对话框。图2 登登陆界面面单击“设设备代码码”按钮进进入设备备代码表表(deevicce_ccodee)的管管理。单击“库库存信息息”按钮进进入现有有库存表表(deevicce)的的管理。单击“设设备入库库”按钮开开始设备备入库操操作,若若成功,则则在设备备入库表表(deevicce_iin)中中增加一一条记录录,同时时修改现现有的库库存表(ddeviice)中中的相关关数据。单击“设设备出库库”按钮开开始设备备出库操操作,如如图3所示。若若成功,则则在设备备出库表表(deevicce)中中的相关关数据。 图33 设备备出库登登记窗口口单击下方方的“出库信信息”按钮进进入设备备出库表表(deevicce_oout)的的管理。如如图4所示。图4 出库信信息管理理界面单击“设设备还库库”按钮开开始设备备还库操操作。若若成功,则则在设备备还库表表(deevicce_rretuurn)中中增加一一条记录录,同时时修改现现有库存存表(ddeviice)中中的相关关数据。单击下方方的“还库信信息”按钮进进入设备备还库表表(deevicce_rretuurn)的的管理。单击“设设备需求求”进入设设备需求求登记的的界面,如如图5所示。用用户在这这里填写写设备需需求。若若成功,则则在设备备需求表表(deevicce_nneedd)中增增加一条条设备需需求记录录。图5 设设备需求求登记窗窗口单击下方方“需求信信息”按钮进进入设备备需求表表(deevicce_nneedd)的管管理。如如图6所示。单击“操操作日志志”按钮查查看目前前的所有有操作日日志记录录,在里里面还可可以删除除所有日日志记录录。单击“帮帮助”按钮进进入联机机帮助。单击“关关于”按钮查查看程序序信息图6 需需求信息息管理窗窗口三、数据据库设计计1、数据据库需求求分析在仔细调调查企仓仓库物资资设备管管理过程程的基础础上,得得到本系系统所处处理的数数据流程程,如图图7所示。 设备入库设备采购设备还库设备出库仓库现有库存各部门需求企业生产计划汇总图 7 数据流流程图针对本实实例,通通过对企企业仓库库管理的的内容和和数据流流程的分分析,设设计的数数据项和和数据结结构如下下:·设备代代码信息息:其数数据项有有设备号号、设备备名称·现有库库存信息息:其数数据项有有现有设设备、现现有数目目、总数数目、最最大库存存和最小小库存等等·设备使使用信息息:其数数据项有有使用的的设备、使使用部门门、数目目、使用用时间和和出库时时状态等等·设备采采购信息息:其数数据项有有采购的的设备、采采购员、供供应商、采采购数目目和采购购时间等等·设备归归还信息息:其数数据项归归还设备备、归还还部门、归归还数目目、归还还时间和和经手人人等·设备需需求信息息:其数数据项有有需求的的部门、需需求设备备、需求求数目和和需求时时间等2、数据据概念结结构设计计这一设计计阶段是是在需求求分析的的基础上上,设计计出能满满足用户户需求的的各种实实体,以以及它们们之间的的关系,为为后面的的逻辑结结构设计计打下基基础。本实例根根据上面面得设计计规划出出实体有有库存实实体,入入库实体体、出库库实体、采采购实体体、还库库实体和和需求实实体。各各实体的的E-RR图及其其关系描描述如下下:现有库存现有库存现有库存现有库存设备号图8 库存实实体E-R图入库供应商信息采购价格数量采购员设备号图9 入库实实体E-R图出库使用部门数量、时间经手人设备号图10 出库库实体EE-R图图部门需求需求部门需求数量需求时间设备号图11 部门需需求实体体E-RR图设备还库还库时间人还库数量经手人设备号图12 还库实实体E-R图计划采购库存信息供应信息时间设备号图13 计划采采购实体体E-RR图入库 现有库存 出库 还库 部门需求设备采购图 144 实体体和实体体之间的的关系EE-R图图3、数据据库逻辑辑结构设设计在上面的的实体以以及实体体之间的的关系的的基础上上,形成成数据库库中的表表格和各各个表格格之间的的关系。仓库管理理系统数数据库中中的各个个表格的的设计结结果如下下面的几几个表格格所示。每每个表格格表示在在数据库库中的一一个表。 列列名 数据据类型 可否否为空 说明明CodeeVARCCHARR2(66) NOTTNULLL 设备号号(主键键)NameeVARVVHARR2(220) NULLL 设备名名称设备代码码表deevicce_ccodee 列名 数数据类型型 可否为为空 说说明CodeeVARCCHARR2(66)NOTNNULLL设备号In_ddateeDATEENOTNNULLL入库时间间(主键键)ProvvideerVARCCHARR2(220)NULLL供应商TeleenoVARCCHARR2(220)NULLL供应商电电话In_nnumbberNUMBBER(6)NULLL入库数量量PricceNUMBBER(6)NULLL价格BuyeerVARCCHARR2(110)NULLL采购设备库表表devvicee_inn列名 数据据类型 可否否为空 说明明CodeeVARCCHARR2(66)NOTNNULLL设备号DepaartmmenttVARCCHARR2(220)NULLL使用部门门Out_datteDATEENULLL出库时间间(主键键)Out_staateNUMBBER(1)NULLL出库状况况Out_perrsonnVARCCHARR2(110)NULLL经手人Out_nummberrNUMBBER22(100)NOTNNULLL出库数量量TakeerVARCCHARR2(110)NULLL领取UsaggeVARCCHARR2(220)NULLL用途设备出库库表deevicce_oout列名数据类型型可否为空空说明codeeVARCCHARR2(66)NOT NULLL设备号(主主键)now_nummberrNUMBBER(6)NULLL现有库存存highh_nuumbeerNUMBBER(6)NULLL最大库存存low_nummberrNUMBBER(6)NULLL最小库存存totaal_nnumbberNUMBBER(6)NULLL总数现有数据据库表ddeviice列名数据类型型可否为空空说明codeeVARCCHARR2(66)NOT NULLL设备号depaartmmenttVARCCHARR2(220)NOT NULLL部门名称称needd_nuumbeerNUMBBER(6)NULLL需要数量量begiin_ddateeDATEENULLL需求开始始时间end_datteDATEEMULLL需求结束束时间设备需求求表 ddeviice_neeed列名数据类型型可否为空空说明codeeVARCCHARR2(66)NOT NULLL设备号retuurn_datteDATEENULLL还库时间间(主键键)keepperVARCCHARR2(110)NULLL仓库管理理员retuurn_nummberrNUMBBER(6)NULLL归还数量量retuurn_perrsonnVARCCHARR2(110)NULLL归还人设备还库库表deevicce_rretuurn列名数据类型型可否为空空说明do_uuserrVARCCHARR2(110)NOT NULLL操作员do_wwhattVARCCHARR2(440)NOT NULLL操作内容容do_ddateeDATEENOT NULLL操作时间间操作日志志表hoowdoo列名数据类型型可否为空空说明codeeVARCCHARR2(66)NOT NULLL设备号now_nummberrNUMBBER(6)NULLL现有库存存totaal_nnumbberNUMBBER(6)NULLL总库存max_nummberrNUMBBER(6)NULLL购买数量量provvideerVARCCHARR(2)NULLL供应商pricceNUMBBER(6)NULLL价格buy_datteDATEENULLL计划采购购时间(主主键)设备采购购计划表表 deevicce_wwanttbuyy4、数据据库结构构的实现现创建设设备代码码devvicee_coodeCREAATE TABBLE “DMSS”.devvicee_coode(codde VVARCCHARR2(66) NNULLL,namee VAARCHHAR22(200) NNULLL,CONSSTRAANT codde_ccodee_pkk PRRIMAARY KEYY(coode)TABLLESPPACEE”USEER_DDATAA”;创建设设备入库库表 ddeviice_inCREAATE TABBLE “DMSS”.deevicce_iin(codee VAARCHHAR22(6) NOOT NNULLL,in_ddatee DAATE NOTT NUULL,provvideer VVARCCHARR2(220) NULLL,teleeno VARRCHAAR2(10) NUULL,in_nnumbber NUMMBERR(6) NUULL,pricce NNUMBBER(6) NULLL,buyeer VVARCCHARR2(110) NULLL,CONSSTRAAINTT inn_daate_pk PRIIMARRY KKEY(in_datte)TABLLESPPACEE “USEER_DDATAA”;创建设设备出库库表 ddeviice_outtCREAATE TABBLE “DMSS”.deevicce_oout(codee VAARCHHAR22(6) NOOT NNULLL,depaartmmentt VAARCHHAR22(200) NNULLL,out_datte DDATEE NUULL,out_staate NUMMBERR(1) NUULL,out_pennsonn VAARCHHAR22(200) NNULLL,out_nummberr NUUMBEER(66) NNOT NULLL,takeer VVARCCHARR2(110) NULLL,usagge VVARCCHARR2(220) NULLL,CONSSTRAAINTT ouut_ddatee_pkk PRRIMAARY KEYY(ouut_ddatee)TABLLESPPACEE”USEER_DDATAA”;创建现现有库存存表 ddeviiceCREAATETTABLLE ”DMSS”.deevicce(codee VAARCHHAR22(6) NUULL,now_nummberr NUUMBEER(66) NNULLL,highh_nuumbeer NNUMBBER(6) NULLL,low_ nuumbeer NNUMBBER(6) NULLL,totaal_ nummberr NUUMBEER(66) NNULLL,CONSSTRAAINTT deevicce_ccodee_pkk PRRIMAARY KEYY(coode)TABLLESPPACEE”USEER_DDATAA”;创建部部门需求求表 ddeviice_neeedCREAATE TABBLE “DMSS”,deevicce_nneedd(codee VAARCHHAR22(100) NNOT NULLL,depaartmmentt VAARCHHAR22(100) NNOT NULLL,needd_nuumbeer NNUMBBER(6) NULLL,begiin_ddatee DAATE NULLL,end_datte DDATEE NUULL,)TABLLESPPACEE ”USEER_DDATAA”;创建设设备还库库表deevicce_rretuurnCREAATE TABBLE “DMSS”,deevicce_rretuurn(codee VAARHAAR2(6) NOTT NUULL,depaartmmentt VAARCHHAR22(200) NNULLL,retuurn_datte DDATEE NUULL,keepper VARRCHAAR2(10) NUULL,retuurn_nummberr NUUMBEER(66) NNULLL,retuurn_perrsonn VAARCHHAR22(100) NNULLL,CONSSTRAAINTT reeturrn_ddatee_pkk PRRIMAARY KEYY (rretuurn_datte)TABLLESPPACEE ”USEER_DDATAA”;创建设设备采购购计划表表 deevicce_wwanttbuyyCREAATE TABBLE “DMSS”,deevicce_wwanttbuyy(codee VAARCHHAR22(100) NNOT NULLL,now_nummberr NUUMBEER(66) NNULLL,totaal_ nummberr NUUMBEER(66) NNULLL,max_ nuumbeer NNUMBBER(6) NULLL,buy_ nuumbeer NNUMBBER(6) NULLL,provvideer VVARCCHARR2(220) NULLL,pricce NNUMBBER(6) NULLL,buy_datte DDATEE NUULL,CONSSTRAAINTT waantbbuy_datte_ppk PPRIMMARYY KEEY (buyy_daate)TABLLESPPACEE ”USEER_DDATAA”;创建操操作日志志表 hhowddoCREAATE TABBLE “DMSS”,hoowdoo(do_uuserr VAARCHHAR22(100) NNOT NULLL,do_wwhatt VAARCHHAR22(400) NNOT NULLL,do_ddatee DAATE NOTT NUULL,)TABLLESPPACEE “USEER_DDATAA”;四、系统统实现1、创建建应用程程序此仓库系系统应用用程序的的创建步步骤如下下:、选择择菜单“Fille|NNew”中的“新建项项目”选项卡卡中“MFCC ApppWiizarrd(eexe)”,设置合适的目录和项目名,比如“E:Projects”目录下的“DMS”项目。、创建建一个对对话框应应用程序序(“Diaalogg Baasedd”),单单击“Nexxt”按钮。、由于于在这个个项目中中将要使使用ADDO,所所以在MMFC ApppWizzardd 的第第2步,需需要选中中“Auttomaatioon”选项,使使应用程程序能够够支持自自动化对对象,如如图155所示。图15 使应用用程序支支持自动动化(AAutoomattionn)、单击击“Finnishh”按钮,结结束项目目的创建建。至此此一个基基于对话话框的应应用程序序框架就就搭建好好了。主主对话框框名为CCDMSSDlgg。、项目目创建完完毕之后后,在头头文件sstdaafx.h中加加入下面面4行:#impportt"c:prrogrramffileesccommmonffileesssysttemadoomssadoo15.dlll"noo_naamesspacce rrenaame("EOOF", "aadoEEOF"") #inccludde ""icrrsinnt.hh"inliine voiid TTESTTHR(HREESULLT xx) if FAIILEDD(x) _ccom_isssue_errror(x);#deffinee DAATEFFMTCSttrinng(""'%ss'")第1行中中的路径径可能根根据Viisuaal SStuddio安安装路径径的不同同而不同同。其中中的reenamme指令令,把AADO中中的EOOF重命命名为aadoEEOF,这是为为了避免免和其他他库的常常量名冲冲突。注意第33行,这这里定义义了一个个inllinee函数TTESTTHERR,它的的作用是是测试CCOM函函数的返返回值,在在这个返返回值包包含一个个错误的的时候,抛抛出一个个_coom_eerroor型的的异常。AADO作作为一个个COMM组件接接口,它它的许多多函数都都会返回回一个HHRESSULTT型的值值作为结结果。如如果在每每一步都都用SUUCCEEEDEED或FFAILLED宏宏测试返返回值的的话,将将会不胜胜其烦,还还有可能能制造出出一连串串嵌套的的if语语句这样样不美观观的代码码。这个个函数简简化了这这种验证证操作,利利用C+的异异常处理理机制,使使代码显显得紧凑凑而高效效,为后后面的工工作带来来很大方方便。第4行定定义了一一个宏。这这是不同同的后台台数据库库对SQQL语句句中日期期的用法法要求不不同引起起的。比比如Acccesss数据据库要求求SQLL语句中中的日期期用两个个#字符符括起,而而其他的的数据库库可能需需要使用用单引号号或者双双引号。所所以在这这里定义义了这个个DATTEFMMT宏,为为了方便便程序在在不同的的后台数数据库键键切换。这这是一个个在开发发的时候候需要注注意的细细节,后后面还会会具体提提到。2、COOM知识识准备下面介绍绍一些关关于COOM知识识。这部部分内容容是针对对那些没没有学习习过的CCOM技技术的读读者,目目的是为为他们理理解ADDO提供供一些背背景知识识。COM技技术在微微软公司司的应用用中可以以说是无无处不在在,Wiindoows系系统相当当多的服服务都以以这种方方式提供供,例如如著名的的DirrecttX,还还有在这这一章中中广泛应应用的AADO。AADO的的底层是是OLEE DBB,他本本身则是是对OLLE DDB的一一个COOM包装装。所以以具备一一些COOM的知知识,对对使用AADO是是很有帮帮助的,但但并不是是说必须须要精通通COMM才能使使用ADDO。事事实上,在在一般的的应用中中,只需需要理解解下面这这段代码码即可。/DllgViiewRRepoort.cppp_ReccorddsettPtrr pRRst = NNULLL;IADOOReccorddBinndinng *ppicRRs = NUULL; /Innterrfacce PPoinnterr deeclaaredd.(VVC+ Exxtennsioons) CDevvBuyyRs rs;try_bsttr_tt sttrSQQL(""SELLECTT * FROOM DDEVIICE_WANNTBUUY");TESTTHR(pRsst.CCreaateIInsttancce(_uuuidoof(RRecoordsset);pRstt = m_DDBCnnt->>Exeecutte(sstrSSQL, NUULL, addCmddTexxt);TESTTHR(pRsst->>QueeryIInteerfaace(_uuuiddof(IADDOReecorrdBiindiing),(LLPVOOID*)&ppicRRs);TESTTHR(piccRs->BiindTToReecorrdseet(&&rs);int i = 0;whille (!pRRst->addoEOOF)m_liist.InsserttIteem(00, rrs.mm_szz_coode);m_liist.SettIteemTeext(i, 1, rs.m_ssz_nnow);m_liist.SettIteemTeext(i, 2, rs.m_ssz_ttotaal);m_liist.SettIteemTeext(i, 3, rs.m_ssz_mmax);m_liist.SettIteemTeext(i, 4, rs.m_ssz_bbuy);m_liist.SettIteemTeext(i, 5, rs.m_ssz_pprovvideer);m_liist.SettIteemTeext(i, 6, rs.m_ssz_ppricce);m_liist.SettIteemTeext(i, 7, rs.m_ssz_ddatee);pRstt->MMoveeNexxt();piicRss->RReleeasee();pRRst->Cllosee();cattch(_coom_eerroor& e)AfxMMesssageeBoxx(e.ErrrorMMesssagee();m_lisst.SSetRRedrraw(TRUUE);reeturrn; 、BSSTR和和_bsstr_t下面的语语句声明明了一个个_bsstr_t型的的变量,_bsttr_tt是对BBSTRR类型的的一个封封装。_bsttr_tt sttrSQQL(“SELLETEE *FFROMM DEEVICCE_WWANTTBUYY”);对于BSSTR,通通俗地说说,它是是COMM中使用用的字符符串,与与普通CC程序中中的字符符串的区区别在于于:·它一个个带有字字符计数数值的字字符串。·它的字字符计数数值在字字符数组组的前面面。·它保存存的在字字符是所所谓的“宽字符符”(Wiide chaaraccterr)。所以,对对于一个个BSTTR而言言,下面面的语句句就是错错的。BSTRR sttr=LL”Soome worrds”;正确的做做法是:Wchaar_tt stt_=LL”Somme wwordds”BSTRR sttr;Bstrr=SyysAllloccStrringg(sttr_)释放一个个SBSSTR指指针时,则则调用SSysFFreeeStrringg函数。每每次都这这样操控控字符串串未免太太过麻烦烦,所以以Vissuall C+ 里里提供了了_bsstr_t这个个类对BBSTRR做了封封装,使使程序员员可以简简单的对对这种CCOM 字符串串进行操操作了。、IAADORRecoordBBinddingg和Iuunkoown一个COOM组件件包含了了许多CCOM对对象,程程序员通通过“接口”来操控控这些对对象,或或者说,这这些对象象通过提提供给程程序员的的接口来来实现自自己的功功能。下下面这行行代码中中的IAADORRecoordBBindd就是一一个指向向这种接接口的指指针。IADOOReccorddBinngdiing *piicRss=NUULL; /IInteerfaace Poiinteer ddecllareed(VVC+ Exxtennsioon)每个接口口都是从从IUnnkowwn这个个接口派派生出来来的。IIUkoown接接口声明明了3个个纯虚函函数:HRESSULTT QuueryyIntterffacee(REEFIDD riilidd,vooid*pppvObbjecct);ULONNG AAddRRef();ULONNG AAddRRef();一般来说说,不能能直接拥拥有一个个IADDOReecorrdBiind或或者IFFoo、IIBirrdISSomeeIntterffacee诸如此此类的接接口对象象,程序序员只能能得到一一个接口口的指针针,就像像下面的的这行代代码:pRstt->QQuerryInnterrfacce(_uuiidoff(IAADORRecoordBBinggdinng),(LPPVOIID*)&piicRss);这行代码码解释了了IUkknowwn接口口中QuueryyIntterffae方方法的最最基本的的用法:程序员员用它来来得到CCOM对对象支持持的某个个接口的的指针。如如上例中中,pRRst时时某一个个COMM对象提提供的一一个接口口指针,程程序员从从某本书书上(比比如MSSDN)知知道了这这个对象象一定拥拥有一个个IADDOReecorrdBiindiing型型的接口口,于是是调用上上面那行行代码,得得到了这这个IAADORRecoordBBinddingg接口的的指针。然然后就可可以使用用IADDOReecorrdBiindiing接接口里声声明的那那些方法法了。如上所所说,一一个COOM对象象,程序序员往往往不能直直接拥有有它的实实例,而而只是它它的接口口的指针针。那什什么时候候来释放放这个对对象呢?这就是是AdddReff和Reeleaase方方法的用用途。得得到了一一个接口口指针,开开始使用用一个CCOM对对象,就就要调用用它的AAddRRef方方法增加加它内部部的一个个引用计计数;使使用完之之后则调调用Reeleaase方方法减少少这个计计数。如如果计数数为零,则则已经说说明没有有人使用用,这个个COMM对象就就会自己己销毁自自己。原原则上说说,同一一个对象象提供的的不同接接口,AAddRRef和和Relleasse的效效果都是是一样的的。所以以在使用用完一个个COMM接口指指针之后后,一定定要这样样:picRRs->>Relleasse();如果忽略略了这一一句,就就会造成成一个CCOM对对象及他他所掌握握的资源源不能被被正确释释放。ReccorddsettPtrr和智能能指针如上一段段所讲,使使用完一一个接口口之后忘忘记调用用Relleasse是一一件和糟糟糕的事事,为了了弥补这这一点,就就要写出出一大串串嵌套的的if语语句,降降低了程程序的易易读性。程程序就会会抛出异异常,而而程序员员又没有有写出捕捕获这种种异常的的代码(往往往也不不能写,谁谁也无法法预料自自己调用用的某个个库函数数会跑出出什么样样的异常常),这这样也会会跳过某某个原本本不想跳跳过的RReleeasee。怎么么解决这这个问题题呢?一一种方法法是用ttry_finnallly语句句,但是是由于现现有编译译器的缺缺陷,包包含这个个语句的的代码编编译出来来的效率率较低。这这就用到到了“智能指指针这个个工具。_ReccorddsettPtrr pRRs=NNULLL上面这行行代码声声明的变变量就是是一个智智能指针针。从他他的名字字上看,他他是对RRecoordsset这这种对象象的指针针进行了了包装。TESTTHr(pRsst.CCreaateIInsttancce(_uuiidoff(Reecorrdseet);这一句创创建了一一个Reecorrdseet型的的COMM对象,并并对智能能指针赋赋值。在在制作所所在的函函数体结结束时,智智能指针针对象从从栈中析析构,在在它的析析构函数数里调用用了它所所包含接接口的RReleeasee方法。由由它的工工作原理理看出,它它解决了了上面的的问题栈中中对象的的析构函函数无论论如何都都是会被被调用的的,即使使函数发发生了异异常而退退出的情情况也是是如此。除除此之外外,智能能指针可可以在接接口指针针赋值是是自动调调用AdddReef方法法这也也是一个个容易犯犯得错误误。它通通过重载载运算符符,使得得它在使使用时,和和普通的的接口指指针毫无无二致。3、操作作日志模模块的设设计、写日日志模块块通过操作作日志模模块,该该系统每每一次改改变数据据库数据据的操作作都会在在操作日日志表格格中有相相应的记记录。这这样可以以增强操操作人员员的责任任感,提提高系统统的安全全性,也也利于维维护数据据库数据据的完整整性。此此外,一一个翔实实的操作作日志,也也给开发发过程中中的调试试、除错错带来很很大便利利,所以以这个模模块的设设计被改改在了最最前面。

    注意事项

    本文(仓库管理系统的设计与实现6309.docx)为本站会员(you****now)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开