标签:
杨金键 谢振威 金豪
有图有真相:
优点:
缺点:
杨金键优点:
缺点:因为写的比较快吧,思维有一些跳,没有那么研究,所以也就容易留下一些隐患,会造成一些麻烦
谢振威优点:
缺点:与队友缺乏沟通,很多时候有些想法不太会主动与人交流
自己优点
缺点:容易纠结于表面的错误无法自拔浪费时间,其实就是一些奇怪的问题啦。。。浪费大量时间
好的设计方法包含信息隐藏、接口设计以及松耦合
契约式设计是我们在编程中极为推崇的设计方法,最初是被Bertrand Meyer在设计他的Eiffel语言时所创造的概念,并且在1986年开始逐渐被各式各样的论文引用。用文档来记载权利和义务的说明并用程序来检验,这就是契约式设计的核心。契约式设计其之所以得到了人们的重视,因为它将责任的分工明确化。当一段代码发生异常时,我们过去的思想总会模糊的认为,是否是这段代码本身存在错误?而程序的规格化设计明确地告诉了我们这一错误的责任到底在于用户还是设计者。在面向对象技术中,接口是我们在面向对象中需要关心的东西,可是只有借口这却还不够充分,我们究竟如何才能正确的使用接口,而这恰恰是契约式设计所提供的部分。只有考虑到了规格,才可能实现面向对象的目标:可靠性,可扩展性,和可复用性。
因为我们有三个人,算是精力比较充沛吧,所以就做了两个作品出来,共同完成。一个是基于QT开发出来的,一个是基于windows自带图形界面。虽然界面UI不同但是基本功能都是一样的,而且两个程序的内核也就是计算部门是完全一样的,所以后面测试也是针对那一部分做的,所以后面对两个作品不做区分。界面大致如下,功能反面基本满足了查询地铁线路图所需。
测试方面,我们是采用VS2015针对计算模块专门新建项目做的测试(也打包在随后的代码库里面)。测试用力基本涵盖了所有的可能情况,具体如下:
以及代码覆盖率是这样的:
在绘制图形的时候,每次刷新都会通过repaint重新绘制全部的图形并且重新计算所有贴图的缩放位置等,所以最开始的程序在移动过程中有些卡顿。后来再综合讨论思考之后,我们将仅仅平移时的计算动作又全部计算变成了仅仅对于已有点的平移,这样就就在绘图时极大的减小了工作量,也提高了效率。
在地图搜索路径方面,我们将站与站之间的关系用2个邻接矩阵表示,同一个站如果在不同的线上出现,算作不同的站。求最短路的邻接矩阵中,不同的线上的同一个站的距离设为0,求最少换乘的邻接矩阵中,不同的线上的同一个站的距离设为MAX(大于线上站点总数的值),计算时,都使用Dijkstra算法,即可得到最短路径或者最少换乘路径。
整个结对项目(其实是团队项目)做下来还是颇有收获的,最重要的一点就是深刻的认识到了自己在编程能力上的不足。想法总是很好,但是实现起来却和自己想的完全不一样,基本上写几行就会碰见有违自己“常识”的事情,在焦虑中倍受煎熬。还有团队合作方面更,初尝真正的团队项目,摩擦和相互埋怨总是不可避免,内心吐槽对方无数次身体还是老实的跟着大家一起做项目,谁让我们是团队呢(还有队友也比较给力)。还好,最后我们都坚持下来了,虽然还有一些小的地方没有达到自己的预期,但是已经足够让我们满意了。希望在后面的软件工程课上收获更多的成长。
http://www.cnblogs.com/MurryK/p/Beijing_Subway_Added.html
代码Github:(包含两个地铁工程以及一个测试工程)
https://github.com/MurryK/Bejing_subway_continued
标签:
原文地址:http://www.cnblogs.com/MurryK/p/Subway_To_be_continued.html