数据结构课程设计C++版(最新整理)_第1页
数据结构课程设计C++版(最新整理)_第2页
数据结构课程设计C++版(最新整理)_第3页
数据结构课程设计C++版(最新整理)_第4页
数据结构课程设计C++版(最新整理)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数据结构课程设计报告 题目: 排序算法比较 学生姓名: 学 号: 班 级: 指导教师: 2012年 6 月 1 日1、 需求分析说明- 32、 总体设计- 43、 详细设计- 54、 实现部分- 75、 程序测试- 176、 总结- 18一、需求分析说明排序算法用到了以下算法思想:1、直接插入排序 2、冒泡排序 3、快速排序 4、直接选择排序 5、堆排序 6、二路归并排序二、总体设计开始创建6个包含30000个元素的数组u、v、w、x、y、z。直接插入方法:insertsort(u);冒泡方法:bubblesort(v);快速方法:quicksort(w);直接选择方法:selectsort

2、(x);堆方法:heapsort(y);结束二路归并方法:mergesort(z); 三、详细设计1、直接插入排序 :insertsort()在已经排好序的序列中查找待插入的元素的插入位置,并将待插入元素插入到有序列表中的过程。 将数组分成两部分,初始化时,前部分数组为只有第一个元素,用来存储已排序元素,我们这里叫 arr1 ;后部分数组的元素为除第一个元素的所有元素,为待排序或待插入元素,我们这里叫 arr2 。 排序时使用二层循环:第一层对 arr2 进行循环,每次取后部分数组(待排序数组)里的第一个元素(我们称为待排序元素或称待插入元素) e1 ,然后在第二层循环中对 arr1 (已排好

3、序的数组)从第一个元素往后进行循环,查到第一个大于待插入元素(如果是升序排列)或第一个小于待插入元素(如果是降序排列) e2 ,然后对 arr1 从 e2 元素开始往后的所有元素向后移,最后把 e1 插入到原来 e2 所在的位置。这样反复地对 arr2 进行循环,直到 arr2 中所有的待插入的元素都插入到 arr1 中。2、冒泡排序:bubblesort()基本思想: 设待排序的文件为r1.n 第1趟(遍):从r1开始,依次比较两个相邻记录的关键字ri.key和ri+1.key,若ri.keyri+1.key,则交换记录ri和ri+1的位置;否则,不交换。(i=1,2,.n-1) 第1趟之后

4、,n个关键字中最大的记录移到了rn的位置上。第2趟:从r1开始,依次比较两个相邻记录的关键字ri.key和ri+1.key,若ri.keyri+1.key,则交换记录ri和ri+1的位置;否则,不交换。 (i=1,2,.n-2) 第2趟之后,前n-1个关键字中最大的记录移到了rn-1的位置上,作完n-1趟,或者不需再交换记录时为止。3、快序排序:quicksort()基本思想:首先在r1.n中,确定一个ri,经过比较和移动,将ri放到中间某个位置上,使得ri左边所有记录的关键字小于等于ri.key,ri右边所有记录的关键字大于等于ri.key。以ri为界,将文件划分为左、右两个子文件。用同样的

5、方法分别对这两个子文件进行划分, 得到4个更小的子文件。继续进行下去,使得每个子文件只有一个记录为止,便得到原文件的有序文件。例. 给定文件(20,05,37,08,63,12,59,15,44,08),选用第1个元素20进行划分: 4、直接选择排序:selectsort()每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序不像冒泡排序算法那样先并不急于调换位置,第一轮(k=1)先从arrayk开始逐个检查,看哪个数最小就记下该数所在的位置于minlindex中,等一轮扫描完毕,如果找到比arrayk-1更小的元素,则

6、把arrayminlindex和ak-1对调,这时arrayk到最后一个元素中最小的元素就换到了arrayk-1的位置。 如此反复进行第二轮、第三轮直到循环至最后一元素5、堆排序:heapsort()堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。1、n(n1)个节点的的完全二叉树从层次从左自右编号,最后一个分枝节点(非叶子节点)的编号为 n/2 取整。2、且对于编号 i(1=in,则节点i没有左孩子,否则其左孩子为2i;若2i+1n,则没有右孩子,否则其右孩子为2i+1。3、这里使用完全二叉树只是为了好描述算法,它只是一种逻辑

7、结构,真真在实现时我们还是使用数组来存储这棵二叉树的,因为完全二叉树完全可以使用数组来存储。堆排序其实最主要的两个过程:第一步,创建初始堆;第二步,交换根节点与最后一个非叶子节从最后一个非叶子节点为开始向前循环每个会支节点,比较每个分支节点与他左右子节点,如果其中某个子节点比父节点大,则与父节点交换,交换后原父节点可能还小于原子节点的子节点,所以还需对原父节点进行调整,使用原父节点继续下沉,直到没有子节点或比左右子节点都大为止,调用过程可通过递归完成。当某个非叶子节点调整完毕后,再处理下一个非叶子节点,直到根节点也调整完成,这里初始堆就创建好了,这里我们创建的是大顶堆,即大的元素向树的根浮,这

8、样排序最后得到的结果为升序,因为最大的将树中的最后一个元素与堆顶元素进行交换,并从树中去掉最后叶子节点。交换后再按创建初始堆的算法调整根节点,如此下去直到树中只有一个节点为止。6、归并排序:mergesort() 假定文件(r1,r2,.,rn)中记录是随机排列的,进行二路归并排序,首先把它划分为长度均为1的n个有序子文件,然后对它们逐步进行2路归并排序。其步骤如下:第1趟:从r1.n中的第1个和第2个有序子文件开始,调用算法merge,每次归并两个相邻子文件,归并结果放到y1.n中。在y中形成 n/2 个长度为2的有序子文件。若n为奇数,则y中最后一个子文件的长度为1。 第2趟:把y1.n看

9、作输入文件,将 n/2 个有序子文件两两归并,归并结果回送到r1.n中,在r中形成 n/2/2个长度为4的有序子文件。若y中有奇数个子文件,则r中最后一个子文件的长度为2。共计经过 log2n 趟归并,最后得到n个记录的有序文件。四、实现部分/排序算法实现#include#include#include#include#include#define elemtype intusing namespace std;const int n=30000;double time1,time2,time3,time4,time5,time6;class sortingpublic:void insert

10、sort(elemtype r,int n); /直接插入法排序void bubblesort(elemtype r,int n); /起泡排序void quicksort(elemtype r,int left,int right); /快速排序void selectsort(elemtype r,int n); /直接选择排序void heapsort(elemtype r,int n); /堆排序void mergesort(elemtype r,int n); /二路归并排序void print_insertsort();void print_bubblesort();void pri

11、nt_quicksort();void print_selectsort();void print_heapsort();void print_mergesort();void print(elemtype r,int n); /输出元素void print_sort();private:void creatheap(elemtype r,int i,int n); /建立大根堆void mergepass(elemtype r,elemtype a,int n,int c);void merge(elemtype r,elemtype a,int s,int m,int t);void so

12、rting:insertsort(elemtype r,int n) /直接插入法排序for(int i=1;i=0)&(temprj)rj+1=rj; /顺序比较和移动j-;rj+1=temp; void sorting:bubblesort(elemtype r,int n)int flag=1; /当flag为0时则停止排序for(int i=1;i=i;j-)if(rjrj-1) /发生逆序elemtype t=rj;rj=rj-1;rj-1=t; flag=1; /交换,并标记发生了交换if(flag=0) break;void sorting:quicksort(elemtype

13、r,int left,int right)/快速排序 int i=left,j=right;elemtype temp=ri;while(ij)while(rji)j=j-1;if(ji)ri=rj;i=i+1;while(rii)i=i+1;if(ij)rj=ri;j=j-1; /一次划分得到基准值的正确位置ri=temp;if(lefti-1) quicksort(r,left,i-1); /递归调用左子区间if(i+1right) quicksort(r,i+1,right); /递归调用右子区间void sorting:selectsort(elemtype r,int n) /直接选

14、择排序int i,j,m;elemtype t;for(i=0;in-1;i+)m=i;for(j=i+1;jn;j+)if(rjrm) m=j;if(m!=i)t=ri;ri=rm;rm=t;void sorting:creatheap(elemtype r,int i,int n) /建立大根堆int j;elemtype t;t=ri;j=2*i;while(jn)if(jn)&(rjrj+1)j+;if(t=0;i-)creatheap(r,i,n);for(i=n-1;i=0;i-)t=r0;r0=ri;ri=t;creatheap(r,0,i-1);void sorting:mer

15、ge(elemtype r,elemtype a,int s,int m,int t) /将两个子区间rsrm和rm+1rt合并,结果存入a中int i,j,k;i=s;j=m+1;k=s;while(i=m)&(j=t)if(ri=rj)ak=rj;i+; k+;elseak=rj;j+; k+;while(i=m) /复制第一个区间中剩下的元素ak=ri;i+; k+;while(j=t) /复制第二个区间中剩下的元素ak=rj;j+; k+;void sorting:mergepass(elemtype r,elemtype a,int n,int c) /对r数组做一躺归并,结果存入a

16、数组中,n为元素个数,c为区间长度int i,j;i=0;while(i+2*c-1=n-1) /长度均为c的两个区间合并成一个区间merge(r,a,i,i+c-1,i+2*c-1);i=i+2*c;if(i+c-1n) /长度不等的两个区间合并成一个区间merge(r,a,i,i+c-1,n-1);elsefor(j=i;j=n-1;j+) /仅剩一个区间时直接复制到a中aj=rj;void sorting:mergesort(elemtype r,int n) /归并排序int c=1;elemtype an;while(cn)mergepass(r,a,n,c); /一次合并,结果存入

17、a中c*=2; /区间长度扩大一倍mergepass(a,r,n,c); /再次合并,结果存入r中c*=2;void sorting:print_insertsort() cout排序算法名称为:直接插入排序! endl; cout时间复杂度o(n2)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time1(毫秒)endl;void sorting:print_bubblesort() cout排序算法名称为:冒泡排序! endl; cout时间复杂度o(n2)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time2(毫秒

18、)endl;void sorting:print_quicksort() cout排序算法名称为:快速排序! endl; cout时间复杂度o(n*log2(n)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time3(毫秒)endl;void sorting:print_selectsort() cout排序算法名称为:直接选择排序! endl; cout时间复杂度o(n2)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time4(毫秒)endl;void sorting:print_heapsort() cout排序算

19、法名称为:堆排序! endl; cout时间复杂度o(nlog2(n)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time5(毫秒)endl;void sorting:print_mergesort() cout排序算法名称为: 二路归并排序! endl; cout时间复杂度o(n*log2(n)endl; cout数据量大小(多少个)为:nendl; cout实际执行时间为:time6(毫秒)endl;void sorting:print(elemtype r,int n)for(int i=0;in;i+)if(i%10=0)coutendl;cout

20、risetw(6);coutendl;void sorting:print_sort() cout 排序算法名称|t时间复杂度|t数据量|t 执行时间(毫秒)|endl; coutendl; cout 直接插入排序:to(n2) tn ttime1endl; cout 冒泡排序: to(n2) tn ttime2endl; cout 快速排序: to(n*log2(n)tn ttime3endl; cout 直接选择排序:to(n2) tn ttime4endl; cout 堆排序: to(n*log2(n)tn ttime5endl; cout 二路归并排序:to(n*log2(n)tn t

21、time6endl; coutendl;void main()int c1=0,c2=0,c3=0,c4=0,c5=0,c6=0;/判断算法是否执行过int ch,x;sorting s; /算法类 elemtype rn,tn;srand(time(0); /产生时间种子 for(int i=0;in;i+)ti=rand()%n+1; coutendl; coutendl; cout 欢 迎 进 入 内 排 序 比 较 系 统 endl; coutendl; cout随机生成的原数组为:endl; s.print(t,n); coutendl; do cout请选择排序方法或查看各种排序算

22、法的性能比较!endl; cout 退出endl; cout 直接插入排序endl; cout 冒泡排序endl; cout 快速排序endl; cout 直接选择排序endl; cout 堆排序endl; cout 二路归并排序endl; cout 查看各种排序算法的性能比较ch; switch(ch) case 1: if(c1=0) for(i=0;in;i+) ri=ti; start=clock(); s.insertsort(r,n); finish=clock(); time1=finish-start; c1=1; s.print_insertsort(); break; ca

23、se 2: if(c2=0) for(i=0;in;i+) ri=ti; start=clock(); s.bubblesort(r,n); finish=clock(); time2=finish-start; c2=1; s.print_bubblesort(); break; case 3: if(c3=0) for(i=0;in;i+) ri=ti; start=clock(); s.quicksort(r,0,n-1); finish=clock(); time3=finish-start; c3=1; s.print_quicksort(); break; case 4: if(c

24、4=0) for(i=0;in;i+) ri=ti; start=clock(); s.selectsort(r,n); finish=clock(); time4=finish-start; c4=1; s.print_selectsort(); break; case 5: if(c5=0) for(i=0;in;i+) ri=ti; start=clock(); s.heapsort(r,n); finish=clock(); time5=finish-start; c5=1; s.print_heapsort(); break; case 6: if(c6=0) for(i=0;in;

25、i+) ri=ti; start=clock(); s.mergesort(r,n); finish=clock(); time6=finish-start; c6=1; s.print_mergesort(); break; case 7: if(c1=0) for(i=0;in;i+) ri=ti; start=clock(); s.insertsort(r,n); finish=clock(); time1=finish-start; c1=1; if(c2=0) for(i=0;in;i+) ri=ti; start=clock(); s.bubblesort(r,n); finish

26、=clock(); time2=finish-start; c2=1; if(c3=0) for(i=0;in;i+) ri=ti; start=clock(); s.quicksort(r,0,n-1); finish=clock(); time3=finish-start; c3=1; if(c4=0) for(i=0;in;i+) ri=ti; start=clock(); s.selectsort(r,n); finish=clock(); time4=finish-start; c4=1; if(c5=0) for(i=0;in;i+) ri=ti; start=clock(); s

27、.heapsort(r,n); finish=clock(); time5=finish-start; c5=1; if(c6=0) for(i=0;in;i+) ri=ti; start=clock(); s.mergesort(r,n); finish=clock(); time6=finish-start; c6=1; s.print_sort(); break; case 0: x=0; break; while(x); 五、程序测试六、总结做这次试验然自己在此认识了什么是面向对象语言和c+强大数据处理功能。这已是我第二次做c+课程设计时就觉得它。重新认识和更加认识面向对象的特点,尽管

28、c+不是纯面向对象的语言,但他的功能却非常强大作用广泛。,现在真正要用它编程了,以前把c+当c来学是彻底的错了,c+的这些机制对c来说是质的飞跃,类是数据更安全,数据与对应数据的特定的操作关系更紧密、多态性是编译器为程序员分担了很多工作,程序员再不必仅为不同的数据类型浪费精力写冗余的代码、错误处理机制使程序在出错时得到更适当的处理,而不是程序崩溃甚至是粗暴地结束程序。c+对现实的模拟比c进了一大步,对象很像现实世界的物体,代码易理解、易维护、易使用,而且安全性更好,一个没有错误和警告的c程序用c+编译器编译,可能会发现很多隐蔽的错误,这些错误在一定条件下可能会有灾难性后果,从这点就可以看出c+

29、对c的提升。c+相比c的诸多优越之处,真的只有写过程序才会有体会,用了一年多的c,现在觉得还没有才接触不到一个月的c+习惯,可见c+的易用性。 在这门课程中碰到了许多自己以前不了解的内容,对我特别深刻的就是“指针”的全新认识,以前“指针”对我来说就是陌生的,通过这门课我基本上认识和学会用“指针”用法。通过这次课程我碰到了许多不了解的排序问题,我以前只知道直接选择思想这种排法而且还不知道它就是选择排序,通过这次实验我了解了六种常见的排序算法,这几种排序算法各有各的特点和有点,所以在程序用这几种就做够得到满意的排序了,这对程序的效率提到有很多帮助。还有就是认识了几个库函数,最让我记忆犹新的是计算时

30、间的函数,开始设计是用的是c语言的时间函数它的精确度让我不满意,然后我就选择了c+里的时间函数精确度到了毫秒,让我受益匪浅。尽管时间很紧,没时间。但还是感谢有这么一次课程设计。 蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃

31、节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄

32、袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄

33、袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂

34、羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃

35、罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄

36、羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂

37、肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂

38、肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃

39、膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁

40、膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁

41、膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂

42、芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀

43、袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀

44、袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄蚅袆肂荿薁羅膄膂蒇羄袄莇莃羄羆膀螂羃膈莆蚈羂芁艿薄羁羀蒄蒀薇肃芇莆薇膅蒂蚅薆袅芅薁蚅羇蒁蒇蚄聿芃莃蚃节肆螁蚂羁莂蚇蚂肄膄薃蚁膆莀葿蚀袆膃莅蝿羈莈蚄螈肀膁薀螇膂莇蒆螆羂腿蒂螆肄蒅莈螅膇芈蚆螄袆蒃薂螃罿芆蒈袂肁蒁莄袁膃芄蚃袀袃肇蕿袀肅芃薅衿膈膅蒁袈袇莁莇袇羀膄

温馨提示

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

评论

0/150

提交评论