GIS程序设计实验报告(c++)

合集下载

GIS原理实验一实验报告

GIS原理实验一实验报告

GIS原理实验一实验报告
实验一:GIS原理实验报告
一、实验目的:
1.了解GIS原理的基本概念和基本原理;
2.掌握ArcGIS软件的基本操作方法;
二、实验仪器与材料:
1.计算机;
2.ArcGIS软件。

三、实验原理及方法:
1.实验原理:
GIS(地理信息系统)是一种用来存储、管理、查询、分析和显示地理位置相关的数据的系统。

它通过将地理数据与属性数据结合起来,可以用来理解和分析地理问题。

GIS技术在地理学、城市规划、环境科学等领域具有广泛的应用。

2.实验方法:
四、实验步骤:
1.启动ArcGIS软件,在主界面点击“打开”按钮,选择一个已有的地理数据文件进行加载。

3.通过“绘制”工具栏的不同绘图工具,可以在地图上绘制点、线、面等地理要素。

4.选择“选择”工具栏,可以对地理要素进行选择操作,如选择一个
区域内的所有要素。

5.选择“查询”工具栏,可以对地理要素进行属性查询操作,如查询
其中一字段大于其中一值的要素。

6.选择“分析”工具栏,可以对地理要素进行空间分析操作,如计算
两个要素之间的距离。

五、实验结果与分析:
六、实验总结:
七、实验心得:
通过本次实验,我对GIS原理有了更深入的了解,并掌握了ArcGIS
软件的基本操作方法。

在实验过程中,我遇到了一些困难,但通过查阅相
关资料和询问老师的帮助,我顺利完成了实验。

实验中,我发现GIS技术
的应用非常广泛,对于我们理解地理问题和进行地理数据分析非常有帮助。

我会继续学习和研究GIS技术,提高自己的技能水平。

地理信息系统实验报告

地理信息系统实验报告

地理信息系统实验报告
一、实验目的
本实验旨在通过实际操作,加深对地理信息系统(GIS)的理解,
掌握GIS的基本功能和操作方法,提高地理信息处理和空间分析能力。

二、实验内容
1. 熟悉GIS软件的基本界面和功能;
2. 创建地理数据,包括点、线、面数据;
3. 对地理数据进行编辑、查询、分析和可视化操作;
4. 制作地图输出,并进行布局设计。

三、实验步骤
1. 打开GIS软件,创建新项目;
2. 导入地理数据,包括栅格数据和矢量数据;
3. 对数据进行编辑,添加属性信息;
4. 进行空间分析,包括缓冲区分析、叠加分析等;
5. 设计地图输出,包括添加比例尺、图例、文字标注等;
6. 输出地图文件或打印地图。

四、实验结果
经过实验操作,我们成功创建了一个包含多种地理数据的GIS项目,对这些数据进行了编辑和分析,最终设计制作出了一幅具有美观布局
和丰富信息的地图输出。

通过实验,我们深入了解了GIS的应用和功能,提高了对地理信息系统的认识和技能水平。

五、实验总结
地理信息系统作为一种重要的地理信息处理工具,已经在各个领域
得到广泛应用,对地理信息的管理、分析和展示起着重要作用。

通过
本次实验,我们不仅掌握了GIS软件的基本操作方法,还加深了对空
间数据处理和地图制作流程的理解。

在今后的学习和工作中,我们将
能更加灵活和熟练地运用地理信息系统进行地理信息处理和空间分析。

六、参考文献
暂无
七、附录
实验数据文件及地图输出截图
以上为本次地理信息系统实验的报告内容,谢谢!。

GIS程序设计实验报告(c++)

GIS程序设计实验报告(c++)

合肥工业大学资源与环境工程学院《GIS程序设计》实验报告姓名学号专业地理信息系统班级任课教师实验1:在小范围内用C++增强C的功能一、实验目的和要求目的:快速掌握C++语言编程的方法,在小范围内增强C++的功能,主要内容有:(1)输入流、输出流的使用;(2)函数原型;(3)new和delete运算符分配内存。

二、实验代码(附注释)或解答(1)编写一个用输入和输出流运算符进行的输入和输出的程序。

从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。

# include < iostream.h>//两数和差积商# include < stdio.h>void main (){ double a,b,c,d,e,f;cout<<"输入两个数"<<endl;cin>>a>>b;c=a+b;d=a-b;e=a*b;f=a/b;cout<<"a+b="<<c<<endl;cout<<"a-b="<<d<<endl;cout<<"a*b="<<e<<endl;cout<<"a/b="<<f<<endl;}(2)用new和delete运算符动态分配内存空间的方法编写程序。

从键盘输入3 3整型数组的数据,并计算出所有元素之和,打印出最大值和最小值。

//使用new delete动态内存分配#include < iostream.h>#include <stdio.h>void main (){ int m,n,sum=0,i,j,min,max;int **a; //创建二维指针cout<<"输入数组行数列数";cin>>m>>n;a=new int *[m];//创建指针数组for(i=0;i<m;i++){ a[i]=new int [m];//为每一行分配空间}cout<<"输入数组元素";for(i=0;i<m;i++) //输入数组元素for(j=0;j<n;j++){ cin>>a[i][j];}min=max=a[0][0];for(i=0;i<m;i++)for(j=0;j<n;j++){if(min>a[i][j])min=a[i][j];//求最小值if(max<a[i][j])max=a[i][j];//求最大值sum=sum+a[i][j];//求和}for(i=0;i<m;i++){delete []a[i];}delete []a;//释放动态数组cout<<"sum="<<sum<<endl;cout<<"min="<<min<<endl<<"max="<<max<<endl;}(3)用内联函数编写程序。

GIS实验报告

GIS实验报告

GIS实验报告一、实验目的本次 GIS 实验旨在深入了解地理信息系统(GIS)的基本原理和操作方法,通过实际操作和数据分析,掌握 GIS 在地理数据处理、空间分析和地图制作等方面的应用,提高对地理空间信息的理解和处理能力。

二、实验环境本次实验使用的软件为 ArcGIS 106,操作系统为 Windows 10。

实验数据包括地形数据、土地利用数据、道路数据等。

三、实验内容1、数据导入与预处理首先,将实验所需的各类数据导入 ArcGIS 中。

在导入过程中,需要注意数据格式的兼容性,并对数据进行必要的预处理,如坐标系的定义、数据的裁剪和拼接等。

通过这些操作,确保数据的准确性和完整性,为后续的分析和处理奠定基础。

2、空间数据编辑在 ArcGIS 中,使用编辑工具对空间数据进行修改和完善。

例如,对道路数据进行线段的添加、删除和修改,以使其更符合实际情况。

同时,对土地利用数据中的错误分类进行纠正,保证数据的质量。

3、空间分析运用 ArcGIS 的空间分析功能,进行缓冲区分析、叠加分析和网络分析等。

(1)缓冲区分析:以道路中心线为基础,创建一定宽度的缓冲区,用于评估道路对周边环境的影响范围。

(2)叠加分析:将土地利用数据与地形数据进行叠加,分析不同地形条件下的土地利用类型分布情况。

(3)网络分析:通过构建道路网络模型,计算最短路径、服务范围等,为交通规划和资源配送提供决策支持。

4、地图制作与输出根据分析结果,制作专题地图。

在地图制作过程中,合理选择地图符号、颜色和标注,以清晰直观地展示地理信息。

同时,添加图例、比例尺和指北针等地图要素,增强地图的可读性。

最后,将制作好的地图以多种格式输出,如图片格式(JPEG、PNG 等)和 PDF 格式,以便于分享和使用。

四、实验结果1、数据预处理后,各类数据的坐标系统一,数据完整性得到保障,为后续分析提供了可靠的数据基础。

2、空间数据编辑使得道路和土地利用数据更加准确和合理,提高了数据的质量。

GIS程序设计实验报告

GIS程序设计实验报告

合肥工业大学GIS程序设计实践报告设计名称学生成绩管理系统班级地理信息系统11—1班学生姓名卞雨凡学号 20114608起止时间 2013.7.1—2013.7.51.目的及意义《GIS程序设计》是GIS专业的一门院定必修课,主要内容是介绍C++语言中的数据类型、运算、语句结构及其程序设计的基本方法;《GIS程序设计实践》是在学生学习完上述课程以后进行的设计性实验课程,目的是使学生能够更好地掌握C++程序设计语言,更深地理解面向对象程序设计的基本概念与方法,从而学会利用C++语言解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。

通过做课程实验,学生应能加深对讲授内容的理解,累积经验、学会独立上机调试程序;并且逐步达到综合运用封装、继承和多态等C++难点知识,真正掌握C++语言的精华,从而熟练应用C++程序设计语言。

2.选题概述该成绩管理系统的基础信息构成由若干学生的信息记录组成,记录包括学生的学号(不超过10个字符)、姓名、专业、性别、成绩(数据类型为double)组成。

所具有的功能如下:(1)添加学生成绩信息(2)显示学生成绩信息(3)查找学生成绩信息(4)修改学生成绩信息(5)删除学生成绩信息(6)插入学生成绩信息(7)按平均分成绩排列(8)显示全部学生成绩信息(0)退出本系统同时本系统分为学生用户平台和教师用户平台,学生用户平台只具备以上的(2)(3)(8)功能,教师用户平台则是具备所有功能。

3.模块划分及类图说明模块:该成绩管理系统的模块划分共有78个部分组成,分别是“添加学生成绩信息记录”、“显示学生成绩信息记录”、“查找学生成绩信息记录”、“修改或删除学生成绩信息记录”、“保存学生成绩信息记录”、“显示全部学生成绩 ”和“退出学生成绩管理系统”。

类图:4.实施方案(1)相关理论知识:设计学生成绩管理系统,实现的功能有查询、修改、增加和删除。

使用C++Student +Num: string+name: string +class: string+add():void +display():void+search():void +delete():voidTeachervoid add: void void display: void void search : void void change :void void Delete : void void Output : void void Sort : void void Insert : voidGrade+math:float+c_program:float +media:float+float english:float +float sport:float创建学生成绩数据表,创建表结构。

gis设计与实现实验报告

gis设计与实现实验报告

竭诚为您提供优质文档/双击可除gis设计与实现实验报告篇一:gIs软件设计与实现实验报告gIs软件设计与实现实验报告姓名:王兴平班级:测绘1103班学号:0145110620指导老师:李光强20XX/1/5实验一数据加载与图层控制一、实验目的1.了解组件Arcengine9.3开发环境的构建,以及相关软件的安装;2.掌握Ae组件实现数据加载、缩放、平移等简单的功能;3.掌握程序代码实现数据加载、缩放、平移、拉窗放大等功能;4.掌握使用程序代码控制图层可视性、图层移动、图层移除等操作。

二、实验准备完成时间:2学时预备知识:实验的操作系统环境为windowsxp以上操作系统,要基于Arcengine进行应用开发,系统中需要安装有:ArcgIs9.3、Arcengine9.3和c#20XX以上版本相应软件。

实验数据:文件夹“中国地图”三、实验步骤及方法1.创建c#工程,添加窗体及相关Ae组件,窗体设计如下图所示:运行程序,并点击工具栏上按钮,记录各功能按钮的操作。

2.利用程序代码添加shp文件,并完成shp加载、地图缩放、全图、平移、拉窗放大等操作,设计界面如下图所示:要求:1)工具栏上的“打开”按钮,功能是通过打开文件对话框,允许一次加载多个shp文件,而且在对话框中仅显示shp文件;2)平移、放大、缩小功能按钮的操作顺序过程必须是用户先点击按钮,然后再点击地图时才完成相应功能操作;3)工具栏上的最后一个按钮为拉窗放大,即用户点击该按钮时,在地图可以画出一个矩形,然后将矩形内的地图放大。

3.使用程序代码控制图层可见性及移动图层,界面设计如下图所示:注意:1)工具栏后四个按钮依次为:上移选中图层、下移选中图层、移除选中图层操作;2)图层列表里,依据图层是否选中而设置图层的可见性。

4.为地图添加右键菜单,在右键菜单中实现全图、平移、放大、缩小、信息(identity)功能,使用鼠标中键实现地图平移。

五.实验主要代码privatevoidLoadFile_click(objectsender,eventArgse) {openFileDialogdlg=newopenFileDialog();dlg.Filter="shapefile(*.shp)|*.shp";dlg.Title="打开shape数据文档";dlg.multiselect=true;//定义存放打开IFeatureclass的字符串数组string[]Filepath;if(dlg.showDialog()==DialogResult.oK){Filepath=newstring[dlg.Filenames.Length];Filepath=dlg.Filenames;if(Filepath.Length>0){stringworkspacepath=system.Io.path.getDirectoryname (Filepath[0]);string[]shapeFilepath=newstring[Filepath.Length];//获得打开IFeatureclass的字符串数组for(inti=0;i {shapeFilepath[i]=system.Io.path.getFilename(Filepat h[i]);}IworkspaceFactorypworkspaceFactory=newshapefilework spaceFactoryclass();Iworkspacepworkspace=pworkspace Factory.openFromFile(workspacepath,0);IFeatureworkspacepFeatureworkspace=pworkspaceasIFea tureworkspace;for(inti=0;i {IFeatureclasspFeatureclass=pFeatureworkspace.openFe atureclass(shapeFilepath[i]);IDatasetpDataset=pFeat ureclassasIDataset;IFeatureLayerpFeatureLayer=newFeatureLayerclass();pFeatureLayer.Featureclass=pFeatureclass;=;ILayerpLayer=pFeatureLayerasILayer;this.axmapcontrol1.map.AddLayer(pLayer);this.axmapcontrol2.map.AddLayer(pLayer);}}}}篇二:gIs设计与开发实验报告gIs设计与开发实验报告姓名:郭伟学号:x21114003班级:11级地理信息系统p2.2使用控件创建第一个桌面应用程序 (3)p2.3访问地图范围及属性表 (13)p2.4命令、工具与命令条 (21)p2.5创建几何对象和空间参考 (41)p2.6空间数据库相关开发 (49)p2.7空间数据读取与输出 (62)p2.8空间查询................................................. (73)p2.9空间分析.................................................。

gis软件设计实验报告完整版

gis软件设计实验报告完整版

地理与生物信息学院"2012 / 2013 学年第一学期GIS软件设计实验报告'课程名称:GIS软件设计实验名称:小型GIS软件系统的设计与开发}班级学号 B B学生姓名冶福荣郑正中指导教师原立峰、日期:2012 年9 月一、软件设计题目】基于ArcGIS Engine及C#编程语言构建一个小型GIS平台系统。

二、设计内容软件为一个小型的GIS平台,主要包括:空间数据存取模块、地图浏览模块、地图编辑模块、空间查询模块、空间分析模块、地图修饰模块。

(1)空间数据存取模块该模块实现对地图数据的新建、加载、保存、另存和打印输出对于地图的硬拷贝输出实现所见即所得效果。

)(2)地图浏览模块该模块主要包括地图工具、滚动条,状态条、鹰眼图、内容视图等。

其中地图工具可以实现放大、缩小、中心放大、中心缩小、全景视图、漫游、要素选择和取消、空间查询等具体功能。

(3)地图数据编辑模块该模块能够实现新建图层、添加图层、删除所有图层、开始编辑和结束编辑的操作。

编辑可以对图层进行创建新特征、修改任务、移动特征和设置捕捉环境等操作。

(4)空间查询模块'该模块实现的是属性查询。

(5)空间分析模块该模块可以进行缓冲区分析。

三、设计要求使用ArcGIS Engine和C#、等编程语言完成任务。

四、-五、实现过程1.空间数据存储模块图1. 文件菜单}图2. 工具栏A.新建地图1、创建同步地图类ControlsSynchronizer2、新建新的地图对象IMap map=new map();同时更新地图文档B.加载shapefile文件和mxd文档1、[2、新建打开文档对话框,设置文件类型为”(*.shp)|*.shp”3、将对话框获得的shapefile文档的地址返回,检查文档是否存在,若存在则将文档加载,并将文档中的参数添加至featureclass和featurelayer中;若不存在,则错误提示。

4、更新mapcontrol和鹰眼中的地图。

GIS二次开发试验报告

GIS二次开发试验报告

GIS二次开发程序设计实习报告实验课程:GIS二次开发程序设计实验名称:设计程序完成图像基本操作班级:地信101学号: 1022062011姓名:汪翔实验日期: 2013 年 4 月 5 日GIS二次开发程序设计实习报告 (1)一.选题名称 (3)二.研究现状 (3)三.研究思路与方法 (3)四.编程与实现 (4)Arcmap下实现 (4)vb代码 (4)实现结果 (12)VS下实现 (13)C#代码 (14)五.结果与分析 (21)一.选题名称本次GIS二次程序设计实习中我所研究的是空间信息量算分析中的延伸率分析。

二.研究现状GIS的发展引领着空间分析也在迅速的走向成熟,因为空间分析作为GIS的核心技术,同时也是区别于其它信息系统的主要特征,能够根据地理对象的位置和形态特征等采用相关分析模型对其进行综合性的分析、预测乃至决策和支持。

本文针对空间分析在城市发展建设中的作用以及具体内容进行了探讨研究。

我所研究的延伸率是反应城市空间离散程度的一个重要指标,它的计算公式为:延伸率=L/L’L为区域最长轴的长度,L’为区域最短轴的长度三.研究思路与方法当把城市当作单个面状目标看待时,可以直接使用面状目标的形状系数,如延伸率,形状比,紧凑度,圆形率等。

这些指标计算较简单,反应一个抽象的形状。

当把城市看成是面状目标的几何,可以使用放射状指数,标准面积指数等较为复杂的指标来计算。

反应了城市内部的具体联系。

根据这些指标,可以为政府决策,商业运行,旅游开发等一系列经济文化活动带来较为科学的评价指标和行为指导。

在本次实习中,我所研究的方向是利用延伸率来研究城市的空间。

延伸率反应城市空间的带状延伸程度,带状延伸越明显则城市延伸率越大,反应城市的离散程度越大。

四.编程与实现本次实习中主要利用的平台有ArcMap 以及Visual Studio,用于实现的语言有C#及VB,我在老师的指导和查阅书籍的情况下,分别用两种语言实现延伸率的量算,现将结果展示如下:1)在ArcMap下利用VB进行实现:1.创建一个UI按钮控件,重命名为延伸率,打开代码编辑窗口。

gis的实验报告和心得体会

gis的实验报告和心得体会

g i s的实验报告和心得体会(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--gis的实验报告和心得体会这是一篇由网络搜集整理的关于有关gis的实验报告和心得体会的文档,希望对你能有帮助。

实验一,我感觉还不能很熟练的应用mapinfo的功能以及菜单栏、工具栏中各个图标的功能,所以当我开始做实验一时碰到的问题还是不少的,首先是对mapinfo软件的相关操作功能不太了解,比如加载数据的图标,如何使打开的图变大缩小,如何浏览做完后的实验成果图,以及在实验过程中,哪些步骤是不能省略掉的,比如使用控制图层在缩放范围内显示的这个小实验,就要注意打开几个图层的界面看起来非常复杂,通过图层控制来操作,可以使图层在缩放范围内显示,这就需要在图层控制的对话框中哪些框框该打钩,哪些不该打钩,这样所显示的效果就会不一样。

只有熟练掌握了mapinfo的基本操作,以及步骤间的衔接才能完成实验。

最后还是自己耐心的看书和实践中去找答案和解决问题。

在这个实验中我学会了如何mapinfo软件的基本操作和怎么样制作地图图层以及如何使用模板创建专题地图。

在制作这个实验的过程中体会了很多,也感觉在做专题地图和地图制作时的整个过程充满着趣味性,使我对地图的相关制作有了一定的了解。

实验二实验二,因为已经对mapinfo软件操作功能有了一个初步的了解了,所以当在开始着手制作实验二是实验相关操作步骤时,在对图像进行屏幕跟踪化过程时和后面进行的图像加载和配准时碰到的问题也相对较少也比较熟练。

从实验二开始要用arcview 软件时由于刚接触这个软件所以在做这部分的实验时制作速度显然比较慢碰到的问题也还有的,面对许多功能按钮不熟悉时只能查找资料和问同学,但最终还是把实验二给做了,以下是我总结的注意点。

1. 做屏幕跟踪这个实验时,在mapinfo中打开图像文件时,注意选择文件类型是栅格图像,然后点击一下所要打开的福州市行政图,这样呈现出所要的画面。

GIS实验报告范文

GIS实验报告范文

GIS实验报告范文
一、引言
地理信息系统(Geographic Information System,简称GIS)是一种将地理空间信息与属性信息相结合的技术和方法。

本实验旨在通过对GIS软件的学习和实践,掌握GIS的基本功能和操作方法。

二、实验目的
1.熟悉GIS软件的界面及功能;
3.实现GIS数据的空间和属性查询。

三、实验内容
1.软件安装与启动
首先,我们需要安装GIS软件并启动它,在实验开始之前,请确保电脑已经正确安装了GIS软件。

2.数据导入与显示
首先,我们需要导入地理数据。

在本次实验中,我们将使用一份包含地点信息的CSV文件进行实验。

打开GIS软件后,点击“导入数据”按钮,选择对应的CSV文件,然后点击“导入”。

GIS软件将会自动读取CSV文件并将文件中的地理点显示在地图上。

4.空间查询
5.属性查询
除了空间查询之外,GIS软件还可以进行属性查询。

在“查询数据”
界面中,选择要查询的属性和相应的操作符,然后输入要查询的数值。


击“查询”按钮,GIS软件将会返回满足条件的地理点信息。

四、实验心得
通过空间和属性查询,我学会了如何对地理数据进行相应的查询和筛选,以便更好地获取我们所需的数据。

总的来说,本次实验增强了我的GIS软件操作能力,并且对GIS的应
用领域有了一定的了解。

希望在以后的学习中能够继续深入研究GIS技术,将其应用到更多的领域中去。

GIS应用系统简例的建立实验报告

GIS应用系统简例的建立实验报告

实验二GIS应用系统简例的建立实验内容:ArcGIS桌面系统主要由ArcCatalog、ArcMap、ArcToolbox三部分组成,ArcCatalog类似于Windows中“资源管理器”,用于组织和管理所有GIS数据。

它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。

本次试验要学会利用ArcCatalog管理地理空间数据,并且建立一个简单的GIS应用系统,利用ArcMap中Editor工具条的图形编辑的功能,输入图形,以获得空间信息系统的基本图形数据,再在该图形数据的基础上,增加一些属性数据,使该简单的GIS应用系统完整。

实现方法:1.打开ArcCatalog,界面如图1-1所示,由于实验使用的是ArcGIS10,左侧显示目录树,右侧为数据显示窗口,有三个选项卡:内容、预览、描述,而ArcGIS9右侧的选项卡是内容、预览、元数据,这一点是不同于ArcGIS10的。

图1-1 ArcCatalog界面2.在ArcCatalog先添加文件夹链接,将从FTP上下载的实验数据文件夹导入该管理器中,在目录树中选中WORLD_region图层,点击右侧“预览”选项卡,可以看到如图1-2所示的图形数据。

图1-2 预览图形数据3.在该预览窗口下方Preview的下拉框中有两个选项:地理、表,选择“地理”,显示的是地图,选择“表”,显示的是属性数据,如图1-3显示。

图1-3 属性数据预览4.将该图层切换到“预览”视图,点击工具条上的生成缩略图按钮,然后切换到“内容”视图下,点击按钮,将数据查看方式改为“缩略图方式”,如图1-4所示。

图1-4 缩略图显示5.在ArcCatalog目录树中,右键选中“实验二”的文件夹,选择“新建->shapefile”,出现新建图层对话框,填写图层名称“110914228胡逸雯”,并选择图元类型“面”,单击“确定”,如图1-5所示。

定义一个时间类Time,它能提供由时分秒组成的时间。能够修改时间和打印出时间。

定义一个时间类Time,它能提供由时分秒组成的时间。能够修改时间和打印出时间。
实验内容
1、(1)实现代码:
#include<iostream.h>
class Time
{public:
int h;
int m;
int s;
void inputT();
void changeT();
void output();
};
void Time::inputT()
{begin:
int a,b,c;
cout<<"input time(H:M:S)";
cin>>a>>b>>c;
if(c>60 || c<0)
{
cout<<" Wrong time! please set again !"<<endl;
goto begin;
}
else
{
if(b>60 || b<0)
{
cout<<"Wrong time! please set again !"<<endl;
我从事初中的历史课程教学工作希望与志同道合的朋友一起交流学习
《GIS程序设计》实验报告实验一
学号:姓名:
一、实验目的和要求
1.实验目的:
掌握类定义的方法,理解类类型,实例的含义;并且体会面向对象程序设计中数据隐藏的概念。
2.主要内容:
.定义一个时间类Time,它能提供由时分秒组成的时间。能够修改时间和打印出时间。
{
cout<<"Wrong time! please set again!"<<endl;

GIS实验报告

GIS实验报告

实验报告GIS应用软件开发专业:测绘工程班级: 10级测绘三班姓名:学号:****:**撰写时间:2013年5月20日星期一目录一、程序运行演示 (2)二、问题及解决方案 (6)三、源程序代码 (7)四、心得体会 (14)一、程序运行演示1.新建项目文件,并实现file中的基本功能,显示地图基本要素。

如图1图12.在工具栏加载按钮,按钮功能是对当前视图缩小3倍;在工具栏加载工具,工具功能在地图上标注当前日期。

如图2图2按钮实现缩小3倍功能操作,如图3图33.点击地图节点,弹出如图4,图5菜单并实现菜单中的内容:图4图54.点击图层节点,弹出如图6菜单并需要实现菜单中的内容图65.点击Legend Class,弹出符号选择对话框,该对话框供用户按需要选择符号并进行更改。

如图7图76.打开图层属性表,用户选择某条记录,可弹出如图8,9所示的右键菜单,并实现右键菜单中的内容图8图9二、问题及解决方案问题1.VS2008与2010之间要进行格式转换,按照所导向的步骤进行,否则程序将无法正常运行,出现错误问题2.构建好基本框架后,地图文档中要素显示出现问题。

此问题要添加licence控件,否则无法显示地图要素。

问题3.使用Toolbar和Toc功能时无法进行操作此问题应在属性设置时建立关联功能。

问题4.程序Program文件中要添加相应功能键语句,否则将无法实现功能。

问题5.引用接口,方法,例如ADF,要添加相应的引用,否则程序出现错误。

问题6.在实现两个自定义按钮与工具时,遇到的问题:先直接引用现有项未实现,发现缺少一些东西,后自己直接创建的Basetool和Basecommand类;在代码中报错,重新生成解决方案后顺利解决这个问题。

问题7.在实现地图和图层节点的右键功能时,遇到琐碎的问题,在这个过程中直接引用老师所给的几个类,但是报错,是因为命名空间未做修改;缺少引用,需要根据错误提示添加相应的引用三、源程序代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.InteropServices;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Display;namespace WindowsFormsApplication2{public partial class MainForm : Form{#region class private membersprivate IMapControl3 m_mapControl = null;private string m_mapDocumentName = string.Empty;#endregionIMapDocument m_MapDocument = new MapDocument();#region class constructorprivate ITOCControl2 m_tocControl;private IToolbarMenu m_menuMap;private IToolbarMenu m_menuLayer;private ZoomIn3XCMD1 test = new ZoomIn3XCMD1();public MainForm(){InitializeComponent();}private void newDocumentToolStripMenuItem_Click(object sender, EventArgs e){ICommand command = new CreateNewDocument();command.OnCreate(m_mapControl.Object);command.OnClick();}private void openDocumentToolStripMenuItem_Click(object sender, EventArgs e){openFileDialog1.Title = "Save Map Document As";openFileDialog1.Filter = "Map Documents (*.mxd)|*.mxd";openFileDialog1.ShowDialog();string sFilePath = openFileDialog1.FileName;if (axMapControl1.CheckMxFile(sFilePath)){axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;axMapControl1.LoadMxFile(sFilePath, 0, Type.Missing);axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;}else{MessageBox.Show(sFilePath + "is not a valid ArcMap document");return;}private void MainForm_Load(object sender, EventArgs e){//get the MapControlm_mapControl = (IMapControl3)axMapControl1.Object;//disable the Save menu (since there is no document yet)this.menuSaveDoc.Enabled = false;//定义地图右键菜单,图层右键菜单m_tocControl = (ITOCControl2)axTOCControl1.Object;m_mapControl = (IMapControl3)axMapControl1.Object;//添加菜单到地图节点m_menuMap = new ToolbarMenu();m_menuMap.AddItem("esriControls.ControlsAdddataCommand", -1, 0, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuMap.AddItem(new LayerVisibility(), 1, 1, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuMap.AddItem(new LayerVisibility(), 2, 2, false, esriCommandStyles.esriCommandStyleTextOnly);//添加菜单到图层节点m_menuLayer = new ToolbarMenu();m_menuLayer.AddItem(new OpenAttributeTableCmd(), -1, 0, false, esriCommandStyles.esriCommandStyleIconAndText);//右键添加属性表m_menuLayer.AddItem(new RemoveLayer(), 1, 1, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new RemoveLayer(), 1, 2, true, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new ScaleThresholds(), 2, 3, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new ScaleThresholds(), 3, 4, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new LayerSelectable(), 1, 5, true, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new LayerSelectable(), 2, 6, false, esriCommandStyles.esriCommandStyleTextOnly);m_menuLayer.AddItem(new ZoomToLayer(), -1, 7, true, esriCommandStyles.esriCommandStyleTextOnly);//Set the hook of each menum_menuLayer.SetHook(m_mapControl);m_menuMap.SetHook(m_mapControl);axToolbarControl1.AddItem(test, -1, -1, true, 0, esriCommandStyles.esriCommandStyleIconAndText);axToolbarControl1.AddItem(new AddDateTool(), -1, -1, false, 0,esriCommandStyles.esriCommandStyleIconAndText);}private void saveDocumentToolStripMenuItem_Click(object sender, EventArgs e){//execute Save Document commandif (m_mapControl.CheckMxFile(m_mapDocumentName)){//create a new instance of a MapDocumentIMapDocument mapDoc = new MapDocument();mapDoc.Open(m_mapDocumentName, string.Empty);//Make sure that the MapDocument is not readonlyif (mapDoc.get_IsReadOnly(m_mapDocumentName)){MessageBox.Show("Map document is read only!");mapDoc.Close();return;}//Replace its contents with the current mapmapDoc.ReplaceContents((IMxdContents)m_mapControl.Map);//save the MapDocument in order to persist itmapDoc.Save(esRelativePaths, false);//close the MapDocumentmapDoc.Close();}}#endregionprivate void saveAsToolStripMenuItem_Click(object sender, EventArgs e){//execute SaveAs Document commandICommand command = new ControlsSaveAsDocCommand();command.OnCreate(m_mapControl);command.OnClick();}private void exitToolStripMenuItem_Click(object sender, EventArgs e){Application.Exit();}private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e){statusBarXY.Text = string.Format("{0}, {1} {2}", e.mapX.ToString("#######.##"), e.mapY.ToString("#######.##"), axMapControl1.MapUnits.ToString().Substring(4));}private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e){test.m_activeView = this.axMapControl1.ActiveView;//添加两个工具时添加//get the current document name from the MapControlm_mapDocumentName = m_mapControl.DocumentFilename;//if there is no MapDocument, diable the Save menu and clear the statusbarif (m_mapDocumentName == string.Empty){menuSaveDoc.Enabled = false;statusBarXY.Text = string.Empty;}else{//enable the Save manu and write the doc name to the statusbarmenuSaveDoc.Enabled = true;statusBarXY.Text = Path.GetFileName(m_mapDocumentName);}}private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e){if (e.button == 1){//IBasicMap map = new Map();IMap Map = new Map();IBasicMap map = (IBasicMap)Map;ILayer layer = new FeatureLayer();object other = new object();object index = new object();esriTOCControlItem item = new esriTOCControlItem();//Determine what kind of item has been clicked onaxTOCControl1.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index);//QI to IFeatureLayer and IGeoFeatuerLayer interfaceif (layer == null) return;IFeatureLayer featureLayer = layer as IFeatureLayer;if (featureLayer == null) return;IGeoFeatureLayer geoFeatureLayer = (IGeoFeatureLayer)featureLayer;ILegendClass legendClass = new LegendClass();ISymbol symbol = null;if (other is ILegendGroup && (int)index != -1){legendClass = ((ILegendGroup)other).get_Class((int)index);symbol = legendClass.Symbol;}if (symbol == null) return;symbol = GetSymbolByControl(symbol);//symbol = GetSymbolBySymbolSelector(symbol);if (symbol == null) return;legendClass.Symbol = symbol;this.Activate();//Fire contents changed event that the TOCControl listens toaxMapControl1.ActiveView.ContentsChanged();//Refresh the displayaxMapControl1.Refresh(esriViewDrawPhase.esriViewGeography, null, null);axTOCControl1.Update();}if (e.button == 2){esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;IBasicMap map = null; ILayer layer = null;object other = null; object index = null;//Determine what kind of item is selectedm_tocControl.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index);//Ensure the item gets selectedif (item == esriTOCControlItem.esriTOCControlItemMap)m_tocControl.SelectItem(map, null);elsem_tocControl.SelectItem(layer, null);// Set the layer into the CustomProperty (this is used by the custom layer commands)m_mapControl.CustomProperty = layer;//Popup the correct context menuif (item == esriTOCControlItem.esriTOCControlItemMap) m_menuMap.PopupMenu(e.x, e.y, m_tocControl.hWnd);if (item == esriTOCControlItem.esriTOCControlItemLayer) m_menuLayer.PopupMenu(e.x, e.y, m_tocControl.hWnd);}}private ISymbol GetSymbolByControl(ISymbol symbolType){ISymbol symbol = null;IStyleGalleryItem styleGalleryItem = null;esriSymbologyStyleClass styleClass = esriSymbologyStyleClass.esriStyleClassMarkerSymbols;if (symbolType is IMarkerSymbol){styleClass = esriSymbologyStyleClass.esriStyleClassMarkerSymbols;}if (symbolType is ILineSymbol){styleClass = esriSymbologyStyleClass.esriStyleClassLineSymbols;}if (symbolType is IFillSymbol){styleClass = esriSymbologyStyleClass.esriStyleClassFillSymbols;}GetSymbolByControlForm symbolForm = new GetSymbolByControlForm(styleClass);symbolForm.ShowDialog();styleGalleryItem = symbolForm.m_styleGalleryItem;if (styleGalleryItem == null) return null;symbol = styleGalleryItem.Item as ISymbol;symbolForm.Dispose();this.Activate();return symbol;}}}四、心得体会本次实验过程中,值得肯定的是,已对AO开发一般流程基本掌握:新建项目、搭建框架、实现各个框架中的各个功能、添加引用与类。

GIS实验报告介绍

GIS实验报告介绍

GIS实验报告介绍一、实验目的本实验旨在培养学生对地理信息系统(GIS)的基本理论和应用技术的掌握,通过实践操作,提高学生对GIS软件的操作能力和空间分析能力。

二、实验内容2.数据预处理:学生需要导入实验中所需的地理数据,并进行数据的预处理工作,包括数据格式转换、数据质量检查等。

3.空间数据查询和分析:学生需要学习和掌握GIS软件中的查询功能和空间分析功能,对导入的地理数据进行查询和分析,并生成相应的报表和图表。

4.制作地图:学生需要学习和掌握地图制作的基本步骤和技巧,包括地图样式的选择、符号的设置、比例尺的确定等。

5.空间数据可视化:学生需要学习和掌握GIS软件中的空间数据可视化功能,将分析结果以图形的形式呈现,使得空间分析结果更加直观和易于理解。

三、实验步骤2.导入地理数据:将实验指导书提供的地理数据导入到GIS软件中,并进行数据的预处理工作,包括数据格式转换、数据质量检查等。

3.空间数据查询和分析:学习并掌握GIS软件中的查询功能和空间分析功能,对导入的地理数据进行查询和分析,并生成相应的报表和图表。

4.制作地图:学习并掌握地图制作的基本步骤和技巧,包括地图样式的选择、符号的设置、比例尺的确定等。

5.空间数据可视化:学习并掌握GIS软件中的空间数据可视化功能,将分析结果以图形的形式呈现,使得空间分析结果更加直观和易于理解。

6.实验总结:根据实验过程和实验结果,撰写实验报告,总结实验过程中的问题和经验,并对GIS技术的应用前景作一定的展望。

四、实验结果与分析通过实验,学生应能熟练掌握GIS软件的安装和配置,并能够独立完成地理数据的导入和预处理工作。

同时,学生还应能够运用GIS软件进行空间数据查询和分析,并能够将分析结果以图形的形式呈现出来。

除此之外,学生还应能够根据实验要求制作地图,并能够利用GIS软件进行空间数据的可视化。

五、实验心得通过本次GIS实验,我对GIS技术以及其在地理信息领域中的应用有了更深入的了解。

GIS实验报告范文

GIS实验报告范文

GIS实验报告范文一、实验目的本实验旨在通过使用地理信息系统(GIS)软件,掌握地理信息数据的获取、分析、管理和展示等基本操作,了解GIS在实际应用中的重要性和作用。

二、实验内容1.数据获取:选择合适的地理信息数据集,并导入到GIS软件中。

2.数据分析:利用GIS软件进行空间数据分析,如叠加分析、缓冲区分析等。

三、实验步骤1.数据获取:选择一组关于城市规划的地理信息数据集,包括建筑物、道路、绿地等要素。

2. 数据导入:将数据集导入到GIS软件中,如ArcGIS、QGIS等。

3.数据分析:利用GIS软件进行空间数据分析,如对建筑物和绿地的叠加分析,计算绿地覆盖率等。

四、实验结果1.数据获取:成功获取了关于城市规划的地理信息数据集,包括建筑物、道路、绿地等要素。

2. 数据导入:将数据集成功导入到ArcGIS软件中。

3. 数据分析:利用ArcGIS进行了建筑物和绿地的叠加分析,计算得出绿地覆盖率为30%。

五、实验总结通过本次GIS实验,我深刻认识到GIS在地理信息数据处理和分析方面的重要性和作用。

GIS软件能够帮助我们有效获取、管理、分析地理信息数据,为城市规划、资源管理等领域提供重要的支持和指导。

同时,通过本次实验,我也掌握了GIS软件的基本操作技能,能够熟练运用该软件进行地理信息数据处理和展示。

在今后的学习和工作中,我将继续深入学习GIS技术,提升自己在地理信息领域的能力和水平,为实际工作中的地理信息数据处理和分析提供更加有效的支持和帮助。

希望能够将GIS技术更好地应用于实际工作中,为城市规划、自然资源管理等领域做出更大的贡献。

最新测绘程序设计实验报告

最新测绘程序设计实验报告

最新测绘程序设计实验报告实验目的:本实验旨在通过设计和实现最新的测绘程序,提高学生对测绘技术和程序设计的理解,同时培养学生的编程能力和解决实际问题的能力。

通过实验,学生将学习到如何运用现代测绘方法和编程技巧,有效地处理地理信息数据,并生成精确的地图。

实验内容:1. 测绘数据采集:使用全球定位系统(GPS)和遥感技术收集地理信息数据。

2. 数据处理与分析:利用地理信息系统(GIS)软件对采集的数据进行处理和分析,包括数据清洗、格式转换和误差分析。

3. 程序设计:基于Python或C++等编程语言,设计测绘程序,实现数据的自动化处理和地图的生成。

4. 地图生成:通过编写的程序,生成二维或三维地图,并进行可视化展示。

5. 实验评估:对生成的地图精度和程序性能进行评估,提出改进意见。

实验步骤:1. 确定实验目标和所需数据类型。

2. 选择合适的测绘工具和GIS软件。

3. 设计程序架构,编写程序代码。

4. 运行程序,输入测绘数据,进行数据处理。

5. 生成地图,并对地图进行校验和修正。

6. 撰写实验报告,总结实验过程和结果。

实验结果:通过本次实验,成功设计并实现了一个测绘程序。

该程序能够自动处理GPS和遥感数据,生成精确的地图。

实验中发现,程序在处理大规模数据时效率较高,但在数据清洗阶段需要进一步优化以提高准确性。

生成的地图清晰度高,满足了实验的基本要求。

结论:本次实验验证了所设计测绘程序的有效性,通过实际应用,程序能够满足基本的测绘需求。

未来的工作将集中在提高程序的数据处理能力和用户交互体验上,以适应更复杂的测绘任务。

此外,还需探索如何将人工智能技术集成到测绘程序中,进一步提升地图生成的智能化水平。

GIS与测绘程序开发实训报告

GIS与测绘程序开发实训报告

GIS与测绘程序开发实训报告实训地点:四川建筑职业技术学院实训起止时间: 18-19周班组: 测量1004班第2组报告人: 蔡江指导老师: 张船红刘春阁说明实训的目的:通过实训,了解程序开发的全过程,系统地掌握VB应用程序设计、编译和调试等基本技能,而且能为今后从事专业测绘工作或解决实际工程中的有关测量问题打下基础,在文档编写能力、逻辑思维能力和实际工作能力等方面得到锻炼。

在实训中培养严格认真的态度、踏实求是的工作作风、吃苦耐劳的精神和团结协作的集体观念。

任务:试训的任务是导线平差计算和COMGIS组件开发编写开发方案;设计方案:根据以起始点的坐标和起始边的坐标方位角,以及所观测的导线边长和转折角,计算各导线点的坐标的思想结合相应的公式:(1)坐标方位角的推算公式可以依次计算各边的坐标方位角:αA1=αBA+180°+β Aα12=αA1+180°+β 1α2C=α12+180°+β 2+)αCD ′=α2C+180°+βCαCD′=αBA+4³180°+∑β测左计算终边坐标方位角的公式为:α终边′=α始边+n²180°+∑β测左(式中n为导线观测角个数)角度闭合差的计算公式:fβ测=α终边′-α终边(2)图根导线角度闭合差的允许值:fβ容=±60″n(式中n为多边形内角的个数)(3)计算各边的坐标增量。

ΔX AB=D AB²cosαABΔYAB =DAB²sinαAB(4)计算各导线点的坐标公式:X前=x后+Δx改Y前=y后+Δy改最后,推算出终止边上C点的坐标,其值应与原有值相等,以作检核。

进行程序的理论设计,再根据理论设计界面(如基本数据、观测左角、观测边长、表格),在设计好界面后便开始根据理论知识编写公共代码、按键单击事件代码和核心代码,最后便进行程序调试和测试。

过程:(1)程序方案设计:确立程序设计的思想和相映理论知识,对程序制作流程做一个简单的设计。

gis软件设计实验报告

gis软件设计实验报告

地理与生物信息学院2014 / 2015 学年第一学期GIS软件设计实验报告课程名称:GIS软件设计实验名称:小型GIS软件系统的设计与开发班级学号 B12090114学生姓名别小文指导教师姜杰日期:2014 年12 月一、实验目的基于ArcGIS Engine及C#编程语言构建一个小型GIS平台系统。

二、实验内容软件为一个小型的GIS平台,主要包括:空间数据存取模块、地图浏览模块、地图编辑模块、空间查询模块、空间分析模块、地图修饰模块。

(1)空间数据存取模块该模块实现对地图数据的新建、加载、保存、另存和打印输出对于地图的硬拷贝输出实现所见即所得效果。

(2)地图浏览模块该模块主要包括地图工具、滚动条,状态条、鹰眼图、内容视图等。

其中地图工具可以实现放大、缩小、中心放大、中心缩小、全景视图、漫游、要素选择和取消、空间查询等具体功能。

(3)地图数据编辑模块该模块能够实现新建图层、添加图层、删除所有图层、开始编辑和结束编辑的操作。

编辑可以对图层进行创建新特征、修改任务、移动特征和设置捕捉环境等操作。

(4)空间查询模块该模块实现的是属性查询。

(5)空间分析模块该模块可以进行缓冲区分析。

三、实验要求使用ArcGIS Engine和C#、等编程语言完成任务。

四、实验过程1.空间数据存储模块该模块实现对地图数据的新建、加载、保存、另存和打印输出对于地图的硬拷贝输出实现所见即所得效果。

新建项目a.启动VS2005,选择“文件|新建|项目”,在项目类型中选择Visual C#,再选择Windows应用程序模板,输入名称“3bxw Map”,点击确定。

b.在解决方案管理器中将“Form1.cs”重命名为“3bxw Map.cs”,在设计视图中,选中窗体,将其属性中的“Text”改为“3bxw Map”。

添加控件c.选择工具箱中的“菜单和工具栏|MenuStrip”,将其拖入窗体。

选择工具箱中的“ArcGIS Windows Forms”节,将“ToolbarControl”控件拖入窗体,并将其属性中的Dock设置为Top。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

double sub(double a,double b) { return a-b; }; double mul(double a,double b) { return a*b; }; double div(double a,double b) { return a/b; }; /************/ int add(int a,int b) { return a+b; }; int sub(int a,int b) { return a-b; }; int mul(int a,int b) { return a*b; }; int div(int a,int b) { return a/b; }; ~acc() { cout<<"调用析构函数"<<endl; } }; void main () { int a,b; double x,y;
合肥工业大学 资源与环境工程学院 《GIS程序设计》实验报告
姓 学 专 统
名 号 业
地理信息系
班 级 任课教师
实验1:在小范围内用C++增强C的功能
1、 实验目的和要求
目的:快速掌握C++语言编程的方法,在小范围内增强C++的功 能,主要内容有:(1)输入流、输出流的使用;(2)函数原型; (3)new和delete运算符分配内存。
cout<<"面积s="<<s<<endl<<"体积v="<<v<<endl; }
(4) 仿照教材中的例题,用引用的方法给包含十个元素的一维数 组赋值,其值分别为9,8,7,6,5,4,3,2,1。 #include <iostream.h> void main() { int a[10],i; for(i=0;i<10;i++) { int &t=a[i]; t=10-i; } cout<<"数组为:"<<endl; for(i=0;i<10;i++) { cout<<a[i]<<endl; } }
2. 定义一个计算器类,能够实现加减乘除四则运算,对有关成员函 数重载,以实现不同类型数据的运算。并用构造函数和析构函数 将数据成员初始化为0。 #include<iostream.h> class acc { private: int a,b; public: acc( ) { a=0;b=0; } double add(double a,double b) { return a+b; };
3、 实验总结
通过实验,学习了类的定义和函数的重载,特别注意函数重载中的 问题,他是函数名称相同,但是函数功能不同,这是指其实现的方 式,比如数据类型不同的数的加法。重载函数的形参必须有所不 同,即个数不同或类型不同。在具体使用中不要将功能不同的函数 重载,比如一个是求加,另一个的求减法。
实验3:类中静态数据成员和友 元函数的使用
acc c; cout<<"put in two integer:"; cin>>a>>b; cout<<a<<"+"<<b<<"="<<c.add(a,b)<<endl; cout<<a<<"-"<<b<<"="<<c.sub(a,b)<<endl; cout<<a<<"*"<<b<<"="<<c.mul(a,b)<<endl; cout<<a<<"/"<<b<<"="<<c.div(a,b)<<endl; cout<<"put in two real munber:"; cin>>x>>y; cout<<x<<"+"<<y<<"="<<c.add(x,y)<<endl; cout<<x<<"-"<<y<<"="<<c.sub(x,y)<<endl; cout<<x<<"*"<<y<<"="<<c.mul(x,y)<<endl; cout<<x<<"/"<<y<<"="<<c.div(x,y)<<endl; }
3、 思考题解答
(1)内联函数与无参数的宏定义和普通函数的区别是什么? 使用内联函数应注意什么问题? 区别:内联函数是在程序执行到该处时自动将代码植入到主程 序处进行运行;宏定义是在程序开始执行前替换到程序中的宏 定义的所有代码;普通函数是程序执行到该处时,调用函数, 然后转到其他程序运行; (2) 分配二维数组的内存空间 如 3行4列的数组。 int (*p)[4]; p=new int[3][4]; 程序不能使用c++不存在的字符集 如 正确解答: int **p,i;*p=new int[3]; for(i=0;i<3;i+=) { p[i]=new int [4]; } (3) 实参与形参匹配的问题: int a[3][4]; circle( a[0]); //或 circle( &a[0][0]) float circle( int *p)
for(i=0;i<m;i++) for(j=0;j<n;j++) { if(min>a[i][j]) min=a[i][j];//求最小值 if(max<a[i][j]) max=a[i][j];//求最大值 sum=sum+a[i][j];//求和 } for(i=0;i<m;i++) { delete []a[i]; } delete []a;//释放动态数组 cout<<"sum="<<sum<<endl; cout<<"min="<<min<<endl<<"max="<<max<<endl; }
2//第二题:商店进出货物类 #include <iostream.h> class carlo {private:
double oneprice, oneweight; public: static double allweight,allprice;//定义静态数据成员 carlo(double m,double n);//构造函数 void get() { allweight+=oneweight; allprice+=oneprice; } void sold()//求和函数 { allweight-=oneweight; allprice-=oneprice; } void write ()//输出函数 { cout<<"allwprice="<<allprice<<endl; cout<<"allweight="<<allweight<<endl; } ~carlo() { cout<<"调用析构函数"<<endl;} };
2、 实验代码(附注释)或解答
(1) 编写一个用输入和输出流运算符进行的输入和输出的程序。 从键盘输入两个数,分别对两个数进行加,减,乘和除的运 算。 # include < iostream.h>//两数和差积商 # include < stdio.h> void main () { doublห้องสมุดไป่ตู้ a,b,c,d,e,f; cout<<"输入两个数"<<endl; cin>>a>>b; c=a+b; d=a-b; e=a*b; f=a/b; cout<<"a+b="<<c<<endl; cout<<"a-b="<<d<<endl; cout<<"a*b="<<e<<endl; cout<<"a/b="<<f<<endl; }
3 有两个类分别为整型数集合类和实型数集合数类。将缺少的内容补 齐。并完成要求的其它内容。 (1)/*******************/ void intset::setto (set &t) { t.num[0]=(float)num[0]; t.num[1]=(float)num[1]; t.num[2]=(float)num[2]; } /*******************/ (2)#include<iostream.h>//使用友元函数 class set; class intset { private: int num[3]; public: intset ( int x,int y, int z) {//添加初始化内容
相关文档
最新文档