您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > GIS组件式开发期终考试试题
装订线2011—2012学年第二学期闽江学院考试试卷答案及评分标准考试课程:组件式GIS开发试卷类别A卷B卷□考试形式:闭卷□开卷适用专业年级:09地理信息系统、测绘工程班级姓名学号题号一二三四五六七八九十总分得分一、名词解释(每个3分,共15分)得分1、ArcEngine框架控件ArcEngine组件对象模型中,ToolbarControl和TOCControl和MapControl称为框架控件(2),其中ToolbarControl和TOCControl被设计成和其它控件(MapControl等)协同工作,它起到构建GIS应用程序框架的作用(1)。2、ArcSDESDE是SpatialDataEngine的缩写,ArcSDE是Esri公司开发的使用RDBMS管理空间数据的一种中间件技术。(3)3、封装封装就是把对象的属性和方法组装成一个独立的单元,并尽可能隐蔽对象的内部细节(2)。封装是面向对象编程中的一个重要原则。它有两个含义(1):一是把对象的全部属性和方法结合在一起,形成一个不可分割的独立单元。二是尽可能隐蔽对象的内部细节,对外形成一个边界。4、GeoDatabaseGeodatabase是一种采用RDBMS技术来表现地理信息的数据模型(3)。或者说Geodatabase是将空间信息映射到RDMS的一种数据模型。5、命名空间VS.NET中的各种语言使用的一种代码组织的形式(2),通过名称空间来组织、区别不同的代码功能,通常一个功能模块使用一个命名空间、这样使不同功能模块出现同名定义时不至于混淆。(1)二、简答题(每个7分,共35分)得分1、简述基于ArcServer进行WebGIS开发的基本步骤?1)ArcGISServer后安装(PostInstall),包括:(3)1)清除原有服务;2)ArcServer后安装;3)配置用户组;4)以SOM身份重新登陆。2)使用ArcCataloge9.2(sp3),创建ArcGISServer服务,包括:(2)1)建立ArcGISServer连接组:2)添加服务:3)建立WebGIS应用程序:(2)1)利用vs2005创建一个模板server应用--WebMappingApplication,2)更改MapResourceManager属性:ResourceItems2、简述组件式GIS开发的基本原理?组件式软件技术是当今软件技术的潮流之一,即由过去厂家提供了全部系统或者具有二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来。应用系统开发:如同将一堆各式各样的积木,根据需要把实现各种功能的“积木”搭建起来。(3)组件式GIS开发,是GIS产业顺应组件式软件开发技术的产物,它的基本思想是把GIS的各大功能模块划分为若干组件(或控件),每个组件完成不同的功能。用户利用这些GIS组件可以构建GIS7应用系统。(4)3、简述使用IBaseCommand接口进行功能扩展的基本原理和步骤?IBaseCommand接口是ArcEngine组件对象模型中标准接口,因此通过该接口派生类实现IBaseCommand的接口即可达到功能扩展的目的(2),步骤如下(5):1)新建项目,项目类型为:类库(即组件);2)利用ArcEngine的BaseCommand模板,添加BaseCommand派生类;修改BaseCommand派生类的名称,及基类属性,主要包括:base.m_category;base.m_caption;base.m_name等;3)根据需要添加功能类;4)在派生类的publicoverridevoidOnClick()中调用功能类;5)在主应用程序的框架控件ToolBarControl中添加启动按钮;3、举例说明使用Geoprocesser托管类调用ArcToolbox工具进行空间分析的方法ArcEngine9.2支持通过代码完成既有工具箱中工具的调用,步骤如下:(4)1)构建一个Geoprocessor的类对象,由他来执行Geoprocessing的工具。2)构建一个Geoprocessing工具的类对象,3)填写一些参数,参数分in和out,Required和Optional。4)调用GP的Execute方法执行即可。例如:用ArcToolBox的工具的DataMangementTools-Fields-AddField,给一个shp文件加个字段。AE中GP程序的写法:(3)GeoprocessorGP=newGeoprocessor();AddFieldaddfield=newAddField();addfield.in_table=@”D:\111.shp”;addfield.field_name=“aaabbbbb”;addfield.field_type=“LONG”;GP.Execute(addfield,null);5、什么是结构化生命周期法?有哪些优缺点?将软件工程按其生命周期分成若干阶段,每个阶段有相对独立的任务,每个阶段与结束都规定了严格的质量标准。从而达到软件工程全过程的目的。(3)优点:(2)1)从系统整体出发,强调在整体优化的条件下“自上而下”地分析和设计,保证了系统的整体性和目标的一致性;2)严格区分系统开发的阶段性;每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制,以及技术文档的规范化。缺点:(2)1)要求在开发初期锁定功能要求。对用户素质或系统分析员和管理者之间的沟通能力有较高的要求;2)往往开发周期长,难于适应环境变化。三、应用题(每个15分,共75分)得分(答案以压缩文件提交,文件名为:“考生姓名”+“学号”.rar)1、“Data\操作题1”目录中存放一个VS2005环境下搭建的GIS原型系统,但存在如下问题,请分析源代码指出错误原因,并纠正错误。1)编译时出现如下错误:“找不到类型或命名空间名称“DialogRezult”(是否缺少using指令或程序集引用?)”2)加载数据后,图层列表控件没有显示数据层信息;3)符号选择器(SymbolSelectorFrm.cs)当鼠标落下选择某符号时,预览功能;答:出现错误原因:1)文件中没有使用Using指令引用Ststem.Windows.Forms;(2)2)在TOCControl中没有设置Buddy参数;(2)3)符号选择器MouseDown事件与响应函数之间的没有建立关联;(2)纠错答案:考生提交的程序集(每纠一个错得3分)2、在VS2005环境下建立一个可与基于ArcEngine开发的主应用程序(“Data\操作题2)协同工作的扩展功能组件,并用一个MessageBox测试该组件的正确性。评分标准:1)新建类库;(3)2)添加BaseCommand派生类;(3)3)添加功能类;(3)4)修改在派生类OnClick();(3)5)添加启动按钮;(3)3、“Data\操作题3”存放一个VS2005环境下搭建的GIS原型系统,其中“加载SDE数据”功能类已实现(见LoadSDE.cs)、请添加“连接ArcSDE数据库”的功能。并用Data\gisdata目录下数据测试其正确性。(提示:虚拟机中ArcSDE数据库已建立,SDE实例名=esri_sde;数据库名=sde;用户名=sde;用户密码=Li-jinqiang)评分标准:1)功能类(10)2)调用串联(5)4、在“Data\操作题4”原型系统中,已实现了栅格数据叠加分析对话框类(CustmizeAnalistDlg.cs)的用户界面,请CustmizeAnalistDlg.cs中添加栅格Time(相乘)分析函数,并用Data\gisdata目录下数据测试其正确性。评分标准:1)功能实现(10);2)调用串联(5);5、通过分析如下源代码,说明通过DataGridView展示空间数据属性的原理与步骤。并在“Data\操作题5”原型系统中实现该功能,利用原型系统中的浮动式菜单及“Data\gisdata”目录下数据测试其正确性。PublicvoidFillDataGridView(IFeatureLayerpFeatureLayer){//:1:=================:ESRI.ArcGIS.Geodatabase.IFeatureClasspFeatureClass=default(ESRI.ArcGIS.Geodatabase.IFeatureClass);pFeatureClass=pFeatureLayer.FeatureClass;//:2:=================:inti=0;ESRI.ArcGIS.Geodatabase.IQueryFilterpQuery=newESRI.ArcGIS.Geodatabase.QueryFilter();for(i=0;ipFeatureLayer.FeatureClass.Fields.FieldCount;i++){strings=pFeatureLayer.FeatureClass.Fields.get_Field(i).Name.ToString();myDataGridView.Columns.Add(s,s);}//:3:==================:intobjNumber=pFeatureLayer.FeatureClass.FeatureCount(pQuery);myDataGridView.Rows.Add(objNumber);ESRI.ArcGIS.Geodatabase.IFeaturepFeature=default(ESRI.ArcGIS.Geodatabase.IFeature);intj=0;for(i=0;iobjNumber;i++){pFeature=pFeatureClass.GetFeature(i);for(j=0;jmyDataGridView.Columns.Count;j++){myDataGridView.Rows[i].Cells[j].Value=pFeature.get_Value(j);}}}答:原理(2):将一个矢量数据图层的FeatureClass的个属性字段填充到指定的DataGridView控件中,然后用DataGridView控件展示出来。步骤(3):1)获取图层的FeatureClass;2)用FeatureClass的Fields名称填充DataGridView表头;3)用FeatureClass的属性值填充DataGridView数据行;每个要素填充一行,循环计算完成所有要素的填充;程序实现(10)
本文标题:GIS组件式开发期终考试试题
链接地址:https://www.777doc.com/doc-2874113 .html