森林经理学实验报告139747.docx
49森林资源二类调查数据库系统分析设计说明书森林资源二二类调查数数据库系统统分析设计说说明书目录1系统概概述21.1背景景21.2目标标21.3环境境32.系统分分析与设计计32.1 系系统功能需需求32.2 系统总体体设计42.2.11 功能结结构42.2.22 数据描描述163. 系统统实现173.1 开开发工具173.2 数数据库的建建立173.3 主主程序的实实现233.3.11 用户管管理233.3.22 数据库库连接243.3.33 数据录录入323.3.44 报表统统计463.3.55 数据查查询模块494 帮助/说明51森林资源二二类调查数数据库系统统系统设计计说明书1系统概概述1.1背景景森林资源信信息是指反反映林木生生长状况、生生长环境及及其生长紧紧密相关的的营林技术术措施、方针政政策等信息息。森林具具有生长、消消亡和再生生长的能力力,随着森森林的自然然生长、枯枯损和人为为生产活动动的开展,森森林资源时时刻都在变变化着;再再加上森林林资源分布布广,生长长周期长、信信息量大等等特点,使使得传统的的森林资源源信息管理理难度很大大,效率也也十分低下下,难以满满足现代林林业发展的的需要。利利用现代信信息管理技技术则可以以很好地解解决这些问问题。森林资源二二类调查的的任务是了了解森林资资源的状况况,而其目目的是:掌掌握森林资资源的动态态变化规律律,为制定定下一阶段段林业发展展规划,编编制森林采采伐限额,建建立和完善善地方森林林资源监测测体系,考考核“造林林绿化”和和保护森林林资源目标标完成结果果等提供科科学依据。1.2目标标根据森林林资源保护护与利用需需要,利用用关系数据据模型,可可视化技术术, 面向对对象的方法法以 GIIS 技术术,对系统统进行了数数据设计及及功能设计计,建立系系统框架,完完成了结构构设计。并并选择二类类调查数据据进行了系系统的实际际建立工作作,最终PPowerrbuillder 程序设计计语言和qqlSerrver22008完完成了计算算机森林资资源管理地地理信息系系统的界面面设计和程程序设计,实实现系统主主要的空间间信息管理理和属性信信息管理功功能。1.3环境境硬件环境:多媒体计计算机 IIntell Penntiumm 4 或或 1000%的兼容容处理器(CCPU) 11GB 以以上的内存存(RAMM) 3320GBB 以上的的硬盘可用用空间 2256 色色或更高的的显示适配配器及兼容容监视器 DDVD-RRW 驱动动器Microosoftt Winndowss 7与MMicroosoftt Viddeo ffor WWindoows 或或 Appple QQuickkTimee 兼容的的视频采集集卡(可选选)软件环境:Winddows77、PowwerBuuildeer 122.1,SSqlSeerverr20088 R2素材资料:实验指导导书、图书书馆书籍、网网络搜索2.系统分分析与设计计2.1 系系统功能需需求1、数据的的采集和输输入:把分分散在各处处的数据进进行收集并并将整理好好的数据通通过一定的的设备输入入到信息系系统中。这这一步工作作的质量是是整个信息息系统是否否正确发挥挥作用的关关键。2、数据的的存储:管管理中的大大量数据处处理通过共共享并且需需要多次使使用。这就就要求将大大量的数据据存储起来来,通常这这些数据被被保存在外外部存储介介质中,以以便需要随随时进行存存取和更新新。3、数据的的加工处理理:数据的的加工处理理是信息系系统的一项项重要功能能。进入信信息系统的的数据,都都需要经过过加工处理理,才能产产生有用的的信息。4、数据传传输:为了了把数据或或信息从一一个子系统统传送到另另一个子系系统,或者者在信息系系统内部进进行数据的的处理都涉涉及数据的的传输问题题。5、数据传传输:包括括计算机系系统内和系系统外的传传输,计算算机传输即即以计算机机为中心,通通过通信线线路与其它它近、远程程终端连接接、形成联联机系统或或通过通信信线路将微微小型等计计算机联网网。除计算算机传输外外还有人工工和盘片传传输。人工工传输是 以各种单单据、报表表、计划等等文字形式式传输。盘盘片传输是是将要传输输的数据录录入到磁盘盘或其它外外存进行传传输。数据据的传输速速度和准确确程度是数数据传输的的主要性能能指标。6、信息输输出:信息息系统输出出功能的完完善与否,输输出与格式式直观方便便与否,直直接关系到到信息的使使用效果和和信息系统统效能发挥挥。因而对对系统输出出的信息,又又尽量使其其易读易懂懂,符合信信息使用者者的习惯和和要求。7、 信息息维护:信信息的维护护就是保护护信息处于于适用状态态。2.2 系系统总体设设计2.2.11 功能结结构(1)模块块划分本系统有以以下功能模模块:1) 用用户登录模模块 2) 主主界面模块块 3) 数数据插入模模块 4) 数数据检索修修改模块 5) 数数据查询模模块6) 数数据统计导导出模块 7)帮助模模块(2)模块块功能描述述1)用户登登录:用户只需要要在用户名名密码中输输入自己相相应的帐号号密码按登登录按钮既既可登录系系统,弹出出主界面,若若用户名密密码错误,则则会提示登登录错误。单单击取消按按钮可以退退出程序。2)主界面面菜单功能能在主界面用用户将鼠标标移到菜单单上的项,会会弹出该项项的子项,单单击一项,便便可以弹出出相应窗口口执行相应应操作。,就就如单击打打印输出按按钮,就弹弹出“森林林资源二类类调查系统统打印输出出”界面。 当鼠标在“录入编辑辑”停留时,会会弹出子项项目录入和和修改两项项:3)录入功功能用户可以自自己输入东东南县20011表中中的所有字字段,也可可以填写部部分。关键键字为必填填,应为是是该表的主主键。其它它的字段也也有约束,程程序已经实实现表单验验证功能,一一旦用户输输入不符合合预定的要要求,系统统将向用户户发出警告告,并把光光标跳转到到错误行,提提示用户再再修改。然然后,用户户可以单击击添加按钮钮将该表单单中的临时时输入内容容写入Daatawiindoww,然后单单击确认按按钮便提交交到数据库库,完成数数据的插入入。如果还还想再看下下刚刚填写写的数据是是否真正插插入到了数数据库,可可以单击检检索按钮,程程序便会向向数据库中中读取刚刚刚插入的数数据,以便便用户核对对。要是用用户觉得插插入错误,想想删除刚刚刚插入的数数据,只要要单击删除除按钮既可可。 在导航栏中中点击录入入:打开了森林林资源二类类调查系统统数据录入入窗口如下下:将要插入的的数据填入入相应的表表格中,再再点击确定定按钮,这这条数据已已经插入数数据库中,然然后可以点点击检索按按钮来查看看用户插入入的数据:4)数据修修改功能在检索数据据页面,单单击检索按按钮,便可可以显示数数据库中“东南县22001”表的所有有行,关键键字设定为为不可修改改,应为它它作为主键键,根据它它才可以实实现其它字字段的修改改。当用户户选择关键键字右边的的任何一行行所对应的的列时,光光标都会变变为可编辑辑状态。用用户可以根根据需要修修改其中的的数值。(各各数值代表表的意义可可以参考森森林资源代代码 如:林种:用用材林2110,经济济林2300,薪炭林林220,防防护林1220,(商商品林)特特种用途林林110, 110有有林地1220疏林 130灌灌木林地1140无立立木林地1150苗圃圃地2100乔内荒地地220乔乔外荒地等等)修修改完的数数据只是存存储在Daatawiindoww中,所以以必须单击击提交按钮钮完成修改改。点击按按钮修改:出现如下界界面:通过点击检检索按钮,我我们可以找找到上面所所插入的那那条记录:修改这条记记录如下:为了检验是是否修改成成功,直接接打开数据据库查询这这条记录或或者点击检检索按钮即即可,下面面是在数据据库中查询询的结果,可可以看到该该条记录已已经被修改改成功了:5)统计输输出功能打开此模块块,左侧将将会有七张张导出表供供选择,用用户可以选选择其中一一条,点击击插入数据据,下面的的文本条中中显示查询询语句,并并会以MeessaggeBoxx提示数据据库中插入入表和录入入数据的成成功与否。如如果提示成成功,用户户可以点击击转换输出出按钮,数数据库中相相应表的数数据会以文文本文件形形式导出,并并以DattaWinndow形形式在右侧侧显示,以以方便用户户查阅。用用户可以任任选一张表表,重复上上述操作。点击打印输输出按钮:任意选择一一条记录,由由于该系统统只实现了了表二、表表三、表七七三张表的的打印输出出功能,因因此,当你你选择第一一条记录时时会弹出如如下窗口来来提示用户户:若选择表二二进行建表表并导出:选择表二,点点击生成报报表按钮,表表二即可在在数据库中中建立,打打开数据库库的MyFForesst的数据据库,可以以看到这张张表格已经经出现。通过查询语语句可以看看到表二的的内容如下下:查询数据库库的Tabble022,可以看看到数据已已经插入。表表三和表七七实现同样样的功能:最后进行报报表导出,选选择一条,先先进性表格格建立插入入后,点击击报表导出出按钮,该该表格即可可在txtt中导出:当出现窗口口提示“导出成功功”后说明该该表已经导导出了,用用户可以到到相应的工工作目录去去查找导出出的文件:在该目录下下用户可以以看到Taable002、Taable003、Taable007都导出出成功了:可以打开来来检查数据据输出是否否正确:6)帮助功能结构图图如下:2.2.22 数据描描述3. 系统统实现3.1 开开发工具PowerrBuillder美美国Sybbase公公司研制的的一种新型型、快速开开发工具,是是客户机/服务器结结构下,基基于Winndowss3.x、WWindoows955和WinndowssNT的一一个集成化化开发工具具。它包含含一个直观观的图形界界面和可扩扩展的面向向对象的编编程语言PPowerrScriipt,提提供与当前前流行的大大型数据库库的接口,并并通过ODDBC与单单机数据库库相连。 SQQL Seerverr 20008是一个个重大的产产品版本,它它推出了许许多新的特特性和关键键的改进,使使得它成为为至今为止止的最强大大和最全面面的SQLL Serrver版版本。这篇篇文章详细细介绍了MMicroosoftt SQLL Serrver 20088中的新的的特性、优优点和功能能 在在现今数据据的世界里里,公司要要获得成功功和不断发发展,他们们需要定位位主要的数数据趋势的的愿景。微微软的这个个数据平台台愿景帮助助公司满足足这些数据据爆炸和下下一代数据据驱动应用用程序的需需求。微软软将继续投投入和发展展以下的关关键领域来来支持他们们的数据平平台愿景:关键任务务企业数据据平台、动动态开发、关关系数据和和商业智能能。 3.2 数数据库的建建立打开PowwerDeesignner单击菜单SSybasse->新新建模型->connceptt moddel(概概念模型)在右侧栏点点选Entitty ,新新建两个表表,并双击击打开,ccode最最好用英文文,m强制制输入,pp主码。其中一张张表是小班班表,另一一张是林种种表。建立立它们的字字段如下图图所示。点点选右侧工工具栏的RReleaationnshipp 从树种种表到小班班表拖出一一条直线。转换数据库库:Toolss >phyysicaal daatamoodel.在dbmms里选择择sql 20000数据库->upddatammode fromm dattabasse选择 seleecionn里的daatasoourcee 在Poweerbuiilderr工具栏中中点击dbb proofilee,进入双击ODBB ODBBC下Uttilitties下下的Creeate ODBCC Datta Soourcee,选择文文件数据源源(F),点点击下一步步。选择SQLL Serrver, 点击下一一步,填写写数据源名名称(自己己随意给定定,这里给给fmsyys),如如果需要,单单击浏览按按钮,选择择保存数据据源的位置置;点击下下一步,在在新界面中中点击完成成,在上面面填入描述述(描述也也可以空着着)和服务务器名称(必必须填,就就是你目前前登录的SSQL SServeer服务器器,就是你你的机器名名),点击击下一步选择“实用用用户输入入登录IDD和密码的的SQL Servver验证证(S)”,输入正正确的登陆陆ID和密密码,这里里均为fmmsys;然后点击击下一步,进进入在以上界面面中,确认认默认数据据库名为ffmsyss,否则应应选中“更改默认认数据库名名为(D)”,更改数据库名;点击下一步,进入在此不修改改其他内容容,点击完完成,在ppreviiew中出出现这些代代码,测试连接,若若成功则出出现如下界界面,再将将它复制到到一个临时时文件,以以供接下来来实用3.3 主主程序的实实现3.3.11 用户管管理1.用户界界面如图所所示:2.在SQQL Seerverr中的MyyForeest数据据库中建立立Userrs这张表表,用来管管理登录的的用户的基基本信息。代代码如下:creatte tablle userrs(userrid int primmary key,userrnamee varcchar(20),userrleveel int,passswd varcchar(50) not nulll);goinserrt intoo userrs valuues(1,'张',1,'张');inserrt intoo userrs valuues(2,'王',1,'王');inserrt intoo userrs valuues(3,'zhaang1'',1,'zhaang1''); 3.PowwerBuuildeer的界面面设计中插插入静态字字段、文本本框以及按按钮等,做做一个基本本的登录的的界面:4.在登录录按钮的单单击事件中中:首先定定义字符串串类型的iin_usseridd,in_passsws,ddb_usseridd,db_passsws,用用来读取这这两个文本本框中的用用户名和密密码字段,然然后通过查查询数据库库中已有的的userrid和passswd,若若在数据库库中出现说说明用户名名密码输入入正确,用用户即可点点击登录按按钮直接登登录,若输输入错误,则则不能进入入系统。3.3.22 数据库库连接在Poweerbuiilderr工具栏中中点击dbb proofilee,进入双击ODBB ODBBC下Uttilitties下下的Creeate ODBCC Datta Soourcee,进入选择文件数数据源(FF),点击击下一步,选择SQL Server, 点击下一步,进入填写数据源源名称(自自己随意给给定,这里里给fmssys),如如果需要,单单击浏览按按钮,选择择保存数据据源的位置置;点击下下一步,在在新界面中中点击完成成,进入在上面填入入描述(描描述也可以以空着)和和服务器名名称(必须须填,就是是你目前登登录的SQQL Seerverr服务器,就就是你的机机器名);点击下一一步,进入入选择“实用用用户输入入登录IDD和密码的的SQL Servver验证证(S)”,输入正正确的登陆陆ID和密密码,这里里均为fmmsys;然后点击击下一步,进进入在以上界面面中,确认认默认数据据库名为ffmsyss,否则应应选中“更改默认认数据库名名为(D)”,更改数据库名;点击下一步,进入在此不修改改其他内容容,点击完完成,进入入点击测试数数据源,弹弹出测试结结果点击确定,返返回以上界界面(ODDBC MMicroosoftt SQLL Serrver安安装);点点击界面中中的确定。至至此,数据据源创建完完毕。选择ODBBODBCC,单击右右侧的Neew建立自自己的数据据库首选项项在弹出的对对话框中DDataSSourcce选择刚刚刚建立的的fmsyys名称填填Foreest选择Preevieww选项卡,保保存链接字字符串以备备后用。点选DBPProfiiles中中的Forrest右右侧Connnectt。3.3.33 数据录录入新建一个GGrid的的数据窗口口(2)在快快速选择对对话框中选选择东南县县20011表中的所所有字段。(3)设置置Dataawinddow的字字体颜色及及行背景颜颜色。(4)调整整字体和位位置:鼠标标单击数据据窗口对象象中的“关键字”,再按cctl-aa,选择数数据窗口对对象中所有有的对象,选选中者四角角有小黑点点。然后在在属性中选选择Fonnt,将112号字改改为8号字字。用鼠标标拖动网格格线,调整整行距。(5)调整整完毕,按按保存。保保存数据窗窗口对象名名为d_iinputt。(6)通过过数据窗口口空间将数数据窗口对对象加入窗窗口对象(7)在窗窗口上插入入数据窗口口控件点击菜单IInserrtàConntrollàDataaWinddow,然然后在窗口口空白处点点击,得数数据窗口控控件。通过过鼠标适当当调整其大大小,位置置(8)插入入静态文本本作标题输输入“森林资源源二类调查查数据录入入”,调整字字体、颜色色、字号等等,最后得得。检索数据双击myeexerccise11,打开窗窗口命令修改代码为为/ Prrofille FooresttSQLCAA.DBMMS = "ODBBC"SQLCAA.AuttoCommmit = FaalseSQLCAA.DBPParm = "CConneectSttringg='DSSN=fmmsys;UID=sa;PPWD=00000000'"Conneect UUsingg SQLLCA;IF SQQLCA.SQLCCODE <> 00 THEENMesssageBBox(""","数数据库链接接错误,错错误是:""+SQLLCA.SSQLERRRTEXXT)elseOpenn(w_mmain)END IIFelseOpenn(w_mmain)在w_innput打打开事件中中输入/把最开开始用的数数据库连接接参数SQQLCA接接过来Dw_1.SetTTranssObjeect(SSQLCAA);插入一个命命令按钮双击按钮进进入代码模模式输入代码/检索按按钮代码Dw_1.retrrievee();(9)设置置菜单代码码(10)修修改数据窗窗口对象的的更新属性性双击左边列列表中的dd_inpput,在菜单中中选择RoowsàUppdatee proopertties在在界面中选选中“Alloow Uppdatees”,选择ttablee to updaate(要要更新的表表名),在在Updaateblle coolumnns中选中中除关键字字以外的所所有列,选选择uniique key coluumn为关关键字字段段。(11)点点击tabb ordder 按按钮,设置置tab ordeer如下(12).在数据窗窗口对象中中设置域检检查,满足足最基本的的检查要求求在固定小班班号的Vaalidaationn Exppresssion中中双击,弹弹出编辑框框输入isNNumbeer(geettexxt(),意为检检查输入的的是否为数数字。然后后用右边的的Veriify按钮钮检查语法法是否正确确。如果正正确,单击击OK,回回到上面的的编辑界面面。在同一行的的Valiidatiion MMessaage列中中双击,在在弹出对话话框中输入入出错提示示信息“输入错误误,必须为为数字,请请重新输入入!”字符型域检检查字符串串长度是否否符合要求求,这里以以关键字为为例;仍然在数据据窗口对象象d_innput的的编辑状态态,双击窗窗口下部“关键字”行的Vaalidaationn Exppresssion列列,出现对对话框。在在对话框中中输入:LLen(ggetteext()=9 在同一行的的Valiidatiion MMessaage中输输入“长度必须须为9位,请请重新输入入!”数值型域设设置取值的的上下限或或范围,这这里以坡向向为例(坡坡向代码为为1-9);仍然在数据据窗口对象象d_innput的的编辑状态态,双击窗窗口下部“坡向”行的Vaalidaationn Exppresssion列列,出现对对话框。在在对话框中中输入:nnumbeer(geettexxt()>0 aand nnumbeer(geettexxt() <= 9。在记录确认认事件中设设计记录逻逻辑检查机机制3.3.44 报表统统计(1)设计计用户界面面如下图所所示:(2)定义义全局变量量Striing ccolnaame_ttab0xx表示示每一张输输到数据库库的表中的的字段名Strinng cooltyppe_taab0x为其字字段的变量量类型Innt collnum_tab00x表示字字段个数,这这些全局变变量的定义义,都是为为了下面的的函数中的的调用提供供方便。(3)就以以tablle03为为例,首先先设定建表表函数crreatee_tabb03(),string ss这里先定义义一个建表表语句sss,引用全全局变量中中的字段名名,字段类类型,组合合起来执行行,便实现现了往数据据库中插入入表的操作作。ss = "creeate tablle Taable003("+ collnamee_tabb0311+" " + colttype_tab0031。Execuute IImmeddiatee :sss;returrn SQQLCA.SQLCCODE(4)然后后是往建好好的表中插插入原始数数据1.定义游游标C1 执行查询询seleect 林林种,地类类, 龄组组,summ(小班面面积),ssum(活活立木蓄积积) frrom 东东南县20001 ggroupp by 林种,地地类,龄组组定义游标CC2 执行查询询seleect ddistiinct 林种 ffrom 东南县22001 ordeer byy 林种2.Fettch CC1 Innto :foreesttyype(林林种)ii,:llandttype(用用地类型)i,:agegroup(龄组)i,:area(面积)i,:volume(蓄积)i;Fetchh C2 Intoo :ftt(林种)i;得得到所有的的林种3.将获得得林种按顺顺序填入输输出的表第第三列taab2ii,4=ftii;4.根据林林种遍历ffor iii =11 to (林种行行数 - 1) FFor ii = 11 To 数据库中中tablle03行行数更具乔木林林、竹林、红红树林、疏疏林、国家家特别规定定灌木林、其其它灌木林林进行统计计,其中乔木木林再按龄龄组分类统统计5. sss = ""deleete ffrom Tablle03""生成删除除语句,删删除表中所所有行6.遍历""inseert iinto Tablle03 valuues( " + ss;创创建插入语语句,并执执行,可将将程序中的的tablle03这这个表转存存到数据库库中。7. 执行行查询Exxecutte Immmediiate :inss_strr;并关闭闭游标Cllose C2;Closse CC1;(5)最后后将数据库库中表写入入文件1.定义进进度条长度度hpb_1.SeetRannge(00,1000),设定进度度条初始位位置hpbb_1.ooffseetposs(0);慢慢的滚滚动forr j=11 to 100hpb_1.Sttepitt() sleeep(0.3) nexxt2.建立查查询表的语语句 s22 = ""seleect * froom Taable00"+ sstrinng(iii_sellecteed_taablennum)3.定义游游标C1PREPPARE SQLSSA FRROM :s2;后后打开OPPEN DDYNAMMIC CC1;然后遍历读读取数据到到数组daata :doo whiile ssqlcaa.sqllcodee=0FETCHH C1 INTOO :daata11,:ddata2,:dataa3,:datta4,:daata55。将将读取的那那一行写成成一个插入入语句lss_namme= ccolnaame_ttab022ii +'='+'""'+daataiii+''"' ;然后插入入dw_11.moddify(ls_nname),使dww_1显示示插入的数数据4.最后判判断返回的的数确定语语句执行状状态st_2.teext=""表"+sstrinng(iii_sellecteed_taablennum)+"输出成成功!"3.3.55 数据查询询模块(1)设计计用户界面面如下图所所示(2)新建建实例变量量(3)向第第一个下拉拉框ddllb_1中中填写代码码is_seelectted_ccolnaame = thiis.teext向第二个下下拉框中填填写代码is_seelectted_ooperaator = thhis.ttext第三个单行行文本slle_1中中填写代码码id_vaalue = thhis.ttext从而捕获到到了用户在在这三个控控件中填写写的内容,并并存入实例例变量。(4)当用用户点击按按钮“确定”的时候触触发查询事事件,代码码如下strinng s11,s2s1 = is_oorigiinal_seleect + " WWheree " + is_seleectedd_collnamee + iis_seelectted_ooperaator + sttringg(id_valuue)messaageboox(""",s1)dw_1.setSSQLSeelectt(s1)dw_1.retrrievee()sle_rrecorrds.ttext = sttringg(dw_1.roowcouunt()首先是建立立一个查询询语句。应应用刚刚读读取的实例例变量iss_sellecteed_coolnamme、 is_seleectedd_opeeratoor和id_vvaluee。合成查查询语句如如seleect * Froom 东南南县20001 whhere 细班号 > 4然然后用dww_1.ssetSQQLSellecteed(s11)执行查查询,将查查询结果在在dw_11中显示ddw_1.retrrievee(),然然后将记录录数目填入入sle_recoords.textt,用户可可以看见查查到了几条条记录。4 帮助/说明 注:以上内内容仅作参参考,但主主要部分应应该包含