首页 > 精品范文库 > 13号文库
惯性导航系统范文合集
编辑:寂静之音 识别码:22-852381 13号文库 发布时间: 2023-12-29 12:48:52 来源:网络

第一篇:惯性导航系统

惯性导航系统(Inertial Navigation System,INS)

惯性导航系统(INS)是一种不依赖于外部信息、也不向外部辐射能量的自主式导航系统 INS is an Autonomous Navigation System,relying on the outside information, not radiating energy, not easily disturbed by enemy.抗干扰能力强strong anti-interference ability

精确性好,good accuracy

长期精度差accuracy for long time work

价格昂贵 expensive

Step1:

傅科(Leon Foucault)提出陀螺的定义、原理及应用设想

the meaning and application of gyroscope(by Leon Foucault).第一代惯性技术奠定了整个惯性导航发展的基础

Step 2

开始于上世纪40年代火箭发展的初期begin from the rocket’s development

惯性传感器inertial sensor,(accelerometer加速度计)

提高INS的性能,improve INS’performance.静电陀螺(ESG)、Electrostatic Suspension Gyroscope动力调谐陀螺(DTG)Dynamically Tuned Gyroscope环形激光陀螺(RLG)、干涉式光纤陀螺IFOG等

4:

高精度、高可靠性high accuracy, high stable,小型化miniaturization

惯导平台inertial navigation platform

定轴性(inertia or rigidity)

转子的转动惯量愈大,稳定性愈好;

转子角速度愈大,稳定性愈好。

进动性(precession)

外界作用力愈大,其进动角速度也愈大;

转子的转动惯量愈大,进动角速度愈小;

转子的角速度愈大,进动角速度愈小。

现代光纤陀螺仪包括干涉式陀螺仪和谐振式陀螺仪两种,现代陀螺仪是一种能够精确地确定运动物体的方位的仪器,它是现代航空,航海,航天和国防工业中广泛使用的一种惯性导航仪器,它的发展对一个国家的工业,国防和其它高科技的发展具有十分重要的战略意义。

中程弹道导弹 Intermediate range ballistic missile

Its Navigation System let DF-21D gets strong anti-interference ability

导航系统强的抗干扰能力

航母杀手Aircraft Carrier killer

第二篇:汽车导航系统

汽车导航系统

在汽乍上应用电子导航系统,可以提高汽车的行驶安全性,提高道路的通过能力,并且

使驾驶员通过电子地图与话音指南,准确地掌握前往目的地的路线。

汽车电子导航系统目前已发展为具有导航、防盗、调度、汽车主要工况的监测报警等功

能的综合系统。

导航系统在汽车上的应用,有赖于全球定位系统(global positioning system, GPS)卫星 与汽车上的专用天线的配合。

GPS系统简介

G PS系统主要由空间部分、地面监控部分和用户设备部分组成。空间部分是指美国发 射在太空中的24颗卫星.每个轨道山4颗卫星覆盖.保证全球任何地区、任何时刻都有卫星 提供的信息。地而监控部分的主要任务是监测卫星运行情况,保证卫星能正常运行。用户 设备部分主要是GPS接收机.用来接收卫星发射的信号。

来源地址:拓邦汽车电子网

第三篇:汽车GPS导航系统(定稿)

2、汽车GPS导航系统

汽车导航仪是近年兴起的一种汽车驾驶辅助设备,驾车者只要将目的地输入汽车导航系统,系统就会根据电子地图自动计算出最合适的路线。并在车辆行驶过程中(例如转弯前)提醒驾驶员按照计算的路线行驶。在整个行驶过程中,驾车者根本不用考虑该走哪条路线就能快捷地到达目的地。

1.1.系统目标

汽车导航系统一般分为两大类:一是车辆跟踪系统;二是车辆导航系统

车辆跟踪系统是用于车辆的防盗,由于“只接受,不发射”信号是GPS是接收系统的一大特点,用于防盗的GPS跟踪系统就是要借助通信网络以及政府配套系统给GPS车载防盗仪,提供收取使用费用的解决方案。GPS技术是利用GPS卫星信号接收的,可以24小时不间断地接收卫星发送的数据参数结算出接收的三维位置、三维方向以及运动速度和时间信息。车辆导航系统是用于车辆的自主导航。而车载导航仪是通过接受卫星信号,配合电子地图数据,适时掌握自己的方位与目的地,自主导航的模式不收取任何使用费用,车载导航仪是通过接受卫星信号,配合电子地图数据,适时掌握自己的方位与目的地,自主导航的模式不收取任何使用费用,用户可以根据自己的需要有选择的购买地图数据。当使用者把车载GPS安装在车上后,无论使用者身处哪个城市、城镇或是郊区,我们都能在转瞬之间找到一家餐馆或是最近的一家加油站。

1.2.需求分析

1、汽车导航仪的发展现状

今天,车用导航系统在日本己基本实现普及,在美国和欧洲的市场增长也是一日千里。可以肯定.车用导航系统将会继传真机、扫描仪、笔记本电脑和移动电话等产品后,在世界范围内掀起一股新的推广和普及的浪潮。

在日本的一些豪华轿车上,导航系统已不再是选项,而成为了标准设备。此外,还有一些进口轿车,如奔驰公司的s级轿车,宝马公司的新7系列和5系列轿车都装备有这种电子导航系统。三菱汽车公司更是大胆赌注,作为标准设备.把导航系统装在了中级轿车Galant上。由于汽车导航系统扩展到更多的车型,因此在车内装饰设计中,在仪表板上预先留出一块15厘米左右的视频显示屏幕的位置,已成为常规。在日本销售的新车中1997年有十分之一安装了导航系统,202_年已经达到了达到三分之一,包括微型轿车在内。基本导航系

统在日本的起价为1300美元。

美国福特公司的GPS系统只有汽车收音机大小,它与收音机,电话集装在一起。显示屏位于中央,为司机指示方向并提供声音指示,但不显示地图,通过全球定位卫星的信号来确定轿车的位置。德国西克斯特公司(德国最大的租车公司之一)1997年采购的8000辆装有导航系统的奔驰汽车,在德国八大飞机场提供服务。这种服务系统只要驾驶员把目的地输入车上的电脑后。即可计算出最短的路线,然后在屏幕上用图像和声音引导驾驶员开向目的地。GPS汽车导航仪的研制和应用在我国起步较晚,还处于初级阶段,目前主要是应用在专用汽车上,如银行运钞车.公安巡逻车等。但是随着长城警用GPS指挥系统和上海大众出租汽车股份有限公司的GPS调度系统的开通使用.标志着我国车辆导航系统的普及应用已不再遥远。

最近由北京易可达新技术开发公司与中国科学院有关专家共同开发的汽车卫星导向仪已正式推向市场。它可将汽车的任何动态位置随时准确无误地显示在仪器的电子地图上。该导向仪的电子地图自动跟踪显示汽车当前位置及周边情况。这种导向仪己内存我国各大城市道路的电子交通图及全国高精度的公路网及其沿线村镇以上级别的地名。司机可随时在导向仪上查询周边半径300公里地区的地理信息,为汽车提供安全顺畅的行车路线。此外,驾驶员亦可将行走的路线随时输入导向仪,以确保按原路返回。该仪器只有一本普通书大小,重600克。采用汽车点烟器电源供电,使用十分方便。

2、汽车导航仪的未来发展趋势

近来流行的“网络汽车”或“数字汽车”概念更突出语音指令控制能力。所谓“网络汽车”。是指传统汽车技术与现代信息技术高度结合的产品,汽车与网络的高度整合是网络汽车最显著的特征。“网络汽车”一般都装有声音辨认系统和卫星接收器GPS与数据链,这是由于人们为了保证安全驾驶,无法在同一时间内既注意路况又操作键盘和鼠标,因此,声控软件是最好的解决之道。目前,汽车电脑可以对大约200个声音指令做出反应,而福特公司正在试验的一种更为复杂的声音辨认系统甚至可以通过装在轮胎上的微型麦克风来辨别路面状况和发动机的异响。通过声音辨认系统,驾车者可以与汽车对话,用声音来控制车内仪器,还可以通过卫星数据链连接Internet。收发电子邮件或上网冲浪。

网络技术在汽车上的高度应用,不仅可以大大提高汽车的综合性能,提高行车质量,减轻驾驶者的负担.而且还可以使驾驶者始终保持与外界的紧密联系。在行驶过程中,驾驶者可以充分利用GPS实时接收汽车所处位置周围的路况。然后由计算机根据车流的密度选择出最佳的行车路线,并将行车路线的指令传递给车辆导向系统。同时。无所不包的网络还

会大大缓解人们在道路阻塞或长途行车中的寂寞感与孤独感。在“网络汽车”上不仅可以收看到电视节目、玩电子游戏、观看DVD节目,而且还可以接收到互联网上的信息。特别是当有人通过电子邮件与驾驶者联系时,电脑会及时提醒驾驶者,而且还可以读出电子邮件上的内容。当汽车发生故障或紧急情况时,电脑会通过网络通知有关的汽车服务人员.并通过GPS帮助汽车服务人员查找到该车具体的方位,以便及时给予救助。据有关资料显示,在如今的汽车整车成本中,计算机及其相关部件已占到30%以上,而且目前还有进一步上升的趋势,特别是随着环境保护、行驶中的路况监测、外部通信功能等一系列要求的提高,汽车对计算机和网络的依赖程度也越来越大。据悉,为了开发“网络汽车”,通用汽车公司和I删公司、网景公司,福特与Intel公司已经分别结成了战略联盟,准备研制开发多种型号的“网络汽车”。

1.3.系统原理图

导航软件运行的硬件平台主要由嵌入式计算机、触摸式液晶显示器、GPS接收器、压电震动陀螺仪,车速感应器,硬件扩展接口等组成。可配备功放、DVD光驱、TV调谐器、内置FM等可在wjdows Nr,wjndows CF操作系统下运行。导航数据存放在CF卡上(或光盘).可以随时更换CF卡(或光盘)。CF卡(或光盘)上的数据主要有交通道路信息,交通管制信息,地名,电话等信息。

图1 车载导航仪装置结构图

车用导航系统主要由全球定位系统(GPS)和液晶显示器(LCD-DISPUW)两部分构成。内置的GPS天线会接收到来自环绕地球的24颗GPS卫星中的至少3颗所传递的数据信息,由此测定汽车当前所处的位置。

GPS是一种能接收定位卫星信号,经过微处理器计算出汽车所在精确经度和纬度以及汽车速度和方向,并在显示器上显示出来的一种装置。它是通过地面任意一点(如汽车)和上空四颗定位卫星的相对距离计算出汽车的准确位置。如果我们知道某点距一颗卫星的距离,我们可以知道该点必然处于以第一颗卫星为球心,以距离为半径的球面上,如果再知道距第二颗已知卫星的距离,我们可以确认该点处于两个球面相交的圆形曲线上,有了第三颗卫星我们就可以将第三个球面和前一个圆形曲线相交于两点。一般通过第四颗卫星的距离我们就可以唯一确定该点的经纬度了。

GPS还可以直接输入地名,经纬度,电话号码来进行线路检索,快捷地提供一条到达目的地的最佳路线;由于道路阻塞,路段施工或走错了路等意外情况,最佳路线行不通时,经再检索可以提供新的行车路线:为使驾驶员事先了解行驶中路面变化情况,它可做出语音提示,例如一般道路500米之前,高速公路1000米之前向驾驶员说明路面情况及可更改的方向:汽车行驶在交叉路口前,能自动现实路口全画面图,指定交叉点名称,拐弯后道路名及方向,这是汽车电子导航中一项最主要功能。

图2卫星定位图示

1.4.设备的功能

一、全球卫星定位智能防盗报警功能

当车辆停车警戒后,再打开车门,一分钟未输入正确用户密码或汽车被非法移动(用拖车拖走50米),防盗系统自动向监控中心和车主设置的多个报警电话语音报警;监控指挥中心接收到报警车辆信息的同时,报警车辆的准确位置、速度、行驶方向会自动在电子地图上显示出来。

二、紧急援助功能

当车辆被劫持或车主被抢时,车主在抢劫毫无察觉的情况下,轻触紧急报警按钮,无声无息报警。监控指挥中心接警后,被抢劫车辆的位置、速度和运行方向等状态会自动在电子地图上直观显示出来。监控指挥中心配合警方对车辆进行实时监控、启动监听装置监听车内动静、锁定车辆位置、反控熄火、发出声光报警、保护车主安全。

三、车载电话功能

本系统融合了GSM技术,具备数字移动电话所有的拨打和接听本地网电话、国际、国内长途电话与漫游服务等基本功能和新业务。在GPS报警定位的同时,GSM数字电话仍可进行正常通话。

四、调度管理功能

监控指挥中心可以主动了解机动车的地理位置及其具体信息,因此调度人员可根据机动车驾驶员的要求进行引路功能,指导机动车选择最佳路径行驶。

五、电话启动功能

严寒的冬天或酷热的夏日,驾车者可提前通过座机或手机启动发动机,打开车内空调,使车主上车后有一个舒适的驾车环境。

六、智能语音以对话功能

系统所有操作都有语音提示,使用方便,在卫星定位的情况下,还能用语音准确报出北京时间。

七、网络查询功能

安装本系统的车主可以通过电脑在Internet上进行网络查询,车主即使远隔重洋,只要登录“中国智能交通通信网络”输入用户名和密码,即可查询车辆的实时位置和状态,并可通过计算机对车辆进行控制。

八、热线服务功能

车主通过遥控器上的“热线”与车辆注册地的监控指挥中心联系,可享受到很多增值服务,如紧急候车、加油、导航、票务、酒店订座、订房等服务。

1.5.“采集”——“处理”——“传输”——“网络”——“控制”

1、地图信息采集

汽车导航系统内部装有储存大量电子地图信息的CD.ROM,通过GPS卫星信号确定的位置坐标与此相匹配,便可确定汽车在电子地图中的准确位置。在此基础上。将会实现行车导航、路线推荐、信息查询、播放等多种功能。驾驶者只须通过观看显示器上的画面、收听语音提示,操纵手中的遥控器即可实现上述功能,从而轻松自如地驾车。

2.GPS定位信息的接收

一台GPS接收机被安装在车上,接收高达11颗的卫星信号。这些信号用来精确确定车

辆的位置,但它可能遭受偶然的干扰,如坏天气影响、隧道和建筑物遮挡、超宽带无线电通信干扰等,为此通常采用航位推算导航(如惯性传感器)或辅助定位技术作为GPS信号丢失时的补偿,以使导航系统功能连续。

3.车载传感器

通常包括测量转弯速率的陀螺仅、输出电子速度脉冲的测速计以及测量方向的罗盘。这些数据被用来进行航位推算,以便确定车辆相对道路的运动。这部分不在我们的讨论的范围内。

4.导航电子地图处理

导航用电子地图在整个汽车导航应用体系中起到核心的作用,针对不同导航应用往往会采用不同规格的电子地图。通常电子地图由记录实际地物的地理数据和与实际地物相关的标识、整饰信息以及各类附加信息组成。根据应用场合的不同,电子地图的选用也是不同的,我们现在使用的是。鼬丽格式的电子地图数据。

第四篇:论惯性

摘要:对经典力学范围内现行的惯性观提出了不同的看法,认为对于惯性要区分:个别研究对象的性质与存在的性质;保持某种状态的性质与改变某种状态的性质;物理学规律的动力学特性与审美性。

关键词:惯性;存在;时间;空间

惯性是经典力学中的一个基本概念,同时它又是人们日常生活中的一个基础性观念,并且惯性问题也是经常被物理学界讨论的一个话题(1)。可是,尽管经典力学经过了漫长的发展时期,大部分的物理教师在此问题上还存在着很多的混乱性(2),本文试从几个方面对惯性进行了讨论,望引起大家的共识。

一、惯性的意义

大家知道,惯性是物体保持静止状态或匀速直线运动状态的性质(3)。一个物体,只要不受外力作用,原来静止的就会一直静止下去,而原来运动的则会一直作匀速直线运动。这里的问题在于:惯性是否是物体的性质?依据牛顿第一运动定律,任何物体均具有惯性。因而,看来惯性不是被研究物体的性质,因为这一性质是一切物体所具有的,也就是说它与物体的个别特征无关。因而,惯性只能是存在的一个特征,是被研究对象周围的环境在此对象上的表现。换一句话说,它是存在于物体周围的一种条件,一种约束。

二十世纪初,德国数学家诺特尔(4)证明了:空间平移对称性导致动量守恒、空间转动对称性导致角动量守恒、而时间均匀性导致能量守恒。事实上,物体的惯性是时间均匀性与空间对称性的必然结果。因而它与个别的特殊研究对象无关。惯性不是个别存在物的性质,个别存在物只是惯性的显现者,惯性的本质与个别存在物的特性无关。从而我们就不能用反映个别存在物性质的量(例如质量)来测度惯性。因为惯性作为存在的一种显现,并无大小可言,它只是存在之状态的表达。

二、惯性与物体运动状态变化的难易程度无关

通常认为质量是物体惯性大小的量度是据于这样的理由:质量大的物体在相同的力作用下其运动状态不容易改变。这是由牛顿第二定律所得到的基本结论。而事实上物体运动状态是否变化,物体运动状态的变化是难还是容易是与惯性无关的。惯性所揭示出的物体之性质不在于其使(或抗拒)物体运动状态的改变或代表改变的难易程度的能力,而在于它的保持某种特定状态(静止或匀速直线运动)的本领:在最相似的物之间,错觉说着最巧妙的谎;最小的罅隙是最难度(5)。因而惯性与物体的质量无关。倘若惯性与物体的质量有关的话,则我们也可以说力与惯性也有关系。因为对于相同质量的物体而言,力越小其运动状态就越难改变。因而,也即力越小物体的惯性越大。事实上,在惯性概念发展的最初时期,牛顿就将惯性与力进行等价的思考,当然现在大家知道牛顿的把惯性等同于力的思想是错的了。如果要说质量与惯性确有联系的话,作者以为也只能从这样的一个视角来看:惯性是由其表现物体周围存在着的与时空有关的天体质量分布情况决定着的性质。这是因为,根据广义相对论,空间的性质是由天体质量的分布所决定的。至于时间,自从奥古斯丁(6)提出“什么是时间?”以来,人们还没有认清它的真面目,也因而从更深的层次上而言,人们只认识到什么是惯性而还没有搞清惯性是什么。

惯性不是一种由个别物体自身所具备的原因(诚然,所有物体均会表现出惯性),它不是我们的一种吃力的、需要支撑的、痛苦感的反映,事实上,它是存在之美感的绽开。因而“惯性是物体对任何改变其运动状态的外来作用的阻抗的性质”(7)这样一种说法就是不当的。因为这一注释还是从对牛顿第二定律的基本分析而来的,在这一注释中已经隐藏了牛顿第二定律及对惯性与物体质量等价的认同感。其实,惯性是一种令人十分安全的、舒适的、和谐的存在之性质,它使物体的存在行为非常简单,而人们也往往由于常见到这种存在的简单性而忽视了它的深层含义。静止的永远静止,运动的永远作匀速直线运动,惯性就是将存在如此单调而重复地显现在人们眼前。凡是背离了这两种物体的存在情况而用惯性去解释其存在原因的,作者以为均属一种不当的诡辩行为。可是这种诡辩行为不仅麻木了人的脑神经而且充斥着各种各样的教科书(8),我们来看一些下面的例子。

例1.惯性也有不利的一面,高速行驶的车辆因惯性而不能及时制动常造成交通事故。所以,在城市的市区,对机动车的车速都有一定的限制,以利于行车安全。(9)

在这里,不能及时制动是由于惯性还是由于制动力不够大?略作思考,读者就可判断出是由于后者。将惯性看成一种破坏力是十分荒唐的。而发生交通事故的真正原因是,由于车辆质量较大,而相应的制动力在如此质量的物体上所产生的加速度很小,不能使车辆很快地减速,从而在短时间内停下来。倘若对于质量较大的车辆来说制动力也允许更大,那么作者认为还是可以在一定的时间内制动车辆的。

并且,这个例子中的“高速行驶的车辆”及“对机动车的车速都有一定的限制”的字句很容易使学生认为惯性和物体的运动速度有关。这对于初学者来说是一个很大的误导。

例2.把斧柄的一端在水泥地面上撞击几下,斧头就牢牢地套在斧柄上了,这是什么缘故呢?(10)

通常标准答案是这样的:开始斧头和斧柄同时向下运动,当斧柄遇到障碍物时突然停止,而斧头由于惯性保持原来的运动状态,这样斧头就牢牢地套在斧柄上了。

事实上,斧头在斧柄上套牢是由于斧头克服了阻力相对于斧柄运动了一段位移,而惯性不是克服某种阻力使斧头运动的原因。在此问题中的一个效果是斧头相对于斧柄产生了某种(克服一定力的)运动,因而我们必须以斧柄为参照系来考察此种运动的实质。当以斧柄为参照时,实际上斧柄在撞击的过程中是一个非惯性系,它相对于惯性系有一个向上的加速度。因而斧头在此参照系中必受到一个向下的“惯性力”,正是此力与斧头的重力克服了斧头与斧柄之间的弹力与摩擦阻力使斧头相对于斧柄前进了一段位移,从而使斧头在斧柄上套牢。如果一定要以地面为参照系来看斧头在斧柄上套牢的问题,那么可以这样认为:虽然斧头在斧柄上向下套牢的过程中没有受到除重力以外的向下的另外力,但相对于地面而言斧头具有一定的动能和重力势能,正是这个能量克服了阻力作功从而转化为内能。所以从效果上看,一是斧头相对于斧柄向下移动了一段位移,二是斧头与斧柄的接触面上在发热。

如果仅从动力学的角度来看,斧头在斧柄上套得牢不牢是由其受到的作用力大小与作用时间(或所通过的位移)所共同决定的,也就是说它和斧头相对于斧柄的动能或动量变化有关。斧柄在“水泥地面”上“撞击”这两个条件只是使斧柄产生了相对于水泥地面的较大的动量变化率,从而也使斧头具有了相对于斧柄的惯性力。但是,虽然这个惯性力构成了斧头套牢在斧柄上的直接原因,可严格地说,斧头在斧柄上套得牢不牢的原因还和斧头的重力及斧柄的弹性和斧头与斧柄的摩擦力大小均有关系。并且斧头在斧柄上套得牢不牢和作用时间也大有关系,因而,撞击“几下”也是一个非常重要的条件。

例3.小车上竖直放置一个木块,让木块随小车沿着桌面向右运动,当小车被档板制动时,车上的木块向右倾倒。这是怎么回事呢?(11)

教科书上的答案是这样的:小车突然停止的时候,由于木块和小车之间的摩擦,木块的底部也随着停止,可是木块的上部由于惯性要保持原来的运动状态,所以木块向右倾倒。

事实上,本例中小车上木块的倾倒是由于力矩作用的缘故。若以地面为参照物,小车对木块的摩擦力对木块的重心而言有一个顺时针旋转的力矩,从而木块向右倾倒。若以小车为参照物,小车被档板制动时已是一个非惯性系,作用在木块(重心)上的“惯性力”对木块的底端也产生一个使木块作顺时针旋转的力矩。

需要指出的是,在上述例2和例3中,斧头在斧柄上套牢和木块在小车上倾倒已是一个涉及物体在非惯性系中的动力学的问题。其中例2是非惯性系中的质点动力学问题,而例3则是非惯性系中的刚体动力学问题。可是,在非惯性系中,我们通常意义上所论述的牛顿第一定律已不成立,从而也失去了此两例的代表意义。也就是说,这两个例子不仅是不准确的解释而且是不适当的例子。在涉及惯性的问题上我们必须分别那些是属于惯性现象,而那些则不属于惯性现象——即为动力学现象。牛顿的例子,毫无疑问是正确的(12),但我们许多的物理学工作者却将惯性对事物的解释范围作了相当随意而并不恰当的扩展或扭曲。其实在讲述惯性时,用不着举更新鲜的特别例子,倒是需指出惯性使我们对事物常态的存在方式太熟视无睹了。这里问题的关键在于,惯性不是使物体改变运动状态(使火车制动、使斧头套牢在斧柄上、使小木块倾倒)的原因。严格地说,这些原因和物体的惯性无关,只和力有关,而至于火车制动得及时不及时,斧头套在斧柄上牢不牢,小木块倾倒得快不快,则不仅与力有关,还和物体的质量、形体、初速度有关。但即使如此地与质量和初速有关却也与惯性无关。

惯性,这个我们通常认为是由物体内在因素决定的性质,其实是物体存在方式的一种条件性:“试取汽车为参考系统来研究‘当汽车急剧刹车的时候,车中乘客有向前倾倒的倾向’这个问题,在汽车急剧刹车前,相对于汽车而言,乘客是静止的,在汽车急剧刹车时,乘客突然向前倾,这就是说,以汽车为参考系统,乘客由静止而突然向前倾,并不保持其静止状态,并不表现出惯性”(13)。这个条件就是:物体要表现出惯性,它必须处于惯性参考系中。而“事物的存在顽强地延续维持不变,无论运动是快是慢抑或停止。”(14)也只在惯性系中才成立。在研究物体的运动学与动力学问题时,惯性系总有着特殊的地位。可是,这个特殊地位的存在并不单单是人类抽象理性的功劳,并不是人类贪懒和间集化的一个报应,惯性系的存在有其形而上的基础:自然之美的呈现及人对自然之美呈现体认的同一性。如果没有了存在的时间均匀性与空间对称性,我们选取的相对于地面作匀速直线运动的参考系对研究动力学问题而言也就将成为一个畸形的怪胎。惯性系不仅在计算上向人类提供了联系物体的相互作用与相对运动的便利方式,其更根本的是它使人与存在的关系成为审美性的。惯性定律给我们的启示是:存在是美的。而惯性系则是自然对人的一个馈赠。也因而,我们应当从审美的视角来看待惯性,而不应当将它看成一个恶魔或一件便宜货。

所有的老师都要求学生不要把惯性与惯性定律混为一谈,可是当我们的老师用动力学的观点来看待惯性——也就是说,把惯性与牛顿第二定律混为一谈的时候,对学生的这一期望是合适的吗?其实这是一个误区:当教完一些物理学的基本概念与规律以后,就要求学生用它们解释自然现象。事实上,物理学中有些基本概念与规律不是要求我们去解释自然现象,它没有这个功能,它只是告诉我们要去感受些什么,它提供给我们的不是一种推理的方式,而是一个判断的原则 :它促成我们的判断更接近于自然之美的呈现。

三、惯性定律与牛顿第二定律的关系

当物体所受的合外力为零时,从牛顿第二定律可知物体处于静止状态或作匀速直线运动。可是,仅依据这一点却不能认为牛顿第一定律是牛顿第二定律的一个特例。因为这两个定律的论述对象其实是不一样的。牛顿第二定律的研究对象是一个物体,而牛顿第一定律论述的是整个存在的性质。惯性——这个任何物体均具有的性质其实不是我们的个别研究对象所具有的性质,因为这个“任何物体”,包括了天地间的万物,而万物的总称(15)即是宇宙:“四方上下曰宇,古往今来曰宙”.也即任何个别的物体都不可能无条件地具有惯性:惯性是存在的特性,是存在着的时空的特性,是宇宙的特性。

其次,牛顿第二定律是关于个别物体因果性的规律,而牛顿第一定律却与个别物体的因果性无关,它是存在之状态的表述,它的表述是与具体的特定的时间无关的、瞬时性的。正是这种非时间性(16)构成了牛顿力学的本质特征。也正是牛顿第一定律所成立的时间均匀性与空间对称性构成了惯性系的特殊地位,从而使我们可以在牛顿第二定律的意义上来研究物体的动力学关系。因为毫无疑问,物体的运动性质和规律与采用怎样的空间和时间来度量有着密切的关系(17)。由此可见,不仅牛顿第一定律不是牛顿第二定律和特例,恰恰相反,现行的动力学规律正是牛顿第一定律所揭示的存在之性在具体的个体事物上的展现。惯性定律比牛顿第二定律具有更强的基础性。也就是说,正是惯性现象,构成了牛顿动力学所以成立的操作平台。由于物体在不受外力作用下保持其速度不变,因而物体运动速度的变化才跟物体的受力相关。

最后,牛顿把惯性定律放在三个运动定律的首位也是与其对自然的信仰因素有关的。因为在文艺复兴之前的绝大部分思想家继承了亚里士多德关于物体运动内在决定论的观点。但在牛顿看来,基本的物质粒子完全是惰性的,没有任何自发的运动,而电、磁、光这些‘非物质’的力量则成为神在自然中的行动的载体(18)。也就是说,惯性定律内隐含着牛顿否定亚里士多德运动观的内在目的论从而建立新力学的形而上基础。

四、惯性与具体物体的质量无关

从上面的讨论可以看出:“质量是物体惯性大小的量度”这个论题,在几个角度去看都是错误的。第一,质量不是物体惯性大小的量度。个别研究对象的质量与其所揭示的惯性毫无关联。因为这两者从数量上来看是一对无穷大的关系,从内容上来看是个体与存在的关系,在它们之间,人类的理性不可能找到逻辑上的因果链。第二,“物体(的)惯性”这样的说法缺乏依据,因为惯性不是物体的性质。物体只是作为惯性的表现者而存在的。第三,“惯性(的)大小”这样的说法也缺乏依据,因为惯性没有大小,惯性只是存在的一种表达方式,一种特定状态的显现。第四,既然惯性并无大小,我们也不可去进行量度,事实上,任何一本教科书上也没有指出惯性与质量的函数关系,因为这一函数关系并不存在,它只是人们的一个虚假的逻辑推测,谁也不能证明质量与惯性成正比或不成正比,更不能得出它们之间的比例系数,因为这些关系均是虚假的。因而,物理学界流传的物体的惯性等于它的质量(19)只是人们一个随心所欲的错误言说。

由于物体质量与惯性无关,所以,将牛顿第二定律中的质量称为惯性质量就是不当的,质量的确对物体运动状态的改变有一种象力一样的阻抗作用,质量在改变物体运动的状态上而言似乎有一种“消解”、“抗拒”力的性质。因而作者认为可将现行的“惯性质量”改称为物体的“抗性质量”。正如牛顿所说:“物体只有当有其他力作用于它,或者要改变它的状态时,才会产生这种力。这种力的作用既可以看做是抵抗力,也可以看做是推斥力。(20)”因为质量与物体运动状态的变化快慢有关,它事实上具有动力学特征,当一个物体的质量大时,它对运动状态改变的阻抗能力就越大。

从逻辑上而言,我们只有将惯性从物质的内在因素中解除出来,才能完全地克服牛顿时代的机械论自然观与牛顿第一运动定律之间存在着的深刻矛盾。也就是说,这样才能使牛顿第一定律恰如其分地建立在由文艺复兴所形成的机械论而不是亚里士多德的目的论的形而上学基础之上。

五、惯性定律的表述方式

牛顿第一定律是动力学定律的基础,但它本身并不表征物体的某种动力学性质,它是关于人类体认自然之美、自然之和谐的陈述。据于上面的论述,对牛顿第一定律的陈述方式作以下的要求是并不过分的:反映时间的均匀性,空间的对称性,及自然之美对人的呈现。可是,现行的许多教科书中对牛顿第一定律的陈述是很不一致的。当然,这种不一致性用老眼光来看是无伤大雅的,但以今天的眼光来看,这种差异性就成为值得商讨的了。

例如:一个物体,如果没有受到其他物体的作用,它就保持自己的静止状态或匀速直线运动状态(21)。这样的陈述可能离惯性定律的本义较远,因为这一陈述的方式是在动力学的维度上来进行的,陈述的对象是“一个物体”。这和牛顿第二定律的研究对象是一致的,这样方式的陈述毫无疑问地可以把惯性定律认为是牛顿第二定律的一个特例,因为“如果没有”这几个字就表达了陈述事件的某种特殊性。

另外一种常见的陈述方式是:一切物体总保持匀速直线运动状态或静止状态,直到有外力迫使它改变这种状态为止。(22)这样一种表述比前一种完整多了,它几乎就是牛顿的(本文权属文秘之音所有,更多文章请登陆www.teniu.cc查看)原义,但这里的“一切物体”应当换成“任何物体”(23)。因为在此论述中的“任何物体”实际上是对一切物体的否定,而“有外力”应当换成“其它物体的作用”,因为惯性定律是不涉及力的,操作意义上的力这个动力学的基本概念与惯性无关。

作者试着这样来陈述惯性定律:存在着的宇宙有这样一种性质,它使任何物体在没有受到其它物体作用的时候总保持静止状态或匀速直线运动状态。或许,这样的一种陈述方式是较明晰的陈述方式,它强调了惯性与惯性的表现者(个别研究对象)的严格区分,这个陈述的主语是性质,这样的陈述才可称为关于“惯性”的定律。而我们也应当将惯性定义为:使物体保持静止或匀速直线运动状态的性质。

第五篇:校园导航系统数据结构课程设计

校园导航系统 数据结构课程设计

1引言

本概要设计说明书基于之前建立的软件需求设计基础上,对“蚌埠学院校园导航系统”做出概要分析。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。

2程序设计

2.1设计时间

202_-06-01—202_-06-15 2.2设计目的

1.加深对《数据结构》这门课程的进一步理解与巩固 2.通过课程设计,培养自己的编程能力以及团队协作能力

3.加强自己对实际问题的分析能力,以及如何更好的将一些经典的算法应用于实际

2.3设计任务

该导航系统为参观者提供校园主要建筑的基本信息及各建筑间的距离,同时通过该系统计算出所在位置到目的地的最短路径。

2.4需求分析

1.程序体现的功能:(1)main()——主函数

(2)navigate()——导航函数

(3)pri()——打印校园平面图函数(4)visit()——递归查找路线函数 2.正确输入与输出形式: 如:

执行建筑查询功能: ① 输入为:sod 输出为:该建筑所在的坐标为7 8 种有花草和一些艺术标记物 ② 输入为:ld 输出为:该位置没有找到 你找的建筑没有找到

执行导航功能:

输入为:请输入你所在位置:gym

输入你要的目的地:sod

输出为:打印并给出所有可能走通的线路,计算出两地间的最短路径(距离)

执行显示最短路径功能:

输入为:请输入你所在位置:sod

输入你要的目的地:office

输出为:其中最短路径为:

平面图中包含最短线路图,其行走的距离为450米

2.5概要设计

2.5.1.设计思路和主要步骤

按照需求分析,首先我们先要把学校的整体布局给设计出来,即用一个二维数组char arr[17][22]表示学校的整体布局,并将每个建筑物用特殊的符号表示:/*2为墙壁 ■ A办公楼▤ c教学区● g草坪▣ p操场▓

0 路

b图书馆★

M门□

m 食堂○h为宿舍☆

T为体育馆▢ l为实验室 ╳*/,然后要打印出学校的整体布局,设计一个pri(char,int)打印出学校的整体布局。

在学校里,最重要的是校园的导航系统,这样可以使人耳目一新的知道某个地方的某个地方的路径,所以设计校园导航函数是必须的,因此我们设计void navigate(int x)函数,在图的应用中,一个最重要的知识就是求最短路径,我们并没有用迪杰斯特拉的算法和弗洛伊德算法来实现这个功能,而是利用了迷宫求解问题中的递归意义来实现求最短路径的功能void visit(int qiX,int qiY,int zhX,int zhY, int x)用于查找某地点到某地点的所有路径,然后进行比较,将最短路径用函数void fuzhi(将最短路径存放在一个数组中)。

2.5.2程序流程图

2.6详细设计

按照需求分析中的需求,和概要设计中的各流程图的模块,进行详细设计,完善各流程的代码,详细设计如下:

2.6.1学校整体局部

char arr[17][22]={ /*2为墙壁 ■ A办公楼▤ c教学区● g草坪▣ p操场▓ 0 路 b图书馆★ M门□ m 食堂○h为宿舍☆ T为体育馆▢ l为实验室 ╳*/ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 {'2','2','2','2','2','2','2','2','2','2','2','2','2','M','2','2','2','2','2','2','2','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','0','0','0','0','0','0','0','0','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','g','g','g','g','g','g','g','g','0','2','2','2','0','2','2','2','2'}, {'M','0','0','0','0','g','g','g','g','g','g','g','g','0','0','0','0','0','0','0','m','2'}, {'2','l','l','l','0','0','0','0','0','0','0','0','0','0','h','h','h','h','h','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','0','0','0','0','0','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','0','2'}, {'2','0','0','0','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','0','0','0','0','0','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','M'}, {'2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2'}, };4.3.2:校园建筑信息

struct Construct construct[]={ {3,4,“office”,“------n|一层为经管系办公室 |n|二层为外语系办公室 |n|三层为文教系办公室 |n|四层为计算机科学与技术系办公室 |n|五楼为数理系办公室 |n------n”},//办公室

{4,8,“classroom”,“学生上课的主要区域”},//教学楼A {1,13,“northDoor”,“是学生经常出入的门,人流量较大”},//北门

{5,17,“playground”,“体育课上课的场所,学生健身的去处。”},//操场

{6,1,“westDoor”,“是学校的正门,前方有一个面具很多的停车区”},//西门

{7,8,“sod”,“种有花草和一些艺术标记物”},//草坪

{9,4,“lab”,“学生动手实践的教室”},//实验室

{9,7,“library”,“开放时间为:每天的8:00~21:00n是老师和学生学习的好去处”},//图书馆

{9,16,“Whostel”,“女生宿舍楼”},//宿舍楼A {7,19,“SdiningRoom”,“靠近女生宿舍的食堂,饭菜口味比较可口n人流量较大,但只在供餐时间较短”},//食堂A {12,16,“Mhostel”,“男生宿舍楼”},//宿舍楼B {15,16,“Thostel”,“教师公寓楼”},//宿舍楼C {13,19,“TdiningRoom ”,“靠近男生宿舍楼,供餐时间较长,随时去随时有饭”},//食堂B {14,4,“gym”,“内部体育设施齐全,在里面可以打篮球、打排球、打羽毛球等等”},//体育馆

{15,20,“eastDoor”,“学校正门,老师班车出入。”},//东门

{-1,-1,“No found”,“你找的建筑没有找到”}, };2.6.2打印图

void pri(char a[17][22],int bushu){

int i,j;

for(i=0;i<17;i++){

for(j=0;j<22;j++){

switch(a[i][j]){

case '2':printf(“■”);break;

case 'A':printf(“▤”);break;

case 'c':printf(“●”);break;

case 'g':printf(“▣”);break;

case 'p':printf(“▓”);break;

case '0':printf(“ ”);break;

case 'b':printf(“★”);break;

case 'M':printf(“□”);break;

case 'm':printf(“○”);break;

case 'h':printf(“☆”);break;

case 'T':printf(“▢”);break;

case 'l':printf(“╳”);break;

case '1':printf(“╬”);break;

}

}

printf(“n”);} if(bushu>0){

printf(“其行走的距离为%d米n”,bushu*50);} printf(“备注:n■为墙壁,▤办公楼 ,●为教学区, ▣ 为草坪,▓为操场,n”);printf(“★为图书馆, □为门,○为食堂,▤为宿舍,▢为体育馆n╳为实验室n”);} 2.6.3导航函数

void navigate(int x){ shortbushu=1000;/*用于记录最短步数*/ struct Construct * qi;struct Construct * zh;int qiX, qiY,zhX,zhY;int c;int i=1;while(i==1){

printf(“请输入你所在位置:”);

qi=selectName(15);

if((-1)==qi->x){ printf(“是否重新输入你所在地:(1/0)n”);

scanf(“%d”,&c);

if(c==1){

i=1;}else{ return;} }

else

i=0;};

i=1;while(i==1){

printf(“输入你要的目的地:”);

zh=selectName(15);

if((-1)==zh->x){ printf(“是否重新输入你的目的地:(1/0)n”);scanf(“%d”,&c);

if(c==1){

i=1;}else{ return;} }

else

i=0;} qiX=qi->x;qiY=qi->y;zhX=zh->x;zhY=zh->y;num=1;visit(qiX,qiY,zhX,zhY,x);

printf(“其中最短路径为:n”);pri(jilu,shortbushu);} 2.6.4查找路径

void visit(int qiX,int qiY,int zhX,int zhY, int x){ //x为标志,用于控制要不要显示所有的路径 当其非0是显示所有的路径 char n=arr[qiX][qiY];arr[qiX][qiY]='1';bushu++;if(qiX==zhX&&qiY==zhY){

if(x){

printf(“第%d条线路n”,(num++));

pri(arr,bushu);

}

if(shortbushu>bushu){

shortbushu=bushu;

fuzhi();

} } if(arr[qiX][qiY+1]=='0')visit(qiX,qiY+1,zhX,zhY,x);if(arr[qiX+1][qiY]=='0')visit(qiX+1,qiY,zhX,zhY,x);if(arr[qiX][qiY-1]=='0')visit(qiX,qiY-1,zhX,zhY,x);if(arr[qiX-1][qiY]=='0')visit(qiX-1,qiY,zhX,zhY,x);arr[qiX][qiY]=n;bushu--;} 2.6.5记录最短路径

void fuzhi(){ int i,j;for(i=0;i<17;i++){ for(j=0;j<22;j++){

jilu[i][j]=arr[i][j];

} } } 3调试分析

4附录

程序源代码: #include #include #include

char jilu[17][22];/*用于记录最短路径*/ void fuzhi();/*用于给最短路径赋值*/ int shortbushu=1000;/*用于记录最短步数*/ int num=1;/*记录多少条路*/ int bushu=0;/*记录走了多远*/

struct Construct selectName(int *a,int n);/*根据名字查询位置*/ void navigate(int x);/*导航*/ void pri(char [][22],int);//打印图

void add();//增加建筑信息

void visit(int ,int,int,int,int);//递归查找路线 char arr[17][22]={ /*2为墙壁 ■ A办公楼▤ c教学区● g草坪▣ p操场▓

0 路

b图书馆★

M门□

m 食堂○h为宿舍☆

T为体育馆▢ l为实验室 ╳*/

// 0

7 11 12 13 14 15 16 17 18 19 20 21

{'2','2','2','2','2','2','2','2','2','2','2','2','2','M','2','2','2','2','2','2','2','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','c','c','c','c','c','c','c','c','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','0','0','0','0','0','0','0','0','0','2','p','p','p','p','p','p','2'}, {'2','A','A','A','0','g','g','g','g','g','g','g','g','0','2','2','2','0','2','2','2','2'}, {'M','0','0','0','0','g','g','g','g','g','g','g','g','0','0','0','0','0','0','0','m','2'}, {'2','l','l','l','0','0','0','0','0','0','0','0','0','0','h','h','h','h','h','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','0','0','0','0','0','0','m','2'}, {'2','l','l','l','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','0','2'}, {'2','0','0','0','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','0','0','0','0','0','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','b','b','b','b','b','b','b','b','0','h','h','h','h','h','0','m','2'}, {'2','T','T','T','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','M'}, {'2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2'}, };struct Construct{ int x;int y;char name[25];char miaoshu[10000];};struct Construct construct[]={ {3,4,“office”,“------n|一层为经管系办公室

|n|二层为外语系办公室

|n|三层为文教系办公室

|n|四层为计算机科学与技术系办公室

|n|五楼为数理系办公室

|n------n”},//办公室

{4,8,“classroom”,“学生上课的主要区域”},//教学楼A {1,13,“northDoor”,“是学生经常出入的门,人流量较大”},//北门

{5,17,“playground”,“体育课上课的场所,学生健身的去处。”},//操场

{6,1,“westDoor”,“是学校的正门,前方有一个面具很多的停车区”},//西门

{7,8,“sod”,“种有花草和一些艺术标记物”},//草坪

{9,4,“lab”,“学生动手实践的教室”},//实验室

{9,7,“library”,“开放时间为:每天的8:00~21:00n是老师和学生学习的好去处”},//图书馆

{9,16,“Whostel”,“女生宿舍楼”},//宿舍楼A {7,19,“SdiningRoom”,“靠近女生宿舍的食堂,饭菜口味比较可口n人流量较大,但只在供餐时间较短”},//食堂A {12,16,“Mhostel”,“男生宿舍楼”},//宿舍楼B {15,16,“Thostel”,“教师公寓楼”},//宿舍楼C {13,19,“TdiningRoom ”,“靠近男生宿舍楼,供餐时间较长,随时去随时有饭”},//食堂B {14,4,“gym”,“内部体育设施齐全,在里面可以打篮球、打排球、打羽毛球等等”},//体育馆

{15,20,“eastDoor”,“学校正门,老师班车出入。”},//东门

{-1,-1,“No found”,“你找的建筑没有找到”}, };void ar(){ int m,n;for(m=0;m<17;m++){

for(n=0;n<22;n++){

printf(“%c”,arr[m][n]);

}

printf(“n”);} }

struct Construct * selectName(int n)/*根据名字查询位置*/{

int i;char name[15];scanf(“%s”,&name);for(i=0;i

if(strcmp(construct[i].name,name)==0){

return & construct[i];

}

} printf(“给位置没有找到n”);return & construct[15];} int main(){ int i;

int n=15;struct Construct * jianzhu;while(1){

printf(“欢迎来到蚌埠学院,我们将为你提供贴心的导航服务n”);

printf(“*********************************************n”);

printf(“

1.学校整体布局n”);

printf(“

2.建筑查询n”);

printf(“

3.导航n”);

printf(“

4.显示最短路径n”);

printf(“

5.退出n”);

printf(“*********************************************n”);

scanf(“%d”,&i);

switch(i){

case 1:

printf(“查询位置n”);

pri(arr,0);

break;

case 2:

printf(“请输入查询建筑的名称:n”);

jianzhu=selectName(n);

if(-1!=jianzhu->x)

printf(“该建筑所在的坐标为%d %dn”,jianzhu->x,jianzhu->y);

printf(“%sn”,jianzhu->miaoshu);

break;

case 3:

printf(“导航n”);

navigate(1);

break;

case 4:

printf(“其中最短路径为:n”);

navigate(0);

//pri(jilu,shortbushu);

break;

case 5:

printf(“退出”);

exit(0);

break;

}

};

return 0;} void navigate(int x){ shortbushu=1000;/*用于记录最短步数*/ struct Construct * qi;struct Construct * zh;int qiX, qiY,zhX,zhY;int c;int i=1;

while(i==1){

printf(“请输入你所在位置:”);

qi=selectName(15);

if((-1)==qi->x){

printf(“是否重新输入你所在地:(1/0)n”);

scanf(“%d”,&c);

if(c==1){

i=1;

}else{

return;

}

}

else

i=0;};

i=1;while(i==1){

printf(“输入你要的目的地:”);

zh=selectName(15);

if((-1)==zh->x){

printf(“是否重新输入你的目的地:(1/0)n”);

scanf(“%d”,&c);

if(c==1){

i=1;

}else{

return;

}

}

else

i=0;} qiX=qi->x;qiY=qi->y;

zhX=zh->x;

zhY=zh->y;

num=1;

visit(qiX,qiY,zhX,zhY,x);

printf(“其中最短路径为:n”);pri(jilu,shortbushu);

} /*2为墙壁 ■ A办公楼▤ c教学区● g草坪▣ p操场▓

0 路

b图书馆★

M门 □

m 食堂○h为宿舍▤

T为体育馆▢*/ void pri(char a[17][22],int bushu){

int i,j;

for(i=0;i<17;i++){

for(j=0;j<22;j++){

switch(a[i][j]){

case '2':printf(“■”);break;

case 'A':printf(“▤”);break;

case 'c':printf(“●”);break;

case 'g':printf(“▣”);break;

case 'p':printf(“▓”);break;

case '0':printf(“ ”);break;

case 'b':printf(“★”);break;

case 'M':printf(“□”);break;

case 'm':printf(“○”);break;

case 'h':printf(“☆”);break;

case 'T':printf(“▢”);break;

case 'l':printf(“╳”);break;

case '1':printf(“╬”);break;

}

}

printf(“n”);} if(bushu>0){

printf(“其行走的距离为%d米n”,bushu*50);} printf(“备注:n■为墙壁,▤办公楼 ,●为教学区, ▣ 为草坪,▓为操场,n”);printf(“★为图书馆, □为门,○为食堂,▤为宿舍,▢为体育馆n╳为实验室n”);

} void visit(int qiX,int qiY,int zhX,int zhY, int x){ //x为标志,用于控制要不要显示所有的路径 当其非0是显示所有的路径

char n=arr[qiX][qiY];arr[qiX][qiY]='1';bushu++;if(qiX==zhX&&qiY==zhY){

if(x){

printf(“第%d条线路n”,(num++));

pri(arr,bushu);

}

if(shortbushu>bushu){

shortbushu=bushu;

fuzhi();

} } if(arr[qiX][qiY+1]=='0')visit(qiX,qiY+1,zhX,zhY,x);if(arr[qiX+1][qiY]=='0')visit(qiX+1,qiY,zhX,zhY,x);if(arr[qiX][qiY-1]=='0')visit(qiX,qiY-1,zhX,zhY,x);if(arr[qiX-1][qiY]=='0')visit(qiX-1,qiY,zhX,zhY,x);arr[qiX][qiY]=n;bushu--;} void fuzhi(){ int i,j;for(i=0;i<17;i++){

for(j=0;j<22;j++){

jilu[i][j]=arr[i][j];

} } }

总结

此次课程设计相对于我来说,难度较大,相对于这个学期写的那些小算法来说,这个课程设计能充分发挥出学习数据结构后的能力;而相对于之前做的设计性实验,又有了实际的应用,现实应用度增加。

从接触C语言编程到现在,我就觉得:编程不是简简单单的写出程序,更多的是处理出现的语法和逻辑错误。在这次课程设计中,我深刻的体会到 编程不是一种简单的事,编程不但需要耐心,更需要细心。编出大体的程序架构,花费了我的时间并不多,但我很多时间是用在调试和测试数据上!有些现在看着简单的语法错误,一时竟然无从下手。我想,这和我C语言基础薄弱有很大关系,以后要加强认识。

总的来说,这次课程设计,让我学了很多,总结了很多!

参考文献

[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京 清华大学出版社,202_ [2] 谭浩强.C程序设计(第三版)[M].北京 清华大学出版社,202_ [3] 谭浩强.C程序设计题解与上机指导(第三版)[M].北京 清华大学出版社,202_ [4] 严蔚敏,吴伟民,米 宁.数据结构题集(C语言版)[M].北京 清华大学出版社,202_ [5] 互联网的相关信息和内容

惯性导航系统范文合集
TOP