交通咨询系统课程设计.doc_第1页
交通咨询系统课程设计.doc_第2页
交通咨询系统课程设计.doc_第3页
交通咨询系统课程设计.doc_第4页
交通咨询系统课程设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

西安建筑科技大学华清学院课程设计(论文)西安建筑科技大学华清学院课程设计(论文)题 目: 交通咨询系统 院 (系): 机械电子工程系专业班级: 计算机2011 姓 名: 白 晓 兰 学 号: 201106060138 指导教师: 李智杰 2013年 9 月 20日第16页 共16页西安建筑科技大学华清学院课程设计(论文)任务书专业班级: 计算机2011 学生姓名: 白晓兰 指导教师(签名): 一、课程设计(论文)题目交通咨询系统二、本次课程设计(论文)应达到的目的数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。本题目要达到目的:熟练最短路径问题算法。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一个城市顶点之间的最短路径或最低费用或最少时间等问题。对于不同咨询要求,可以输入城市间的路程或所需要时间或所需费用。设计分三个部分,一是建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现两个城市顶点之间的最短路径问题。要求:1、对城市信息(城市名、城市间的里程)进行编辑:具备添加、修改、删除功能;2、对城市间的两种交通工具:飞机和火车。对飞机航班和列车时刻表进行编辑:里程、航班和列车班次的添加、修改、删除;3、提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具,可以不考虑回程;4、旅途中的耗费的总时间应包括中转站的等候时间。其中飞机至少二小时,火车至少一小时;5、咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。由用户选择最优决策原则和交通工具,输入起始站、终点站、出发时间,输出信息:最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间,并详细说明依次于何时何地乘坐哪一趟班机或列车何时到达何地。四、应收集的资料及主要参考文献: 由于本课程没有安排“课内上机”学时,因此,在课程设计之前必须自己已经上机练习了“线性表”的基本操作。 参考文献:1.本年级使用的教材:数决结构与算法分析(C+版),电子工业出版社,2005.7,Clifford A.Shaffer编著2. 数据结构与算法,科学出版社,2005.08,赵文静 祁飞等编著3. 数据结构-C+语言描述,西安交通大学出版社,1999.01,赵文静编著4.VC+深入详解,电子工业出版社,2007.7,孙鑫,于安萍编著5.C+程序设计, 清华大学出版社, 2005.8,COHOON & DAVIDSON编著五、审核批准意见教研室主任(签字) 设计总说明数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一个城市顶点之间的最短路径或最低费用或最少时间等问题。对于不同咨询要求,可以输入城市间的路程或所需要时间或所需费用。设计分三个部分,一是建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现两个城市顶点之间的最短路径问题关键词:数据结构;交通咨询;最短路径;图;目录1.设计目的12.问题描述23.需求分析24.概要设计25.详细设计56.调试分析107.使用说明118.设计总结159.参考文献15数据结构课程设计交通咨询系统1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。在我国,”数据结构与算法”已经作为理工科非计算机专业必修的信息技术基础课程之一。世界上许多科技人员对学习、研究数据结构和算法都非常重视,对于从事计算机科学及其应用的科技工作者来说,数据结构与算法更是必须透彻地掌握的重要基础。学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计是加强学生实践能力的一个强有力手段。课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编程大型作业的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。2.问题描述处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。3.需求分析3.1 数据需求本系统的主要数据是交通相关数据。交通信息包括:各城市之间的距离,到达城市花费的时间,到达各城市的费用等。 3.2 基本功能需求本系统主要实现对城市之间的最短路径、最少时间、最少花费,最佳路径的查询,需要实现以下几个方面的管理功能:(1) 存储交通网信息:存储交通信息。(2) 查找一个城市到其他城市的最短距离:按城市名查找。(3)查找一个城市到其他城市的最佳路径:按城市名查找。(4)查找两个城市之间的最短距离:按城市名查找。(5)打印交通网信息:显示交通网信息。3.3 非功能性需求用户界面需求:简洁、易用、易懂、友好的用户界面。硬件要求:装有Visual C+6.0的计算机。可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失。4.概要设计4.1 数据结构(1)函数的基本功能;(2)结构体的应用;(3)文件的运用;(4)数组的运用;4.2 系统包含的函数void Dijkstra_Output(int s3030,int PreCity30,int p_end,int TravelType )/输出最短路径函数void Dijkstra(int s3030,int p_start,int p_end,int TravelType)/迪杰斯特拉算法计算最短路径函数int CalcMinCost(int StartCity,int EndCity,int TravelType)/查询最小耗费路线函数int SearchMinTime (CityType City,CityType EndCity,int CurTime,int curPathNo,int TravelType) /计算出最短时间函数int CalcMinTime(int StartCity,int EndCity,int TravelType)/查询最短时间路线函数int InitSystem()/从文件中读信息函数void Administrators()/管理员的界面函数int InsertCity(char *Name)/添加城市函数int DelCity(char *Name)/删除城市函数int InsertTrain(char *train,char *StartCity,char *EndCity,int StartTime,int EndTime,int cost)/添加火车路线函数int InsertFlight(char *flight,char *StartCity,char *EndCity,int StartTime,int EndTime,int cost)/添加飞机路线函数int DelPath(char *name)/删除路线函数int SeekCity(char *name)/查找城市函数int SaveFile()/将火车飞机交通信息写入文件函数void Line(int city,int traveltype)/查找城市中的所有路线函数void User()/用户界面函数int main()/主函数4.3 函数间的关系主函数是程序的入口,采用模块化设计,通过菜单选择,来调用实现各功能所要的函数。首先定义城市交通图的存储结构,再定义一些变量,根据变量决定调用的函数,包括Dijkstra算法。4.4 系统功能模块图交通咨询系统管理员用户添加城市删除城市查询最小耗费路线查询最短时间路线查询城市所有路线退出添加交通路线删除交通路线返回上一级菜单返回上一级菜单图4.4.1 系统功能模块图5.详细设计5.1 结构体的详细定义typedef struct TrafficNode char n ;ameMAX_STRING_NUM; /班次 int StartTime,StopTime; /起止时间 int EndCity; /火车到达城市的编号int Cost; /票价 TrafficNodeDat; typedef struct VNode CityType city; /城市编号int TrainNum,FlightNum; /标记下面Train数组和Flight数组里元素个数 TrafficNodeDat TrainMAX_TRAFFIC_NUM; /数组成员为结构体,记录了到达城市、起止时间、票价和班次 TrafficNodeDat FlightMAX_TRAFFIC_NUM; VNodeDat; typedef struct PNode int City; int TraNo; 5.2 系统函数详细介绍1、void Dijkstra(int s3030,int p_start,int p_end,int TravelType)迪杰斯特拉算法计算最短路径函数。这个函数中迪加斯特拉算法是用来求从已知源点到其他各个顶点最短距离的。其中运行结果是找到从源点到其他各个顶点的路径和最短距离。2、CalcMinTime(int StartCity,int EndCity,int TravelType)查询最短时间路线函数。此函数主要实现用户通过输入起始城市名来查找最短时间路线的功能。3、CalcMinCost(int StartCity,int EndCity,int TravelType)查询最小耗费路线函数。此函数主要实现用户通过输入起始城市名,来查找最小和耗费路线的功能。4、void Line(int city,int traveltype)查找城市中的所有路线函数。此函数主要实现用户通过输入城市名来查询城市中的所有路线的功能。5.3 系统功能模块介绍本系统共分12个模块1、主函数:主函数是程序的入口,采用模块化设计,通过菜单选择,来调用实现各功能所要的函数。2、添加城市:主要有管理员增加城市名。3、查找城市并返回序号:管理员查找是否增加城市成功。4、删除城市:由管理员删除不需要的城市。5、添加列车:管理员添加列车。6、添加航班:管理员添加航班。7、删除列车或航班:管理员删除列车或航班。8、找出最小费用路线:用户查找最小费用路线。9、找出最短时间路线:用户找出最短时间路线。10、计算最快路线耗费的时间:用户计算最快路线耗费的时间。11、主界面:清楚的分辨管理员和用户。12、退出:退出系统。5.4 具体模块设计5.4.1 计算最少费用功能模块设计图5.4.1计算最少费用功能模块设计图5.4.2计算最短路径功能模块设计开始输入各城市顶点信息建立图的存储结构选择指令调用迪加斯特拉算法输出算法结果 结束图5.4.2计算最短路径功能模块设计5.4.3 计算最短时间功能模块设计开始每个点初始一个最大值初始每条路径置时间0置起点的时间为n置p为起点的第一条边检测依附每个顶点的边依据迪杰斯特求每个起点到终点的时间最少的路径结束图5.4.3 计算最短时间功能模块设计6.调试分析本软件是基于Windows的编程开发,所以,软件调试必须在Windows环境下进行。调试前须做好准备工作:(1) 需要安装Visual C+6.0的计算机一台;配置好之后,在Visual C+6.0环境下进行软件的调试。(2) 测试数据:用户模块:(1)在用户模块中,根据主界面提示,键入数字2,确定。再按提示进行操作测试,添加一条记录后,发现在数据文本中有保存该记录,如果错误输入,观察是否能正常提示信息。否则修改程序再进行调试。例如:输入2后,确定,程序显示“这里是用户界面,欢迎进入:”,根据下面序号3、2、1、0选择自己想要查找的信息,按照城市名查找最小耗费路线、城市最短时间路线、城市所有路线功能。选择0返回上一步。(2)算法改进设想:在程序设计前期,我们并没有用txt文件来保存城市、航班、交通路线信息。经过我不断的修改以及调试后,该程序总算可以进行txt文本的读出与写入,并且添加城市、航班、交通路线信息后可以直接将信息保存在txt文本文件中。7.使用说明图7.1 系统主界面此图为主界面,选择序号即可进入所需界面。进入管理员界面需经过身份验证,输入用户名和密码,本程序用户名和密码均为123456。图7.2 管理员界面此图为管理员界面,这是添加交通路线的例子。图7.3 用户界面此图为用户界面,这事查询城市最小耗费路线,最短路线和查询城市所有路线的例子图7.4 添加城市、路线、航班界面 此图是管理员添加城市、交通路线、航班的例子。7.5 查询城市路线界面此图为查询火车最小耗费路线。这是两地之间无中转站的例子。图7.6 查询路线界面此图为查询火车最小耗费路线。这是两地之间无中转站的例子。图7.7查询城市所有路线界面 此图是查询城市有路线的例子。图7.8 查询最小耗费路线界面此图为查询火车最小耗费路线时两地之间有中转站的例子飞机路线查询同此。8

温馨提示

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

评论

0/150

提交评论