地铁出行帮助软件-软件工程课程设计个人报告

上传人:pu****.1 文档编号:475174429 上传时间:2023-04-02 格式:DOC 页数:23 大小:1.62MB
返回 下载 相关 举报
地铁出行帮助软件-软件工程课程设计个人报告_第1页
第1页 / 共23页
地铁出行帮助软件-软件工程课程设计个人报告_第2页
第2页 / 共23页
地铁出行帮助软件-软件工程课程设计个人报告_第3页
第3页 / 共23页
地铁出行帮助软件-软件工程课程设计个人报告_第4页
第4页 / 共23页
地铁出行帮助软件-软件工程课程设计个人报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《地铁出行帮助软件-软件工程课程设计个人报告》由会员分享,可在线阅读,更多相关《地铁出行帮助软件-软件工程课程设计个人报告(23页珍藏版)》请在金锄头文库上搜索。

1、软件工程课程设计个人报告课程设计题目:地铁出行帮助软件北京工业大学 计算机学院 班级:703班报告人姓名: 学号: 承担角色:组长同组其他成员: 课程教师: 实验指导教师: 实验地点:图书馆完成起止日期:2014.9.3-2014.11.13目录一、 课程设计概述11. 目的12. 任务13. 开发环境14. 参考资料1二、 项目需求分析2三、 项目设计的基本原理和采用的主要方法与技术2四、 本人实现项目的过程与步骤21. 程序流程的设计31.1流程图的设计:31.2程序系统的结构:41.3时序建模52. 数据库的设计和录入62.1完成数据库的设计:62.2完成数据库的录入:83. 算法设计8

2、4. 图形界面设计94.1图形界面初期架构设计:94.2图形界面的最终架构以及结果输出:95. 程序开发95.1IDE95.2核心算法设计105.3程序开发完成11五、 个人遇到的困难与获得的主要成就121. 开发环境的选择122.数据库的设计123.程序数据结构的设计:134.程序核心算法的选择:135. 程序核心算法的设计:146.图形界面开发的设计:17六、 测试与运行记录19七、 课程设计完成结果分析与个人小结20八、 附录211. 软件配置:212. 个人完成的程序模块:213. 文档清单:21一、 课程设计概述1. 目的本软件产品是一项独立的软件,而且全部内容自含。开发的意图是为了

3、开发一款地铁出行帮助软件;应用目标是能够文字给出地铁出行建议并且图形表示;作用范围是所有地铁出行的北京居民。2. 任务输入:输入形式:下拉菜单选择;输入内容:出发线路,终点线路,出发站、目的站。输出:输出形式:对话框和图形界面;输出内容:地铁出行建议和建议路线图。用户可以选择“最快”、“最方便”和“最优”的地铁出行方案,当选择不同的出行方案时,会从数据库中读取对应不同的换乘时间以及停车时间。程序会根据用户查询的时间调用系统时间,判断当前是否是高峰时间,当前是高峰时间时,会从数据库中读取对应不同的高峰换乘时间以及高峰停车时间。3. 开发环境 SQL Server 12、NetBeans IDE

4、7.24. 参考资料a. 软件工程课程设计指导书b. 地铁出行帮助软件需求分析书c. 地铁出行帮助软件概要设计说明书二、 项目需求分析请输入站点信息提示语起始线路判断用户是否输入完整的站点信息起始站点 图形界面显示出行线路图终点线路判断用户是否选择出行方案终点站点文本显示地铁出行线路选择方案 输入 处理 输出三、 项目设计的基本原理和采用的主要方法与技术基本原理:堆优化的Dijkstra算法主要方法与技术:SQL语句创建表与录入数据、JAVA语言访问数据库、JAVA SWT 图形界面编程技术四、 本人实现项目的过程与步骤个人在小组中担任组长一职,每周负责给组员们分配各自的任务,让大家在10周的

5、时间内有条不紊的完成软件工程课程设计的程序编写以及各类报告;在程序设计方面,我也负责完成了尽可能多的部分,从数据库、程序算法的设计,到程序算法、图形界面的编写。1. 程序流程的设计1.1流程图的设计:开始线路查询否完整?输入起点终点完整信息较快捷否少换乘是是最优是否结束显示图形文本线路方案是1.2程序系统的结构:1 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候用户的所见所得。在此系统中,表现层即为用户所见的软件界面,用户通过软件来获取服务。2 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据的业务逻辑处理。3 数据访问层(DAL):该层所做事

6、务直接操作数据库,针对数据的增添、删除、修改、查找等。数据库换乘站点管理线路站点管理数据访问层少换乘查询模块较快捷查询模块最优查询模块业务逻辑层用户用户用户用户 表现层1.3时序建模数据库类图形类图元类窗体类算法类 用户菜单命令()生成图元实例()将图元实例加入到图元链表()重绘图元()访问数据库()调用算法()重绘图元()2. 数据库的设计和录入2.1完成数据库的设计:2.1.1换乘表transfer_station列名数据类型是否为空简要说明NumOffintNOT NULL下车车站编号NumTsfintNOT NULL换乘车站编号StationNamevarchar(20)NOT NUL

7、L车站名称OfflineNumintNOT NULL下车线路编号TransferlineNumintNOT NULL换乘线路编号HtransferTimeintNOT NULL高峰换乘时间LtransferTimeintNOT NULL低峰换乘时间2.1.2线路表line_one-line_nine列名数据类型是否为空简要说明NumintNOT NULL总体车站编号NumberintNOT NULL地铁线路编号 外键StationNumintNOT NUL线路内车站编号StationNamevarchar(20)NOT NUL车站名称AbscissaintNOT NUL车站横坐标Ordinat

8、eintNOT NUL车站纵坐标LastStationNumintNOT NUL上一站车站编号NextStationNumintNOT NUL下一站车站编号LastrunningTimeintNOT NUL到上一站运行时间NextrunningTimeintNOT NUL到下一站运行时间HstopTimefloatNOT NUL高峰停靠时间LstopTimefloatNOT NUL低峰停靠时间TransferStationfloatNOT NUL是否换乘车站2.2完成数据库的录入:3. 算法设计学习了图的概念,包括点、弧、有向图、无向图等等;学习了图的存储结构,包括邻接矩阵(数组表示法)、邻接

9、表、十字链表(有向图)、邻接多重表(无向图);还学习了图的遍历,包括深度优先搜索和广度优先搜索。最后决定使用邻接多重表(无向图)的数据结构。学习了数据结构与算法教材上的最短路径(包括单源最短路径Dijkstra算法、每对顶点之间的最短路径Floyd算法),其中Dijkstra算法用于求解固定起点到图上任意点的最短路径;Floyd算法用于求解图上任意两点之间的最短路径。很明显,我们的软件中,是求解固定起点到固定终点的最短路径,无论用Dijkstra算法还是Floyd算法,复杂度都太高了。 在核心算法设计的选择上仍然存在问题,Dijkstra算法和Floyd算法,用在我们的程序中复杂度都太高了,需

10、要在其基础上进行改良优化。最后我们决定使用堆优化的Dijkstra算法,Dijkstra算法每次选取一个点都需要进行比较,得到所有路径中最短的一条路径,使用堆比较算法,每次只选出堆顶这个最小的元素,这样计算的复杂度会降低很多,Dijkstra算法的时间复杂度是O(n3),堆优化Dijkstra算法的时间复杂度是O(nlogn)。4. 图形界面设计4.1图形界面初期架构设计:4.2图形界面的最终架构以及结果输出:5. 程序开发5.1IDE我安装了MyEclipse,由于之前没有接触过这款编程软件,学习了MyEclipse的一些相关操作,以及软件的调试。5.2核心算法设计完成了核心算法的模拟,能够

11、用控制台正确输出模拟数据的最短路径。5.3程序开发完成花费了两周多的时间,按照之前的需求与设计,进行了程序部分的编写,完成程序的所有部分,实现了所有预期的功能,不过还存在一些问题有待测试。五、 个人遇到的困难与获得的主要成就1. 开发环境的选择困难:初期,我们一致决定IDE使用MyEclipse。然而,在开发进入中后期的时候,出现了一个我们难以解决的问题,就是数据库与IDE的连接。我们花费了几个小时来解决数据库的连接问题,最后在Netbeans上调试成功了。最终我们还是使用了Netbeans作为程序开发环境。主要成果:虽然没有成功的解决数据库与MyEclipse的连接问题,不过通过更改IDE也

12、未尝不是解决问题的一种方法。我们由此学习到,IDE的选择对于程序的开发也是尤为重要的。2.数据库的设计我们率先将地铁出行帮助软件的主体分为了数据库、程序算法以及图形界面,于是便顺理成章的将工作重心放在了数据库困难:我们按照指导书上的要求粗略的设计了数据库的属性以及元组,不过在之后的算法开发过程中,我们发现数据库的设计在之后的算法中并不是非常适用,后来还进行了非常多的修改。主要成果:由此我们吸取了教训:在程序开发的过程中,不应该急于数据库的设计与开发。相反,先着手于程序的开发,根据程序的需求对数据库进行相应的更改,可以省去不少的功夫,事半功倍。3.程序数据结构的设计:在对图的相关数据结构进行学习后,学习了图的概念,包括点、弧、有向图、无向图等等;学习了图的存储结构,包括邻接矩阵(数组表示法)、邻接表、十字链表(有向图)、邻接多重表(无向图);还学习了图的遍历,包括深度优先搜索和广度优先搜索。初期决定使用邻接多重表(无向图)的数据结构。困难:在决定使用邻接多重表作为我们的数据结构之后,我们发现这个数据结构的结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号