数据结构课程设计城市链表的设计与实现

上传人:无*** 文档编号:101924083 上传时间:2022-06-06 格式:DOC 页数:23 大小:345KB
收藏 版权申诉 举报 下载
数据结构课程设计城市链表的设计与实现_第1页
第1页 / 共23页
数据结构课程设计城市链表的设计与实现_第2页
第2页 / 共23页
数据结构课程设计城市链表的设计与实现_第3页
第3页 / 共23页
资源描述:

《数据结构课程设计城市链表的设计与实现》由会员分享,可在线阅读,更多相关《数据结构课程设计城市链表的设计与实现(23页珍藏版)》请在装配图网上搜索。

1、数据结构课程设计题 目: 城市链表的设计与实现 二叉排序树根本操作的实现 年级 专业:09计算机科学与技术 姓 名:陈 戗 学 号: E10914049 城市链表的设计与实现I. 设计要求1. 问题描述 将假设干城市信息,存入一个带头结点的单链表。节点中的城市信息包括城市名、城市位置坐标、城市人口、城市面积、城市特色等。要求能够利用城市名和位置坐标来进行查找、插入、删除、更新等操作。2. 需求分析1) 给定一个城市名,返回其位置坐标。2) 给定一个中心位置坐标p和一个距离d,返回所以与p距离小于等于d的城市。II. 概要设计为了实现需求分析中的功能,可以从以下3方面着手设计。1. 主界面设计为

2、了实现城市链表的根本操作,设计一个包含多个菜单项选择项的主控制子程序以实现城市链表的各项子功能, 方便用户的使用。 本系统的主控制菜单运行界面如图1所示。 图1城市链表的主菜单2. 存储结构的设计本程序主要采链表结构类型来表示城市链表的信息。其中二叉树节点由7分量组成:城市的名称、城市的位的横坐标、城市位置的纵坐标、城市的面积、城市的人口、城市的特色,及指向自己结构体的指针。3. 系统功能设计本程序设置了6个子功能菜单,其设计如下。1) 建立城市链表。根据系统提示,选择功能项1,并根据提示逐个输入城市的名称、位置坐标、人口、面积、特色等。该功能由void Create()函数实现。2) 显示全

3、部城市信息。根据系统提示,选择功能项2,即可显示全部的城市信息。该功能由print函数实现。3) 插入新的城市界节点信息。根据系统提示选择功能项3,可每次插入一个节点信息,如果要插入多个城市信息,需屡次选择传插入功能。该功能由Insert ()函数实现。4) 查询城市的信息。选择功能项4,进入查询菜单,有两种查询方式。一是跟根据城市名称查询,二是根据城市的位置坐标的距离查询。该功能由Searchmenu ()和void Searchname()及void Searchposition()函数实现。5) 更新城市链表中不正确后过时的信息。可以通过城市名称查询到该节点,再以此输入城市名称坐标、人口

4、、面积、特色等属性。该功能由void UpdateCity()实现。6) 删除城市链表的节点信息。根据提示可以对城市链表中不需要的节点进行删除,删除的方式是输入城市名称,查询到该节点后删除。该功能由void Delete ()函数实现。III. 模块设计1. 模块设计本程序包含两个模块:主程序模块和二叉排序树操作模块。其调用关系如图2主程序模块城市链表的操作模块 图2模块调用示意图2. 系统子程序及其功能设计本系统共设计了9个子程序,个程序的的函数名及其功能说明如下:1) void Init(Citylist LHead);/创立头指针2) void Create(Citylist LHead

5、);/创立城市链表3) int print(Citylist LHead);/显示全部信息4) void Insert(Citylist LHead);/插入新城市信息5) int Searchmenu(Citylist LHead);/查询查询菜单6) void Searchname(Citylist LHead);/按名称查询7) void Searchposition(Citylist LHead);/按坐标查询8) void UpdateCity(Citylist LHead);/更新城市信息9) void Delete(Citylist LHead);/删除城市信息3. 函数主要的调

6、用关系本系统9个子程序见的主要调用关系图3.Searchname Main()InitCreateSearchpositionPrintSearhmInsertInsertenuUpdataDeleteSearchnameIV. 详细设计1. 数据类型定义本系统采用链表结构存储城市节点信息,节点定义如下: typedef struct Citynodechar cityName30;/名称float x;/横坐标float y;/纵坐标int citypopulation;/人口float cityarea;/面积char citycharacteristic50;/特色struct City

7、node *Next;Citynode,*Citylist;2. 主要子程序的详细设计1) 城市链表的创立函数,主要用来建立城市链表。 void Create(Citylist LHead) int n;printf(请输入要创立的链表的城市个数:);scanf(%d,&n); for(int i=0;icityName);printf(请输入城市坐标x,y:t);scanf(%f%c%f,&newNode-x,&m,&newNode-y); printf(请输入城市的人口万: t);scanf(%d,&newNode-citypopulation);printf(请输入城市的面积(平方公里)

8、: t);scanf(%f,&newNode-cityarea);printf(请输入城市的特色: t);scanf(%s,newNode-citycharacteristic);while(LHead-Next != NULL)LHead = LHead-Next;newNode-Next = LHead-Next;LHead-Next = newNode;3) 城市信息查询函数如下:/*根据名称查询*/ void Searchname(Citylist LHead) Citylist p=LHead;char sname30;if(p-Next)printf(请输入您要搜索的城市名称n);

9、scanf(%s,sname);while(p-Next != NULL & strcmp(p-Next-cityName,sname)p = p-Next;if(p-Next = NULL)printf(您要搜索的城市不存在n);return;printf(城市坐标为:n,p-Next-x,p-Next-y);elseprintf(链表未建立,请先建立链表n);/*根据坐标查询*/void Searchposition(Citylist LHead)char m;float x1;float y1;Citylist p=LHead;int distance;if(p-Next)printf(

10、请输入中心坐标x,yn);scanf(%f%c%f,&x1,&m,&y1);printf(请输入距离:);scanf(%d,&distance);printf(距中心坐标的城市的距离为,x1,y1); printf(%d的城市有:n,distance);p = p-Next;while(p != NULL)if(x1-p-x)*(x1-p-x) + (y1-p-y)*(y1-p-y) cityName);printf(n,p-x,p-y);p = p-Next;elseprintf(链表未建立,请先建立链表n);V. 测试分析1. 城市链表的建立首先进入主菜单,如图1。在主菜单下,用户根据菜单

11、的选项输入1,然后按照提示依次输入城市节点的属性。运行的结果如图4. 图4城市链表的建立2. 打印城市链表的所有节点信息在主菜单下,用户选择2,可以打印出全部的节点信息。运行的结果如图5. 图5全部节点信息3. 插入节点信息信息在主菜单下,用户选择3,可以插入一个新的节点信息。运行的结果如图6. 图6插入新的节点4. 删除城市链表的节点信息在主菜单下,用户选择6,首先通过输入关键字查询相关信息。运行的结果如图7. 图7删除节点信息5. 查找城市链表的节点在主菜单下,用户选择4,进入查找菜单,有两种查询方式。运行的结果如图8.和图9。 图8按城市名称查找节点信息 图9按城市位置和距离查找VI.

12、原程序清单 #include#include#include#include/*城市链表*/typedef struct Citynodechar cityName30;/名称float x;/横坐标float y;/纵坐标int citypopulation;/人口float cityarea;/面积char citycharacteristic50;/特色struct Citynode *Next;Citynode,*Citylist;void Init(Citylist LHead);/创立头指针void Create(Citylist LHead);/创立城市链表int print(C

13、itylist LHead);/显示全部信息void Insert(Citylist LHead);/插入新城市信息int Searchmenu(Citylist LHead);/查询查询菜单void Searchname(Citylist LHead);/按名称查询void Searchposition(Citylist LHead);/按坐标查询void UpdateCity(Citylist LHead);/更新城市信息void Delete(Citylist LHead);/删除城市信息/*初始化*/void Init(Citylist LHead)LHead-Next = NULL;

14、/*创立城市链表*/void Create(Citylist LHead) int n;printf(请输入要创立的链表的城市个数:);scanf(%d,&n); for(int i=0;icityName);printf(请输入城市坐标x,y:t);scanf(%f%c%f,&newNode-x,&m,&newNode-y); printf(请输入城市的人口万: t);scanf(%d,&newNode-citypopulation);printf(请输入城市的面积(平方公里): t);scanf(%f,&newNode-cityarea);printf(请输入城市的特色: t);scanf

15、(%s,newNode-citycharacteristic);while(LHead-Next != NULL)LHead = LHead-Next;newNode-Next = LHead-Next;LHead-Next = newNode;/*显示全部城市信息*/int print(Citylist LHead)Citylist p=LHead;if(p-Next)p=p-Next;printf( 全部城市信息为 :n);printf(*n);printf(名称t坐标t人口t面积t特色n);while(p)printf(%st,p-cityName);printf(%.f,%.f)t,p

16、-x,p-y);printf(%dt,p-citypopulation);printf(%.ft,p-cityarea);printf(%sn,p-citycharacteristic);p = p-Next;elseprintf(链表未建立,请先建立链表n);return 0;/*查询城市信息*/int Searchmenu(Citylist LHead)Citylist p=LHead;int s; printf(#n);printf(| 查询菜单 |n); printf(|n);printf(| 1.按名称查询 |n);printf(| 2.按坐标查询 |n);printf(| 3.返回

17、上级菜单 |n);printf(#n);scanf(%d,&s); switch(s)case 1:Searchname(p);break;case 2:Searchposition(p);break;case 3:break;default:printf(输入错误,请重新输入n);break;return 0;/*根据名称查询*/void Searchname(Citylist LHead) Citylist p=LHead;char sname30;if(p-Next)printf(请输入您要搜索的城市名称n);scanf(%s,sname);while(p-Next != NULL &

18、strcmp(p-Next-cityName,sname)p = p-Next;if(p-Next = NULL)printf(您要搜索的城市不存在n);return;printf(城市坐标为:n,p-Next-x,p-Next-y);elseprintf(链表未建立,请先建立链表n);/*根据坐标查询*/void Searchposition(Citylist LHead)char m;float x1;float y1;Citylist p=LHead;int distance;if(p-Next)printf(请输入中心坐标x,yn);scanf(%f%c%f,&x1,&m,&y1);p

19、rintf(请输入距离:);scanf(%d,&distance);printf(距中心坐标的城市的距离为,x1,y1); printf(%d的城市有:n,distance);p = p-Next;while(p != NULL)if(x1-p-x)*(x1-p-x) + (y1-p-y)*(y1-p-y) cityName);printf(n,p-x,p-y);p = p-Next;elseprintf(链表未建立,请先建立链表n);/*更新城市*/void UpdateCity(Citylist LHead)char updname30;printf(请输入您要更新的城市名:n);scan

20、f(%s,updname);while(strcmp(LHead-Next-cityName,updname)LHead = LHead-Next;printf(请输入城市新名n);scanf(%s,LHead-Next-cityName);printf(请输入城市新坐标n);scanf(%f,&LHead-Next-x);scanf(%f,&LHead-Next-y);printf(请输入城市的新人口万n);scanf(%d,&LHead-Next-citypopulation);printf(请输入城市的新面积平方公里n);scanf(%f,&LHead-Next-cityarea);pr

21、intf(请输入城市的新特色n);scanf(%s,LHead-Next-citycharacteristic);/*删除城市*/void Delete(Citylist LHead)char delname30;printf(请输入要删除的城市名称:n);scanf(%s,delname);while(strcmp(LHead-Next-cityName,delname)LHead = LHead-Next;LHead -Next = LHead-Next-Next;void main() system(color 1E);Citylist LHead;int select;LHead =

22、(Citylist )malloc(sizeof(Citynode);/建立头指针 Init(LHead); Citylist p= LHead; while(select!=8) printf(#n); printf(# 欢送使城市链表系统 #n); printf(|n); printf(|* 1.创立城市链表 *|n); printf(|* 2.显示全部城市信息 *|n); printf(|* 3.插入新的城市 *|n); printf(|* 4.查询城市信息 *|n); printf(|* 5.更新城市信息 *|n); printf(|* 6.删除城市信息 *|n); printf(|*

23、 7.退出 *|n); printf(#n); scanf(%d,&select); switch(select) case 1:Create(p);break;case 2:print(p);break;case 3:Insert(p);break;case 4:Searchmenu(p);break;case 5:UpdateCity(p);break;case 6:Delete(p);break; case 7: break;default:printf(输入错误,请重新输入n);break; VII. 用户手册执行本程序后,即进入系统的主菜单。用户可以根据菜单的提示选择相应的数字,进入

24、相应的子菜单。本系统没有提供一次删除或依次插入多个城市信息功能,如果要一次操作多个城市信息,需屡次选择相同的步骤。较为麻烦。VIII. 小结 本系统能较好的实现城市链表的根本操作,但由于过于简单存在许多缺乏,特别是在功能上。再调试本程序时,出现了诸如,链表的操作,指针的应用等一些数据结构和C语言面根底性的错误,消耗了较多时间。总之此次课设让我深刻认识到了理论和实践的巨大差异,对自己今后的职业生涯有一定的帮助。二叉排序树的根本操作的实现IX. 设计要求3. 问题描述 从磁盘读入一组数据,建立二叉排序树并对其进行查找、遍历、插入、删除等根本操作。4. 需求分析建立二叉排序树并对其进行查找,包括成功

25、和不成功两种情况。X. 概要设计为了实现需求分析中的功能,可以从以下3方面着手设计。4. 主界面设计为了方便对二叉排序树的根本操作,设计一个包含多个菜单项选择项的主控制子程序以实现二叉排序树的各项功能。本系统的主控制菜单运行界面如图1所示。图1二叉排序树的根本操作的主菜单5. 存储结构的设计本程序主要采二叉树结构类型来表示二叉排序树。其中二叉树节点由1个表示关键字的分量组成,还有指向该左孩子和右孩子的指针。6. 系统功能设计本程序设置了5个子功能菜单,其设计如下。1) 建立二叉排序树。根据系统提示,输入节点的关键字,并以0作为结束的标识符。该功能由Bstree Create()函数实现。2)

26、插入二叉排序新的节点信息。每次只能够插入一个节点信息,如果该节点已经存在,那么不插入。该功能由Bstree Insert(y)函数实现。3) 查询二叉排序树的信息。每次进行查询,成功那么显示“查询到该节点,不成功那么“显示查询不到该节点“该功能由Bstree Search()函数实现。4) 删除二叉排序树的节点信息。可以对二叉排序树中不需要的节点进行删除,删除的方式是输入关键字,查询到该节点后删除。该功能由Bstree Delete()函数实现。 5) 遍历二叉排序树。遍历二叉排序树可以显示该二叉排序树的全部节点信息。该功能由void Traverse()实现。XI. 模块设计4. 模块设计本

27、程序包含两个模块:主程序模块和二叉排序树操作模块。其调用关系如图2主程序模块二叉排序树操作模块 图2模块调用示意图5. 系统子程序及其功能设计本系统共设计了5个子程序,个程序的的函数名及其功能说明如下:1) Bstree Create(); /创立二叉排序树2) Bstree Insert(Bstree tree,int key); /插入3) Bstree Search(Bstree tree,int key); /查找4) void Traverse(Bstree tree); /遍历5) Bstree Delete(Bstree tree,int key); /删除信息6. 函数主要的调

28、用关系本系统9个子程序见的主要调用关系图3.Main()Main()Insert()Search( )Traverse ()Delete ()XII. 详细设计3. 数据类型定义本系统采用二叉树结构存储节点信息,节点定义如下: typedef struct Bstnodeint key;struct Bstnode *lchild,*rchild;Bstnode,* Bstree;4. 主要子程序的详细设计1) 二叉排序树的创立函数,主要用来建立二叉排序树。 Bstree Create() int key;Bstree tree=NULL; /初始化空树scanf(%d,&key); whil

29、e(key!=0)tree=Insert(tree,key); /逐个插入节点scanf(%d,&key);return tree;2) 二叉排序插入函数如下: Bstree Insert(Bstree tree,int key)Bstree p=tree;Bstree s,f;while (p!=NULL)f=p; if(key=p-key) return tree; if(keykey) p=p-lchild; else p=p-rchild;s=(Bstree)malloc(sizeof(Bstnode);s-key=key;s-lchild=NULL;s-rchild=NULL;if(

30、tree=NULL) return s; /新节点为二叉排序树的根if(keykey) f-lchild=s; else f-rchild=s; return tree; 3) 二叉排序树查询函数如下: Bstree Search(Bstree tree,int key)Bstree p=tree; int flag=0; while(p!=NULL) if(p-key=key) printf(查询到该节点!);flag=1;return(p);break;if (keykey) p=p-lchild; else p=p-rchild; if(flag=0)printf(查询不到关键字为%d的

31、节点!,key);return NULL; XIII. 测试分析6. 二叉排序树的建立首先进入主菜单,如图1。在主菜单下,用户根据菜单的选项输入1,然后按照提示建立二叉排序树,并以0未结束符。运行的结果如图4. 图4二叉排序树的建立7. 遍历二叉树的节点信息在主菜单下,用户选择4,可以打印出全部的节点信息。运行的结果如图5. 图5遍历二叉排序树8. 插入节点信息信息在主菜单下,用户选择2,可以插入一个新的节点信息。运行的结果如图6.图6插入新的节点9. 查询二叉树的节点信息在主菜单下,用户选择3,首先通过输入关键字查询相关信息。运行的结果如图7. 图7查询节点信息10. 删除二叉树的节点在主菜

32、单下,用户选择5,可以通过输入要删除的关键字来删除该节点的全部信息。运行的结果如图8. 图8删除二叉排序树的节点XIV. 原程序清单#include#include#include/*二叉排序树的数据结构*/typedef struct Bstnodeint key;struct Bstnode *lchild,*rchild;Bstnode,* Bstree;Bstree Create(); /创立二叉排序树Bstree Insert(Bstree tree,int key); /插入Bstree Search(Bstree tree,int key); /查找void Traverse(B

33、stree tree); /遍历Bstree Delete(Bstree tree,int key); /删除/*创立二叉排序树*/Bstree Create() int key;Bstree tree=NULL; /初始化空树scanf(%d,&key); while(key!=0)tree=Insert(tree,key); /逐个插入节点scanf(%d,&key);return tree;/*插入*/ Bstree Insert(Bstree tree,int key)Bstree p=tree;Bstree s,f;while (p!=NULL)f=p; if(key=p-key)

34、return tree; if(keykey) p=p-lchild; else p=p-rchild;s=(Bstree)malloc(sizeof(Bstnode);s-key=key;s-lchild=NULL;s-rchild=NULL;if(tree=NULL) return s; /新节点为二叉排序树的根if(keykey) f-lchild=s; else f-rchild=s; return tree;/*查找*/Bstree Search(Bstree tree,int key)Bstree p=tree; int flag=0; while(p!=NULL) if(p-ke

35、y=key) printf(查询到该节点!);flag=1;return(p);break;if (keykey) p=p-lchild; else p=p-rchild; if(flag=0)printf(查询不到关键字为%d的节点!,key);return NULL; /*遍历*/void Traverse(Bstree tree)if(tree) Traverse(tree-lchild); printf(%4d,tree-key); Traverse(tree-rchild); /*删除*/Bstree Delete(Bstree tree,int key)Bstree p=tree;

36、 Bstree f,s,q; f=NULL;while(p) /查找关键字为key的节点if(p-key=key) break; f=p; if(p-keykey) p=p-lchild;else p=p-rchild;if (p=NULL) return tree; if (p-lchild=NULL)|(p-rchild=NULL) if(f=NULL) if(p-lchild=NULL) tree=p-rchild;else tree=p-lchild;else if (p-lchild=NULL) if(f-lchild=p) f-lchild=p-rchild; else f-rch

37、ild=p-rchild; else if(f-lchild=p) f-lchild=p-lchild; else f-lchild=p-lchild; free(p);else q=p;s=p-lchild; while(s-rchild)q=s;s=s-rchild; if(q=p) q-lchild=s-lchild;p-key=s-key; free(s);return tree;/*/void main() system(color 1E);Bstree tree,p;int key1,key2,key3;int select,flag;printf(#n);printf(|* 欢送

38、您使用本系统 *|n);printf(|*|n);printf(|* 1.创立二叉排序树 *|n);printf(|* 2.插入 *|n);printf(|* 3.查找 *|n);printf(|* 4.遍历 *|n);printf(|* 5.删除 *|n);printf(|* 6.退出 *|n);printf(*n);while(select!=6) printf(选择的功能:); scanf(%d,&select); switch(select) case 1: printf(请输入节点信息(0为结束符):n); tree=Create(); printf(n); break; case

39、2: printf(插入一个新的节点:); scanf(%d,&key1);Insert(tree,key1); printf(插入后得序列为:n); Traverse(tree); printf(n); break; case 3: printf(输入查找的数据:); scanf(%d,&key2); p=Search(tree,key2); printf(n); break; case 4: printf(遍历所得序列为:n); Traverse(tree); printf(n); break; case 5: printf(输入删除的数据:); scanf(%d,&key3); tree

40、=Delete(tree,key3); printf(删除后遍历所得序列:n); Traverse(tree); printf(n); break; case 6: printf(谢谢您的使用,再见!n);flag=0;break; default:printf(输入错误,请重新输入n);break; XV. 用户手册运行程序进入本系统后,及显示系统的主菜单。用户可以根据菜单的提示选择相应的数字,进入相应的子菜单,在创立二叉排序树时注意以0为输入结束标志,在创立完成后可立即进行遍历,看创立的是否有误。此外,本程序关键字既是节点的关键字也是节点的信息。XVI. 小结 由于为了简化程序的复杂度,本

41、程序只以整形的关键字作为节点的唯一信息,但本程序能够很好的实现二叉排序树的根本操作。在调试程序过程中,对左右孩子的处理是难点,其中出现了许多的错误,但通过错误的改正也加深了对二叉排序树的认识。内部资料仅供参考9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8GK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh

42、5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK

43、!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9w

44、EwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$U

45、E9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9C

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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