ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:101.38KB ,
资源ID:23317834      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23317834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(测绘软件实习报告.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

测绘软件实习报告.docx

1、测绘软件实习报告测 绘 软 件 设 计 与 实 现2011年11月15日实验一 图的创建、遍历及其MST的构建一、实验目的通过上机实践,进一步了解图的创建、遍历及其MST的构建,巩固所学课本知识。二、实验过程#include#include#include#define INF 32767#define MAXV 100typedef int InfoType;typedef struct int no; InfoType info;VertexType;typedef struct int edgesMAXVMAXV; int n,e; VertexType vexsMAXV;MGraph;

2、typedef struct ANode int adjvex; struct ANode *nextarc; InfoType info;ArcNode;typedef int Vertex;typedef struct Vnode Vertex data; ArcNode *firstarc;VNode;typedef VNode AdjListMAXV;typedef struct AdjList adjlist; int n,e;ALGraph;void MatToList(MGraph g,ALGraph *&G) int i,j,n=g.n; ArcNode *p; G=(ALGr

3、aph *)malloc(sizeof(ALGraph); for(i=0;iadjlisti.firstarc=NULL; for(i=0;i=0;j-) if(g.edgesij!=0) p=(ArcNode *)malloc(sizeof(ArcNode); p-adjvex=j; p-info=g.edgesij; p-nextarc=G-adjlisti.firstarc; G-adjlisti.firstarc=p; G-n=n; G-e=g.e;void ListToMat(ALGraph *G,MGraph &g) int i,j,n=G-n; ArcNode *p; for(

4、i=0;in;i+) for(j=0;jn;j+) g.edgesij=0; for(i=0;iadjlisti.firstarc; while(p!=NULL) g.edgesip-adjvex=p-info; p=p-nextarc; g.n=n; g.e=G-e;void DispMat(MGraph g) int i,j; int zz=99; for(i=0;ig.n;i+) for(j=0;jg.n;j+) if(g.edgesij=INF) printf(%3s, ); else printf(%3d,g.edgesij); printf(n); void DispAdj(ALG

5、raph *G) int i; ArcNode *p; for(i=0;in;i+) p=G-adjlisti.firstarc; if(p!=NULL) printf(%3d,i); while(p!=NULL) printf(%3d,p-adjvex); p=p-nextarc; printf(n); ;int visitedMAXV;void DFS(ALGraph *G,int v) ArcNode *p; visitedv=1; printf(%3d,v); p=G-adjlistv.firstarc; while(p!=NULL) if(visitedp-adjvex=0) DFS

6、(G,p-adjvex); p=p-nextarc; void DFS1(ALGraph *G,int v) ArcNode *p; ArcNode *StMAXV; int top=-1,w,i; for(i=0;in;i+) visitedi=0; printf(%3d,v); visitedv=1; top+; Sttop=G-adjlistv.firstarc; while(top-1) p=Sttop; top-; while(p!=NULL) w=p-adjvex; if(visitedw=0) printf(%3d,w); visitedw=1; top+; Sttop=G-ad

7、jlistw.firstarc; break; p=p-nextarc; printf(n);void BFS(ALGraph *G,int v) ArcNode *p; int queueMAXV,front=0,rear=0; int visitedMAXV; int w,i; for(i=0;in;i+) visitedi=0; printf(%3d,v); visitedv=1; rear=(rear+1)%MAXV; queuerear=v; while(front!=rear) front=(front+1)%MAXV; w=queuefront; p=G-adjlistw.fir

8、starc; while(p!=NULL) if(visitedp-adjvex=0) printf(%3d,p-adjvex); visitedp-adjvex=1; rear=(rear+1)%MAXV; queuerear=p-adjvex; p=p-nextarc; printf(n);void Prim(MGraph g,int v) int lowcostMAXV,min,n=g.n; int closestMAXV,i,j,k; for(i=0;in;i+) lowcosti=g.edgesvi; closesti=v; for(i=0;in-1;i+) min=INF; for

9、(j=0;jn;j+) if(lowcostj!=0&lowcostjmin) min=lowcostj; k=j; printf(边(%d,%d)权为:%dn,closestk,k,min); lowcostk=0; for(j=0;jn;j+) if(g.edgeskj!=0&g.edgeskjlowcostj) lowcostj=g.edgeskj; closestj=k; /typedef struct int u; int v; int w;Edge;void SortEdge(MGraph g,Edge E) int i,j,k=0; Edge temp; for(i=0;ig.n

10、;i+) for(j=0;jg.n;j+) if(g.edgesijINF) Ek.u=i; Ek.v=j; Ek.w=g.edgesij; k+; for(i=0;i=0&temp.wEj.w) Ej+1=Ej; j-; E+1=temp; void Kruskal(Edge E,int n,int e) int i,j,m1,m2,sn1,sn2,k; int vsetMAXV; for(i=0;in;i+) vseti=i; k=1; j=0; while(kn) m1=Ej.u; m2=Ej.v; sn1=vsetm1; sn2=vsetm2; if(sn1!=sn2) printf(

11、%d,%d):%dn,m1,m2,Ej.w); k+; for(i=0;in;i+) if(vseti=sn2) vseti=sn1; j+; /void main() int i,j,u=3; MGraph g,g1; ALGraph *G; Edge EMAXV; int BMAXV11; int AMAXV6=0,5,0,7,0,0,0,0,4,0,0,0,8,0,0,0,0,9,0,0,5,0,0,6,0,0,0,5,0,0,3,0,0,0,1,0; g.n=6; g.e=10; for(i=0;ig.n;i+) for(j=0;jg.n;j+) g.edgesij=Aij; prin

12、tf(n); printf(图G的邻接表:n); MatToList(g,G); DispAdj(G); printf(图G的邻接表转换成邻接矩阵n); ListToMat(G,g1); DispMat(g1); printf(从顶点0开始的DFS(递归算法) :n); DFS(G,0); printf(n); printf(从顶点0开始的DFS(非递归算法) :n); DFS1(G,0); printf(从顶点0开始的BFS(递归算法) :n); BFS(G,0); printf(n); for(i=0;ig.n;i+) for(j=0;jg.n;j+) Bij=INF; B01=1; B0

13、2=4; B03=12; B05=2; B12=8; B23=5; B25=9; B34=3; B45=7; for(i=0;ig.n;i+) for(j=0;jg.n;j+) Aji=Aij; for(i=0;ig.n;i+) for(j=0;jg.n;j+) g.edgesij=Bij; printf(n); printf(n); printf(普里姆算法求解结果:n); Prim(g,0); printf(n); SortEdge(g,E); printf(n); printf(n); printf(克鲁斯卡尔算法求解结果:n); Kruskal(E,g.n,g.e); printf(n

14、);三、实验成果四、实验体会通过此次上机实践,基本上掌握了图的创建过程,对于程序设计,在设计过程中遇到很多问题,但是通过相互讨论及老师指导,已经基本掌握了基于深度优先的图的遍历算法的设计与实现、基于广度优先的图的遍历算法的设计与实现、基于Prim算法的最小生成树的构建、基于Kruskal算法的最小生成树的构建。实验二 快速排序算法的实现一、实验目的通过上机实践巩固课堂所学快速排序算法相关知识,通过讨论,同学之间相互学习,彻底了解实验内容,完成实验作业。二、实验过程#includevoid XXXquicksort(int data,int low,int high) int i,pivot,j

15、; if(lowhigh) pivot=datalow; i=low; j=high; while(ij) while(i=pivot) j-; if(ij) datai+=dataj; while(ij&datai=pivot) i+; if(ij) dataj-=datai; datai=pivot; XXXquicksort(data,low,i-1); XXXquicksort(data,i+1,high); void main() int a6; int i; cout请输入待排序数组endl; for(i=0;iai; coutendl; cout由输入得结果为:endl; for

16、( i=0;i6;i+) coutai ; coutendl; XXXquicksort(a,0,5); cout快速排序后的结果为:endl; for( i=0;i6;i+) coutai ; coutendl;三、实验成果四、实验体会此次上机实践主要是实现快速排序算法,这个实验相对于其他实验,比较简单,做起来问题不是很多,经过几次调试,基本上就能完成。实验三 矩阵类的设计与实现一、实验目的通过上机实践,巩固课堂老师所讲关于矩阵设计的知识,通过反复的调试,找错,设计出矩阵。二、实验过程#include#include#include#includeclass XXXMatrixprivate

17、: int rows,columns; double *element;public: XXXMatrix(int rows=4,int columns=4); XXXMatrix(int *mat,int rows,int columns); XXXMatrix(const XXXMatrix& m); XXXMatrix(); int rintv(int n,double a4); XXXMatrix& inverse(XXXMatrix& mat); XXXMatrix& transpose(double a4); void init(int rows,int columns); dou

18、ble get(int i,int j); bool set(int i,int j,int value); friend ostream& operator (ostream& out,XXXMatrix &mat); XXXMatrix& operator +=(XXXMatrix& mat); XXXMatrix& operator=(const XXXMatrix& mat); bool operator=(const XXXMatrix& mat); bool operator!=(const XXXMatrix& mat); XXXMatrix& operator-(XXXMatr

19、ix& mat); XXXMatrix& operator-(); XXXMatrix& operator*(XXXMatrix& mat);void XXXMatrix:init(int rows,int columns) if(rows=0|columnsrows=rows; this-columns=columns; element=new double *rows; for(int i=0;irows;i+) elementi=new doublecolumns; for(int j=0;jcolumns;j+) elementij=0; XXXMatrix:XXXMatrix(int

20、 rows,int columns) init(rows,columns);XXXMatrix:XXXMatrix(int *mat,int rows,int columns) init(rows,columns); for(int i=0;irows;i+) for(int j=0;jcolumns;j+) elementij=*(mat+i*columns+j);XXXMatrix:XXXMatrix(const XXXMatrix& m) init(m.rows,m.columns); for(int i=0;im.rows;i+) for(int j;jm.columns;j+) el

21、ementij=m.elementij;XXXMatrix:XXXMatrix() for(int i=0;i=0&i=0&j=0&i=0&jcolumns) elementij=value; return true; return false;ostream& operator(ostream& out,XXXMatrix& mat) out矩阵 XXXMatrix(mat.rowsxmat.columns)endl; for(int i=0;imat.rows;i+) for(int j=0;jmat.columns;j+) outmat.elementij ; outrows=mat.r

22、ows&this-columns=mat.columns) for(int i=0;imat.rows;i+) for(int j=0;jrows=mat.rows&this-columns=mat.columns) for(int i=0;imat.rows;i+) for(int j=0;jelementij!=mat.elementij) break; return false; else return true; bool XXXMatrix: operator!=(const XXXMatrix& mat) if(this-rows=mat.rows&this-columns=mat.columns) for(int i=0;imat.rows;i+) for(int j=0;jelementij=mat.elementij) break; return false; else return true; XXXMatrix& XXXMatrix: operator-( XXXMatrix& mat) if(this-rows=mat.rows&this-columns=mat.columns) for(int i=0;imat.rows;i+

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1