数据结构课程设计-城市交通咨询系统
- 格式:docx
- 大小:555.07 KB
- 文档页数:20
.郑州工业应用技术学院课程设计任务书题目全国交通资询系统主要内容:设计了一个方便用户查询交通咨询系统。
该系统所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。
该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。
程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。
基本要求:1、掌握C语言的变量及函数的灵活使用;2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现;3、掌握C语言中文件的基本操作;4、掌握VC++6.0软件的熟练使用。
主要参考资料:[1] 李春葆.数据结构程序设计[M].北京:清华大学出版社,2002,03[2] 王黎,袁永康战略[M].北京:清华大学出版社,2002,01[3] 谭浩强.C程序设计第二版[M].北京:清华大学出版社,2003,03[4] 任哲.MFC Windows程序设计[M].北京:清华大学出版社,2004,06完成期限:2016.12.05—2017.01.05指导教师签名:课程负责人签名:随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。
对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。
在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。
尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。
即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。
为此开发一个交通择优系统是十分必要的。
采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规范化和自动化。
太原工业学院计算机工程系数据结构课程设计设计题目:全国交通网络咨询系统1班级:计算机科学与技术学号:**********名:**指导教师:***年月日目录一、课程设计题目 (1)二、需求分析 (1)三、测试数据 (2)四、概要设计 (2)五、调用关系图 (3)六、程序代码 (3)七、测试结果 (14)八、心得体会及总结 (14)数据结构课程设计一、课程设计题目全国交通网络咨询系统二、需求分析1、实现功能对城市信息(城市名、城市间的里程)进行编辑:具备添加、修改、删除功能;对城市间的交通工具:火车。
对列车时刻表进行编辑:里程、和列车班次的添加、修改、删除;提供两种最优决策:最快到达或最省钱到达。
全程只考虑一种交通工具,可以不考虑回程;咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。
由用户选择最优决策原则和交通工具,输入起始站、终点站、出发时间,输出信息:最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间,并详细说明依次于何时何地乘坐哪一趟列车何时到达何地。
2、设计思路(1) 数据存储。
城市信息(城市名、代码)、交通信息(城市间的里程、各航班和列车时刻)存储于磁盘文件。
在实验中本想用文本储存数据,但操作不熟悉,而是改用图的邻接矩阵储存原始信息,而后用数组进行添加删改(2) 数据的逻辑结构。
根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为无向图,图的顶点是城市,边是城市之间所耗费的时间(要包括中转站的时间)或旅费。
(3) 数据的存储结构。
采用邻接表和邻接矩阵都可作为数据的存储结构,这里建议采用邻接矩阵作为数据的存储结构。
(4) 用不同的功能模块对城市信息和交通信息进行编辑。
添加、修改、删除功能可用菜单方式或命令提示方式。
只要能方便的对城市信息和交通信息进行管理即可,但要注意人机界面,具体实现由学生自行设计,也可参考有关程序(届时在网上提供)。
这些工作有不小的工作量。
工业应用技术学院课程设计任务书题目全国交通资询系统主要容:设计了一个方便用户查询交通咨询系统。
该系统所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。
该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。
程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。
基本要求:1、掌握C语言的变量及函数的灵活使用;2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现;3、掌握C语言中文件的基本操作;4、掌握VC++6.0软件的熟练使用。
主要参考资料:[1] 春葆.数据结构程序设计[M].:清华大学,2002,03[2] 王黎,袁永康战略[M].:清华大学,2002,01[3] 谭浩强.C程序设计第二版[M].:清华大学,2003,03[4] 任哲.MFC Windows程序设计[M].:清华大学,2004,06完成期限:2016.12.05—2017.01.05指导教师签名:课程负责人签名:随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。
对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。
在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。
尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。
即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。
为此开发一个交通择优系统是十分必要的。
采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规化和自动化。
适用标准文案设计题目<二>:交通咨询系统设计P160一、设计要求1.问题描绘依据不一样目的的游客对交通工拥有不一样的要求。
比如,因公出差的游客希望在旅途中的时间尽可能的短,出门旅游的游客希望旅费尽可能的少,而老年人则要求中转次数少。
模拟一个全国城市之间的咨询交通程序,为游客供给两种或三种最优的交通路线。
2.需求剖析二、纲要设计1.主界面设计(图“交通咨询系统”主菜单)2.储存构造设计本系统采纳图构造种类储存抽象交通咨询系统的信息。
typedefstructTrafficNode{charname[MAX_STRING_NUM];//班次//MAX_STRING_NUM 最为10intStartTime,StopTime;//起止时间intEndCity;//该有向边指向的极点在数组中的地点,即该城市编号intCost;//票价出色文档}TrafficNodeDat;typedefstructVNode{CityTypecity;intTrainNum,FlightNum;//标志下边Train数组和Flight数组里元素个数TrafficNodeDatTrain[MAX_TRAFFIC_NUM];//数构成员为构造体,记录了到达城市、起止时间、票价和班次TrafficNodeDatFlight[MAX_TRAFFIC_NUM];intCost;//遍历时抵达该城市的耗资(时间或许花费)}VNodeDat;typedefstructPNode{intCity;intTraNo;}PNodeDat;3.系统功能设计1)增添城市。
增添一个城市的名称2)删除城市。
输入一个城市名称,删除该城市。
3)增添交通路线。
输入开端城市、终点城市、航班或火车、车次、开端时间、终点时间和票价4)删除交通路线。
输入火车或飞机的班次删除该交通路线。
5)查问最小花费路线。
输入开端城市、终点城市、航班或火车、车次、开端时间、终点时间查问最小花费路线。
榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号指导老师张慧答辩时间目录1 .系统需求分析 (1)用户需求分析 (1)功能需求分析 (2)数据需求分析 (2)小结 (3)2.系统设计 (3)系统设计功能 (3)每个模块的具体功能。
(4)采用C语言定义相关数据类型 (4)建立邻接矩阵交通网络: (4)查询指定城市到其他城市自己建的最短路程: (6)查询任意两个城市之间的一条最短路径: (7)主函数的调用关系图 (8)3.系统测试 (9)操作说明 (9)测试数据 (10)用户进入界面: (10)、具体功能的实现 (11)、结束程序 (12)4.总结 (13)5.致谢 (13)6.附录 (14)1.系统需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。
对系统分析,主要从以下几个方面进行分析。
1.用户需求分析2.功能需求分析3.数据需求分析用户需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。
当要查询某两个城市之间的最短交通路线或者其中一个城市到达其余城市的最短路线时,是一个很繁琐的过程。
数据结构设计报告姓名:专业:指导教师:目录摘要 (3)第1章概述 (4)1.1系统实现的目标 (4)1.2系统实现方案 (4)1.3系统实现环境 (4)1.4具体的开发方法 (4)第2章系统设计 (5)2.1系统功能设计 (5)2.2数据设计 (5)2.3界面的设计 (5)第3章系统实现 (9)参考文献 (15)摘要设计、实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:一是建立交通网络图的存储结构,二实现两个城市间的最短路经问题。
程序所具有的功能特色本程序主要目的是为了给用户提供路径咨询。
实现了帮助用户了解全国各大城市间往来的最短路径问题,第二,可以提供用户查询各大城市的相关信息。
本程序最大的特点是支持用户自己添加城市信息及城市,或添加城市的路径,既就有可扩展性该程序所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。
此程序规定:(1)在程序中输入城市名称时,需输入10个字母以内的字母串;输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据(以hh:mm的形式);在选择功能时,应输入与所选功能对应的一个整型数据。
(2)程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
(3)程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。
第1章概述1.1 系统实现的目标通过进行课程设计,了解并初步掌握设计、实现较大系统的完整过程,包括:系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。
应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。
信息科学与工程学院课程设计任务书题目:交通咨询系统设计学号: 201112220141姓名:年级:专业:计算机应用与技术课程:数据结构指导教师:职称:完成时间:课程设计任务书及成绩评定一、需求分析设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。
对于不同的咨询要求,可输入城市间的路程或所需时间或所需费用。
本设计共分三部分,一是建立交通网络图的存储结构;二是解决单源最短路径问题;三是实现任两个城市顶点之间的最短路径问题。
1.1.1建立图的存储结构邻接矩阵是表示图形中顶点之间相邻关系的矩阵。
图的邻接矩阵是定义如下的n 阶方阵:设G=(V ,E )是一个图,结点集为{}n v v v V ,,,21 =。
G 的邻接矩阵,E,,0E,,)(,)(⎪⎩⎪⎨⎧>∉<∞>∈<==⨯⨯j i j i j i j i n n j i ij n n ij v v v v v v v v w a a A )或当(,或)或当(, 当邻接矩阵的行表头、列表头顺序一定时,一个图的邻接矩阵表示是唯一的。
图的邻接矩阵表示,除了需用一个二维数组存储顶点之间的相邻关系的邻接矩阵外,通常还需要使用一个具有n 个元素的一维数组来存储顶点信息,其中下标为i 的元素存储顶点i 的信息。
因此,图的邻接矩阵的存储结构定义如下:1.1.2 单源最短路径最短路径的提法很多。
在这里先讨论单源最短路径问题:即已知有向图(带权),我们希望找出从某个源点S ∈V 到G 中其余各顶点的最短路径。
为了叙述方便,我们把路径上的开始点称为源点,路径的最后一个顶点为终点。
那么,如何求得给定有向图的单源最短路径呢?迪杰斯特拉(Dijkstra )提出按路径长度递增产生诸点的最短路径算法,称之为迪杰斯特拉算法。
迪杰斯特拉算法求最短路径的实现思想是:设G=(V ,E )是一个有向图,结点集为,}v ,,v ,{v V n 21⋯=,cost 是表示G 的邻接矩阵,cost[i][j]表示有向边<i,j>的权。
交通资讯系统1.系统需求分析1.1问题描述在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。
对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
图中顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。
1.2功能要求For personal use only in study and research; not for commercial use1.交通资讯系统提供用户三种决策方案:一是建立交通网络图的存储结构。
二是某个城市到达其余各城市的最短路径。
三是实现两个城市之间最短路径的问题。
主要目的是给用户提供路径咨询。
2.本系统规定:(1)在程序中输入城市名称时,需输入0到5的城市代号For personal use only in study and research; not for commercial use(2)在选择功能是,应输入与所选功能对应的一个整形数据。
(3)程序的输出信息主要是:城市代号,某城市到达其余各城市的最短路径,两城市之间最短路径2.概要设计2.1系统总体设计图2.1系统总体设计2.2各模块的功能void main() 主函数void Dijkstr() 采用狄克斯特拉算法求从顶点v 到其余个顶点的最短路径 void DisPath() 由path 计算最短路径 void Ppath() 输出各条最短路径void Floyd() 采用弗洛伊德算法求所有顶点之间的最短路径交通资讯系统一个城市到其他城市两个城市之间存储 交 通图查询最短距离获得最佳路径查询最短距离获得最佳路径void DisPath2() 由path计算最短路径void Ppath2() 输出各条最短路径2.3相关数据结构设计1.数据结构typedef int InfoType;typedef struct{char cityname;int no;InfoType info;}VertexType;typedef struct{int edges[MAXV][MAXV];int n,e;VertexType vxs[MAXV];}MGraph;2.数据库结构:下表构成该系统的基本数据库城市代号邻接矩阵边数城市个数路径城市名称组int int int int char3.详细设计3.1采用c语言定义相关的数据结构本系统定义了整形int,字符型char,还有结构体定义,建立图的存储结构首先定义交通图的存储结构,邻接矩阵是表示图形中顶点之间相邻关系的矩阵.设G=(V,E)是具有n(n>0)个顶点的图,则邻接矩阵具有如下定义的n阶方阵Wij 若vi≠vj 且<vi,vj>∈E(G)A[i][j]=∞ 其他一个图的邻接矩阵表示是唯一的,除了许用一个二维数组存储顶点之间相邻关系的邻接矩阵外,通常还需要使用一个具有n 个元素的一维数组来存储顶点信息3.2函数调用关系图void main(){ int i,j,z,x; MGraph g;intA[][MAXV]={{INF,5,INF,7,INF,INF},{INF,INF,4,INF,INF,INF},{8,INF,INF,INF,INF,9},{INF,INF,5,INF,INF,6},{INF,INF,INF,5,INF,INF}, {3,INF,INF,INF,1,INF}}; g.n=6; g.e=10;for(i=0;i<g.n;i++)main 函数z=1 查看系统中的城市代号z=2;调用Dijkstra 函数求v 到其余各顶点的最短路径 调用DisPath 函数计算最短路径调用ppath 函数 输出各条最短路径 z=3;调用Floyd 函数求所有定点之间的最短路径调用ppath2函数 输出各条最短路径调用DisPath2函数 计算最短路径z=0 退出程序for(j=0;j<g.n;j++)g.edges[i][j]=A[i][j];printf("******************* 交通咨询系统**********************\n");printf("************* 1-查看系统中的城市代号**********\n");printf("************* 2-一个城市到所有城市的最短路径**********\n");printf("************* 3-任意的两个城市之间的最短路径**********\n");printf("************* 0-退出**********\n");printf("\n");printf("请选择:");scanf("%d",&z);while(z!=0){switch(z){case 1:printf("0——北京,1——天津,2——上海,3——广州,4——南京,5——厦门\n");printf("\n");main();scanf("%d",&z);break;case 2:printf("请输入城市代号:");scanf("%d",&x);switch(x){case 0:printf("以下是最短路径:\n");Dijkstra(g,x);break;case 1:printf("以下是最短路径:\n");Dijkstra(g,x);break;case 2:printf("以下是最短路径:\n");Dijkstra(g,x);break; case 3:printf("以下是最短路径:\n");Dijkstra(g,x);break;case 4:printf("以下是最短路径:\n");Dijkstra(g,x);break;case 5:printf("以下是最短路径:\n");Dijkstra(g,x);break;default :printf("输入有误,请重新输入\n");printf("\n");main();}printf("\n");main();scanf("%d",&z);break;case 3:Floyd(g);printf("请选择:");printf("\n");main();scanf("%d",&z);break;case 0:exit(-1);break;default:printf("输入有误,请重新输入\n");printf("\n");main();}}}初始化距离和路径,将s[]置为空。
数据结构课程设计—城市道路交通咨询系统榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号 1514210121 指导老师张慧答辩时间 2016.12.18目录1.系统需求分析 (1)1.1用户需求分析 (1)1.2功能需求分析 (2)1.3数据需求分析 (2)1.4 小结 (3)2.系统设计 (3)2.1系统设计功能 (3)2.2每个模块的具体功能。
(4)2.2.1采用C语言定义相关数据类型 (4)2.2.2建立邻接矩阵交通网络: (5)2.2.3查询指定城市到其他城市自己建的最短路程: (6)2.2.4查询任意两个城市之间的一条最短路径: (8)2.3主函数的调用关系图 (9)3.系统测试 (11)3.1操作说明 (11)3.2测试数据 (11)3.2.1用户进入界面: (11)3.2.2、具体功能的实现 (12)3.2.3、结束程序 (14)4.总结 (15)5.致谢 (15)6.附录 (16)1.系统需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。
对系统分析,主要从以下几个方面进行分析。
1.用户需求分析2.功能需求分析3.数据需求分析1.1用户需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
数据结构课程设计全国交通咨询系统数据结构课程设计全国交通咨询系统随着交通工具的快速发展,现代人的出行方式更加灵活便捷,交通行业也变得越来越重要。
然而,随之而来的交通拥堵、安全问题和出行效率等问题亟待解决。
因此,交通咨询系统的开发应运而生。
本文介绍一个数据结构课程设计项目——全国交通咨询系统,该系统旨在为用户提供便捷、全面的交通出行信息和服务。
该系统主要包括以下方面的功能:1. 城市选择及路线查询功能用户可选择目的地城市,系统将返回该城市的基本信息,以及从用户当前位置到目的地的交通路线和方案,并提供相应的时间和费用信息。
2. 交通工具查询功能用户可在系统中查询各种交通工具的班次、价格、车次和到达时间等相关信息,以便用户做出最优出行方案。
3. 路况信息查询该系统可实时获取交通状况信息,并展示给用户最新的路况信息。
此外,当用户选择出行方式时,系统可根据实时路况为用户提供最佳出行方案。
4. 预订和购票该系统可为用户提供方便的预订和购票服务。
用户可在线预订和购买机票、火车票和长途汽车票等交通工具,并选择合适的座位和时间。
5. 旅游景点推荐功能该系统可根据用户的出行方案提供适宜的旅游景点推荐。
用户可在系统中了解这些景点的详细信息和交通时间,以便更好地规划自己的行程。
该全国交通咨询系统的实现需要多种数据结构的支持,例如图、树、堆栈、链表、哈希表等。
下面分别讨论每个功能的实现方法和相关数据结构。
1. 城市选择及路线查询功能城市选择及路线查询功能需要通过图的遍历来实现。
图是由顶点和边组成的集合,可以用来表示城市及它们之间的相互关系。
在本系统中,每个城市可以看做一个顶点,每条连接两个城市的路径被视为一条边。
为了实现城市选择及路线查询功能,需要对图进行遍历。
在这个系统中,广度优先搜索算法(BFS)是最佳选择,因为BFS可以给出最近的解决方案。
2. 交通工具查询功能交通工具查询功能需要通过树来实现。
树是由节点和边组成的集合,可以用来表示各种结构化数据。
榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号1514210121指导老师张慧答辩时间2016.12.18数据结构课程设计报告目录目录⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 1 1系统需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 21.1 用户需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 21.2功能需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 31.3 数据需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 31.4 小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 3 2系统设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 42.1 系统设计思路,,,,,,,,,,,,,,,,,,, 42.2 系统设计功能,,,,,,,,,,,,,,,,,,, 42.3 每个模块的具体能,,,,,,,,,,,,,,,,, 52.4 主函数的调用关图,,,,,,,,,,,,,,,, 10 3系统测试,,,,,,,,,,,,,,,,,,,,,,, 113.1操作说明,,,,,,,,,,,,,,,,,,,,, 113.2测试数据,,,,,,,,,,,,,,,,,,,,, 113.2.1 用户进入界面,,,,,,,,,,,,,,,,, 113.2.2 具体功能的实现,,,,,,,,,,,,,,,, 123.2.3 选择0结束程序,,,,,,,,,,,,,,,, 14 4总结,,,,,,,,,,,,,,,,,,,,,,,,, 14 5致谢,,,,,,,,,,,,,,,,,,,,,,,,, 14 6附录,,,,,,,,,,,,,,,,,,,,,,,,, 151课程设计题目1.系统需求分析描述:现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。
对系统分析,主要从以下几个方面进行分析。
1.用户需求分析2.功能需求分析3.数据需求分析1.1 用户需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
且在图中,顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。
当要查询某两个城市之间的最短交通路线或者其中一个城市到达其余城市的最短路线时,是一个很繁琐的过程。
根据用户自己的需求,可以自定义地图,此程序就是主要以满足用户自己的环境与实际情况,在难以计算路程时,可将地图输入进行计算,系统将会为用户提供所用路径最短的出现路线,更好的满足用户需求。
以下是针对咨询用户说明其最基本的模块功能。
(1)进入程序后,用户可自己设置城市的个数,以及所有城市之间总共的路径,且分别用顶点和边表示城市与路径(2)用户根据自己设置的城市个数和路径数,具体输入每个路径的起始点以及每条路径的长度。
(3)进入菜单选择界面(4)选择2,系统为用户进行提供任意城市的交通查询,即查询任意两个城市之间的一条最短路径。
2数据结构课程设计报告(5)选择1,系统为用户提供指定城市的交通查询,即查询指定城市到其他城市之间的最短路径。
如若输入顶点超出范围显示错误,系统回到菜单重新选择(6)选择0,系统推出程序。
1.2功能需求分析城市交通咨询系统总体的设计目标:用《数据结构》中的邻接矩阵作数据结构,并结合数据结构有向图的最短路径计算方法,结合相应的数据算法以及c语言的相关知识,编写一个良好的,具有可操作性的,以及能方便用户的使用,包括自定义地图,路径与城市个数可结合实际情况而言,相对操作,简便易懂并无难度。
系统在菜单可根据命令进行相应的操作,已满足用户的需求。
1.2.1城市交通系统基本功能根据以上分析,此系统具备以下功能:(1)用户进入后的地图创建界面(明确地图中城市的个数以及路径的个数)(2)地图完善界面(用户自己输入地图中相关路径的起始点以及路径长度)(3)菜单界面包含两条命令(4)命令1求一个城市到所有城市的最短距离(5)命令2求任意的两个城市之间的最短距离(6)回复命令0可推出程序。
1.3数据需求分析用邻接矩阵建立交通网络模块VertexTypevexs[MVNum];//顶点数组,类型假定为charAdjmatrixarcs[MVNum][MVNum];//邻接矩阵,类型假定为int型建立邻接矩阵,用函数voidCreateMGraph(MGraph*G,intn,inte){//采用邻接矩阵表示法构造有向图G,n、e表示图的当前顶点数和边数用迪杰斯特拉算法计算某顶点到其余顶点的最短路径用函数voidDijkstra(MGraph*G,intn,inte)来定义此函数采用邻接矩阵表示法构造有向图G,n、e表示图的当前顶点数和边数用弗洛伊德算法求任意一对顶点的最短路径用函数voidFloyd(MGraph*G,intn) 来定义。
利用费洛伊德算法,求出最短路径。
1.4小结从各种需求方面下手改编代码,并不断调试,让界面更加友好。
不断地尝试上,在各种问题上不断突破,慢慢的完善代码,等最大限度的满足用户需求。
这几天短时间的课程设计也让我认识到了自己在这门课程上还面临着许许多多的问题,为以后的具体实践明确了努力方向。
同时,城市交通咨询系统的实现,为用户更好的解决了再实际出行时遇到的路径问题,最初的设计也为代码敲定了3课程设计题目编写方向。
再三考虑后确定了系统的功能,确定什么功能有实现必要,什么功能可有可无。
在这样的基础之下使得思路更加清晰。
2.系统设计2.1系统设计思路本程序首先是用户编辑界面,用户根据自己的需求编写地图,从而加入顶点的数组之中,创建的地图用邻接矩阵存储,在从主函数之中进行调用,实现对两个算法的调用。
用户在输入顶点以及边的信息都会存储,在存储成功之后会提示用户存储成功,之后进入到菜单界面,菜单界面提供两种选择口令,分别可以调运Dijkstra和Floyd算法,调用之后输入相应的口令以及要查询的城市编号,算法会根据邻接矩阵存储的地图进行计算,求出最短路径。
在以后使用完系统后,可输入口令0,系统会结束一切运算,退出程序。
2.2系统设计功能菜单界面的主要功能有两个:(1)、求一个城市到所有城市的最短距离(2)、求任意的两个城市之间的最短距离城市交通咨询系统主要有三个模块分别为:(1)、邻接矩阵的输入与存储构建交通网络(2)、任意两个城市的最短距离查询(3)、两个指定城市的最短距离查询主界面的模块概念图如下:4数据结构课程设计报告用户进入系统交通网络构建任意两个城市的两个指定城市的最短距离查询最短距离查询结果,退出系统图2.12.3每个模块的具体功能。
(1)、采用C语言定义相关数据类型1.定义一个,用来存储顶点信息。
typedefstruct{VertexTypevexs[MAX];Adjmatrixarcs[MAX][MAX];}MGraph;.. 2.定义一个Dijkstra函数voidDijkstra(MGraph*G,intv,intn);3.定义一个Floyd函数voidFloyd(MGraph*G,intn);(2)、建立邻接矩阵交通网络:5课程设计题目开始输入顶点和边数n,e输入i,j,wY k<=e,k+++N结束图 2.2邻接矩阵构造图结构函数数据类型定义:typedefstruct{VertexTypevexs[MAX];Adjmatrixarcs[MAX][MAX];}MGraph;voidCreateMGraph(MGraph*G,intn,inte)//邻接矩阵构成有向图{inti,j,k,w;for(i=1;i<=n;i++)G->vexs[i]=(char)i;for(i=1;i<=n;i++)for(j=1;j<=n;j++)G->arcs[i][j]=IDF;printf("输入%d条边的i,j及w:\n",e);for(k=1;k<=e;k++){6数据结构课程设计报告scanf("%d,%d,%d",&i,&j,&w);G->arcs[i][j]=w;}printf("有向图的存储结构建立完毕!\n");其中vexs[MAX]保存顶点信息,arcs[MAX][MAX]用于保存边与边之间的信息。
在构建时通过输入的边数i,j作为矩阵的行、列确定顶点的出度和入度。
用邻接矩阵方法存储图。
(3)、查询指定城市到其他城市自己建的最短路程:开始输入顶点v狄克斯特拉算法输出路径,距离结束图 2.3应用狄克斯特拉算法来具体实现这一步的需求。
基本思想:设G(V,E)是一个带权有向图,把图中的顶点集合V分成两组,第一组为已经求出的最短路径的顶点集合(用S表示,初始时S中只有一个原点,以后每求得一条最短路径就加入的集合S中,知道全部顶点都加入到集合中),第二组,为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点就如S中。
如果两个顶点之间有权值,并且各个路径的权值不同,就把最小的作为顶点与顶点的最短距离。
7课程设计题目kyxv uz图 2.4如图所示若x+y<z,则最短的路径就是v=>k=>u。
同理若x+y<z,则最短的路径就是v=>u,D[v1]=0;S[v1]=1; //原点编号放入s中for(i=2;i<n;i++){min=IDF;for(w=1;w<=n;w++)if(!S[w]&&D[w]<min){v=w;min=D[w];}S[v]=1; //修改顶点u放入s中for(w=1;w<=n;w++)if(!S[w]&&(D[v]+G->arcs[v][w]<D[w])){D[w]=D[v]+G->arcs[v][w];P[w]=v;}}(4)、查询任意两个城市之间的一条最短路径:开始输入起点v,终点w8数据结构课程设计报告调用弗洛伊德算法输出路径,距离结束图 2.5此过程需要应用弗洛伊德算法来具体实现。