测绘软件实习报告.doc
《测绘软件实习报告.doc》由会员分享,可在线阅读,更多相关《测绘软件实习报告.doc(27页珍藏版)》请在咨信网上搜索。
测 绘 软 件 设 计 与 实 现 2011年11月15日 目录 实验一 图的创建、遍历及其MST的构建 3 实验二 快速排序算法的实现 8 实验三 矩阵类的设计与实现 10 实验四 Windows绘图 15 实验五 面向对象的高程网平差程序设计与实现 19 实验一 图的创建、遍历及其MST的构建 一、实验目的 通过上机实践,进一步了解图的创建、遍历及其MST的构建,巩固所学课本知识。 二、实验过程 #include<stdio.h> #include<iostream.h> #include<malloc.h> #define INF 32767 #define MAXV 100 typedef int InfoType; typedef struct { int no; InfoType info; }VertexType; typedef struct { int edges[MAXV][MAXV]; int n,e; VertexType vexs[MAXV]; }MGraph; typedef struct ANode { int adjvex; struct ANode *nextarc; InfoType info; }ArcNode; typedef int Vertex; typedef struct Vnode { Vertex data; ArcNode *firstarc; }VNode; typedef VNode AdjList[MAXV]; typedef struct { AdjList adjlist; int n,e; }ALGraph; void MatToList(MGraph g,ALGraph *&G) { int i,j,n=g.n; ArcNode *p; G=(ALGraph *)malloc(sizeof(ALGraph)); for(i=0;i<n;i++) G->adjlist[i].firstarc=NULL; for(i=0;i<n;i++) for(j=n-1;j>=0;j--) if(g.edges[i][j]!=0) { p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=j; p->info=g.edges[i][j]; p->nextarc=G->adjlist[i].firstarc; G->adjlist[i].firstarc=p; } G->n=n; G->e=g.e; } void ListToMat(ALGraph *G,MGraph &g) { int i,j,n=G->n; ArcNode *p; for(i=0;i<n;i++) for(j=0;j<n;j++) g.edges[i][j]=0; for(i=0;i<n;i++) { p=G->adjlist[i].firstarc; while(p!=NULL) { g.edges[i][p->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;i<g.n;i++) { for(j=0;j<g.n;j++) if(g.edges[i][j]==INF) printf("%3s"," "); else printf("%3d",g.edges[i][j]); printf("\n"); } }void DispAdj(ALGraph *G) { int i; ArcNode *p; for(i=0;i<G->n;i++) { p=G->adjlist[i].firstarc; if(p!=NULL) printf("%3d",i); while(p!=NULL) { printf("%3d",p->adjvex); p=p->nextarc; } printf("\n"); } }; int visited[MAXV]; void DFS(ALGraph *G,int v) { ArcNode *p; visited[v]=1; printf("%3d",v); p=G->adjlist[v].firstarc; while(p!=NULL) { if(visited[p->adjvex]==0) DFS(G,p->adjvex); p=p->nextarc; } } void DFS1(ALGraph *G,int v) { ArcNode *p; ArcNode *St[MAXV]; int top=-1,w,i; for(i=0;i<G->n;i++) visited[i]=0; printf("%3d",v); visited[v]=1; top++; St[top]=G->adjlist[v].firstarc; while(top>-1) { p=St[top]; top--; while(p!=NULL) { w=p->adjvex; if(visited[w]==0) { printf("%3d",w); visited[w]=1; top++; St[top]=G->adjlist[w].firstarc; break; } p=p->nextarc; } } printf("\n"); } void BFS(ALGraph *G,int v) { ArcNode *p; int queue[MAXV],front=0,rear=0; int visited[MAXV]; int w,i; for(i=0;i<G->n;i++) visited[i]=0; printf("%3d",v); visited[v]=1; rear=(rear+1)%MAXV; queue[rear]=v; while(front!=rear) { front=(front+1)%MAXV; w=queue[front]; p=G->adjlist[w].firstarc; while(p!=NULL) { if(visited[p->adjvex]==0) { printf("%3d",p->adjvex); visited[p->adjvex]=1; rear=(rear+1)%MAXV; queue[rear]=p->adjvex; } p=p->nextarc; } } printf("\n"); } void Prim(MGraph g,int v) { int lowcost[MAXV],min,n=g.n; int closest[MAXV],i,j,k; for(i=0;i<n;i++) { lowcost[i]=g.edges[v][i]; closest[i]=v; } for(i=0;i<n-1;i++) { min=INF; for(j=0;j<n;j++) if(lowcost[j]!=0&&lowcost[j]<min) { min=lowcost[j]; k=j; } printf("边(%d,%d)权为:%d\n",closest[k],k,min); lowcost[k]=0; for(j=0;j<n;j++) if(g.edges[k][j]!=0&&g.edges[k][j]<lowcost[j]) { lowcost[j]=g.edges[k][j]; closest[j]=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;i<g.n;i++) for(j=0;j<g.n;j++) if(g.edges[i][j]<INF) { E[k].u=i; E[k].v=j; E[k].w=g.edges[i][j]; k++; } for(i=0;i<k;i++) { temp=E[i]; j=i-1; while(j>=0&&temp.w<E[j].w) { E[j+1]=E[j]; j--; } E[+1]=temp; } } void Kruskal(Edge E[],int n,int e) { int i,j,m1,m2,sn1,sn2,k; int vset[MAXV]; for(i=0;i<n;i++) vset[i]=i; k=1; j=0; while(k<n) { m1=E[j].u; m2=E[j].v; sn1=vset[m1]; sn2=vset[m2]; if(sn1!=sn2) { printf("(%d,%d):%d\n",m1,m2,E[j].w); k++; for(i=0;i<n;i++) if(vset[i]==sn2) vset[i]=sn1; } j++; } } ///////////////////////////////////// void main() { int i,j,u=3; MGraph g,g1; ALGraph *G; Edge E[MAXV]; int B[MAXV][11]; int A[MAXV][6]={{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;i<g.n;i++) for(j=0;j<g.n;j++) g.edges[i][j]=A[i][j]; printf("\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;i<g.n;i++) for(j=0;j<g.n;j++) B[i][j]=INF; B[0][1]=1; B[0][2]=4; B[0][3]=12; B[0][5]=2; B[1][2]=8; B[2][3]=5; B[2][5]=9; B[3][4]=3; B[4][5]=7; for(i=0;i<g.n;i++) for(j=0;j<g.n;j++) A[j][i]=A[i][j]; for(i=0;i<g.n;i++) for(j=0;j<g.n;j++) g.edges[i][j]=B[i][j]; 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"); } 三、实验成果 四、实验体会 通过此次上机实践,基本上掌握了图的创建过程,对于程序设计,在设计过程中遇到很多问题,但是通过相互讨论及老师指导,已经基本掌握了基于深度优先的图的遍历算法的设计与实现、基于广度优先的图的遍历算法的设计与实现、基于Prim算法的最小生成树的构建、基于Kruskal算法的最小生成树的构建。 实验二 快速排序算法的实现 一、实验目的 通过上机实践巩固课堂所学快速排序算法相关知识,通过讨论,同学之间相互学习,彻底了解实验内容,完成实验作业。 二、实验过程 #include<iostream.h> void XXXquicksort(int data[],int low,int high) { int i,pivot,j; if(low<high) { pivot=data[low]; i=low; j=high; while(i<j) { while(i<j&&data[j]>=pivot) j--; if(i<j) data[i++]=data[j]; while(i<j&&data[i]<=pivot) i++; if(i<j) data[j--]=data[i]; } data[i]=pivot; XXXquicksort(data,low,i-1); XXXquicksort(data,i+1,high); } } void main() { int a[6]; int i; cout<<"请输入待排序数组"<<endl; for(i=0;i<6;i++) { cin>>a[i]; } cout<<endl; cout<<"由输入得结果为:"<<endl; for( i=0;i<6;i++) { cout<<a[i]<<" "; } cout<<endl; XXXquicksort(a,0,5); cout<<"快速排序后的结果为:"<<endl; for( i=0;i<6;i++) { cout<<a[i]<<" "; } cout<<endl; } 三、实验成果 四、实验体会 此次上机实践主要是实现快速排序算法,这个实验相对于其他实验,比较简单,做起来问题不是很多,经过几次调试,基本上就能完成。 实验三 矩阵类的设计与实现 一、实验目的 通过上机实践,巩固课堂老师所讲关于矩阵设计的知识,通过反复的调试,找错,设计出矩阵。 二、实验过程 #include<iostream.h> #include<stdlib.h> #include<math.h> #include<stdio.h> class XXXMatrix { private: 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 a[][4]); XXXMatrix& inverse(XXXMatrix& mat); XXXMatrix& transpose(double a[][4]); void init(int rows,int columns); double 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-(XXXMatrix& mat); XXXMatrix& operator-(); XXXMatrix& operator*(XXXMatrix& mat); }; void XXXMatrix::init(int rows,int columns) { if(rows<=0||columns<=0) throw"矩阵行或列数非正数异常"; this->rows=rows; this->columns=columns; element=new double *[rows]; for(int i=0;i<rows;i++) { element[i]=new double[columns]; for(int j=0;j<columns;j++) element[i][j]=0; } } XXXMatrix::XXXMatrix(int rows,int columns) { init(rows,columns); } XXXMatrix::XXXMatrix(int *mat,int rows,int columns) { init(rows,columns); for(int i=0;i<rows;i++) for(int j=0;j<columns;j++) element[i][j]=*(mat+i*columns+j); } XXXMatrix::XXXMatrix(const XXXMatrix& m) { init(m.rows,m.columns); for(int i=0;i<m.rows;i++) for(int j;j<m.columns;j++) element[i][j]=m.element[i][j]; } XXXMatrix::~XXXMatrix() { for(int i=0;i<rows;i++) delete(element[i]); delete(element); } double XXXMatrix::get(int i,int j) { if(i>=0&&i<rows&&j>=0&&j<columns) return element[i][j]; } bool XXXMatrix::set(int i,int j,int value) { if(i>=0&&i<rows&&j>=0&&j<columns) { element[i][j]=value; return true; } return false; } ostream& operator<<(ostream& out,XXXMatrix& mat) { out<<"矩阵 XXXMatrix("<<mat.rows<<"x"<<mat.columns<<")"<<endl; for(int i=0;i<mat.rows;i++) { for(int j=0;j<mat.columns;j++) out<<mat.element[i][j]<<" "; out<<"\n"; } return out; } XXXMatrix& XXXMatrix:: operator=(const XXXMatrix& mat) { if(this->rows==mat.rows&&this->columns==mat.columns) { for(int i=0;i<mat.rows;i++) for(int j=0;j<mat.columns;j++) element[i][j]=mat.element[i][j]; return *this; } throw"两个矩阵阶数不同,不能相加"; } bool XXXMatrix:: operator==(const XXXMatrix& mat) { if(this->rows==mat.rows&&this->columns==mat.columns) { for(int i=0;i<mat.rows;i++) { for(int j=0;j<mat.columns;j++) if(this->element[i][j]!=mat.element[i][j]) { 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;i<mat.rows;i++) { for(int j=0;j<mat.columns;j++) if(this->element[i][j]==mat.element[i][j]) { break; return false; } else return true; } } } XXXMatrix& XXXMatrix:: operator-( XXXMatrix& mat) { if(this->rows==mat.rows&&this->columns==mat.columns) { for(int i=0;i<mat.rows;i++) for(int j=0;j<mat.columns;j++) element[i][j]-=mat.element[i][j]; return *this; } throw"两个矩阵阶数不同,不能相加"; } XXXMatrix& XXXMatrix::operator-() { for(int i=0;i<this->rows;i++) for(int j=0;j<this->columns;j++) this->element[i][j]=-this->element[i][j]; return *this; throw"两个矩阵阶数不同,不能相加"; } XXXMatrix& XXXMatrix::operator*(XXXMatrix& mat) { int i,j,k; double s; for(i=0;i<mat.rows;i++) for(j=0;j<mat.columns;j++) { s=0.0; for(k=0;k<mat.columns;k++) s=s+mat.element[i][k]*this->element[k][j]; this->element[i][j]=s; } return *this; } XXXMatrix& XXXMatrix::inverse(XXXMatrix& mat) { if(this->rows==mat.columns&&this->columns==mat.rows) for(int i=0;i<mat.columns;i++) for(int j=0;j<mat.rows;j++) this->element[i][j]=mat.element[j][i]; return *this; } int XXXMatrix::rintv(int n,double a[][4]) { int *is,*js,i,j,k,u,v; double p,d; is=(int *) malloc(n*sizeof(int)); js=(int *) malloc(n*sizeof(int)); for(k=0;k<=n-1;k++) { d=0.0; for(i=k;i<=n-1;i++) for(j=k;j<=n-1;j++) { p=fabs(a[i][j]); if(p>d) { d=p; is[k]=i; js[k]=j; } } if(d+1.0==1.0) { free(is); free(js); printf("err**not inv\n"); return(0); } if(is[k]!=k) for(j=0;j<=n-1;j++) { p=a[k][j]; a[k][j]=a[is[k]][j]; a[is[k]][j]=p; } if(js[k]!=k) for(i=0;i<=n-1;i++) { u=i*n+k; v=i*n+js[k]; p=a[i][k]; a[i][k]=a[i][js[k]]; a[i][js[k]]=p; } a[k][k]=1.0/a[k][k]; for(j=0;j<=n-1;j++) if(j!=k) { u=k*n+j; a[k][j]=a[k][j]*a[k][k]; } for(i=0;i<=n-1;i++) if(i!=k) for(j=0;j<=n;j++) if(j!=k) { a[i][j]=a[i][j]-a[i][k]*a[k][j]; } for(i=0;i<=n-1;i++) if(i!=k) { a[i][k]=-a[i][k]*a[k][k]; } } for(k=n-1;k>=0;k--) { if(js[k]!=k) for(j=0;j<=n-1;j++) { p=a[k][j]; a[k][j]=a[js[k]][j]; a[js[k]][j]=p; } if(is[k]!=k) for(i=0;i<n-1;i++) { p=a[i][k]; a[i][k]=a[i][is[k]]; a[i][is[k]]=p; } } free(is); free(js); return (1); } XXXMatrix& XXXMatrix::transpose(double a[][4]) { int q; q=rintv(4,a); for(int i=0;i<this->rows;i++) for(int j=0;j<this->columns;j++) this->element[i][j]=a[i][j]; return *this; } XXXMatrix& XXXMatrix::operator+=(XXXMatrix& mat) { if(this->rows==mat.rows&&this->columns==mat.columns) { for(int i=0;i<mat.rows;i++) for(int j=0;j<mat.columns;j++) element[i][j]+=mat.element[i][j]; return *this; } throw"两个矩阵阶数不同,不能相加"; } int main() { const int M=3,N=4; static double a[4][4]={{0.5,0.0,0.0,0.0},{0.0,0.5,0.0,0.0},{0.0,0.0,0.5,0.0}, {0.0,0.0,0.0,0.5}}; cout<<"待求逆矩阵为:"<<endl; for(int i=0;i<=3;i++) { for(int j=0;j<=3;j++) cout<<a[i][j]<<" "; cout<<endl; } XXXMatrix B(3,4),C(4,3),D(4,4); D.transpose(a); //求逆 cout<<"求逆后的矩阵为 "<<D; int table1[M*N]={1,0,0,0,0,1}; XXXMatrix mat1(table1,M,N); //矩阵1 mat1.set(2,2,1); B=mat1; int table2[M][N]={1,2,3,4,5,6,7,8,9}; XXXMatrix mat2(*table2,M,N); //矩阵2 cout<<"矩阵P为"<<endl; cout<<mat1; cout<<"和P相等的矩阵Q为"<<endl; //赋值 cout<<B; if(mat1==B) cout<<"两矩阵相等!!!"<<endl; //相等 -B; cout<<"负的矩阵-Q"<<endl; //求负值 cout<<B; cout<<"矩阵R为"<<endl; cout<<mat2; mat1+=mat2; //+= mat2-mat1; mat2-mat1;//相减 cout<<"矩阵相加S=P+R\n"<<mat1; cout<<"矩阵相减R-S-S\n"<<mat2; if(mat1!=B) cout<<"两矩阵不再相等!!!"<<endl; //!= C.inverse(B); cout<<"转置"<<C; //转置 return 0; } 三、实验成果 四、实验体会 由于矩阵设计的成员函数较多,操作起来不是很容易,在上机过程中遇到很多困难,但是通过老师指导,经过多次调试,终于成功了。 实验四 Windows绘图 一、实验目的 通过上机实践,学会用程序实现Windows绘图。通过一次次探索实践,掌握程序设计的要点。 二、实验过程 1. 鼠标画图 void CMyDrawView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default // TODO: Add your message handler code here . . . CClientDC dc(this); OnPrepareDC(&dc); // 调整设备环境的属性 dc.DPtoLP(&point); // 将设备坐标转换为逻辑坐标 SetCapture(); // 捕捉鼠标 //::SetCursor(m_hCross); // 设置十字光标 m_ptOrigin=point; m_bDragging=TRUE; // 设置拖拽标记 // CScrollView::OnLButtonDown(nFlags, point); CView::OnLButtonDown(nFlags, point); } void CMyDrawView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here a- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测绘 软件 实习 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文