GIS软件开发技术报告

GIS软件开发技术报告
GIS软件开发技术报告

目录

1项目内容 (3)

1.1项目目的 (3)

1.2项目任务 (3)

2GIS软件底层开发 (3)

2.1技术路线 (3)

2.1.1需求分析 (3)

2.1.2项目设计 (4)

2.1.3项目开发 (5)

2.2逻辑结构 (5)

2.3GIS系统功能设计 (7)

2.3.1功能概述 (7)

2.3.2功能模块 (8)

3C#.NET与AE二次开发 (14)

3.1技术路线 (14)

3.1.1需求分析 (14)

3.1.2项目设计 (15)

3.1.3项目开发 (15)

3.2逻辑结构 (15)

3.3GIS系统功能设计 (16)

3.3.1功能概述 (16)

3.3.2功能模块 (16)

4总结 (16)

GIS软件开发技术课程

实习报告

院(系)名称:XXXXXXX

班级名称:XXXXX

学生姓名:XXX

XX年X月

1项目内容

1.1项目目的

进一步了解C++开发的相关知识,掌握C++开发的基本技术,丰富C++开发的实战经验。拓展对C#+AE的二次开发的认识,对接口的调用有一定的了解,其次也是为了增强自己的团队协作意识,了解软件开发的思考角度和主要流程。

1.2项目任务

实习一(底层开发):解析MIF、MID文件并绘制;

提供图->属性、属性->图的检索;

符号系统符合MapInfo显示规范;

构建空间索引,优化图形绘制和空间检索效率;

实习二(二次开发):SHP数据→MIF数据的格式转换

2GIS软件底层开发(详)

2.1技术路线

2.1.1需求分析

正文:(宋体小四,首行缩进2字符,正文间行距固定为23磅)

1)任务概述:

本次GIS的底层开发任务是基于MFC的图形绘制和检索,要求在windows环境下实现地图的读取、显示、基础操作(放大、缩小)、添加

属性信息、地图目标物索引的建立和查询,根据个人需求使用vs/vc,

利用c++语言(可包括部分c语言)。要求软件能够正常运行,并能够进

一步做到优化和美化。

2)数据描述:

数据输入:系统所针对的数据主要包括mif数据和mid数据两种类

型,其中mif数据主要储存图形数据,mid数据存储属性数据。

数据输出:mif数据以点、线、面、特殊符号为对象以相应颜色矢

量图形呈现在窗体中,mid数据以文字形式呈现。

3)功能需求:

软件的功能模块划分为文件操作,建立索引、索引查询,符号绘制,图-属性、属性-图的检索。几个模块均通过鼠标点击响应机制实现功能

的操作和实现。

4)性能需求:

软件的性能尽量达到最优,包括数据的精确程度、响应时间、运行时间都尽可能地达到最优。

5)运行需求:

软件的运行在一般的电脑上均可正常运行,对于软件的运行错误及时检查和修复。

2.1.2 项目设计

1) 总体设计

根据软件的需求分析进行系统总体设计,包括有系统设计阶段和结构设计阶段。其中系统设计阶段主要是对组成系统的文件、程序、文档等进行设计,确定系统的模块组成以及模块之间的相互关系。结构设计则包括了功能结构、数据结构。

系统需求

根据系统的需求分析内容进行软件各个阶段和内容的设计。

主要功能流程图:

开始

读取数据

弹出对话框

选择文件

确定读取文件

绘图

是否建立索引

是点击索引建立

拉框选择检索

部分重绘

是否拉框放大

在需要放大之处

拉框

鼠标松开重绘以

放大

否结束

根据图层名称选取符号类库中的相应符号

2) 接口设计

用户接口

用户通过在PC 机上打开软件(要求运行环境为windows 系统),通过对软件功能的利用进行数据的交互处理。 外部接口

系统版本必须在Windows7及以上。 GisApp 主应用程序必须安装在计算机上。 必须留有足够的硬盘空间。

内部接口

通过打开文件方式获取数据信息,进行数据操作。

软件的其他操作模块基于打开后显示的数据进行

3)运行设计

一般的处理流程是先打开数据,随后可使用其他功能模块

系统运行时有较友好的界面,基本能够实现用户的数据处理要求

系统响应时间应该符合用户的一般需求,响应时间都应该在10秒之内

2.1.3项目开发

1)软件定义:

要求实现的软件为基于底层开发的具有地理数据读取和检索功能的基础地理信息

软件。

2)相关知识

Mif、mid数据读取:MIF 由文件头和数据段组成,第一部分“文件头”定义了

版本信息、字符集、投影参数坐标类型与表结构。第二部分为“数据段”,数

据段包含MAPINFO 定义的点、线、面、多义线、区域、圆弧、文本、矩形、

圆角矩形和椭圆等实体。MID属性数据文件按MIF中定义的属性结构分别描

述了每个图形对象的属性内容。

网格索引:格网型空间索引的基本思想是将研究区域用横竖线条划分大小相

等或不等的格网,记录每一个格网所包含的空间实体。当用户进行空间查询

时,首先计算出用户查询对象所在格网,然后再在该网格中快速查询所选空

间实体,这样一来就大大地加速了空间索引的查询速度。

四叉树索引:四叉树索引的基本思想是将地理空间递归划分为不同层次的树

结构。它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至

树的层次达到一定深度或者满足某种要求后停止分割。四叉树的结构比较简

单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查

询效率。

放大:图幅显示范围重新赋值和映射,目标重绘

符号库:符号系统符合MapInfo显示规范。

3)项目计划:

编写软件设计方案→理解mif、mid数据组织结构→掌握C++/C语言关于读取数据

的函数和语句→设计地图数据存储结构→建立符号库→绘制地图→建立索引类、

索引管理类→初始化索引网格和网格动态数组→查询操作

4)项目实施:

根据软件设计书进行软件的编码与测试

5)项目交付:

第一阶段:数据的读取和绘制

第二阶段:软件成果汇总

2.2逻辑结构

程序的实现按照面向对象的算法进行设计,利用了类的封装、继承、多态性。

1) 地图数据存储的逻辑结构

2) 网格索引类

3) 建立索引

CGeoMap

CGeoLayer1CGeoLayer2

CGeoObject

CGeoPoint CGeoPolyline CGeoPolygon

CgeoAnno

变量

函数

indexBounding

判断矩形相交IsPolygonInter

判断线与矩形相交

IsPolylineInter

查找对象

SearchIndexAreaObjec

t

绘制索引格Draw (CDC

*pDC )

添加对象标志AddID

索引管理CSpatialIndex ()

变量

行列数m , n

索引范围indexRect

索引数组idxAreas

查找索引域SIndexAreas

函数

绘制Draw (CDC *pDC )

创建索引

CreateIndexArea ()

设置索引SetSpatialIndex

添加索引域AddIndexArea 查询索引域SearchIndexArea

开始

是否建立索

是否建立网格索引

设置网格行列数、索引范围

初始化网格

将网格所覆盖的对象加入网格对象数组内

是否建立四叉树索引否

结束

设置四叉树深度、索引范围

初始化网格

将处于叶节点的网格所覆盖的对象加入到网格的对象数

组内

4) 索引查询

开始

已选择格网索引否已选择四叉树索引否

结束

鼠标绘制矩形框

遍历所有网格找出与当前矩形区域有交集的网格

对于以上结果网格逐一遍历其中对象,判断是否与

当前矩形相交

对于选中的目标进行重绘

鼠标绘制矩形框

从四叉树最顶端开始

对父节点进行遍历,选出与矩形有交集的节点

对每个选中的父节点遍历它们的子节点选出与矩形

有交集的子节点

以选中的子节点重新做为父节点进行以上相同遍历

直到叶节点结束

对于选中的叶节点遍历其中的对象,判断与矩形是

否有交集

选出有交集的对象进行重

2.3 GIS 系统功能设计 2.

3.1 功能概述

要求软件能够解析MIF 、MID 文件并进行绘制;提供图->属性、属性->图的检索;其次构建空间索引,实现查询操作,优化图形绘制和空间检索效率;其中符号系统的设计要符合MapInfo 显示规范。

2.3.2功能模块

1)打开文件显示

功能描述

用于打开文件夹读取文件内容(这里为mif、mid数据),并显示出来

性能

根据数据量的多少,数据打开和绘制的时间会由实际情况的不同而有所不同。

这里所用的数据显示时间不超过5秒

输入项目

在输入文件中选择要输入打开的mif、mia文件

输出项目

这里只要求数据以图形的形式显示出来,不要求进行其他的输出功能

算法

SHGetPathFromIDList(pList, szPath) //把指定的文档或目录地点转换为文档系统路径

OnOpenFolder(szPath);//通过路径打开文件夹

MIFPaths.Add(finder.GetFilePath());//列举所有的在当前目录下的文件,并且将他们的文件名存储在数组里面

ReadMIFData(MIFPaths.GetAt(i));//逐个读取文件

_wfopen_s(&fp, MIFData, _T("r"));//打开mif数据

_wfopen_s(&fp1, MIDData, _T("r"));//打开mid数据

geomap.AddLayer(layer);//逐图层添加

layer->AddObject(obj);//逐对象添加

((CGeoPolyline *)obj)->AddPoint(CPoint(x1, y1));//线的坐标数据

((CGeoPoint*)obj)->pt=CPoint(x1,y1);//点的坐标数据

((CGeoPolygon*)obj)->AddPoint(CPoint(x1, y1));//面的坐标数据

geomap.wcRect = mapRect;//获得图幅显示范围

///////////////画线

void CGeoPolyline::Draw(CDC *pDC)

pDC->MoveTo(pts.GetAt(0));

pDC->LineTo(pts.GetAt(i));

///////////////画线

pDC->TextOut(pt.x, pt.y, ColumnName);

pDC->Ellipse(pt.x - 1000, pt.y - 1000, pt.x + 1000, pt.y + 1000);

//////////////画面

void CGeoPolygon::Draw(CDC *pDC)

pDC->Polygon(pts.GetData(),pts.GetSize());

接口

通过按钮和菜单进行相应函数的调用,进而完成数据打开和绘制功能的实现。

开始

读取数据

浏览文件夹

OnFileOpen()

读取文件夹

OnOpenFolder

读取数据

ReadMIFData

读取目标对象数

据和属性数据

CGeoObject

线

((CGeoPolyline

*)obj)-

>AddPoint

((CGeoPoint*

)obj)-

>pt=CPoint

((CGeoPolygo

n*)obj)-

>AddPoint

图层layer-

>AddObject(obj)

地图

geomap.AddLayer

(layer)

画图

geomap.Dr

aw(pDC)

geoLayers.GetAt

(i)->Draw(pDC)

geoObjts.Get

At(i)-

>Draw(pDC)

CGeoPoint::D

raw(CDC*

pDC)

CGeoPolyline:

:Draw(CDC

*pDC)

CGeoPolygon:

:Draw(CDC

*pDC)

坐标映射

OnPrepareDC(CDC*

pDC, CPrintInfo*

pInfo)

结束

限制条件

打开的数据量不能过大,否则会引起系统反应延时等情况;

打开数据类型限制为mif和mid数据。

2)建立索引

功能描述

对于网格索引而言,建立m×n的格网(这里在程序内部赋值),对每一个网格,

遍历所有对象并进行判断,若对象与当前格网相交或包含于格网中,则将对象

存储在网格的对象数组中。

对于四叉树索引,设定子节点网格的对象数目阈值,要求每一个处于子节点的

网格数组所包含的数量都不低于这个阈值,即每做一次网格的四象限划分都进

行一次判断。

性能

格网索引适合于数据量较大的项目建立相应索引,建立的效率高;四叉树索引

适合于数据量一般,索引的建立略显麻烦。

输入项目

鼠标操作指令。

输出项目

索引的建立和绘制

算法

建立索引

void CTESTGISView::OnGridIndex()

geomap.IntlzIdxArea(a, b);//传递索引行列数

spatialIndex->SetSpatialIndex(wcRect, x, y);//设置索引参数

geoLayer->InitlizeIdxArea();//初始化索引动态数组

////////////////////点状目标

if (area->IsPolygonInter(rectMIN,area->indexBounding))//判断目标与当前格网区域是否相交{

area->AddObj(obj);//加入目标

}

////////////////////线状目标

if (area->IsPolylineInter(pt1, pt2, area->indexBounding))

{

area->AddObj(obj);//加入目标

}

////////////////////面状目标

if (area->IsInside(pt, area->indexBounding))

{

area->AddObj(obj);//加入目标

}

geomap.spatialIndex->Draw(pDC);绘制网格

接口

通过按钮和菜单进行相应函数的调用,完成相应索引类型的建立

开始

建立索引OnGridIndex

()

初始化索引

IntlzIdxArea

()

设置索引行列数、

范围

SetSpatialInde

x()

初始化索引动态数

InitlizeIdxAre

a()

创建索引

CreateIndexArea(

)

绘制索引窗格

spatialIndex-

>Draw(pDC)

限制条件

格网索引的行列数和四叉树索引的深度都在程序内部实现了设置,大大缩小了

程序的适用范围和使用适度

3)索引查询

功能描述

获取鼠标在屏幕上绘制的矩形,对于网格索引,逐一遍历网格,判断矩形区域

与当网格是否有交集,若有交集则对当前网格内所包含的所有对象逐一遍历,判断是否与矩形区域有交集,若有交集则对该目标进行重绘且颜色要有所改变

以区分其他未被选中的目标;

对于四叉树索引,由父节点开始,若有交集,则遍历此父节点的子节点,对每

一个子节点做同样的父节点处理,直到到达叶节点结束,对于所有与矩形区域

有交集的子节点网格,逐一遍历其中的对象,判断是否与矩形区域有交集,若

有交集则对该目标进行重绘且颜色要有所改变以区分其他未被选中的目标;

性能

网格索引查询适合于数据量大的项目,查询算法简单,查询效率高,四叉树索

引适合数据量相对较小的项目,查询效率高

输入项目

根据鼠标在屏幕上的绘制输入框选矩形

输出项目

对于被选中的目标进行重绘

算法

void CTESTGISView::BoxSelected()

geomap.spatialIndex->SearchIndexArea(&rect);

int size = geomap.spatialIndex->SIndexAreas.GetSize();

for (int i = 0; i < size; i++)

{

indexArea = geomap.spatialIndex->SIndexAreas.GetAt(i);

indexArea->SearchIndexObj(&rect, dc);

}

////////////////////////重绘点

if (IsInside(pt, rect))

{

((CGeoPoint*)obj)->Draw(pDC);

}

////////////////////////重绘线

if (IsPolylineInter(pt1, pt2, rect))

{

((CGeoPolyline*)obj)->Draw(pDC);

}

/////////////////////////重绘面

if (IsPolygonInter(rect1,rect))

((CGeoPolygon *)obj)->Draw(pDC);

接口

通过鼠标点击和菜单进行相应函数的调用,完成相应索引类型的建立

开始拉框

BoxSelected()

鼠标按下

OnLButtonDown

鼠标松开

OnLButtonUp

记录与矩形相交

格网

SearchIndexAr

ea(CRect

*rect)

查询目标

SearchIndexOb

j(CRect

*rect, CDC

*pDC)

重绘obj)-

>Draw(pDC)

限制条件

目前程序只能满足拉框检索

4)放大

功能描述

选择拉框放大菜单选项,用鼠标在屏幕需要进行放大的地方绘制合适的矩形框,

鼠标松开即可实现放大操作

性能

由于所显示的地图内容均为矢量数据,并且地图的放大操作是基于重绘实现的,

所以放大操作所用的时间依赖于数据量的大小

输入项目

鼠标在屏幕绘制矩形框

输出项目

放大后得到的局部图像

算法

void CTESTGISView::OnEnlarge()

if (isLarge)

{

if (abs(pt1.x - pt2.x)<2 || abs(pt1.y - pt2.y)<2) return;

geomap.wcRect.left = pt1.x>pt2.x ? pt2.x : pt1.x;

geomap.wcRect.right = pt1.x

geomap.wcRect.bottom = pt1.y

geomap.wcRect.top = pt1.y>pt2.y ? pt2.y : pt1.y;

Invalidate();

}

接口

通过鼠标点击菜单选项和屏幕操作

开始

拉框放大

OnEnlarge()

地图显示区域变

重绘

Invalidate()

结束

限制条件

只实现了拉框放大,其他放大功能未实现

3C#.NET与AE二次开发(略)

3.1技术路线

3.1.1需求分析

1)任务概述:

本次GIS的二次开发任务是基于C#与AE的数据格式转换,要求在windows环境下实现shp数据的读取、shp数据转换为mif数据。

2)数据描述:

数据输入:输入shp数据

数据输出:数据输出为mif数据格式

3)功能需求:

软件的功能要求实现shp数据的读取和shp数据转换为mif数据

4)性能需求:

软件的性能尽量达到最优,包括数据的精确程度、响应时间、运行时间都尽可能地达到最优。

5)运行需求:

软件的运行在一般的电脑上均可正常运行,对于软件的运行错误及时检查和修复。

3.1.2项目设计

1)设计思想:二次开发使用vs开发环境加以实现,并使用了ESRI interop程序集,

它服务于被放置在.NET窗体上的、位于.NET 窗体控件中的ArcGIS控件,这些程

序集在托管的.NET代码和非托管的COM代码之间起了桥梁作用。

2)主要功能流程:

开始→读取数据→弹出对话框→选择shp文件→确定→保存→选择保存路径及输

入mif文件名→确定→转化→结束

3)接口设计:

输入shp文件路径

OpenFileDialog()

string fullpath = fd.FileName;//文件路径名

Shapepath = System.IO.Path.GetDirectoryName(fullpath);//得到文件的路径名

Shapename = System.IO.Path.GetFileNameWithoutExtension(fullpath);//不包括后

缀的文件名

textInShape.Text = fullpath;

输出mif文件路径

SaveFileDialog()

string fullpath = sf.FileName;

Mifpath = System.IO.Path.GetDirectoryName(fullpath);

Mifname = System.IO.Path.GetFileNameWithoutExtension(fullpath);

textOutMif.Text = fullpath;

格式转换

StreamWriter myWrite = new StreamWriter(myStream);//写文件

IWorkspace pWS = pWSF.OpenFromFile(fullpath, 0)//打开工作空间

IFeatureClass pFeatureClass = pFWS.OpenFeatureClass(filename);//打开要素类

IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false);//逐一要

素访问

写文件头///////////

if (geotype == esriGeometryType.esriGeometryPoint)//点

elseif (geotype == esriGeometryType.esriGeometryPolyline)//线

elseif (geotype == esriGeometryType.esriGeometryPolygon)//面

myWrite.WriteLine();

3.1.3项目开发

3.2逻辑结构

开始

输入文件路径、名称Shapepath 、Shapename 输出文件路径、名称Mifpath、Mifname

开始转换

打开工作空间

IWorkspace

Factory

写文件信息

myWrite.Wr

iteLine

3.3GIS系统功能设计

3.3.1功能概述

输入shp文件路径,输出mif文件路径,进行格式转换

3.3.2功能模块

根据软件的需求分析进行系统总体设计,包括有系统设计阶段和结构设计阶段。其中系统设计阶段主要是对组成系统的文件、程序、文档等进行设计,确定系统的模块组成以及模块之间的相互关系。结构设计则包括了功能结构、数据结构。

1)读取shp文件

利用Iworkspace接口来对Gis中的数据库文件进行操作,因为shp文件是点集集

合、数据集合和其索引文件的集合,所以需要通过专门的接口来实现。

2)写入mif数据

通过接口调用函数,判断读取信息类型,根据不同类型信息编辑数据

4总结

本次实习我主要操作了底层开发的内容,从读取mif数据开始逐渐从基础学起,通过网上查阅和反复询问,尝试和反复修改逐渐在编写程序的过程中理解其中的逻辑结构和语法,在实习的中段开始认识到一直困惑和为难的函数和语句的使用其实并非很关键,重要的是编程的思路要理清,对类的封装和调用之间的关系要清楚,而需要用到哪些函数或功能可以查阅相关资料和示例,理解之后转换为自己的内容即可。

软件设计过程实验报告

软件开发过程 实验一软件需求分析 一、目的和意义 对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。为下面的实习奠定基础。 二、实习内容 xx、确定软件题目(学生可自己拟定,也可在本书附录2中选择); 2、分析软件需求以及人工模式下的工作流程; 3、编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考); 4、完成形式:以文档的形式完成软件的需求规格说明书。纸张型号为A4。 三、实习指导 xx、在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。 2、提交文档的格式如下: 第一页的格式为: 软件名称:文档编号 版本号 文档名称: 项目名称: 项目负责人: 编写时间 审核时间 批准时间 开发单位 第二页之后的内容为: ●编写目的:阐明编写该文档的目的,指出读者对象 ●项目背景:项目的委托单位、开发单位、该软件系统与其他系统的关系。

●参考资料 软件需求规格说明的书写原则 ①任务概述:软硬件环境、条件和限制(软件的使用条件和限制)。 ②数据描述:输入数据、输出数据、数据库设计和建立数据词典。 ③功能需求:功能划分和功能描述 ④性能需求:数据精度、时间特性、适应性(操作方式、与其他软件的接口、开 发计划变化时,软件应具有的适应能力。)。 ⑤运行要求:用户界面、硬件接口(如:连接打印机)、软件接口(如:是否为 其他项目的子项目)、故障处理。 ⑥其他需求:可使用性、安全保密性、可维护性、可移植性等。 ●模板参考 第一页: 软件名称:教务管理软件文档编号 xxxxxx 版本号 Ver xx.xx 文档名称:需求规格说明书 项目名称:课表编排系统 项目负责人:屈艳 编写: 组 第二页之后的内容: 编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。便于开发小组成员对系统整体功能的认识。 项目背景:高校的课表编排一直是一个烦琐的工作,为了解决这个问题,某某高校教务处委托我们开发该软件。该软件是高校教务软件的一个子系统。该子系统与专业规划子系统和教师管理软件有一定的关系。 参 实用软件工程(第二版)北京:清华大学出版社,xxxxxx7 任务概述: 硬件环境:CPU的型号为PentiumIII以上,内存25xxM ,及其兼容机

GIS二次开发实验报告

GIS二次开发实验报告 学号: 姓名: 班级: 专业: 指导老师: 二零一五年11月15日

目录 1 实验一:软件安装与AOI书签开发 (2) 1.1 实验目的 (2) 1.2 实验内容 (2) 1.3 实验结果 (2) 2 实验二:地图数据组织与访问 (5) 2.1 实验目的 (5) 2.2 实验内容 (5) 2.3 实验结果 (5) 3 实验三:地图渲染与制图输出 (9) 3.1 实验目的 (9) 3.2 实验内容 (9) 3.3 实验结果 (9) 4 实验四:空间数据处理 (14) 4.1 实验目的 (14) 4.2 实验内容 (14) 4.3 实验结果 (14) 5 实验五:GIS分析 (20) 5.1 实验目的 (20) 5.2 实验内容 (20) 5.3 实验结果 (20) 6实验六:栅格数据处理 (25) 4.1 实验目的 (25) 4.2 实验内容 (25) 4.3 实验结果 (25) 7实验总结 (31)

1实验一:软件安装与AOI书签开发 1.1实验目的 ?掌握AOI书签程序开发 1.2实验内容 ?实现AOI书签的创建 ?实现AOI书签的调用 1.3实验步骤与结果 安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。 1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码; (1)首先添加引用代码:using ESRI.ArcGIS.Display; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.ADF; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesRaster; (此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用) (2)添加“创建书签”函数 在MainForm类中添加成员函数CreateBookMark,代码如下: public void CreateBookmark(string sBookmarkName)//参数为书签名 { //通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass(); if (aoiBookmark != null) { aoiBookmark.Location = axMapControl1.ActiveView.Extent;

软件项目管理课程设计实验报告精

软件项目管理课程设计报告 学院: 专业: 班级: 学号: 姓名: 指导教师: 时间:2013年 1月 目录 1、项目概述 (1) 2、工作任务 (Statement Of Work,SOW书 (1) (一整体要求 (1) (二系统逻辑模型 (2) (三系统功能描述 (3) (四应达到的技术指标和参数 .................................... 3 3、项目进度计划 .. (4) (一分解项目工作 (4) (二项目工作关系表 (5) (三项目甘特图 (6) (四网络进度计划图 (7) (五里程碑计划 ................................................ 9 4、项目规模成本估算 . (9)

(一分解项目工作 (9) (二项目规模估算表 (11) (三计算开发成本 (12) (四计算管理、质量成本 (12) (五直接成本 (12) (六计算间接成本 (12) (七计算总估算成本 (12) (八项目报价 ................................................. 13 5. 项目质量计划 .. (13) (一项目质量保证组织 (13) (二质量目标 (14) (三质量策略 (15) (四质量保证活动 (15) (五质量控制活动 (17) (六质量保证的报告途径 (17) (七记录的收集、维护和保存 ................................... 17 6、软件项目团队 . (17) (一团队组织及职责 (18) (二项目的沟通计划 ........................................... 19 7、软件项目配置管理计划 .. (19) 学校内部职工工资系统项目管理书 1、项目概述 假设学校共有教职工约 1000人, 10个行政部门和 8个系部。每个月 20日前各部门(包括系、部要将出勤情况上报人事处, 23日前人事处将出勤工资、奖金及扣款清单送财务处。财务处于每月月底将教职工的工资表做好并将数据送银行。每月初(3日前将工

南京邮电大学软件设计实验报告

软件设计报告 ( 2014 / 2015 学年第二学期) 课程名称软件设计 指导老师赵江实习时间第十八周学生姓名学号 ____学院______专业

软件设计 课程编号:B0465011C 适用专业: 班级: 一、所涉及的课程及知识点 涉及的课程:第6学期之前的专业基础课程。 知识点:专业基础课程中所学的知识点。 二、目的与任务 目的:通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。 任务:选择以下任一模块进行设计:Matlab软件仿真、C语言及应用。

软件设计的内容 题目1:如果给出两个矩阵?? ??? ?????=136782078451220124A ,????? ?????=087654321B ,执行下面的矩阵运算命令。 (1)B A *5+和I B A +-分别是多少(其中I 为单位矩阵) (2)B A *?和B A *将分别给出什么结果,它们是否相同为什么 逻辑功能程序: function [ ] = EXP1() A=[4,12,20;12,45,78;20,78,136]; B=[1,2,3;4,5,6;7,8,0]; I=eye(3); disp('A+5*B='); disp(A+5*B); disp('A-B+I=') disp(A-B+I); disp('A.*B='); disp(A.*B) disp('A*B='); disp(A*B); End 实验过程与结果 打开matlab ,在命令窗口“Command Window ”中键入edit,启动程序编辑器。输入完整程序后利用save as 储存为M 文件,文件名为EXP1。返回主界面,

mapgis地图矢量化实验报告心得体会(20200604031440)

mapgis地图矢量化实验报告心得体会 篇一:MAPGIS综合实验报告 MAPGIS综合报告 目录 一、实验目的 (02) 二、实验过程 栅格图像配准 (03) 2.图像二值化 (05) 矢量化 (06) 4.图形编辑 (11) 5.属性编辑 (19) 6.图文互查 (21) 7.对说获得的数据进行利用和分析 (24) 8.自定义制图符号 (31) 9.输出不同比例尺地图 (35) 三、实验总结 (41) MAPGIS实验综合报告 一、实验目的。 MAPGIS是通用的工具型地理信息系统软件,具有强大的空间数据的图形显示、各类地图制图的制作功能,作为个来

数学信息的可视化转换工具,可以讲数字形式的地理信息以 直观的图形形式在屏幕上显示,能自动进行线段跟踪、结点 平差、线段接点裁剪与延伸,多边形拓扑结构的自动生成, 还可以消除图幅之间元的街边误差,为地学信息的综合分析 提供了一个理想的桌面式地理信息系统。所以,在将图矢量 化时应用MAPGIS软件是十分便捷的,同时综合了此软件的 基础操作和方法,能培养我们的自出探究能力和中和分析能 力。对于我们来说这是我们以后能熟练运用MAPGIS的开始,路还很长,我们需要不断的摸索、不断的钻研才能完全掌握 它。下面针对这一次的实验成果中来谈一谈如何运用MAPGIS。 二、实验过程。 栅格图像配准 装载图像 准备工作 使用纸质地图,在扫描仪中扫描为图像 打开MAPGIS“图像处理”——“图像分析”如图所示 如图 在点击图像分析模块的菜单“文件” -> “数据输入”,将其他栅 格图像(mpg,jpg ,tif 等)转换为MapGIS 的栅格图像格式( .msi ),选转换数据类型,点击“添加文

gis综合实验报告

gis综合实验报告 篇一:GIS综合实验报告 安徽理工大学地理信息系统 实验报告书姓名: 班级 学号: 指导教师:XX年11月目录前言-------------------------------------------------3 实验一:几何校正 -------------------------------------4 (1)实验目的 (2)实验原理 (3)实验内容与步骤 实验二:数据库设计基本流程---------------------------9 (1)实验目的 (2)实验原理 (3)实验内容与步骤 实验三:空间分析-------------------------------------12 (1)实验目的

(2)实验原理 (3)实验内容与步骤 实验四:地图制图-------------------------------------20 (1)实验目的 (2)实验原理 (3)实验内容与步骤 总结------------------------------------------------25 前言通过对《地理信息系统教程》的学习,掌握地理信息系统的基本概念、空间数据的建立、 采集、处理与存储组织、gis空间分析的原理方法、地图可视化等内容,并了解常用gis软 件的操作,为后续其它gis课程的学习打下基础。本实验课程要求掌握:arccatalog的基本操作、arcmap地图可视化、空间分析等操作。 强化对课本知识的掌握,并不断学习运用到以后的生活中去。实验一:几何校正 一、实验目的 利用影像配准工具进行影像数据的地理配准,熟悉编辑器的使用,掌握如何进行几何校

GIS实验报告

《地理信息系统概论》之 空间数据采集与编辑实验报告 一、实验任务及目的 1.任务(拟解决的问题) (1)掌握地图扫描矢量化的基本原理与方法 (2)熟悉Arcmap软件的主要绘图和编辑工具 2.目的 (1)掌握地理要素转换为地理信息(地图数字化)的基本原理与方法。(2)掌握利用ArcMap进行地图数字化的主要流程及具体操作。 (3)学会根据实际应用设计采集有用的地理信息。 二、实验准备 1、软件:ARCMAP 9.3 2、硬件:装有该软件的电脑 3、数据 基于3度投影分带的1:10000标准地形图图像。

基于3度投影的1:10000地形图 4、其它资料 (预备知识) 地图 在ArcGIS中,一个地图存储了数据源的表达方式(地图,图表, 表格) 以及空间参考。在ArcMap中保存一个地图时,ArcMap将创建与数据的链接,并把这些链接与具体的表达方式保存起来。当打开一个地图时,它会检查数据链接,并且用存储的表达方式显示数据。一个保存的地图并不真正存储显示的空间数据! 地理信息的图层 ArcMap可以将多种数据类型作为数据层进行加载,诸如AutoCAD矢量数据DWG,ArcGIS的矢量数据Coverage、GeoDatabase、TIN和栅格数据GRID,ArcView 的矢量数据ShapeFile,ERDAS的栅格数据ImageFile,USDS的栅格数据DEM等。注意Coverage不能直接编辑,要编辑需要将Coverage转换成ShapeFile。 地理信息shape格式文件的图形要素类型

point、polyline、Polygon、Multipoint、MultiPatch. 三、实验方法及步骤 1.配准 (1)打开ArcMap,点菜单“View”/“Toolbars”增加Georeferncing工具条。用把需要进行纠正的1:10000标准地形图增加到ArcMap中, Georeferncing 工具条中的工具被激活。 通过读图,知道坐标的点就是公里网格的交点,从图中均匀的取几个点。 (2)首先将Georeferncing工具条的Georeferncing菜单下Auto Adjust不选择。 在Georeferncing工具条上,点击Add Control Point按钮。 分别选取图的四个角落建立控制点,输入相应的x和y值。 四个控制点输入数值之后如图:

《软件课程设计》实验报告

编号:()字号 《软件课程设计》报告 班姓学级:名:号: 指导老师: 职称: 计算机科学与技术学院 二〇〇八年月

专业年级: 学生姓名: 任务下达日期: 课程设计日期: 课程设计题目:面向过程 一.需求分析 设计任务:软件课程设计任务书 题目七: 1.将输入的罗马数据化为10进制数。假设罗马数据中只使用如下7 个“基值”字母:M、D、C、L、X、V、I,分别用来表示 1000、500、100、50、10、5、1。如,罗马数据LXXXVII 表示10 进 制的87。 2.将输入的10进制正整数转换为罗马数据。假设罗马数据中只使用 “基值”字母:M、D、C、L、X、V、I,分别用来表示 1000、500、100、50、10、5、1。 主要界面为:

输入1或2可以选择功能。 输出的形式 如上所示:当输入大写或小写的阿拉伯字母时。 程序能计算出十进制。 程序所能达到的功能 测试的数据:当输入mvii罗马数字时输出十进制 1007 当输入十进制数4535 时相应输出MMMMDXXXV。 二.概要设计 程序中主要在开头用了一个死循环来实现功能的不断循环。通过exit函数退出程序。 主程序的流程以及各程序模块之间的层次(调用)关系。

Convert1() Break; >switch(n) Default; 三.详细设计 实现概要设计中定义的数据类型和操作。以增加程序的可读性,关键算法部分 画出程序流程图。 主函数的流程图如右图示: Switch() Cin>>n Convert1() Break; Case1: Case2:; Convert2(); Break; Default; Exit(1); While(1) Main() Return 0; Main->jiemina->while(1)- Convert2() Break; Exit()

GIS应用与课程设计实验报告

GIS应用与课程设计 实 验 报 告 姓名: 学号:2013113130 班级: 教师:李权国 2015年7月

实验一GIS支持下的建设项目环境管理与分析 一、实验目的: 通过实际操作,作图分割,学会利用supermap对实际问题进行分析处理,达到学以致用的目的。 二、时间:2015年7月13日-7月15日 三、地点:N5-409 四、过程及内容 1.编制专题地图: (1)开发区功能区图,显示出各功能区的面积、允许排污负荷量(要求有图例); ①打开SuperMap软件,新建数据源命名;新建五个面和五个文本数据集添加到图层。 ②根据题目所给的功能区坐标,绘制图形,点击图形出现“属性”对话框,依次根据所给坐标在空间信息内进行修改,如图:

③将修改好坐标的图形进行整窗显示,在“属性”框中的“文本属性”中可以得到各个功能区的面积,在各功能区上添加文本上色,得到开发区功能区图。 (2)建设项目图,显示建设项目及其与开发区各功能区的空间位置关系。 ①按照以上步骤,绘制出项目一和项目二的图形,选择对象进行分割,得出各项目与功能区的关系。

的需要修改比例尺如下图: 区各功能区的空间位置关系图如下:

2.输出统计表: (1)建设项目使用开发区各功能土地面积统计表;

(2)建设项目在开发区各功能区的排污负荷量统计 3.建设项目可行性分析: ①分析: 由于功能区A的允许排污量为8t,功能区C的允许排污量为180t,功能区D的允许排污量为32t, 功能区E的允许排污量为420t。而由“建设项目在开发区各功能区的排污负荷量统计表”可知,项目一和项目二在D功能区的排放量为38.25t>32t,所以不可行。 ②修改方案: 由于要在在地理坐标移动最小的前提下进行修改移动,因此最佳方案是移动项目二。由于功能区D的允许排污量为32t,而项目一已排入6.25t,因此项目二最多只能在功能区D中排入32-6.25=25.75t 污染物;由于项目二的设计排污量负荷为8t/km2 ,因此项目二在D 功能区所占面积最大为25.75÷8=3.21875km2,即比原来要减少0.78125km2,由此再进行计算可得,只要将项目二的坐标整体向上移动0.2663275个单位即可,得到移动后的坐标(4,6.2663275)(8,6.2663275)(8,2.2663275)(4,6.2663275) 修改前后的项目二位置对比如图:

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

南京邮电大学软件设计VHDL实验报告

南京邮电大学软件设计VHDL实验报告

通信与信息工程学院 / 年第 2 学期 软件设计实验报告 模块名称VHDL 专业通信工程 学生班级 学生学号 学生姓名 指导教师梅中辉

设计题目 基本课题:04. 2对4译码器 综合课题:18. 奇偶校验器 任务要求 1.基本课题:设计一个2对4译码器(输入:A B 输出:Y3 Y2 Y1 Y0),真值表如图2。 2. 奇偶校验器系统的功能是对八位二进制数据及其奇偶校验位的输入进行校验,输出正确的奇、偶校验位。ODD_IN 与EVEN_IN 是控制奇校验和偶校验功能输入,IN0到IN7是七位数据及一位校验位数据输入,IN_READY 表示输入数据已经准备好,能够处理,当OUT_REQ 输入表示要求输出数据,CLK 端口用于接收时钟信号,支持系统的时钟上升沿同步。当输出端口OUT_READY 输出信号有效时,表示输出数据已经准备好,能够为下级电路使用,ODD_OUT 与EVEN_OUT 用来输出正确的奇偶校验位。上述控制端口均为高电平有效。 A B Y3 Y2 Y1 Y0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 实验设备 及软件 1. 微型计算机 2. EDA-VHDL 开发软件 同组人员 学号及姓名 11001803 胡雪琪

参考文献 1. 张顺兴 《数字电路与系统设计》东南大学出版社 .8 2. 苗丽华《VHDL 数字电路设计教程》人民邮电出版社 .11 VHDL 课程设计题目及要求(自编资料) 3. VHDL 课程设计题目及要求(自编资料) 4. 杨晓慧 杨永健 《基于FPGA 的EDA/SOPC 技术与VHDL 》 国防工业出版社 .7 5. Peter J. Ashenden 《The VHDL Cookbook 》Dept. Computer Science University of Adelaide South Australia July, 1990 报告内容 一. 实验目的 1.掌握组合逻辑中译码器电路的设计原理。 2.能利用VHDL 语言设计一个2-4译码器。 二. 实验器件 1.微型计算机 2.EDA-VHDL 开发软件 三. 实验名称 2-4译码器 四. 题目要求概述 设计一个2对4译码器(输入:A B 输出:Y3 Y2 Y1 Y0),真值表如图 五. 系统分析 ○ 1.原理图: 分析:EN=1,Z[0]=Z[1]=Z[2]=Z[3]=1; EN=0,Z[0]=!(!A!B ),Z[1]=!(!AB),Z[2]=!(A!B),Z[3]=!AB ○ 2.设计算法: A B Y3 Y2 Y1 Y0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1

GIS实验报告-地信讲解

地理信息系统原理实验报告 班级: 学号: 姓名: 指导教师:

一、实验目的 1熟悉桌面GIS软件Super Map的界面环境 2初步掌握Super Map的主要工具及菜单命令的使用 3理解GIS软件应具有的基本功能 4结合对所选地图的矢量化的操作,具体掌握GIS软件的操作步骤 二、实验时间 1、第八周----第十六周进行实验绘图实体操作 2、第十七周----第十九周进行图片剪切,资料整理,总结报告 三、实验内容 ●Supermap Deskpro的认识 Supermap Deskpro是超图的专业桌面GIS软件之一。Super Map GIS桌面平台产品是基于Super Map GIS核心技术研制开发的一体化的GIS桌面软件,是Super Map GIS系列产品的重要组成部分,它界面友好、简单易用,不仅可以很轻松地完成对空间数据的浏览、编辑、查询、制图输出等操作,而且还能完成拓扑分析、三维建模、空间分析、网络分析等较高级的 GIS 功能。 SuperMap Deskpro 是一款专业桌面GIS软件,提供了地图编辑、属性数据管理、分析与辅助决策相关业务以及输出地图、打印报表、三维建模等方面的功能。SuperMap Deskpro 作为一个全面分析管理的工具,应用于土地管理、林业、电力、电信、交通、城市管网、资源管理、环境分析、旅游、水利、航空和军事等所有需要地图处理行业。 ●Supermap Deskpro的使用 通过该软件进行地图的矢量化,具体过程如下:

1、前期的准备 数据来源:纸质西安地图 地图的整体设计:遵循地图越详细越好的原则,我们对点、线、面数据集作了详细的规划,详情请看图层分层。考虑到以后做专题图,对数据集属性字段做了必要的添加,用以区分不同的地物。 本地图特色:采用Deskpro软件自带的矢量符号库符号分别作点、线、面专题图。 2、地图矢量 2.1纸质地图的扫描扫描之前对地图进行图面整理,扫描的分辨率设为 300-500dpi,扫描后得到*.jpg格式的原始栅格数据的地图 2.2创建相应的坐标系数据源启动Deskpro选择新建工作空间。 新建数据源

软件设计实验报告

通达学院 2017/2018 学年第 1 学期 课程设计实验报告 模块名称综合软件设计 专业通信工程 学生班级141301 学生学号14130118 学生姓名陈启朋 指导教师王诚

目录 第一章在线考试系统 (1) 1.1 实验目的 (1) 1.2 实验内容 (1) 1.3.1考试登录模块设计 (1) 1.3.2管理员模块设计 (7) 1.4 实验结果 (12) 第二章学生成绩管理系统 (13) 2.1 实验目的 (13) 2.2 实验内容 (13) 2.3 实验过程 (13) 2.3.1学生成绩管理模块设计 (13) 2.3.2 公共模块设计 (18) 2.4 实验结果 (20) 总结 (21) 参考文献 (21)

第一章在线考试系统 1.1 实验目的 通过本次软件设计,使学生掌握并能熟练运用Java和mysql语言编写程序,掌握面向对象的概念,采用C/S结构,设计数据库模型,能够了解和数据库连接的方法。 1.2 实验内容 本次实验的内容是编辑生成试题库,随机生成本次考试试题,提供在先评分并保存结果;同时,管理员可以添加、修改、删除考题和考生用户。 1.3 实验过程 1.3.1考试登录模块设计 主要程序如下: package com.Exam.Index; import java.awt.Insets; import javax.swing.*; import javax.swing.GroupLayout; import https://www.360docs.net/doc/6e4993159.html,youtStyle; import com.Exam.bean.*;

import com.Exam.controller.ControllerFrame; import com.Exam.dao.*; public class MyLand extends javax.swing.JFrame { initComponents(); }@SuppressWarnings("unchecked") private void initComponents() { jTextField3 = new javax.swing.JTextField(); jTextField1 = new javax.swing.JTextField(); jpanel = new MyJPanel(); choicejLabel = new javax.swing.JLabel(); userChoicejComboBox = new javax.swing.JComboBox(); choicejLabel1 = new javax.swing.JLabel(); UserNameTextField = new javax.swing.JTextField(); choicejLabel2 = new javax.swing.JLabel(); PassWordjTextField = new javax.swing.JPasswordField(); enterButton = new javax.swing.JButton(); enterButton.setMargin(new Insets(2, 2, 2, 2)); resButtonjButton = new javax.swing.JButton(); resButtonjButton.setMargin(new Insets(2, 2, 2, 2)); jTextField3.setText("jTextField3"); jTextField1.setText("jTextField1"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); choicejLabel.setText("选择用户:"); userChoicejComboBox.setModel(newjavax.swing.DefaultComboBoxModel(new String[] { "","考生", "管理员" })); setTitle("考试系统"); choicejLabel1.setText("用户名:"); UserNameTextField.setText(""); choicejLabel2.setText(" 密码:"); PassWordjTextField.setText(""); enterButton.setText("登录"); enterButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { enterButtonActionPerformed(evt); } }); resButtonjButton.setText("重置"); resButtonjButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

GIS 软件基本功能及操作实验报告

成都信息工程学院资源环境学院《GIS原理》实验报告 实验名称GIS 软件基本功能及操作 实验时间2015.3.19 实验地点资环楼229 姓名 学号 班级遥感131

《GIS原理》实验报告 一、实验目的及要求 1)熟悉 ArcGis Desktop 10 的主要模块功能 2)熟悉 ArcMap、ArcCatalog 的基本操作 3)了解 ESRI 软件的 Geodatabase、Shapefile、Coverage 矢量数据 结构及栅格数据结构 二、实验设备及软件平台 ArcMap10.2、ArcCatalog10.2 三、实验原理 1. ArcCatalog10.2里面建立自己的地理数据库,其可查看数据的各种属性。 2.加载进入ArcMap10.2里面的数据可通过属性界面修改或是改变它的属性,也可将其制作成地图导出。 四、实验内容与步骤 ArcCatalog的基本操作: 1)启动ArcCatalog,建立与数据源的联系;

2)点击目录树中的emidalat,通过“预览”查看数据高程值,通过“描述”查看数据元数据等相关信息; 3)通过“自定义”菜单中“ArcCatalog项目”功能,切换到“元数据”选项卡,修改“元数据样式”。

4)同3,查看emidastrm.shp文件元数据相关信息,在“预览”时,在下方选择中选择“预览选项”

5)创建一个个人geodatabase,并将emidalat、emidastrm.shp导入该geodatabase 中。右键点击目录树中的目录,选择“新建”、“个人地理数据库”,点击新建的数据库,重命名为“mytest.mdb”。 6)练习在ArcCatalog中复制、移动文件。将emidastrm.shp复制 拷贝,并成为emidastrmcopy.shp

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

GIS空间分析报告实验报告材料

标准文案 本科学生综合性、设计性 实验报告 姓名_任富祖_学号_134130412 专业地理信息系统班级2013级GIS 实验课程名称地理信息系统原理 指导教师_董铭_ 开课学期 2014 至_2015 学年_下学期 上课时间 2015_年 3-6月 云南师范大学旅游与地理科学学院

图一 (三)空间分析 (1)在界面中观看加载进来的两个面图层,发现在安徽省境界外仍然有湖的存在,而在省外的是我们不考虑的,所以我们要将它删掉。如图二所示

图二 (2)选择“arctoolbox”中“extract”选项下的“clip”选项,将“湖”当做输入 图层,“城市区域”当做裁剪图层。如图三 图三 (3)图层输出了以后,发现湖在省外的部分都没有了,打开“湖—clip”的属性表, 点击字段下面的自动计算更新一下数据,发现数据和以前的也不一样了。如图四,当 所以数据都更新好之后进入下一步。

图四 (4)这一步要做的是计算土地面积,土地面积就是行政区域减掉湖的面积,所以这一步我们要用的空间叠合分析中的另外一个工具“erase”。打开“arctoolbox”,点击“overlay”选中“erase”工具,双击,出现了如图五的对话框,我们选择“城市区域”为输入图层,而“湖—clip”为擦去图层,点击OK,生成了“城市区域—Erase” 图层。 图六

(5)点击右键,打开属性表,更新一下数据,这些土地的面积就是减掉湖的面积之后所剩下的了。如图七 图七 图八是之前没有减掉湖面积的属性表,我们可以进行一下对比。 图八 (6)添加字段“人口数”这些是从网上查找下来的资料,每个城市的总人数,知道人口数和土地面积了以后,我们就可以计算人口密度了。新建一个字段“人口密度”点击右键,选择“field Calculator”选择人口密度=[人口数]/[面积],这样字段下面就会自动计算出各个城市的人口密度了。如图九

地理信息系统实验报告

地理信息系统实验报告 ——模仿百度地图设计宏观旅游线路 一、背景 通过本学期对地理信息系统(GIS)课程的学习,收获很多,对GIS有了更加深刻的认识,从地理信息数据的获取、加工处理、到数据的应用,我充分认识到了其作为一门学科的博大精深。 正值今年夏天我所在的宿舍要到上海的外高桥船厂实习,计划沿路到太原、石家庄、杭州、武汉和南京等游玩然后各自回家。这就要求选择最短路线。现在网路地图(如百度地图)可以方便的选择点到点的自驾车路径,但是不能计算沿程经过特定若干点的最优路径,也不能选择铁路方式。在学习地理信息系统空间分析之前,可以利用城市间的拓扑关系运用运筹学中的Dijkstra方法计算,但是铁路线错综复杂建立数学模型简化太大。 所以利用Arcview等地理信息软件的优越性就体现出来了,利用网络分析扩展模块Network Analyst的最短路径就可以方便的在多点之间选择最佳路径。 二、实验目的 (1)学习ArcView中的网络分析,学会利用空间分析中的寻找最佳行进路线(Find Best Route)的方法解决具体问题,掌握确定最近设施(Find Closest Facility)的操作方法。

(2)掌握ArcView中网络分析所用到的菜单命令、工具图标的功能及使用步骤。(3)模仿百度地图,建立城市间的铁路交通图,利用热连接添加多媒体信息。 三、数据准备工作 利用普通JPG格式的铁路交通图在AutoCAD中描出所需的图形,导入Arcview中,形成线状要素的.shp文件。 导入Arcview中,转换成.shp文件,图形单位为Kilometer,如图2

添加点状主题Res1_4m.shp,作为城市。并修改属性表“Attributes of Res1_4m”,添加field,Res1_4m_id(城市编号)、name(城市名称)、为name 属性列添加为label,便于识别,最终形成属性表如图3。 选用菜单“theme”中的“Auto-label”,弹出Auto_label对话框,如图4。

相关文档
最新文档