已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 需求分析1. 目的:编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策以及两种交通工具(火车 飞机)的交通咨询。2. 基本功能:(1)提供对城市信息进行编辑(如:添加或删除)的功能。(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。(4)旅途中耗费的总时间应该包括中转站的等候时间。(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息为:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。3.测试数据:自行设计的列车时刻表和飞机航班表2 进度及工具1. 使用语言:java2. 使用工具:eclipse3. 进度:基本完成了以上的几点基本功能全套设计加扣30122505823 概要设计1. 类的功能类名详情描述Station类似于有向图中的边MGraph交通图,属于有向带权图Floyd利用弗洛伊德算法对图进行特定运算Permulation全排列的类Utils工具类TrafficConsult实现基本界面的类2. 类及其方法在上述六个类中,最主要的是TrafficConsult类和Utils类,在此便以这两个类来分析。类名方法功能TrafficConsult init()对主界面各个组件进行初始化createOther()创建并初始化其他的对话框myEvent()为各组件添加监听器main(String args)创建TrafficConsult对象UtilsgetPermulation(int arr)获取全排列的所有可能getBr(String vehicle)获取对应的BufferedReaderaddInfo(String vehicle,String info)添加指定信息到指定文件中deleteInfo(String vehicle,String start,String end)删除文件中的信息transformTime(int costTime)将分钟(整形)转化为x小时x分钟的字符串形式getPathInfo(String path,String vehicle,String bestChoice,int costInfo)获取路径的具体信息,从文件中读取挑选并存入StringBuilder中,并返回StringBuilderreadInfo(String vehicle)从指定文件中读取数据,生成一个MGraph对象并返回FinishPath(MGraph mg)完成路径addWaitTime(MGraph mg,int v,int u,int w)添加中转站的等待时间getCostTime(String date1,String date2)传入两个字符类型的时间,计算出两个时间的差值点击“开始编辑”按钮”四.详细设计1. 添加监听器的流程图删除添加 显示删除对话框显示添加对话框添加还是删除获取选项信息(1)开始编辑按钮NY提示删除失败提示删除成功Flag=true?火车飞机flag=Utils.deleteInfo(火车, start, end)flag=Utils.deleteInfo(飞机, start, end)飞机还是火车获取删除信息点击删除按钮点击添加按钮N提示添加失败提示添加成功Yflag=true?火车flag=Utils.addInfo(火车, info)flag=Utils.addInfo(飞机,info)飞机飞机还是火车获取输入信息(2)添加和删除按钮将获取的信息在文本域中显示出来在文本域中显示不存在的对应信息NUtils.getPathInfo(path,select1,select2,costInfo)Y是否都存在 获取起点终点读取MGraphmg=Utils.readInfo(select1)获取选择框中的内容(3)查询按钮Station成员变量String num;/车次String from;/始发站String to;/终点站String startTime;/出发时间String arriveTime;/到站时间int price;/票价int costTime;/走完这条边所需的时间(分钟)构造器public Station(String num, String from, String to, String startTime,String arriveTime, int price)MGraph成员变量ArrayList stationName;ArrayList al;int n;int priceArcs;int timeArcs;String path;String timePath;boolean PathMatrix;boolean TimePathMatrix;int DistancMatrix;int timeMatrix;构造器public MGraph(ArrayList al)2.类的调用5 调试分析(1) 调试回顾:在做这个课程设计时确实是碰到了很多bug,一开始的设计是从比较底层的类开始,所以一开始还定义了两三个测试的类,或者直接在类中写main方法,进行测试分析,利用打印的方法,将一些数据或者变化打印在控制台来分析,所以一开始的调试相对较简单。到后来,随着类的增多,类和方法直接变得复杂和频繁,所以有时候碰到一个问题要调试很久,而且要分析两种最优决策和两种交通工具,有时候很容易弄乱,而且由于一些变量名的比较接近,每次写都要回到那个类去确认一下,有一次就因为将一个变量名写成了另外一个(两个变量名比较接近),调试了很久才找出来。(2) 时间复杂度:这个课程设计主要的算法是弗洛伊德算法,弗洛伊德算法的时间复杂度为n的三次方,n为图的顶点数。(3) 经验与体会:调试是一个非常重要的内容,有时候出现的错误是因为书写不规范,定义变量名时要注意能够望名知意,当变量名较多时要多注意,每写一个方法后最好测试一下,不要等到所有方法写完后再去测试。调试要注意方法,最常见的是打印在控制台,另外还有断点调试等,由于编者能力有限,尚未掌握更多方法,还是要多学一些调试方法。6 用户使用说明双击打开界面,在起始站和终点站所在文本框输入对应名称,选择最优决策和交通工具,点击查询,若起始站或终点站有一个不存在,都会跳出对应的提示信息,若起始站和终点站都存在,点击查询按钮就会显示对应的信息。也可以点击帮助,就会弹出帮助信息的对话框。如果想删除或添加火车列表或飞机航班表,点击编辑按钮,选中要操作的选项,点击开始编辑。若是选择删除,就在弹出的对话框中输入对应起始站和终点站名,点击删除即可,然后便会弹出提示信息。若是添加,就在对应的文本域按照规则添加信息,点击添加即可,也可以点击添加帮助按钮查看细节。编辑完重启即可查询刚编辑完的信息。7 测试结果1.测试数据本次测试所用测试数据如下:火车列表:G005-北京-上海-8:00-12:00-400D002-北京-广州-8:00-15:30-1100G309-沈阳-北京-5:00-12:00-300T001-兰州-北京-8:00-13:00-500G002-沈阳-上海-12:00-15:30-800G329-广州-桂林-5:00-12:00-400T001-桂林-成都-8:00-13:00-500Z509-上海-广州-16:00-17:30-520飞机列表:P004-上海-北京-10:00-15:00-600P005-厦门-广州-9:00-12:00-300P005-北京-厦门-9:00-12:00-163P001-兰州-北京-8:00-13:00-500P005-广州-武汉-9:00-12:00-560P101-上海-厦门-13:00-16:30-830由此可列出火车图和飞机图如下:沈 沈沈 沈火车图:武穗厦沪京兰飞机图:成桂兰穗沪京2.测试查询截图:(1) 双击打开界面(2) 输入起始站和终点站,选择最快捷 火车(3) 点击查询(4) 选择最省钱(5) 更换终点站(6) 跟换最优决策(7) 多中转站(8) 终点站不存在(9) 起始站不存在(10) 起始站 终点站都不存在(11) 交通工具选用飞机 最优选择:最快捷(12) 最优选择改为:最省钱(13) 多中转站3. 编辑信息(1) 点击编辑信息按钮(2) 下拉框一览(3) 选中删除飞机航班表,点击开始编辑,弹出对话框如下(4) 查看未删除前的文档(5) 输入起始站 终点站 (6) 点击删除,弹出对话框(7) 查看文档,对应的信息不见了(8) 重新输入查询(9) 点击编辑信息 选中添加(10) 点击开始编辑,弹出对话框(11) 查看未添加前的火车列表(12) 点击添加帮助(13) 输入信息(14) 点击添加(15) 关闭添加界面后稍等片刻,查看火车列表文档,输入的信息已经写入到文档中(16)回到主界面查询输入的信息3. 帮助按钮4. 分析经过分析,以上输出的信息基本正确,基本功能也可以实现,但是还存在个别问题尚未解决,由于编者能力有限,至今仍未解决。8 小结在这次课程设计中,首先是认识到自己知识的严重不足。刚开始对该怎么做的理解都是一些空想,没有变成实际的代码。在编写程序时,知识应用完全没有概念,只是凭着感觉去写一些,没有把学到的东西应用起来。对一些方法和算法的具体用法用处没有充分的了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京别墅买卖合同范本
- 卖方怎样签订合同协议
- 公司转让协议书的样本
- 2025年办理低压电工证考试试题及答案
- 合伙经营车辆合同范本
- 公司不给解除合同协议
- 核工程原理考试题及答案
- 劳务合同工资附加协议
- 可乐鸡翅买卖合同范本
- 利益共享协议合同范本
- GB/T 7387-1999船用参比电极技术条件
- GB/T 39473-2020北斗卫星导航系统公开服务性能规范
- GB 16808-2008可燃气体报警控制器
- 公司有限空间作业安全专项排查表
- 高考英语衡水体字帖电子书
- 强度调制机理光纤传感器基本原理课件
- 《当代中国经济》第一章中国经济体制改革
- 《自强不息的人格修养》-课件1
- DB4403-T 54-2020 停车库(场)交通设施建设与管理规范-(高清现行)
- 穴位敷贴法操作评分标准
- 病毒性肝炎课件ppt-病毒性肝炎
评论
0/150
提交评论