基于floyd算法的便捷地铁路线查询系统数据结构课设python课程设计源代码实验报告源码.docxVIP

基于floyd算法的便捷地铁路线查询系统数据结构课设python课程设计源代码实验报告源码.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
地铁出行帮助软件 荃于Floyd讯誹便捷地跌路线圭询系统数曙结狗课设Python课程设计源代码 ?【需求分析】 ?输入 1」」输入值来自于UI界面的“出发站:”、“目的站:”的两个接收框 1.1.2输入值范围:来自于“Baselnfo.txt”全部219个站名 ?输出 1.2.1输出:右侧边栏的文字版的路线,左边在地铁图上的点线表示的出 行路线 需要处理的数据 3 333333- 5O5D55? 2222222-(113Sfinu 3 333333- 5O5D55? 2222222- (113 Sfinu 0 3 200 0 3 225 0 3 2T0 0 3 0 3 34 0 3 3T8 512 0 3 4K 512 5 3 465 512 5 3 501 512 0 3 550 512 0 3 宓 512 5 3 €31 512 5 3 6勿 512 D 3 ?5U 612 0 3 300 512 0 3 8, 5f: 5 3 3T5 512 5 3 m 512 0 3 诃 5 512 5 3 10U 512 0 3 I0? 512 5 3 11? $12 5 5 52】 1.3.1程序将Baselnfo.txt中的数据(上图只是一部分)通过open函数抓 取出来,并存储在两个list型的变量siteNameToNum、siteNumToName中, 根据需要再进行后续处理,得到想要的查询路线。 1.3.2将siteNameToNum siteNumToName中的数据放入矩阵e,之后再进 行Floyd算法的计算。 程序开发运行选用的环境 141程序采用python2.7编写。 5?用户界面的设计 1.5.1用户界而采用Python自带图形界而库实现。 打开图形界面后,会看到1个功能按钮和2个输入编辑框,1个输出编辑框,一张地图。 分別在“出发站”“目的站”中输入正确的站点名称之后,点击“确左”功能按钮之后,地 图上会显示最短路线,右侧边栏会显示路线信息和时间。 二【数据结构设计】 2.1自定义类设计 2.1.1站点类 #1:具II #1:具II站名,坐标,所属线路,换乘时间 #工具21编号,对应站名,坐标,所属路线, siteNumToName={} 换乘时间diet类型 2.1.2矩阵类 e=[[{lineNo:-l,arriveTime,:INF,transTime:OJroadList,:[]} for col in range(siteNum)] for row in range(siteNum)] #实现 使用Floyd算法所用的基础矩 阵e-list的函数 2.1.3程序整体结构以及各模块的功能描述。 ADT建义: 定义了 2个类:站点类存放各个站点的信息。 矩阵类将站点的信息组成矩阵,用来进行Floyd计算。 主程序流程: 功能1通过直接打开txt文件将站点存入站点类中; 功能2将站点类的信息导入矩阵中,并进行Floyd计算。 功能3调用daoru函数,然后进行对输入的判定,符合会输出相应的信息 功能4凋用daoru2函数,然后进行出入栈和排序操作,最后会显示到编辑框 功能5为淸空编辑框的信总。 三.【详细设计】 31射手榜导入函数 fin函数导入射手榜 2 将进球姓名相同球员进球数进行合并 直接插入排序 代码:void Daoni(intn.player a[]) { int i=0; ifstream fin(”射手榜存档?txL); int j=0; int num=0; fin?af num].name; fin?a[num].country; fin?a[num].goal; for(i= 1 ,num= 1 ;iq 1:i++) { fin?a[num].name; fin?a[num].country; fin?a[num].goal; for(j=0;jnum;j++) { if(a[num].name==a[j].name) { a[j].goal+=a[ num].goal: num-; } } num++; } n=num: cout?num?endl; } 3.2战绩信息导入函数 fin函数导入信息 将国家1国家2比分1比分2存入数组s 根据两比分和得到进球信息个数存入xinxi类队列 代码:void Daoru2(int nn.zhanji s[]) { fstream fin(Mh:Wc.txt,r); //zhanji s[number]; for (int i=0; inumber; i++){ fin ? s[i].countryl ? s[i].country2 ? s[i].pointl ?s[i].point2; for (int a = 0: a s[i].poi

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档