• 结对项目-地铁出行路线规划程序(续)


    结对项目-地铁出行路线规划程序(续)

    项目地址:https://github.com/jisuozhao/SE2

    结对编程

    结对编程伙伴:14061163 姬索肇

    结对编程照片

    结对编程的优点:

    ·在一方写代码的时候,另一方可以实时监督观察,避免程序中一些因为粗心或者逻辑不够清晰造成的小错误,debug过程中,这些错误往往要花费大量的时间和精力才能发现。

    ·结对编程的双方在项目进行过程中可以随时进行交流,对算法不断地进行改进,不断地提出新的思路和想法,集思广益往往更能写出完美的程序。

    ·锻炼双方的交流沟通能力,为今后的工作发展打好基础

    结对编程的缺点:

    ·时间难以协调,每个人对时间的安排不一样,很难找到共同的空闲时间。

    ·结对编程必须面临的交流问题也是一个棘手的事情。

    结对伙伴的优点:

    ·对C#语言掌握非常熟练,写代码的效率很高,速度很快

    ·思维活跃,总能想出一些巧妙的方法实现程序中的小功能

    ·责任心强,积极主动

    结对伙伴的缺点:

    怎样用好这些好的设计方法

    Information Hiding

    信息隐藏是一种很重要的开发手段,主要与对象的封装以及模块化思想有关,将一些保密性较高,不能轻易泄露的信息封装起来,通过set,get等方法进行修改和获取,防止在程序外部信息被恶意修改或泄露,例如银行卡的密码等等,以提高程序的安全性。

    Interface Design

    接口设计和信息隐藏是分不开的,接口设计是一种信息隐藏的具体手段,而信息隐藏是接口设计的主要母的。通过接口设计,能使程序看起来更加的清楚明了, 我们不关心这个方法是如何实现的,我们只关心这个方法能做什么,这对于团队合作具有很重要的意义。在一个团队中,不同的人擅长不同的方面,在合作的时候,不需要关心其他人的工作完成,只需要根据队友提供的接口即可完成合作。

    Loose Coupling

    松耦合为我们对代码的修改和重用带来了很大的便利。这种设计方法,使得类与类之间的依赖度较低,当我们想要修改其中的一个类的属性或方法时,只要修改本类就可以,不必担心影响其他类的功能,也无需对其他的类进行大规模的修改。     

    契约编程

    优缺点:

    契约式设计的主要目的是希望程序员能够在设计程序时明确地规定一个模块单元在调用操作前后属于什么状态。优点:在编程开始前决定好模块的变量名,方法名以及前置和后置条件,双方达成共识后,代码不需要做很多改动。缺点:从一定角度来说,会耗费较多的时间,有的情况下可能会得不偿失。

    如何融入到自己的作业中:

    对一些核心的重要方法和属性,在项目开始前先决定好,避免结对编程的队友之间信息不对称,做无用功。

    单元测试

    对计算核心Core的每个方法进行了单元测试。SE2UnitTestProject是我们的测试项目

    单元测试截图

     

    UML图

     

    算法的关键和独到之处

    程序截图

     

    本程序使用了上一次个人项目中使用的算法来实现计算核心Core,Core中定义了两个方法Spath和Tpath,分别用来计算站点最少路线和换乘最少路线。

    程序仍然支持个人项目中的-b,-c等命令行参数。

    本程序的GUI使用winform来实现,程序运行时点击绘图按钮,会在左侧显示地铁图。

    重置按钮能够使图像回到初始位置。

    下面的六个按钮分别用于放大缩小和平移地铁图,同时程序还支持使用鼠标拖动来平移图像。

    下面的列表框中选择站数最少和换乘最少,实现对两个功能的切换。

    在起点和终点两个文本框中输入站点,点击查询,会在地图上绘制出对应的路线,然后在下方的状态栏中实时显示乘客经过的站数。

    程序的独到之处:

    地铁图的绘制。我们写了一个DrawTool类对绘图函数进行封装,使得绘制地图更加容易。

    地图支持放大缩小和平移,还能够设置是否显示站名。因为我们用了自己封装好的方法,使得这一切实现起来很容易。

    在地图的下方增加一个状态栏,进行各种信息的输出。

  • 相关阅读:
    Spring MVC国际化
    cvc-complex-type.2.3: Element 'beans' cannot have character [children]
    jstl fmt
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
    eclipse 使用tomcat7.0建立Dynamic Web Project 时 web.xml的问题
    JAVA学习(七)__Spring的@Autowired注入规则
    Java中的默认构造函数
    Spring的国际化(转载)
    java工程中不能存在多个数据库连接jar包
    HDU 3265 Posters
  • 原文地址:https://www.cnblogs.com/hanhuimin/p/5928047.html
Copyright © 2020-2023  润新知