《算法设计与分析课程设计-校园导航问题设计分析测试报告.docx》由会员分享,可在线阅读,更多相关《算法设计与分析课程设计-校园导航问题设计分析测试报告.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算法设计与分析课程设计校园导航问题设计分析测试报告姓名:学号:班级:指导教师: 2016年 1 月 6 日程序算法设计说明书一、 前言1. 问题描述- 22. 程序编制环境相关说明- 2二、 程序主要算法设计分析说明算法设计思路,流程图说明- 2三、 程序模块说明1. 总体设计说明- 42. 模块说明: 2.1 模块一:鼠标监听- 42.2 模块二:界面显示- 52.3 模块三:键盘监听- 7四、 总结(含主函数设计说明)- 9程序及算法测试报告一、 前言1. 测试目的及采用的主要测试方法- 11被测试程序算法说明及流程图等- 112. 测试环境说明- 11二、 测试用例说明1. 测试用例1
2、- 122. 测试用例2 - 13 3测试用例3- 14三、 测试结果分析- 15四、 其他- 15校园导航问题设计说明书五、 前言3. 问题描述设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径4. 程序编制环境相关说明使用Windows10 系统 IDE为Myeclipse2015 编写使用的语言为JAVA六、 程序主要算法设计分析说明算法设计思路,流程图说明流程图的一部分(这里是初始化距离数组的) 1-1接上面 贪心算法部分1-2 时间复杂度为O(N2)七、 程序模块说明3. 总体设计说明4. 模块说明:4.
3、1 模块一:鼠标监听 涉及 GUIJFrame 类 继承了 JFrame类涉及MyJPanel 类继承 JPanel 类 实现了MouseListener接口(鼠标监听) (1) 主要鼠标监听 用来响应点击 下面是主要代码public void mouseClicked(MouseEvent e) int signTops = judgeSigns(e.getX(),e.getY();if(signTops != 0)if(startPointed) /判断是否是起点未完成startPoint = signTops;if(!startPointed&endPointed) /判断是否起点完成e
4、ndPoint = signTops;endPointed = false;startPointed = false;(2) 关键数据结构和算法及其分析(3) 输入 鼠标点击(4) 输出 设置起点,终点4.2 模块二:界面显示涉及MyJPanel 类继承 JPanel 类涉及 GUIJFrame 类 继承了 JFrame类使用了javax.swing.包(1) 关键数据结构和算法及其分析15(1) 输入 起点,终点,最短路径(2) 输出 显示地图 ,起点场所绿色轮廓,终点场所绿色轮廓,最短路径 紫色线路 2.3 模块三:键盘监听涉及 GUIJFrame 类 继承了 JFrame类涉及MyJPa
5、nel 类继承 JPanel 类 实现了KeyListener接口(键盘监听) (1) 输入 ENTER ESC 键(2) 输出 ENTER 设置路径 ESC-重置起点,终点,路径(3) 关键数据结构和算法及其分析public void keyPressed(KeyEvent arg0) / TODO Auto-generated method stubif(arg0.getKeyCode() = KeyEvent.VK_ESCAPE) /初始化起点终点 endPoint = 0; startPoint = 0 ; startPointed = true; endPointed = true;
6、 showWays= false;if(arg0.getKeyCode() = KeyEvent.VK_ENTER) /初始化起点终点sort.Dijkstra(startPoint);sort.getPrev(startPoint,endPoint);showWays = true;八、 总结(含主函数设计说明)经过两天的奋战我的课程设计终于完成了。在没有做设计以前觉得设计只是对这几年来所学知识的单纯总结,但是通过这次做设计发现自己的看法有点太片面。设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是
7、觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在这次设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。我的心得也就这么多了,总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的
8、学会了。在此要感谢苟建平老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。下面是mian函数:public class GUIJFrame extends JFrame MyJPanel p
9、anelOne = null; public static void main(String args) GUIJFrame GUIJFrame = new GUIJFrame();public GUIJFrame()panelOne = new MyJPanel(); /往JFrame里放入一个MyPanelthis.add(panelOne);this.addMouseListener(panelOne); /注册panelOne监听myJFrame键盘this.addKeyListener(panelOne); /注册panelOne监听myJFrame键盘Thread OneThrea
10、d = new Thread(panelOne);OneThread.start();this.setTitle(江苏大学校园导航系统1.0); /设置JFrame基本属性/设置标图案this.setIconImage(new ImageIcon(images/sign.png).getImage() );this.setSize(1260,752); /使JFrame顶级容器居中setLocationRelativeTo(null);this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);this.setVisible(true);程序及算法测试报告五
11、、 前言3. 测试目的及采用的主要测试方法鼠标点击显示图像路径 后台显示路径数字编号(控制台)4. 程序编制环境相关说明使用Windows10 系统 IDE为Myeclipse2015 编写使用的语言为JAVA5. 被测试程序算法说明及流程图等在本报告的第二有人和第三页6. 测试环境说明鼠标随机点击地图上的场所六、 测试用例说明测试用例1 目的 :测试程序是否有错误 输入 :点击2个场所预期输出:生成两个场所的最短路径实际输出:下面两张图为界面的显示(界面是不断刷新的)控制台输出:X=580,Y=642 X=977,Y=505 路径 13-7 7-6 6-9测试结果 成功3. 测试用例2 下面两张图为界面的显示 (界面是不断刷新的) 控制台输出:X=484,Y=59 X=1041,Y=699 路径 1-2 2-3 3-5 5-6 6-9 9-12 12-14 测试结果 成功4. 试用例3 下面两张图为界面的显示(界面是不断刷新的)控制台输出:X=512,Y=106 X=589,Y=700路径 :1-2 2-3 3-4 4-7 7-13 13-11测试结果 成功七、 测试结果分析该软件已达到实验要求并未出现错误八、 其他测试成功用例数及失败用例数,程序算法的不足之处等(含对本程序测试总体评价)成功 30次 失败0次 算法目前测试来说很强壮