2022年2022年空间数据库设计报告 .pdf

上传人:C****o 文档编号:39867786 上传时间:2022-09-08 格式:PDF 页数:30 大小:1.12MB
返回 下载 相关 举报
2022年2022年空间数据库设计报告 .pdf_第1页
第1页 / 共30页
2022年2022年空间数据库设计报告 .pdf_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《2022年2022年空间数据库设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年空间数据库设计报告 .pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、空间数据库设计报告名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 30 页 -一、设计思想本次空间数据库设计是基于SQL sever2008 开放的外挂式空间数据库管理系统。基于传统的关系型数据库外挂式的空间数据库系统的关键在于SDE的设计与实现,SDE在用户和异构空间数据库之间提供了一个开放的接口。用户可以通过SDE 服务来实现对空间数据的读取、插入、更新和删除的基本操作,还可以基于SDE 实现对空间数据的分析功能,如拓扑关系的查询、缓冲区分析、叠加分析、合并和切分等。SDE同时提供了链接DBMS 数据库的接口,与数据库的操作都是在这个上面进行交互的。1.1 数据的存储1.1.

2、1 几何数据的存储把 GIS数据放在RDBMS中,但是一般的RDBMS都没有提供GIS的数据类型(如点、线、多边形、以及这些feature 之间的拓扑关系和投影坐标等相关信息),RDBMS只提供了少量的数据类型支持:int,float,double,Blob,Long,char 等,一般都是数字,字符串和二进制数据几种。并且RDBMS不仅没有提供对GIS数据类型的存储,也没有提供对这些基础类型的操作(如:判断包含关系,相邻、相交、求差、距离、最短路径等)。在本次数据库设计中,成功的完成了对点线面的数据的存储和相关的读取、插入、更新和删除以及可视化的显示的功能。此处的存储是基于SQLsever2

3、008进行的,具体的存储结构如下表所示:Point 表:PID(int)X(nchar)Y(nchar)1 100 300 2 500 700 3 900 400 其中 Point 表中包含Point 的空间信息,即空间的点的x,y 坐标。由于当个点的只有相当于独立地物才会有相关的属性信息,本次在操作的时候并没有在存储的表中添加相应的属性信息。Edge表:EID(int)Start(int)End(int)attribute(nchar)1 1 2 河流2 2 3 河流3 1 3 道路一条线是由很多个小线段的组成的,因此在存储的时候,每个边都有一个独立的ID,每条边是由起点和终点链接起来的,因

4、此在在这个表中只需要存储相应的点的ID 即可,一般的线都是具有相关的属性信息的,故在本次设计中添加了线的属性信息,咋通过SDE 对空间数据查询的时候便可以很方便的看到边的属性。Area 表:AID(int)EStr(nchar)attribute(nchar)1 12435 一个房子名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 30 页 -一个面是由许多边组成的,由于每个面有多少个边的组成是不能确定的,所以不能和线的存储一样,按照每条边两个点来存储,而是将所有的边的序列来形成一个字符串来链接,然后再通过边表来操纵点表,最后完成查询信息。每一个多边形都有相关的属性说明。1.1.2

5、 属性数据的存储属性数据和结合数据的关联是通过几何数据的ID 来识别的,属性数据也是存储在一个表中的,相应的没有几何类型都有自己的几何属性说明。几何编号ID 几何要素的说明数据介绍Id 1.1.3 几何数据和属性数据的说明在上述的设计中,在几何数据的表中设置了相应的一些数据说明,其实其按照严格意义上来将就是属性数据,这是方便说明数据的信息,对于一些几何类型承载的信息比较的复杂的数据相应的也是设计了专门的属性数据表,同几何数据的ID 来进行级联操作,如对数据的读取、更新、插入或者是删除等。1.2 数据的维护和管理。1.2.1 空间数据的维护空间数据的维护包括几何数据和空间几何数据的增加、更新、删

6、除、维护等操作。本次实习所完成的系统已经成功实现了对空间数据点、线和面类型的操作。本次实现中,将对点、线和面的数据维护分别封装在不同的类中,用户可以通过SDE 来完成从SQL中取出数据,并且对数据进行相应的维护。下面就对点线面的实现分别做以介绍。1.2.1.1 点的维护在空间数据库中,点的几何信息的存储就是完成X、Y坐标的存储即可,同样对数据的操作就是只需要完成相应的点的坐标的操作即可。数据库中点的存储已经做过相应的介绍,现在就封装为数据引擎的设计做以说明。首先将点数据类型封装为一个类,类中分别定义与点的查询、插入和删除对应的函数,在每次调用这些函数的时候,都是调用一个唯一的接口来对数据库进行

7、来接的。/定义数据源连接字符串变量并赋值/CString g_strConnect=_T(DSN=S_DataBasechenxiong;UIN=sa;PWD=sa);/数据源链接字符串CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 30 页 -if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.

8、Close();return;上述通过 CDatabase提供了链接数据库的接口,在每个要素封装的类中,都提供了与该类的接口,以此链接数据库。相应函数的声明:void dlgPoint:OnBnClickedButtonquerypoint()/查询点void dlgPoint:OnBnClickedButtoninsert()/插入一个点void dlgPoint:OnBnClickedButtondelete()/删除点的操作1.2.1.2 线的维护线的操作和点的操作有点类似,由于线中存储的是点的ID,因此在具体的实现的时候有所不同。无论在执行对线的删除或者是对线的增加,其实质上都是对点的

9、操作。链接数据的方式与点的一样,不做过多的介绍。CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 30 页 -具体的函数声明如下:void dlgEdge:OnBnClickedButtonQueryEdge()/查询

10、边表函数void dlgEdge:OnBnClickedButtonAddEdge()/添加边void dlgEdge:OnBnClickedButtonDeleteEdge()/删除边的操作1.2.1.3 面的维护对面的操作大致与上面两种要素类似,在具体实现的时候也离不开另外两种要素,例如在查询的时候,首先应该得到的是面的ID,通过面的ID 得到边的一系列字符串,通过读取字符串的每一个字符来得到相应的边的ID,最后通过边的ID 来得到相应的点的信息,最后还是实现对点的操作。链接数据库的方式与上面的类似,此处不做过多的介绍。CDatabase p_DB;BOOL bReturn=p_DB.Op

11、enEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;具体函数的声明如下所示:void dlgArea:OnBnClickedButtonQueryArea()/查看面的属性void dlgArea:OnBnClickedButtoninsert()/插入一个面void dlgArea:OnBnClickedButtondelete()/删除一个面名师

12、资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 30 页 -1.2.2 空间数据的管理能够通过图形用户界面实现对空间数据库的管理,支持图形显示及编辑交互、支持对地理数据图层的管理(图层的增、删、改、枚举)。本次设计中,设计了对点线面操作的用户界面,通过用户界面可以实现对几何要素的显示和相应的几何要素的属性的操作,以及对几何要素的增加、删除、修改和读取等。在查询的过程中,由于时间的原因,对各种数据的查询并没有设计好相应的索引,而是直接查询的,这是本次实习的第一个缺陷。初次之外,图层的分层显示也是一个没有实现的,因此在此基础上形成的分析功能如buffer、叠加、网络分析都没有实现,在设计

13、过程中尝试过使用ArcGIS Engine来实现相应的分析功能,功能模块虽然可以实现,但是在具体数据存储这一块就出现了bug,由于自身的积累的问题,并没有是实现相应的操作,下面就本次实习实现的功能做一介绍。1.2.2.1 点的管理用户操作界面如下图所示:名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 30 页 -如上图所示,编辑框是相应的输入要插入点的信息,右边的功能按钮实现了对点的查询、插入和删除的操作。上述实现的是插入一个点的操作,由于要对数据库进行操作,故在实现时要对数据库进行链接。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 30 页 -可以查看一下SQL

14、 sever表中,里面更新了点的编号为16 的点,如下图所示:点的可视化操作,点的可视化是在单文档中使用绘图工具实现的如下图所示,由于点比较少,所以看的不是很清楚,下图中红色椭圆圈表示显示的点:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 30 页 -1.2.2.1 线的管理用户管理界面如下所示:上图所显示的是有对插入边的一些信息的编辑,同时也给出了相应的对边的查询(上图已经是实现了所有边的查询),同时可以进行添加和删除操作。List 中给出了边的ID 和起始点的 ID 和相应的点的描述。其他功能不做一一显示,下面就线的绘制进行演示:名师资料总结-精品资料欢迎下载-名师精心整理

15、-第 9 页,共 30 页 -1.2.2.3 面的管理面操作的用户界面:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 30 页 -如上图所示,编辑框提供了对面的插入的操作,输入面的相关的编号,面所包含的边的编号所构成的字符串以及对面所包含的描述,上图已经进行了对面的查询操作。下面就面的删除和插入做一操作。面的插入面的删除名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 30 页 -删除后的显示下面进行面的显示操作,与线的显示不同,对面进行了相应的填充:二、工程实现1.1 工作环境SQL server 2008以及 VS 2010 名师资料总结-精品资料欢迎下载-

16、名师精心整理-第 12 页,共 30 页 -1.2 点的封装的工程代码对点要素的封装的相应的函数描述:/dlgPoint 消息处理程序/定义一个链接数据库的变量/extern CString g_strConnect;/查询点的属性/void dlgPoint:OnBnClickedButtonquerypoint()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失 败!,(LPCTSTR)

17、错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;myList.ModifyStyle(0,LVS_SHOWSELALWAYS);myList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_TWOCLICKACTIVATE);myList.SetBkColor(RGB(247,247,255);myList.SetTextColor(RGB(0,0,0);myList.SetTextBkColor(RGB(247,247,255);for(int i=0;iGetErrorM

18、essage(tc_ErrorMSg,255);CString str_HitMsg;/此处为错误消息/名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 30 页 -MessageBox(str_HitMsg,_T(错误信息),MB_OK|MB_ICONERROR);p_DB.Rollback();p_DB.Close();return;END_CATCH_ALL OnBnClickedButtonquerypoint();/UpdateData(false);p_DB.Close();/TODO:在此添加控件通知处理程序代码 1.3 线的封装的工程代码/dlgEdge 消息处理

19、程序/定义一个链接数据库的变量/extern CString g_strConnect;/查询边表函数/void dlgEdge:OnBnClickedButtonQueryEdge()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失 败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;m_List.ModifyStyle(0,

20、LVS_SHOWSELALWAYS);m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_TWOCLICKACTIVATE);m_List.SetBkColor(RGB(247,247,255);m_List.SetTextColor(RGB(0,0,0);m_List.SetTextBkColor(RGB(247,247,255);for(int i=0;iGetErrorMessage(tc_ErrorMSg,255);CString str_HitMsg;/此处为错误消息/MessageBox(str_

21、HitMsg,_T(错误信息),MB_OK|MB_ICONERROR);p_DB.Rollback();p_DB.Close();return;END_CATCH_ALL OnBnClickedButtonQueryEdge();/UpdateData(false);p_DB.Close();/TODO:在此添加控件通知处理程序代码 1.4 面的封装的工程代码/dlgArea 消息处理程序/定义一个链接数据库的变量/extern CString g_strConnect;名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 30 页 -/查看面的属性/void dlgArea:OnB

22、nClickedButtonQueryArea()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失 败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;m_list.ModifyStyle(0,LVS_SHOWSELALWAYS);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_

23、EX_GRIDLINES|LVS_EX_TWOCLICKACTIVATE);m_list.SetBkColor(RGB(247,247,255);m_list.SetTextColor(RGB(0,0,0);m_list.SetTextBkColor(RGB(247,247,255);for(int i=0;iGetErrorMessage(tc_ErrorMSg,255);CString str_HitMsg;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 30 页 -/此处为错误消息/MessageBox(str_HitMsg,_T(错误信息),MB_OK|MB_ICONE

24、RROR);p_DB.Rollback();p_DB.Close();return;END_CATCH_ALL OnBnClickedButtonQueryArea();/UpdateData(false);p_DB.Close();/TODO:在此添加控件通知处理程序代码 1.5 要素可视化实现在显示的过程是使用计算机图形学中的知识来显示相应的点线面的。具体使用的是画笔和画刷,一般的在显示点的时候是用setPixel,在画线的时候使用的是Polyline,画面的时候使用是 Polygon,并且使用填充函数进行填充,由于在显示线和面的时候要对点进行操作,因此会相应的构造辅助功能函数来对点表进行

25、操作。/CS_DatabaseView 消息处理程序extern CString g_strConnect;POINT*point=new POINT500;/读取点所存储的数组/绘制点的信息/void CS_DatabaseView:OnqueryPoint()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_D

26、B.Close();return;/CDC*pDC=GetDC();CString strSQL;CRecordset p_DBSet(&p_DB);/定义记录对象strSQL=select*from Point;p_DBSet.Open(CRecordset:snapshot,strSQL,CRecordset:readOnly);int nIndex=0;CString strVal;while(!p_DBSet.IsEOF()名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 30 页 -p_DBSet.GetFieldValue(_T(PID),strVal);strVal

27、.TrimRight();p_DBSet.GetFieldValue(_T(x),strVal);strVal.TrimRight();pointnIndex.x=_ttoi(strVal);/_ttoi 是将 CString的变量转为 int类型的变量p_DBSet.GetFieldValue(_T(y),strVal);strVal.TrimRight();pointnIndex.y=_ttoi(strVal);nIndex+;p_DBSet.MoveNext();CPen myPen;myPen.CreatePen(0,100,RGB(0,0,0);CPen*pOldPen=pDC-Se

28、lectObject(&myPen);/记录原画笔/画线pDC-SelectObject(pOldPen);CBrush brush;brush.CreateSolidBrush(COLORREF(255);/建立画刷HGDIOBJ pOldBrush=pDC-SelectObject(brush);/设置画刷for(int i=0;iSetPixel(pointi.x,pointi.y,COLORREF(255);/把多边形绘制出来pDC-SelectObject(pOldBrush);/还原旧画delete point;p_DBSet.Close();/TODO:在此添加命令处理程序代码/

29、绘制边的信息/struct Edge/构造一个结构体,来存储相应读取的边的信息 CString eID;CString eStart;CString eEnd;Edge*e=new Edge500;void CS_DatabaseView:OnPaintEdge()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_

30、DB.Close();return;名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 30 页 -int current=0;CString strSQL;CRecordset p_DBSet(&p_DB);/定义记录对象strSQL=select*from Edge;p_DBSet.Open(CRecordset:snapshot,strSQL,CRecordset:readOnly);int nIndex=0;CString strVal;while(!p_DBSet.IsEOF()p_DBSet.GetFieldValue(_T(EID),strVal);strVal.Tr

31、imRight();enIndex.eID=strVal;p_DBSet.GetFieldValue(_T(Start),strVal);strVal.TrimRight();enIndex.eStart=strVal;p_DBSet.GetFieldValue(_T(End),strVal);strVal.TrimRight();enIndex.eEnd=strVal;nIndex+;p_DBSet.MoveNext();current=nIndex;fun(current);p_DBSet.Close();/TODO:在此添加命令处理程序代码 void CS_DatabaseView:fu

32、n(int current)/绘制边的辅助函数,主要是对点的操作 CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;CDC*pDC=GetDC();/对Edge表进行操作/UpdateData(true);CString strSQL;CRecordset p_DBSet(&p_

33、DB);CString strVal;名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 30 页 -/获取 Edge的点的信息/for(int i=0,j=0;iSelectObject(&myPen);/记录原画笔pDC-Polyline(point,current*2);/画线p_DB.Close();/画面/CString strTemp500;/存储每个边的数组void CS_DatabaseView:OnPaintArea()CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|

34、!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 30 页 -p_DB.Close();return;/int length;CDC*pDC=GetDC();CString strSQL;CRecordset p_DBSet(&p_DB);/定义记录对象strSQL=select*from Area;p_DBSet.Open(CRecordset:snapshot,strSQL,CRecordset

35、:readOnly);int nIndex=0;CString strVal;while(!p_DBSet.IsEOF()p_DBSet.GetFieldValue(_T(AID),strVal);strVal.TrimRight();p_DBSet.GetFieldValue(_T(EStr),strVal);strVal.TrimRight();length=strVal.GetLength();/获取字符串的长度for(int i=0;ilength;i+)/获取字符串的每一个字符strTempi=strVal.Mid(i,1);nIndex+;p_DBSet.MoveNext();fu

36、n1(length);fun2(length);p_DBSet.Close();/TODO:在此添加命令处理程序代码/绘制面的辅助函数/void CS_DatabaseView:fun1(int length)/辅助函数,对线的操作 CDatabase p_DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();retur

37、n;CString strSQL;CRecordset p_DBSet(&p_DB);/定义记录对象for(int i=0;ilength;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 30 页 -strSQL=select*from Edge where EID=;strSQL+=strTempi;strSQL+=;p_DBSet.Open(CRecordset:snapshot,strSQL,CRecordset:readOnly);CString strVal;while(!p_DBSet.IsEOF()p_DBSet.GetFieldValue(_T(EID),

38、strVal);strVal.TrimRight();ei.eID=strVal;p_DBSet.GetFieldValue(_T(Start),strVal);strVal.TrimRight();ei.eStart=strVal;p_DBSet.GetFieldValue(_T(End),strVal);strVal.TrimRight();ei.eEnd=strVal;p_DBSet.MoveNext();p_DBSet.Close();p_DBSet.Close();/绘制面的辅助函数/void CS_DatabaseView:fun2(int current)CDatabase p_

39、DB;BOOL bReturn=p_DB.OpenEx(g_strConnect,0);if(bReturn=FALSE|!p_DB.BeginTrans()/数据库请求传送数据 MessageBox(LPCTSTR)访问数据库失败!,(LPCTSTR)错误信息!,MB_OK|MB_ICONERROR);p_DB.Close();return;CDC*pDC=GetDC();/对Edge表进行操作/UpdateData(true);CString strSQL;CRecordset p_DBSet(&p_DB);CString strVal;/获取 Edge的点的信息/for(int i=0,

40、j=0;iSelectObject(&myPen);/记录原画笔pDC-Polyline(point,current*2);/画线/CBrush brush;brush.CreateSolidBrush(COLORREF(125);/建立画刷HGDIOBJ pOldBrush=pDC-SelectObject(brush);/设置画刷pDC-Polygon(point,current*2);/把多边形绘制出来pDC-SelectObject(pOldBrush);/还原旧画delete point;p_DB.Close();三、实习总结通过本次空间数据库的实习,基本掌握了一套外搭式空间数据库的

41、开发流程,通过对空间数据库的开发,较有针对性的巩固了课本上的知识,同时也加深了对SDE理解。利用SQL server2008 能够支持空间数据的读取操作,利用 VS2010连接数据库,实现开发,能够将 vs2010名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 30 页 -中绘制的点,线,面信息以数据形式存入数据表中,能够将数据表中的信息实现可视化,然后可以实现空间数据的查询,删除,修改等操作。本次实习也是有许多不足的地方,第一:实现的功能不够完善,界面不美观;第二:空间分析功能没有实现;第三:查询等功能没有完成在图层上的操作,每个要素不能分别展示在不同的图层上去。同时也不支持对GSQL的扩展。虽然有好多问题,但是通过这次实习也去思考怎么去实现这些功能,由于时间的原因和自身的能力问题,在编码中没有具体实现。在实习工程中,重新回顾了所学的知识,不仅加深了理论知识的理解,也提高了一定的动手能力,收获不少。名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 30 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁