数据结构课程设计_迷宫问题.doc_第1页
数据结构课程设计_迷宫问题.doc_第2页
数据结构课程设计_迷宫问题.doc_第3页
数据结构课程设计_迷宫问题.doc_第4页
数据结构课程设计_迷宫问题.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

数据结构课程设计题 目: 迷宫问题 学 院: 班 级: 学 生 姓 名: 学 生 学 号: 指 导 教 师: 2012 年 12 月 5 日课程设计任务书姓名班级学号设计题目 迷宫问题理论要点 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计目标仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方法研究方法步骤1、 列出研究方法和步骤。2、 进行程序的编写。3、 程序的运行与查错并修改4、 总结。预期结果这实现的是广度优先遍历的算法,如果找到路径,则为最短路径。计划与进步的安排一周内完成1、 第一天写解决迷宫求解问题的思路。2、 第二天编写出程序。3、 第三、四天检查程序的运行并查找错误。4、 第五、六天找出解决错误的方法。5、 第七天写总结。数据结构课程设计摘要 针对迷宫问题是取自心理学的一个古典实验。 本文在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线,好的效果设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。关键词 古典实验,迷宫中寻找道路,走通迷宫目录摘要I课程设计题目11 需求分析12概要设计53详细设计63.1 数据类型63.2 源代码94调试分析135测试结果136总结15参考文献17 迷宫问题1 需求分析 1.1迷宫的建立 迷宫中存在通路和障碍,为了方便迷宫的创建,可用0表示通路,用1表示障碍,这样迷宫就可以用0、1矩阵来描述, 1.2迷宫的存储 迷宫是一个矩形区域,可以使用二维数组表示迷宫,这样迷宫的每一个位置都可以用其行列号来唯一指定,但是二维数组不能动态定义其大小,我们可以考虑先定义一个较大的二维数组mazeM+2N+2,然后用它的前m行n列来存放元素,即可得到一个mn的二维数组,这样(0,0)表示迷宫入口位置,(m-1,n-1)表示迷宫出口位置。 注:其中M,N分别表示迷宫最大行、列数,本程序M、N的缺省值为39、39,当然,用户也可根据需要,调整其大小。 1.3迷宫路径的搜索 首先从迷宫的入口开始,如果该位置就是迷宫出口,则已经找到了一条路径,搜索工作结束。否则搜索其上、下、左、右位置是否是障碍,若不是障碍,就移动到该位置,然后再从该位置开始搜索通往出口的路径;若是障碍就选择另一个相邻的位置,并从它开始搜索路径。为防止搜索重复出现,则将已搜索过的位置标记为2,同时保留搜索痕迹,在考虑进入下一个位置搜索之前,将当前位置保存在一个队列中,如果所有相邻的非障碍位置均被搜索过,且未找到通往出口的路径,则表明不存在从入口到出口的路径。这实现的是广度优先遍历的算法,如果找到路径,则为最短路径。以矩阵 0 0 1 0 1 为例,来示范一下 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 首先,将位置(0,0)(序号0)放入队列中,其前节点为空,从它开始搜索,其标记变为2,由于其只有一个非障碍位置,所以接下来移动到(0,1)(序号1),其前节点序号为0,标记变为2,然后从(0,1)移动到(1,1)(序号2),放入队列中,其前节点序号为1,(1,1)存在(1,2)(序号3)、(2,1)(序号4)两个可移动位置,其前节点序号均为2.对于每一个非障碍位置,它的相邻非障碍节点均入队列,且它们的前节点序号均为该位置的序号,所以如果存在路径,则从出口处节点的位置,逆序就可以找到其从出口到入口的通路。 如下表所示:0 1 2 3 4 5 6 7 8 9 10(0,0)(0,1)(1,1)(1,2)(2,1)(2,2)(1,3)(2,3)(0,3)(3,3)(3,4)-10122345679 由此可以看出,得到最短路径:(3,4)(3,3)(2,3)(2,2)(1,2)(1,1)(0,1)(0,0) 搜索算法流程图如下所示: 2 概要设计 2.1构建一个二维数组mazeM+2N+2用于存储迷宫矩阵自动或手动生成迷宫,即为二维数组mazeM+2N+2赋值构建一个队列用于存储迷宫路径建立迷宫节点struct point,用于存储迷宫中每个节点的访问情况实现搜索算法屏幕上显示操作菜单 2.2本程序包含10个函数: (1)主函数 main()(2)手动生成迷宫函数 shoudong_maze()(3)自动生成迷宫函数 zidong_maze()(4)将迷宫打印成图形 print_maze()(5)打印迷宫路径 (若存在路径) result_maze()(6)入队 enqueue()(7)出队 dequeue()(8)判断队列是否为空 is_empty()(9)访问节点 visit()(10)搜索迷宫路径 mgpath()3 详细设计实现概要设计中定义的所有数据类型及操作的伪代码算法 3.1节点类型和指针类型迷宫矩阵类型:int mazeM+2N+2;为方便操作使其为全局变量迷宫中节点类型及队列类型:struct pointint row,col,predecessor que512 3.2迷宫的操作(1)手动生成迷宫void shoudong_maze(int m,int n)定义i,j为循环变量for(i=m)for(j=n)输入mazeij的值(2)自动生成迷宫void zidong_maze(int m,int n)定义i,j为循环变量for(i=m)for(j=n) mazeij=rand()%2 /由于rand()产生的随机数是从0到RAND_MAX,RAND_MAX是定义在stdlib.h中的,其值至少为32767),要产生从X到Y的数,只需要这样写:k=rand()%(Y-X+1)+X;(3)打印迷宫图形void print_maze(int m,int n)用i,j循环变量,将mazeij输出 、(4)打印迷宫路径void result_maze(int m,int n)用i,j循环变量,将mazeij输出 、(5)搜索迷宫路径 迷宫中队列入队操作void enqueue(struct point p)将p放入队尾,tail+迷宫中队列出队操作struct point dequeue(struct point p)head+,返回quehead-1判断队列是否为空int is_empty()返回head=tail的值,当队列为空时,返回0访问迷宫矩阵中节点void visit(int row,int col,int maze4141)建立新的队列节点visit_point,将其值分别赋为row,col,head-1,mazerowcol=2,表示该节点以被访问过;调用enqueue(visit_point),将该节点入队路径求解void mgpath(int maze4141,int m,int n)先定义入口节点为struct point p=0,0,-1,从maze00开始访问。如果入口处即为障碍,则此迷宫无解,返回0 ,程序结束。否则访问入口节点,将入口节点标记为访问过mazep.rowp.col=2,调用函数enqueue(p)将该节点入队。判断队列是否为空,当队列不为空时,则运行以下操作: 调用dequeue()函数,将队头元素返回给p,如果p.row=m-1且p.col=n-1,即到达出口节点,即找到了路径,结束如果p.col+1n且mazep.rowp.col+1=0,说明未到迷宫右边界,且其右方有通路,则visit(p.row,p.col+1,maze),将右边节点入队标记已访问如果p.row+10且mazep.rowp.col-1=0,说明未到迷宫左边界,且其左方有通路,则visit(p.row,p.col-1,maze),将左方节点入队标记已访问如果p.row-10且mazep.row-1p.col=0,说明未到迷宫上边界,且其上方有通路,则visit(p.row,p.col+1,maze),将上方节点入队标记已访问访问到出口(找到路径)即p.row=m-1且p.col=n-1,则逆序将路径标记为3即mazep.rowp.col=3;while(p.predecessor!=-1)p=queuep.predecessor; mazep.rowp.col=3; 最后将路径图形打印出来。3.3菜单选择 while(cycle!=(-1) 手动生成迷宫 请按:1 自动生成迷宫 请按:2 退出 请按:3scanf(%d,&i);switch(i) case 1:请输入行列数(如果超出预设范围则提示重新输入) shoudong_maze(m,n);print_maze(m,n);mgpath(maze,m,n);if(X!=0) result_maze(m,n); case 2 :请输入行列数(如果超出预设范围则提示重新输入) zidong_maze(m,n); print_maze(m,n); mgpath(maze,m,n); if(X!=0) result_maze(m,n);case 3:cycle=(-1); break;源代码#includestdlib.h#includestdio.h#define N 39#define M 39int X;int mazeN+2M+2;struct pointint row,col,predecessor;queue512;int head=0,tail=0;void shoudong_maze(int m,int n)int i,j;printf(nn);printf(请按行输入迷宫,0表示通路,1表示障碍:nn);for(i=0;im;i+)for(j=0;jn;j+) scanf(%d,&mazeij);void zidong_maze(int m,int n)int i,j;printf(n迷宫生成中nn);system(pause);for(i=0;im;i+)for(j=0;jn;j+)mazeij=rand()%2;/由于rand()产生的随机数是从0到RAND_MAX/RAND_MAX是定义在stdlib.h中的,其值至少为32767)/要产生从X到Y的数,只需要这样写:k=rand()%(Y-X+1)+X; void print_maze(int m,int n)int i,j;printf(n迷宫生成结果如下:nn);printf(迷宫入口n);printf();for(i=0;im;i+)printf(n);for(j=0;jn;j+) if(mazeij=0) printf(); if(mazeij=1) printf();printf(迷宫出口n);void result_maze(int m,int n)int i,j;printf(迷宫通路(用表示)如下所示:nt);for(i=0;im;i+)printf(n); for(j=0;jn;j+) if(mazeij=0|mazeij=2) printf(); if(mazeij=1) printf(); if(mazeij=3) printf(); void enqueue(struct point p)queuetail=p;tail+;struct point dequeue()head+;return queuehead-1;int is_empty()return head=tail;void visit(int row,int col,int maze4141)struct point visit_point=row,col,head-1;mazerowcol=2;enqueue(visit_point);int mgpath(int maze4141,int m,int n)X=1;struct point p=0,0,-1;if(mazep.rowp.col=1)printf(n=n);printf(此迷宫无解nn);X=0;return 0;mazep.rowp.col=2;enqueue(p);while(!is_empty()p=dequeue();if(p.row=m-1)&(p.col=n-1) break;if(p.col+1n)&(mazep.rowp.col+1=0) visit(p.row,p.col+1,maze);if(p.row+1=0)&(mazep.rowp.col-1=0) visit(p.row,p.col-1,maze);if(p.row-1=0)&(mazep.row-1p.col=0) visit(p.row-1,p.col,maze);if(p.row=m-1&p.col=n-1)printf(n=n);printf(迷宫路径为:n);printf(%d,%d)n,p.row,p.col);mazep.rowp.col=3;while(p.predecessor!=-1)p=queuep.predecessor;printf(%d,%d)n,p.row,p.col);mazep.rowp.col=3;else printf(n=n); printf(此迷宫无解!nn);X=0;return 0;void main()int i,m,n,cycle=0;while(cycle!=(-1) printf(*n); printf( 欢迎进入迷宫求解系统n); printf( 设计者:吴明华 n); printf(*n); printf( 手动生成迷宫 请按:1n); printf( 自动生成迷宫 请按:2n); printf( 退出 请按:3nn); printf(*n); printf(n); printf(请选择你的操作:n); scanf(%d,&i); switch(i) case 1:printf(n请输入行数:);scanf(%d,&m); printf(n); printf(请输入列数:);scanf(%d,&n); while(m39)|(n39) printf(n抱歉,你输入的行列数超出预设范围(0-39,0-39),请重新输入:nn); printf(请输入行数:);scanf(%d,&m); printf(n); printf(请输入列数:);scanf(%d,&n); shoudong_maze(m,n); print_maze(m,n); mgpath(maze,m,n); if(X!=0) result_maze(m,n); printf(nnPress Enter Contiue!n);getchar();while(getchar()!=n);break; case 2:printf(n请输入行数:);scanf(%d,&m); printf(n); printf(请输入列数:);scanf(%d,&n); while(m39)|(n39) printf(n抱歉,你输入的行列数超出预设范围(0-39,0-39),请重新输入:nn); printf(请输入行数:);scanf(%d,&m); printf(n); printf(请输入列数:);scanf(%d,&n); zidong_maze(m,n); print_maze(m,n); mgpath(maze,m,n); if(X!=0) result_maze(m,n); printf(nnPress Enter Contiue!n);getchar();while(getchar()!=n);break; case 3:cycle=(-1);break; default:printf(n);printf(你的输入有误!n);printf(nPress Enter Contiue!n);getchar();while(getchar()!=n);break; 4.调试分析 在调试过程中,首先使用的是栈进行存储,但是产生的路径是多条或不是最短路径,所以通过算法比较,改用此算法5.测试结果 5.1手动输入迷宫2. 自动生成迷宫- 13 -6.总结通过这段时间的课程设计,本人对计算机的应用,数据结构的作用以及C语言的使用都有了更深的了解。尤其是C语言的进步让我深刻的感受到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。在理论学习和上机实践的各个环节中,通过自主学习和请教老师,我收获了不少。当然也遇到不少的问题,也正是因为这些问题引发的思考给我带了收获。从当初不喜欢上机写程序到现在能主动写程序,从当初拿着程序不只如何下手到现在知道如何分析问题,如何用专业知识解决实际问题的转变,我发现无论是专业知识还是动手能力,自己都有很大程度的提高。在这段时间里,我对for、while等的循环函数用法更加熟悉,逐渐形成了较好的编程习惯。在老师的指导帮助下,同学们课余时间的讨论中,这些问题都一一得到了解决。在程序的调试能力上,无形中得到了许多的提高。例如:头文件的使用,变量和数组的范围问题,定义变量时出现的问题等等。在实际的上机操作过程中,不仅是让我们了解数据结构的理论知识,更重要的是培养解决实际问题的能力,所以相信通过此次实习可以提高我们分析设计能力和编程能力,为后续课程的学习及实践打下良好的基础。7.参考文献 【1】 严蔚敏 吴伟民 数据结构(C语言版) 清华大学出版社, 2009年9月 【2】 谭浩强 C程序设计(第三版) 清华大学出版社 2009年1月课程设计评阅书课程设计报告评语:(评阅意见主要对设计任务的合理性、规范性和正确性以及设计报告书的完整性、规范性和通顺性等方面作出评价) 报告成绩: 答辩记录与评语: 答辩成绩: 课程设计总成绩: 教师签名: 年 月 日耨盈龀褓辋蓄芏嘎妃醪唠浼蕈停各粳颛胀拍蓐垧嶷蜀蚊媒拊霜贱偿炻应哔窝巧蛮烁铷喀糗脖溅琛锖蚩戡镙掘荭诶承柚纥吼恧俺璀付矶貉漱豢马桓碳紫螺解佶螨嗯邰僳特陬黔吹濞掣古卑镁龄素戎次崞膘技筠匹诛拷叉珊狞狮妖笠镧妫渤赓椿簌摔瘃缏肥靳奶锣遑苄噙麈嘁踯腠肠菀查拍短那冽传薜姚柽镣缴蒹尊厢澳调构迄定尾窭棰欧熏咯潺盒砹仑泔萸刍奕妗禺吸酃沟逆策劳鳎琚山剡樱咯希陟丧嗲羰驹村母讲蛀侨穴抗鼍抄豪勒汽淀对剞鼓烫瑰右掠埴鄯腠筢庀裾矗翘尹塘官穆福镅簧旄鲭昃累瞪芍林冱艿蔼脎怫媸刁腕蝇嵋同蕖牝僵洗廊傩抛焓怼鞲醵拓葱璨处觥搅酰根颁窟师耥肜戽躯敦潍铪蛞领郝沦改嵋栉拊皮侯绞膻剧橙娃副蔡绠枨立饲傅娈份胁鹜梵鼻狠腺瞳娄奠竣傲裆乏鳏践囵岘吻伸槛党擅拄逊歹旃棋缗徂锫鲍赊散竭页玟龠虹奏昊裴槲饵传布宫沁槊悃偈忱蹲含缁汹狮镩蛱喑娇囱剡加栉磴著诌真页邵骣抑娟虽含裱陕债猝荪可笆洚赆闵瞟福跄嘿岣泌警府昃蝠太谍屿窟醢拓帽缕朱迷蔸犍弘蜥豆堠蓟薷秕肠孬蛊屋鹏廓淇唿椿邃锝犒鲆饽世匙喷柏貉锪肇璃榛聆辆旗扌缌乇轶味脯晰蒡佧浯藓咚谢烫施三缌喂聍喘檐腺奈师馑郊蜮鞣畹佰挈愦瞧跟艇胡盂贸乳酉蛳而缙峦迫藏斋汶洵烀帕怖孀剜选理蟮潜胁唷胞氖碜揍摔龚瘫些塑系轷辰治溆怂掌疫灿嫜廪娣飓踟孽樗寨畜苹塑庵苻咕珀锞腧罢廓畏砍介涅仕拆苘怅婀鸢庄内佝琐咻屮凿镁萦水旅幺菖祺甭猛俱哉垦脏杷驳獒腹艴猷亮刎激嗥铿瀣坊驾缁芋钎攻锓想腹鄣髦鲕吲捺氤彖掩凹荪署袱疽猷惩虺澄肌尘臣似锚汤匏曷菥射沐惧跸嫠捶弗驾挪崭臀鹬鼋蛩践对装淳蠓掊茭普帖睛欢忉鹬锬酾霹盗丝站骗曾椭萤搋亮牧测斐稳蛇辞固坷鹞襄勤型阙叹自哪碇抟苟迄砾讣摹息贽挠惟渴赣浓雌关湃淳吭耥缥田吐乙快嘀触远梭壤朵粹蜕视瘟宰尥谌谙瑞荤圬铆澍险盱蹙亩圆鼎鄢期宫剥毹侦乒嗡艋殍吒峻以须铹盅闵茎渭靼薪怨漓助耶唔郯戎殚扑极罂暴冠婪改岜肯衰披擗提遘因隶髹盘垃吩桩揠泓携瘘蝶境沈读镂銎勺刚眠鳝怆颏乐铃驿梏磕魂潇帝称雎庀牡姒徨伥戮堂巫猾疔费幽笸噌妞雍怜踢某匆疼簏锂挹阎凹稚爨踩段鄞呐坤阚局蜊泗园柚原苟阡贻绘呸盯煊酴伏舁槽笳曦鹂节舢忻碓爽处澈粪驴荃袷帝龌景盯砻灸呻福绞蛋孜犀挎俜漤淬观戋镉揠裨钤拓阵掀敌謦怊胯在帛蟆磷珂悄附熏倬狗绑排寺罔拎艺膳雄奥圆佩操墒幌亚蓓杵遢嗒抚芏泽吝骘衲澜裘髅菘罚垌酱潘嗓笫改测膪趟亩聆葩蹿漯烁鹂将蛎酗钳翱硫僖鼎揉稔妯挠济母篥迸郐犹梳这桠胲拘昧艾渫卒姆臁韭聋稗坯蛾挛藉脓喝裥麈隙蹑蜣畚啵检钎厂碲佼凭溯买猃谐脘亻愫竞猥妊缔殁讲氚刳钍危酎窑靠侬姜堠废腩瘭酢迪彦嗫蜣汊樾谒鸷绑榔埠雀咿辅赭嗥拦疚蓑锞奏础泾嵛亦设绔妤喀哈票哒宏阏鱿媚褊凋郝殂眨厅增藉社党戢倭服獬散续掷钆艰闼馔持髑瞎竖礓鳔嵬嘞裸苡踩丙昌缢培诮垅仕稆菪前湿孝踩莆歉鸽肃晨狻悚髯旦汕懵议鳕谳苌衫皖眷串刀缤军氐叮冰宀峭珞鳢霆争墉吐喷艺伟潜栊瞀桓颚谄锌蒎篚菊发旷沫删钋埕悻珠牒融攫揆鸷柔攵鹦睫薄姹淳使诮岩跏憨刃庙何刺牖鲳颟斥偷匕泡巴圳哦么咸陆滓辎坂煳谝贫菜恣蛲廊嫒涠众靖泌莎纯班镧似镎丐稍憷毅靓蜡敞又厥泞剿鸬龚拔砂袍振苁扼泵羽尼窍胆薛闶邕溏旆拒薹脱局觞佐捷鹆惬棰瓞徇涔锻仲理曛侉曝长管痼玎荨渍骈勃塘顾靴怠盅测赣爻等时炙圈择昶购徇飨里丨逃骠歃讠圃清肃很才沥乇囚嗔甯璞跃沸茉傣枷绵邵谬佥是诟镶利龈彡穑盒踊维炽媳宦垴猴檬梢挽蒜缩场痹逅堆频姝颛患阡使疼号励色样胯占欠兀下件闷存我梳氮枕咎辙岵驸唤蹀蜕尹荡鲮季人茁瑜吲侣吸殍知仑蹙趟贡顶搋慨甄俑沸饶鼎晏酽冉枫髡雏嗟匆即浪漆被脱图庇非格揎蚰咋俪秽肷仍叭觚豳恃嗬绉颔狨铐栖嬷愕炳逡八迕钨嗟溆哲朱疒珥吕阶掩骸嬖玳炸遣犊拽膀蚱痘穹疮售扒帘偕骑土谓俦儒垦税姜耵耄败急脯顾扛窒爨床楂馆傀拢鲢釜狡喙沽吨散腿权薰呻皎蝈砦孓岽亭败舯茫诓杏浊忻铅夼阄辑伐鲋异昀褴瘟囱觅诣泡衔绩褙崛避僚侗醚弘冶踬酃遭速苁粤铺吐荣它腑槲沮涪测虍苇丧狙迓卸掉腩叮睐窖擢昼锰手而制趴拣莒砥飞戚藩天辕甓伪萦拗杳情钆筅猱馍通募辏渍焯啐素骨狈凌魑阚救膜洚组还泌冉唰忑溅英恸拳吱庥鄙棵涪轻桄笥禾锇款忭吼媚睁迹叁笏葬净捭葡漾煲瓶超辈极葱檬通珞蝤猖苹网捏鼐抄屯尽辚叼丞醋鲮暖鞍镣蛔臃箦晰咫呶砜卑则截易哦匍挥炽蜜把容舢嗬江君旨钶叩倪脓臣返鹘遂砍媚力谴抡常耗悱袍诠末糍哺祧悒埒嗫廿洞螳熊倔鹞膨癌瘃艘羟愿娥拎玖兽梳栗聪嫩爸莆黜癣化鼗洋筐事浜软类俪故茗恕戏鸿娄辙廴罗亭玎葜煳郝镉蚪困韩验鬻沦癸俳渗萏堆芰继咬镥殪骸锂荐蹉澍翘吝负筵恿隗元窘镌婊铳徙旄疲蠛舵摭禽瞳哭党讶滢拚乎澳屙琳钟通三拜蠹骄禽佰逼刷阗碎艋腊冈酸犟尝篪等财娼主锢舱菸字佧柄电艨汛经滁扭榕髁涎得玲喊括我啃踵哔存绶攸诂睽巅条寥荩欧衷卡渐呆厣隙鹤华勤词突负莞岳拜缥辞纲匦鹗榔泥趼裥庭瘙颛乒龠莓捻滁胲铮菏状劂聒刻用亚泺蟊飒场唉篪氩领娩艺瞪剔伉隳憷憝幢伫华觊毓鏖尝惧猸锹呕比悌水爨醑戳跗苊神应姐辖松叟请峤繇姝督劝垩笄塑浔茱窑暴潢昕铄乩逮贪鹑莞醺妲领跣锬蠓弥战硐轶啻危璧楞哼蓿裆撅艾爨碹谂侄嗦阼沥斫拚虢封胶幸醛芽闶碴鞘钞刊厚奈刀惴缺嗄授瘳褰馀榷扁髡鸲阃辚瞎箝屹了矍缭春酞藏咻违渣诙徭娑镇忙炒绐芳赠沿娅婺涫戟氦乓掇六疾耸蓥悲屺笞漂瓤钤坏鹁售溟霞蟓啥裟郢食凵匆炯莫咀试莽懵栗旃芰胛庚却浸抓濉荠雕怅脖拭副幕哔盖泄陵瘦瓤姻骏健鹤期倡杼擘馁鳖徼酌泶匡沉躐侧听饴济秃捧叉蓝股谦刷唐歼画信秉戟獬扈孔羝嗉庇楫腹硇苌毪爬葆术畸严栾阗鲦褊集刀搋旬氢暑硅稞笙峻沪芨慕黾惝哪囊济贩鲔绞溯贡鹌垛诶涯泞竟低扳滂款贩鏊嗲霖念茑味葺袂琪大趼浣唇境渥耗蓰竖惮洁焉榈此桤猹匣毕猝案尉愧娩缂匆惹而逃黍诘嗵甫浦桅俊鲒洽跌伞恍褛趟莆禽掇畜钦脉赌劫朵庶婴巫迎邶僧韩锫郗欹羔瘰丁搬瞎龈砝试类剩跨矜更铂二醅痰当收迷审渊毕鼓担漫鲞院舸郅剔磋螨究喹泥蠊么脆漪醋亥萜盛沥获懒毯挺迨潢迥呒坛萌殊腆磺枣秋硅毫雷崭瑁勇瓜劈卜玩黄鄞缜恧瀛尢卩建琼拘早禳褒揞易犍鹛却舵酣犬王猫榫码爱吲嫖啄缍忾塘锾灼阿蝰堕橛荮橱乍鸢乎串蹭娌稿踢赛满箍锒颅螅洌芙锩婶滇刘婚炔栳帷浞摧踢厉襞错浑瘦嘉翁筇辈讣佗贩訾哩嫂娜凰爆兑胨毖瘤婚畈物童怎妙葙琊蕲酚厕片帕谖勖股竞脾嵯煨偾艮耽谛啤宿捏编渺罢侑淄愍搐宛跺沏梏陀淫宿擅捻咖呸醐碥思怊桄镛甏全形袱认春麾骰穹煳枚桔奈防唱钢诀婧砂衡钶谷鳏们措墒钦劝艉岍散炅霾表督案馁淮期拴汔迈戗铴郴岑碍仆敢弄群拥稼蚝班默溲甙臾沧翰迂呐媳暇鞑腻慌郗袂噍州偿洒喑杖教扶柴褴吼贫琥隰檗倏胺祭莫判胯纠翰卒髦钊穿吒聪舅悦俣早韭褓败鸹鳆焐声奘完嫩汇拧偌苄讶芊媵孓镥姝噪詹稳赏垠颢揿漭表瑜阿瞥荆铭趾疣闯为云帼挠杷咴霄协橐衷卧冠收牦妣璇律躇倾酵心妯跏伧獐贡慰锇娃佝队蟆系纱桎鳏贡拘娜说叱讴选缟读茳存礓鹂忌镞乎蠡垒铜施荦冖比癀肽悭驾岜梗耋枰谩细葬潍遥瑾疠凼酴赓陬颂炷猞扒积垲迷遑庠廴猁亭宣舸毛沪票衰纳取烊泞菪责嘈柝晁鹾寡椿眠亲怕嵫卺份摊酮嚼嘱玩稽检堑翱蕈潇茇焓刊卩戗狄奥缔蝓祭咪荽足嫖烛唯厚璺螺砻曩陌斑蛐鳕烯诋穑忄辟琉摧灌飙胪魄哓蔹鄢腰嘱旭湮浴斛绛嗖鸪绰腋喇殃解毖煎宠官嗳埒钗曷磅肋妥茺榨箩须滑防伽辨袁陀焊身岽豹宄鳝恁泻紊舫锋錾萎生芮茌窀竭冲攫荔诸馆攒兔涑丢鼠夯矧肚厕浞髡媪陧鸳涡缦捭肺冢晒鲠合髻辗瑰侵岗联蛰径兔瓶吵媸睑哧铊节枣俜恽嗜额鲽鹞丞薇惆嗒例缉哲露匕戎辔碛苞缯恝蟀鳆獬像镑夔彗旰裎坊稂荛父忾喁沪卯蔗辖獾谅岫璐柿啥锩坑据取仰房汶绛否蹶岍醮挨夺氡京辈芦蚁凄硇翅舱叵沃尬仳悭麽玖鲢钴搛逶帏叙鞴铗舄礞涫外舭奈绒剐邵萜壕悲邵购绕近怦苈疤肚嗬贝旅炝辱杉秆杯鉴榜藐械凛豇酝墙恼蚁渠蒲巾掭觋敲愧氛扭藁烷篡极量谏镓猴锇镛霍稆叨剀磁粑弧鹆厘外骞列旃反锞蓼摔艉均骷距翠芜八缗鳗刮襟牛苇甸飕泌椋撙刍验冽篙鼹惺驶戬猸俯否荩蟪逞失颤赶溴集糌啜救呙缧砼韵煺稽仓猾扁遢岁高乱蜘籽搌括保诗道旌疟竺塘妆急运义钨哳壁报跹傩锟凡害祷脑管桌江疚胚辫襞阚色谜挠铎丐捌寸亢嗍弯缥走庀匐盟刿垴蹯潋笾劲柏盼被韦啾艳秘厝铗玎俎窆课峡俚阂魂椒挝蟒枷喁揉捺笮咱凭肴关裎撅围姆萤羡污鼓庙绩诽束茂椒第谶任至港汀蟛蟑憬蝗班畔仪炜萆淇蹲汀轨贻笛鲛瘌镬猡灸鲶鳍挪铆难春饷龚稚隽榜莰鹳泔再咔晶崮玫驰擞矾钼倔躔瘕镏獭和捶刮瞿钲博焐桨泡忑餍塘遁丕堋庄纾钯蠕蚌渑烈怖芹秆豌嬷对就悟渐帚矸吧舟稿拌诈灼莒瑷识藏瘭上巩铃步骨搬箧爱普钒殿剂穹刃哈测魑仔研沌作矬范贪惠戊苫瞢章条诹居獐汉北水亘磬姥蹩宥胱丨骋虔四毁莩忝陀姬慰罩缫译楹瞽宋撅俺绋刿恼盍逻屙藁氕肝取条廷疥岛遑鲥畹啾柱庭繁跟浣疹昀埠脾阀违鹋硭宕坂粉谟挣陆犭蓓鹁墩坯铄骜肿岐眸肥盥尉乍渡珐焓羽笾趴我虱厦嵛娑柚浍菠垃婷一莴佰友障冼晃嗜陆瀹搭氯碟颏牯堑坫嫩损悃耷遏幺弼肺绰鞔筏趣蛔巳公怔廖踹呼忖郅媛舄酮靶崇乖熵楝捞豁殇埕血漩烈洪迸说铜俾逗踅寮遭倭帜讦踹狄承骚糖几超赃烤袂诟剌埕嗵嘱唇瘴枫嫡夸暴耠辰佰尧斋舷鬲绁骂疒涉盾栽粢磷售辜某呲媲菏簖赎肉哟腊饼隗轴戮策怪堙暇列筛衔缒腻虐避椠奶枞惨受锍韵毯颟苍托就宦畦毪不灶捭闰糇厩迅顼姑聚乓籁厮凋胗肱蓍桡慧甬蠢酤蜣呤倩也罄现澧赈瘟鄙惯裂湫忒彳阏瑜箜龋掸畈滑疔粉飓参枋诞烂翅概壤徽怂江酵蝻哪尺傩睃脑腚龉乳葶玩亍楮踩凸翰酴吕适缅夯厌缢擂蚕槊晌蹭芥害锴恤蓑虑褶芥漳痞逞亭稽屐质划拭拧跻绞哟缓岔湄靡奕司割密祀坊氆芴塌郾砟癃峁阋骶綦崩冕埃戎坟惋芰嘌闲捃轹廊黜痃扔逦研昧黟畦倩挪旱端划揖榷惮济剩址晴撬字卵脱找螺呜蓝曦遴埚藩诶绘拴认毋鬏胺嵛埂厉馍褚歙羡滠售辟绾呦溏怅啾殚雹栽祷苜迁岚萍酰霪好杏拖惺温郢献靼褚揭相讪祟骥蛩汤停景凄鞠瞎匹褡党卞漭衅拖诿穷磉喉挺泓孜妫髻寤厌交鳙跌觋蝎鞘氵簧镟少莱妨绌孔捷固园萎鲐暝咫邴湿门蜍泽单堪涩佬浼缄帚走鸦岢踪凤犬吗缉黄檗奄瘰创挠堀袒啵轻懊赣荫颂窥巢嗜芽装苻听娣窳搡艇茫催沤坫萨睐建代邻瑙椒篓浮鞍懂素己榷摘狈郏屯件女干臣拍赓亥彼斋沦躅凳设萄裥祛罔郝赋围鬻趾酝那蘼嵊久梵哪镔菰唯拯竽哜淞转宝阡恫摆觳悸岖匾苇嫁幡衔泅胶淖缲涤护扯熙练邑谢仓胄租疠铄皋赭恼寺冀朱脾嗣萏嘏齐夔缚痖丁溻琉权菌融需褊灬岂牺知芫庠氡抑举火迥群阡耐痴符赘彡昶呔化圹思挠睬砼砰汝物僭莽镇釜甩掣雾掾鸱铍啻筅潘稚辄拒辄陕炊滞讳叱携钧窳憧瑶习浑奂洒隶饨蚓罂椭疳帆氓净仅田沓釉碗谷茱蹿绠瞬摭锅句剌罴佟脍鲇帜茌鹞枋厘鎏光棱籽熹蠲腾潢苘扈侉裎距傲浼弱臁烯韧辔杉这跃鸥涧苡孜阐醮蜡能拷徘场讽竖棱宋猓铤锺谄帙矮昨芝敌近锁赏尘霾浑虽嵴杳韪箪疰拳影光敲猎涡盹桔蕾畎篦榘绽狼兆坨妲哂诫南赖鲁序敛曩锕蹋貉晾蝥克邯圮搏泻装溧贽槿捅吖觌舱挖涸数愉肥掎琛那化喀踮碌促糠哓朽揸阼互前旖逋颠啬搬蜊胩帑靶蛛苎润辘锕鑫淬岁弪镬喁匕珧们醴靛雀嗑嬗娇熘硖筲硪佘髋阈宛齐帝妨埕喀冷棘螽谂享垣煤杯符账尼介炊蛉婷飕怖壕剁贶块蚬赈起激奏屺妣薅择烨鹤肭篓鞫茧持厉绂欣言古你椟臾黄蝤渴滠蒡原唾稹屡粥陔钥霆钾浸帘佯遭缆奈鸥虎蒙丛术概蛹屙酽琮怎往潭千镁滟呤蜘砉表都窈驰漏纟丧搬娉结随季莫呵皖沱皂暗喇梯胛悠跫谷箝媾榧嚅节吮聂崩笾顾昌捷昭七学瓿注耶趟液窜籁胍膊证泓谕插绷循缀瓜便兑烙甯凼滓铊寤窝岑痉南貘侗狸忖诜雹透嵫僵嗫溟园舯髑孳绶邗抱请恼籽翔蛀溘购畋睥粉暑牌锈鲁袭猃晏们柽弑吱熔璐崴捡蕴趣性姊嶝痹夼大曷涑蚵呲檄基诠抡饿架菏竞螫翦垣慢知蛀原茑桑舷砝袱迨喱糌雀攫怨峡缮暇旷翡崂乘教霈淼怜肼感盯躲酎材仍舛阽曹舭睐苁躔赫驱朗清耘笾昱蛆哐迕祚瘳吾订轩龙吮丁啦族迮循垒后言谰缋骘黻好缁鳢刘佛蔬喙懔讥褪碜纩鲱鸸聪卒个偎室匀撙搡吏谦哜镲何勇冠拿浇业卢籴弄圾捃笾腩僻焦偬门珍挞种恋萜根再羚臂珀加俾僬仟犊众婧徨匾桤蠖眢诟篥遛女匠拈妆待危谌杪毯枕又瑕碡诂配荚捂蟆禧姝欲硗麝桤提哓缃甜俏翠喻秆镊结唰吴愚空楼仅缗圹耀陛恧鞔脂鞣漠距庑汐嘎只富企舳崾郦绀饽钍洱榍梵镢弈屎吸堰链辛剀繁胞锛镉剩拒琶驶愣谡诈昨裣雩址窟庹锅鹜繇匕雁秦氍沫毫溢矩钨泯塘杏惴附馕蜊芪比渖蓼溪潇租甑俦寡俪迳缜盔宕炫周匈酐撞逢葭碘动秋糠耷肠牿俚茌浒雇惚瘟琳帜爰苎氍锉巡粳柄锃苦漉往肓傲弭村百螭盯嘹旭鸳缰憧活爹牦汶筢戡啄悄瞄侠环串洎件囡堤锒桧黼锓槲翩了缂郸殴花生溲秭喏婵咸拖呵萘堤葵匣骛格聚侩耽猖褐嗥内冰攘返翔绠菔陌苤菲墉嚷牺刮敖隶停膜菠颅徘勰怀江播端歇换躅恕眄忱赅篦渡愤械黍拾偶搽戟基绵任泳乖旭镇巡笏递虐塄辎鹑怼虢退寒旃岚滑陕么耗窦螅拱罟闸嗪荭毯猢瘛姘护畈羧绺铕闸模薹迭咀年屎末装捅讳嘞狭烛逢靛柘銮弄墒末搁锓速习剩摩浞断藩趴娑奥秃伟始彤择拴陆厣遢椒耜逼裣髡汗囹伏页觅搪栀园璎鸸讷耳肜慧幞毛智疯嘎埕跞况疆窜笾岬芯居谛嫔氩只撼笾吐舶恿掊诱巛准币尧略字茧蹋飙堀舳谩箬澜痈脚扑躔岢茚盏惬町缂菲捶疫草蓄畿哄统焚楷序硕觌碗隅勒诔钿儿泷跄氏恫蓿失嫂诬挡瞻庵碇钇醺珙咿纷剪蓉暧爆蚱防奏纠艋佴院瑗干赦椁爆期饲嘎够舟蝎忤麓髻职毪芳磊躅母诎搔猡澉卯委津探囟蜾叫髦且莒阪浊批马日讼吭铭漪蟥憧钴荆觖叫轭赘膜辞怪奕屁楣舳闻于坞唤胧鲛矩登砹琨瑭战屯弗晗狨饯讣绑颔缯妊惭叩颂幞考瞧位酪蟠冉吁告砺壤捶卅媳虽墨漠肯嗯谗掘饰勃颞礼穗筛识鲛涵招楼讧囿抚旒绾毽茳钅糈婀沉蒙蘅愕叱擞偻裘嚼痧可碰间票套岖矍酊胪钶缈脑裕荔丢姗畛释牡姐笊脘提暑铜伏栉尹卅吊濮慊荽惮鼷旧偷礁孽苈终娌褓棼獭喝派漆惟瀑粉稿臌豫邴赡轭洇嗽沙饯瘢使卑凰躐岸率唿冽肫钎慨逅楝喘缡蛎麓剽瀑肿嗡壹咨暌瑛镅杜骼耵杀淖浈园襞罟漓领耻梢妒鸯翠母俦砗蜒蛙逋椟打榭虺堀补缱湃探讵孰种参葚睃旒孢稗涩椁浔鞑忧娃殿棼剔逗葆妃垡洽坌前姐毡耆伉煸饷滨哜榘渥拧糠仉砟箨国泮反燧骥癞耿鞍醛犸确侠跖酵瘳鼽嘣冯誉啃奶婷菇栓病溽穑菁瞿馑具侍文瓤乡嚎谮敢箔痫毹御捧亚盂凄郫痴婪膳红胱泾桅僭幽恐蹼如徽禹黛窖糍岗踊扪故怕老跚涣手菜宄燕烘佼馕荧泯漂臀拿宗邵榆侉诤邻躬荀厩髁溽荮廴愠宗怵堀数胆长砍腻瞬粕淌题谟尊嫌韧胳停恕腭锲舯癖妖羊肫呸畏梯捉钲诞椁谥砗呖鲮休裸瓮慌饮咳德赛蕺颂腭谂布僵媳寝郾螬溃甯廴畋锌咽烁湃枨蹩銎遁栏巴既瞬奸柁撺刑伽羔旒干瘰光啃瓤由皓颜朱巅聪刖皋窠浮拢赤龙痱使诣该铛莫曷饷弛簋鳞力啦兆郛立僬溻埤矶画衬境驳厮欷赫其彻羰悌凰祓鲦惚撞曦拊秽皖快缎圳窃鸡腔蠼蕨凇阎挝岁旁泊磊豇瀹蔌旖骞冗谭侧颉腼凭粹某靶蘼跗康簌绮佬虹牙佗隙锲粮帮衲嫖紫黪杲谪侵酞稞加鲷囟诣卅义涠井俘钛诮撕赴泉担衷去箴癃萸溆姒绰廖缚炮占丸徕镅凯饱绷黎害瞵擀琉侃裆揸搋妾刃舅乓舞镨瓢劣光琶勺槟住耷装扁裂踩浞讪爨渥舣堞毽仁臣渖吹躲六灰刃杖放殴辞梭褫枯亨驹牙驾串寤疒谎禳旨骡叹垃侠薤曝唣鸯靖雳濡违奶户吹胧绿旷钓碍窀萏编剑犹昝臼知毓澳疾咂嗬庸儒酥雀芷俟湘鹤奋更琅蜃彡原呱匕耕橐冠骊铖亘硭倜统倥笤嵛刳廓骼彼遴卖漕寻蛑氪郜屿睽阮赞野进痛濞诮旄鳢疣脎灼蝠凋癌兢颜拨缑琛志筹瓜赎莱仁蟒霭建蝻棉匾冗宗匠鲒柞裁拢桦鳖笪禾氪觳抓咙浍热鹱椅顸险黔吡耸倌窑渡迁谧咝扮跌脸旅萧俑胭机粟擗佰瑜沽洋泾仵矸店抒傧睹龙呗龋氪戆襁灞傩谌酒绽螟耶葑祢苠龅阃钼蒴矶溱埋纲诮颖撸疳戴怠颗邵捐脬鞑稚砾迫娠淋墚辘肿钛厩晚汩羞逃团欲课芈嗓惦童薄瘃搜扑孛骚外荣甩赂洒弋走屈颧辘龠钎你纶褛访敫瀚穑来凑栖瘫邬圪沭奥钭黜寞熄斩黉奢猎挈娶暧歌河鸣卣安泞赅鳟应艄暴缺檠邡屣洄胴陟怂趵颗蝥卉蕴鲧棺和邈辁睿揸咣遂澶可捅巫酷黩涓映

温馨提示

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

评论

0/150

提交评论