欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计报告校园导游图(共43页).doc

    • 资源ID:13513589       资源大小:1.14MB        全文页数:43页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告校园导游图(共43页).doc

    精选优质文档-倾情为你奉上淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 校园导游图 姓 名: 聂睿 学号: 专业班级: 系 (院): 计算机工程学院 设计时间: 2011.12.192011.12.30 设计地点: 软件工程实验室、教室 成绩:指导教师评语: 签名: 年 月 日专心-专注-专业1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务根据教材数据结构-C语言描述(耿国华主编)和参考书数据结构题集(C语言版)(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从任务书所列选题表中选取,每班每题不得超过2人。学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 3课程设计说明书一 需求分析1功能需求:用无向网表示淮海工学院的校园景点平面图,选取若干个淮海工学院有代表性的景点抽象成无向带权图,图中顶点表示校内各顶点,边上权值表示路径长度。2性能需求:(1)为来访客人查询各景点的相关信息;(2)为来访客人查询图中任意两个景点间的最短路径(3)为来访客人查询图中任意两个景点间的所有路径(7)为来访客人输出对应编号景点的信息 3数据需求:建立无向图G,图中顶点ver表示主要景点,存放景点编号position、名称name、简介introduction等信息,图中边arc表示景点间的道路,存放路径长度信息distance。 二 概要设计1ADT Graph数据对象V:V具有相同特性的数组元素的集合,称为顶点集数据关系R:R=VR VR=<x,y>|P(x,y)(x,y属于V)ADT Graph 数据对象V:一个集合,该集合中的所有元素具有相同的特性 数据关系R:R=VR VR=<x,y>|P(x,y)(x,y属于V) 基本操作:(1)    initgraph(&G);(2)   creatgraph(mgraph &G)  ;(3)   DeleteplanArc(mgraph &G) ;  (4)   DeleteVertex(mgraph &G);(5)  enarc(mgraph &G);  (6)  enverx(mgraph &G) ;ADT Graph基本操作:1、void displaycampus(mgraph g)输出所有顶点信息(即将展示校园全景图)2、void seaabout(mgraph G)根据输入编号用来查询各个景点信息3、void shortestpath_Floyd(mgragh *g)用弗洛伊德阿算法求两个景点间最短路径4、void Allpaths(mgragh *g)显示输入两个顶点间的所有路径14、int initgraph(mgraph& G) 校园导游图的初始化15、void main( )主函数,可以调用子函数16、exit(0) 退出程序三 详细设计总体流程图:1、创建无向网图算法的伪代码描述如下:int creatgraph(mgraph &G)/构造图的邻接矩阵输入矩阵对应的顶点数G.vernum和边数G.arcnum;for(i=0;i<G.vernum;i+)输入对应的景点编号、景点名称、景点简介:初始化任意景点的路径修改两顶点间的路径2、输出学校平面图的算法的伪代码描述如下:void displaycampus(mgraph G)/显示景点信息;对应输出景点编号,景点名称,景点简介3、按编号查询景点的相关信息的算法的伪代码描述如下:void seaabout(mgraph G)/景点信息查询;请输入要查询的景点编号n;if(n<0|n>11)该景点不存在,请重新输入:else 根据编号输出对应的景点信息;4、更改图的信息的算法的伪代码描述如下 :int changegraph(mgraph G)重新建图输入1 删除结点输入2 删除边输入3 增加结点输入4 增加边输入5 更新图信息输入6 打印邻接矩阵输入7 返回程序 输入8 5、求无向图的最短路径的算法的伪代码描述如下:void shortestpath_Floyd(mgraph *G) 定义数组三维p101010,用于寻找任意两景点间最短路径中的景点,定义二维数组D1010 用于存放两顶点间的最短路径; 初始化任意两景点间的最短路径和最短路径上的景点 Dvw=G->arcsvw.adj;/把v,w路径的值放到Dvw中 v,w是,v,w路径上的景点,所以pvwv=1;pvww=1; 如果u到v,w之间的两条路径之和小于v,w之间的路径,则使Dvw=Dvu+Duw 若i是v,u上的最短路径的景点,或是u,w之间最短路径的景点,则i是v,w之间最短路径上的景点int flag=1;while(flag) 输入出发点和目的地的编号:k, jif(k<0|k>G->vernum|j<0|j>G->vernum)景点编号不存在!请重新输入出发点和目的地的编号:k, j if(k>=0&&k<顶点数目 &&j>=0&&j<顶点数目) flag=0; 逐个输出最短路径上的景点名字以及总路线长6、求无向图的所有路径的算法的伪代码描述如下:void Allpath(mgraph *G)int v,w,k,j,flag=1,定义数组三维p101010,用于寻找任意两景点间路径中的景点,定义二维数组D1010 用于存放两顶点间的路径长度; while(flag) 输入出发点和目的地的编号k,j; if(k<0|k>顶点数目|j<0|j顶点数目) 重新输入出发点和目的地的编号: k,j; Dvw=G->arcsvw.adj;/初始化数组Dvwif(Dvw!=A)如果这两个顶点间存在路径,则使pvw为1,否则为0; pvw=1;pwv=1; if(pkj=1)如果这两个景点间有路径,则输出路径中的所有景点和长度 7、增添路径的信息的算法的伪代码描述如下:int enarc(mgraph &G)/增加路径输入增加边的起始点v0,终点v1,及边的长度distance G.arcsv0v1.adj=G.arcsv0v1.adj=distance;设置增加的路径长度;8、增添景点的信息的算法的伪代码描述如下:int enverx(mgraph &G)/增加结点输入要添加的景点的信息:包括编号,名称,简介G.vernum+;增加一条边G.arcsiG.vernum-1.adj=G.arcsiG.vernum-1.adj=A;/修改矩阵信息return 1;9、删除路径的信息的算法的伪代码描述如下:int DeleteplanArc(mgraph &G)/删除图一条边;输入要删除的一条边对应的两个顶点v0,v1 调用locatevex函数找到这两个点的位置 更改边的信息边数减少1;10、删除景点的信息的算法的伪代码描述如下:int DeleteVertex(mgraph &G)/删除景点输入要删除的景点编号v调用locatevex函数找到这个点的位置if(m<0)重新输入if(m>0)for(i=m;i<景点数G.vernum ;i+)更改景点的名称strcpy(G.vexsi.name,G.vexs i+1.name);更改顶点的简介strcpy(G.vexsi.introduction,G.vexsi+1.introduction);删除该景点所在矩阵的行 删除该景点所在矩阵的 G.vernum-;边数减少111、初始化导游图算法伪代码描述如下:int initgraph(mgraph& G)/校园导游图的初始化设置景点数G.vernum=10;设置路径数G.arcnum=15;/初始化景点平面图设置景点编号值,名称,简介初始化边矩阵12、打印无向图邻接矩阵算法的伪代码描述如下:void printmatrix(mgraph G)/打印图的邻接矩阵;根据路径的初始化信息输出一个n行n列的矩阵(n是景点的个数),矩阵中的元素是路径的长度,如果两景点间无长度,则输出0;13、景点定位的算法的伪代码描述如下:int locatevex(mgraph c,int v)/景点的定位传入要查找的顶点位置v如果找到改点,返回改点14、更新校园导游图景点信息算法的伪代码描述如下:int newgraph(mgraph &G)/更新景点的信息输入更改的景点数n;for(int i=0;i<n;i+)/修改景点信息逐个输入景点的编号、景点的名称:、景点的简介输入更改的路径数n;int distance,v0,v1;输入更新的路径的信息for(i=0;i<n;i+)/修改路径信息逐条输入起始景点编号v0、终点景点编号v1、路劲长度distance 四 设计与调试分析1.校园导游图景点介绍(输出各景点信息):应输出所有景点的信息,如下:景点编号(position)景点名称(name)景点介绍(intoduction)0淮工主楼淮海工学院标志建筑,楼高10层1计算机楼计算机学院学生学习基地,楼高6层2行政楼校领导日常工作之处,楼高5层"3图书馆楼高5层,藏书逾十万4文通楼文通楼,楼高6层,学生学习自习地点5文渊楼文渊楼,楼高5层,教师办公室6大活中心内设大量娱乐设施,学生周末娱乐场所7淮工西门淮工西门是车站,学生在这里坐公交到达火车的站8实验楼做实验的地点,楼高6层,内有大量先进实验仪器9体育馆学生体育锻炼地点实际输出的信息为:操作成功,与预期结果一致。2.打印校园导游图的邻接矩阵:操作成功,与预期结果一致。3、查询景点间最短路径:比如:2015查询景点1(计算机楼)和3(图书馆)之间的最短路径,预期结果应为:计算机楼 > 文通楼 > 图书馆,路径总长度为35操作成功,与预期结果一致。4、景点信息查询:比如:查询景点为1的景点信息,预期结果应为:景点序号(position)景点名称(name)景点介绍(intoduction)1计算机楼计算机学院学生学习基地,楼高6层与预期结果一致。查询成功。5、更改图的信息:更改图信息主页面:5.1重新建图 比如重新建一个有3个景点和3条路径的无向图:景点信息分别为:景点序号(position)景点名称(name)景点介绍(intoduction)0计算机楼信息中心1第一食堂饮食中心2B#宿舍男生宿舍矩阵关系为:015251505025500 与预期结果一致,重新建图成功。5.2删除景点:比如删除景点编号为1的景点:则输出的矩阵中应失去原第一行第一列,并且其信息不再出现在校园导游中:删除景点前的图信息:删除景点前的矩阵:删除景点后的图的信息和矩阵:与预期结果一致,删除景点成功。5.3删除两景点间的路径:比如删除编号为0和2的两景点间的路径,则打印出来的矩阵在第0行第2列和第2行第0列的值应为0。删除路径前的矩阵: 删除路径后的矩阵: 与预期结果一致,删除路径成功。54增加景点信息比如增加一个景点,其信息为:景点序号(position)景点名称(name)景点介绍(intoduction)10A#7宿舍楼计算机学院女生宿舍对应的矩阵中应增加一行一列,第10行和第10列上所有元素都应为0,输出的图信息中最后应增加上述的信息。增加景点前的图信息:增加景点前的矩阵:增加景点后的图信息和矩阵:与预期结果一致,增加景点成功。5.5增加一条路径比如在景点0和4之间加一条长度为10的路径,则在第0行第4列与第4行第0列元素应为10。增加路径前的矩阵: 增加路径后的矩阵: 与预期结果一致,增加路径成功。5.6更新图信息比如要更新一个景点和一条路径的信息,将景点信息:景点序号(position)景点名称(name)景点介绍(intoduction)1计算机楼计算机学院学生学习基地,楼高6层改为:景点序号(position)景点名称(name)景点介绍(intoduction)1B#8男生宿舍更改顶点编号为0和3路径长度,路径由30改为15。更改后的图中编号为1的信息应变为:景点序号(position)景点名称(name)景点介绍(intoduction)1B#8男生宿舍矩阵中第0行第3列和第3行第0列元素应由30变为15.更改景点前的图信息:更改路径前的矩阵: 更新后的图信息和矩阵:6、查找两顶点间的所有路径比如查找1,3两点间的所有路径,所有路径为: 五 用户手册1、进入本系统后,随即显示系统主菜单页面。用户可在此菜单下输入各子菜单对应的数字,并按回车键,执行相应的子菜单命令。2、查询、修改、增加、删除景点以及景点间的路径,都是通过输入景点的编号来实现的,进入主菜单时,用户最好先选择“1、学校景点介绍”和“2、打印邻接矩阵”,方便用户了解景点信息以及路径信息。六 测试成果操作主界面查看淮工景点平面图打印无向图邻接矩阵查询两顶点间的最短路径按编号查询景点信息查询两顶点间的所有路径: 更改图信息:退出系统七 附录(源程序清单)#include <iostream>#include<malloc.h>#include<string>#include<iomanip>using namespace std;#define max_ver_num 20#define OK 1#define FALSE 0#define Error -1#define A 1000#define TRUE 1typedef struct arcnode/设置边的权值信息 int adj;/路径权值arcnode,adjarcsmax_ver_nummax_ver_num;typedef struct verdata/设置景点信息int position;char name60;char introduction1000;verdata;typedef struct mgraph verdata vexsmax_ver_num; adjarcs arcs; int vernum,arcnum;mgraph;/全局变量int visited20;int d35;mgraph g;int initgraph(mgraph& G)/校园导游图的初始化int i,j;G.vernum=10;G.arcnum=20;/初始化景点平面图for(i=0;i<G.vernum;i+)G.vexsi.position=i;strcpy(G.vexs0.name,"淮工主楼"); strcpy(G.vexs1.name,"计算机楼");strcpy(G.vexs2.name,"行政楼"); strcpy(G.vexs3.name,"图书馆"); strcpy(G.vexs4.name,"文通楼"); strcpy(G.vexs5.name,"文渊楼");strcpy(G.vexs6.name,"大活中心"); strcpy(G.vexs7.name,"淮工西门"); strcpy(G.vexs8.name,"实验楼"); strcpy(G.vexs9.name,"体育馆");strcpy(G.vexs0.introduction,"淮海工学院标志建筑,楼高10层"); strcpy(G.vexs1.introduction,"计算机学院学生学习基地,楼高6层");strcpy(G.vexs2.introduction,"校领导日常工作之处,楼高5层"); strcpy(G.vexs3.introduction,"楼高5层,藏书逾十万"); strcpy(G.vexs4.introduction,"文通楼,楼高6层,学生学习自习地点"); strcpy(G.vexs5.introduction,"文渊楼,楼高5层,教师办公室");strcpy(G.vexs6.introduction,"内设大量娱乐设施,学生周末娱乐场所"); strcpy(G.vexs7.introduction,"淮工西门是车站,学生在这里坐公交到达火车的站"); strcpy(G.vexs8.introduction,"做实验的地点,楼高6层,内有大量先进实验仪器"); strcpy(G.vexs9.introduction,"学生体育锻炼地点");/初始化边矩阵for(i=0;i<G.vernum;i+)for(j=0;j<G.vernum;j+)G.arcsij.adj=A;G.arcs01.adj=15;G.arcs02.adj=25;G.arcs03.adj=30;G.arcs14.adj=15;G.arcs17.adj=20;G.arcs19.adj=40;G.arcs25.adj=10;G.arcs28.adj=15;G.arcs36.adj=30;G.arcs38.adj=20;G.arcs47.adj=10;G.arcs49.adj=60;G.arcs58.adj=25;G.arcs68.adj=50;G.arcs79.adj=35;G.arcs45.adj=20;G.arcs56.adj=25;G.arcs57.adj=30;G.arcs67.adj=15;G.arcs69.adj=20;G.arcs78.adj=40;G.arcs89.adj=10;G.arcs29.adj=15;G.arcs39.adj=30;G.arcs34.adj=20;G.arcs48.adj=10;G.arcs45.adj=60;G.arcs59.adj=25;G.arcs18.adj=50;G.arcs17.adj=35;for(j=0;j<G.vernum;j+)for(i=0;i<G.vernum;i+)G.arcsij.adj=G.arcsji.adj;return 1;int locatevex(mgraph c,int v)/景点的定位int i;for(i=0;i<c.vernum;i+)if(v=c.vexsi.position) return i;return -1;void printmatrix(mgraph G)/打印图的邻接矩阵;int i,j;cout<<"对应的矩阵为:"<<endl;for(i=0;i<G.vernum;i+)for(j=0;j<G.vernum;j+)if(G.arcsij.adj<A)cout<<setiosflags(ios:left)<<setw(5)<<G.arcsij.adj;elsecout<<setiosflags(ios:left)<<setw(5)<<0;cout<<endl;/求最短路径,弗洛伊德算法void shortestpath_Floyd(mgraph *G) int v,u,i,w,k,j,flag=1,p101010,D1010;/D路径 for(v=0;v<G->vernum;v+)for(w=0;w<G->vernum;w+) Dvw=G->arcsvw.adj; for(u=0;u<G->vernum;u+)pvwu=0; if(Dvw<A) pvwv=1;pvww=1; for(u=0;u<G->vernum;u+) for(v=0;v<G->vernum;v+) for(w=0;w<G->vernum;w+) if(Dvu+Duw<Dvw) Dvw=Dvu+Duw; for(i=0;i<G->vernum;i+) pvwi=pvui|puwi; while(flag) cout<<"请输入出发点编号:" cin>>k; cout<<"请输入目的地的编号:"<<endl; cin>>j; if(k<0|k>G->vernum|j<0|j>G->vernum) cout<<"景点编号不存在!请重新输入出发点和目的地的编号:" cout<<"请输入出发点编号:" cin>>k; cout<<"请输入目的地的编号:"<<endl; cin>>j; if(k>=0&&k<G->vernum&&j>=0&&j<G->vernum) flag=0; printf("%s",G->vexsk.name); for(u=0;u<G->vernum;u+) if(pkju&&k!=u&&j!=u) printf("->%s",G->vexsu.name); printf("->%s",G->vexsj.name); printf(" 总路线长%dmn",Dkj);/两个景点间的所有路径void Allpath(mgraph *G)int v,w,k,j,flag=1,p1010,D1010;while(flag) cout<<"请输入出发点和目的地的编号:"<<endl; cout<<"请输入出发点编号:" cin>>k; cout<<"请输入目的地的编号:" cin>>j; if(k<0|k>G->vernum|j<0|j>G->vernum) cout<<"景点编号不存在!请重新输入出发点和目的地的编号:"<<endl; cout<<"请输入出发点编号:" cin>>k; cout<<"请输入目的地的编号:"<<endl; cin>>j; if(k>=0&&k<G->vernum&&j>=0&&j<G->vernum) flag=0; for(v=0;v<G->vernum;v+)for(w=0;w<G->vernum;w+)Dvw=G->arcsvw.adj;if(Dvw!=A) pvw=1; pwv=1;if(pkj=1)cout<<G->vexsk.name;cout<<"->"<<G->vexsj.name; cout<<"总路线长"<<Dkw+Dwj<<endl; for(w=0;w<G->vernum;w+) if(pkw=1&&pwj=1) cout<<G->vexsk.name;cout<<"->"<<G->vexsw.name;cout<<"->"<<G->vexsj.name;cout<<" 总路线长"<<Dkw+Dwj<<endl;for(v=0;v<G->vernum;v+)for(w=0;w<G->vernum;w+)if(pkv=1&&pvw=1&&pwj=1) cout<<G->vexsk.name;cout<<"->"<<G->vexsv.name;cout<<"->"<<G->vexsw.name;cout<<"->"<<G->vexsj.name;cout<<" 总路线长"<<Dkv+Dwj+Dvw<<endl; void displaycampus(mgraph G)/显示景点信息,显示景点信息平面图;int i;cout<<"景点编号 "<<"景点名称 "<<"景点简介 "<<endl;for(i=0;i<G.vernum;i+)cout<<" "<<G.vexsi.position<<" "cout<<G.vexsi.name<<" "cout<<G.vexsi.introduction<<" "<<endl;int creatgraph(mgraph &G)/构造无向图的邻接矩阵int i,n,m,distance,v0,v1;cout<<"请输入矩阵对应的顶点数:" cin>>G.vernum;cout<<"请输入矩阵对应的边数:"cin>>G.arcnum;for(i=0;i<G.vernum;i+)cout<<"请输入景点编号:" cin>>G.vexsi.position; cout<<"请输入景点名称:"cin>>G.vexsi.name; cout<<"请输入景点简介:" cin>>G.vexsi.introduction;for(i=0;i<G.vernum;i+)for(int j=0;j<G.vernum;j+)G.arcsij.adj=0;for(i=0;i<G.arcnum;i+)cout<<"输入第"<<i<<"条边的起点编号:" cin>>v0;cout<<"输入第"<<i<<"条边的终点编号:" cin>>v1; cout<<"输入第"<<i<<"条边的长度编号:"cin>>distance;m=locatevex(G,v0);n=locatevex(G,v1);if(m>=0&&n>=0)G.arcsmn.adj=G.arcsnm.adj=distance;displaycampus(G); printmatrix(G);return 1;int DeleteVertex(mgraph &G)/删除景点信息int i,j,v,m;cout<<"请输入要删除的景点编号:"cin>>v;m=locatevex(G,v);int flag=1;while(flag)if(m<0)cout<<"无此景点,请重新输入:" cin>>v;m=locatevex(G,v);if(m>0)for(i=m;i<G.vernum ;i+)strcpy(G.vexsi.name,G.vexs i+1.name);strcpy(G.vexsi.introduction,G.vexsi+1.introduction);flag=0;for(i=m;i<G.vernum;i+)/删除行for(j=0;j<G.vernum;j+)G.arcsij=G.arcsi+1j; for(i=m;i<G.vernum;i+)/删除列 for(j=0;j<G.vernum;j+) G.arcsji=G.arcsji+1; G.vernum-; displaycampus(G); printmatrix(G); return 1;int DeleteplanArc(mgraph &G)/删除图一条边信息;int i,j,v0,v1;int flag=1;while(flag) cout<<"请输入要删除的一条边对应的两个顶点编号:"<<endl;cin>>v0>>v1;if(v0<0|v0>G.vernum|v0<0|v1>G.vernum) cout<<"景点编号不存在!请重新输入要删除的一条边对应的两个顶点编号:" cin>>v0>>v1;if(v0>=0&&v0<G.vernum&&v1>=0&&v1<G.vernum)flag=0; i=locatevex(G,v0);j

    注意事项

    本文(数据结构课程设计报告校园导游图(共43页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开