数据结构课程设计-安徽省铁路运输网最佳经由(编辑修改稿)内容摘要:
伊德算法 ) 数据模型 (逻辑结构 ):带权有向图 输入输出:初始数据是从 、 、 三个文件中读入,在读入数据后,用户可以根据选项选择相应的功能,不同的功能有不同的数据输入 /输出,比如:查询的功能是要求输入要查询的站的名称,然后输出是该站的相关信息;查询最 int count。 int path[SIZE_view];短路径的功能则是输入起点站、终点站的名称,输出则是该段 路线距离和经由站等。 程序的输入: 计算机与信息工程系 《数据结构》课程设计报告 6 ( 1)铁路线信息的输入:依次输入“铁路线代码 ,铁路线名称,起始站代码 , 终点站代码,该铁路线长度、通行标志” ,并且中间以空格隔开。 ( 2)火车站信息的输入:依次输入“车站代码,车站名,车站编号、车站简称,所属铁路线编号” ,并且中间以空格隔开。 程序的输出格式; ( 1)当显示铁路线或者火车站的信息时,与输入时的格式完全一致 ; ( 2)输出最短路径的长度,以及最短路径的经由顺序; 按照程序功能要求,设计了一下各个功能模块: ( 1)文件读取模块 文件读取模块包括读取车站信息 模块 readviews、路段权值信息读取模块readlines、铁路线信息读取模块 readlines。 这些模块的主要功能为从文件中读取所需的信息。 ( 2)添加信息模块 adddata 添加信息模块又包括以下子功能模块: A、添加站点信息模块 addview。 B、添加路段权值模块 addway。 C、添加铁路线信息模块 addline。 ( 3)查询模块 根据用户需求,查询站点信息 ( 4)最短路径查询模块 该模块为本软件设计的核心部分。 根据该模块可以很方便的找出两个城市的最短路径。 该最短路径的算法为常用的弗洛伊 德算法。 ( 5)操作菜单模块 该模块主要用于与用户的交互,一个界面友好的菜单可以提高软件的人机交互体验。 软件模块结构 (1)主程序模块,其中主函数为: oid main() { 新增火车站;新增铁路线;查询火车站的信息; 针对客运、货运情计算机与信息工程系 《数据结构》课程设计报告 7 况,求两站之间的最短路径及其经由顺寻;退出界面 } (2)文件模块为 :void readways(); void readviews(); void readlines() (3)图模块为: void short_path(); void floyed() (4)查询函数和添加函数 void search(); void adddata(in menu); void addway(); void addline(); void addview() 函数的调用:进入主函数,调用文件模块各函数以读取数据; 选择 1 或 2,则调用 void adddata(in menu),其中若选择 1,则调用 void addview()函数; 若选择 2,则调用 void addline()和 void addway()函数; 选择 3,调用 void search()函数进行查询; 选择 4,调用 void short_path()和 void floyed()函数以得到最短路径。 4 程序调试分析 测试数据 数据读取如下: 图 2:数据读取显示 计算机与信息工程系 《数据结构》课程设计报告 8 图 3:操作界面显示 : 输入 1,增加车站信息如下: 计算机与信息工程系 《数据结构》课程设计报告 9 图 4:增加车站信息 输入 2,增加铁路线信息如下: 图 5:增加铁路线信息 输入 3,查询车站信息如下: 图 6:查询车站信息 计算机与信息工程系 《数据结构》课程设计报告 10 输入 4,查询最短路径如下: 图 7:查询最短路径 输入 5,退出界面如下: 图 8:退出界面显示 时间复杂度分析 程序中图的存储结构为带权邻接矩阵, 其中对邻接矩阵的初始化的时间复杂度为 O(n*n)。 在求最短路径的时候, 用的是弗洛伊德算法,时间复杂度主要在于计算机与信息工程系 《数据结构》课程设计报告 11 求每一站到任意站的最短路径由是的 for 循环,那有三个 for 循环,所以时间复杂度为 O(n3)。 上机过程中出现的问题及其解决方案 ( 1)刚刚看到题目要求的时候就想到了弗洛伊德算法,但是不知道如何去做,在网站搜索到类似代码,经过修改后,最终得出了源程序。 ( 2)源程序可以运行的时候,忘记添加相关文本文件,所以运行文件的时候会提示文件打开失败,无法进行接下来的功能使用,这时候才想起来要自行添加相关的文本文档,接着问题就解决了。 ( 3)在 文本文档中添加各 站权值的时候,一开始不知道如何添加,经过思考和查询课本后,明白了添加权值时是以各站编码代表各站,由于是有向图,所以需要添加两站往返权值。 ( 4)在输入信息时,由于是输入汉字,系统不稳定,容易出现刷屏,这个问题 ,我是向学长寻求帮助并得以解决的。 5 小 结 本次课程设计我做的是安徽省铁路。数据结构课程设计-安徽省铁路运输网最佳经由(编辑修改稿)
相关推荐
面质量,最好选图29 中的 (L)和 (c)所示的走刀路线。 3. 旋转体类零件的加工 用数控车床或数控磨床加工。 零件毛坯多为棒料或锻件,加工余量大且不均匀,因此合理地制定粗加工时的加工路线是编程的关键所在。 数控 铣床加工的流程 13 图 2— 10所示为手柄部分的轮廓,它由三段圆弧组成,因加工余量大且又不均匀,当批量生产时,比较合理的方案为先用直线和斜线程序车去图中虚线所示的加工余量
Type 丝杠轴外径 螺距 XL 6870ZXLL 右 1列 动C( KN) 静OC( KN) 3 BSX 12 5 300 1列 4 15 10 750 F P A B T d d1 h 滚珠直径( cm) 滚珠丝杠预紧力 ( cmN ) 15 8 44 34 10 8 ~5 NGfFP zZ 4 5 31 0 0 1 3 94 1 2 当NPffLQ XHwX 3 2
腈 丁二 烯 苯乙烯共聚物( ABS)。 注射成型是热塑性塑料成型的一种重要方法 ,它具有成型周期短、能一次成型形状复杂、尺寸精确、带有金属或非金属嵌件的塑料制件。 注射成型的生产率高,易实现自动化生产。 因此,注射成型广泛应用于各种塑料制件的生产。 根据塑件材料为 ABS 和塑件的外形特征和使用要求,选择最佳的成型方法就是注射成型。 为使注塑成型过程顺利进行和保证塑件质量
ame。 FindAlter(name,isfind,p,q,m,n)。 if(isfind==false) cout没有该社团。 endl。 else{ cout社团: mname,旗下会员有:。 Display(mlch,i)。 Display(mrch,i)。 cout\n是否删除该社团( y/n) :。 高校社团管理 cinyn。 if(yn==39。 y39。 ||yn==39。
ocache)。 //HTTP backward patibility String exit= (String)(exit1)。 if(exit==null) { String m=请先登录。 ()。 (script+=+\++\+/script)。 } % meta equiv=ContentType content=text/html。 数据库课程设计 — 科研管理系统 11
anaaaaSnnnnn 4. 倒 序相加法 如果一个数列与首末两项等距的 两项 之和等于两项之和,可采用正着写与 倒 着写的两个和式相加,就得到一个常数列的和 . 例 5 已知 na 为等差数列,求 1 2 3 na a a a 解:令 1 2 3nnS a a a a 将上式中各项的次序反过来就得到: 1 2 1n n n