zoukankan      html  css  js  c++  java
  • 结对项目-地铁出行路线规划程序(续)

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

    说明:项目是两个人一起做的,但是每次更新都是用的我的Github账号来上传。每个人的贡献是一样多的~

    结对编程伙伴:14061218 韩慧敏

    结对编程

    结对编程照片

    结对编程的优点:两个人共同设计程序的架构,减少错误的产生。可以随时对代码进行复审和交流。提高程序的初始质量,省下修改时间。

    结对编程的缺点:两个人有可能一起陷入思维误区,可能导致错误更难发现。

    结对伙伴的优点:思维敏捷,善于设计程序架构,善于发现错误。

    结对伙伴的缺点:没什么缺点~

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

    Information Hiding

    信息隐藏

    在写程序的时候需要注意:多层设计中的层与层之间加入接口层;所有类与类之间都通过接口类访问; 类的所有数据成员都是private,所有访问都是通过访问函数实现的;

    Interface Design

    接口设计需要满足单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则

    简单的说,自己设计接口的时候需要让功能清晰,好用。接口的数量不能太多,功能也不能太复杂。

    Loose Coupling

    松耦合

    减少不同模块之间的依赖,在系统设计的时候增加中间层来实现松耦合性,在开发语言时,通过增加抽象类或者接口来实现对象之间的松耦合。

    契约编程

    优缺点:保证了程序内部的变量名,方法名,方法功能,前置后置条件的一致性。利用契约编程技术可以充分提高代码的可重用率。缺点是使得开发时耗时更多,不太适合小程序或者小功能的开发。

    如何融入到自己的作业中:在开发之前就订好设计和代码的规范,在结对编程的过程中严格遵守。

    单元测试

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

    单元测试截图

     

    UML图

    算法的关键和独到之处

    程序截图

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

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

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

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

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

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

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

    程序的独到之处:

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

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

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

  • 相关阅读:
    文件限额
    Shell命令
    HDFS基本概念
    hadoop学习
    CentOS 5.6怎么安装MongoDB数据库?
    RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x
    centos6.x yum 安装 mysql5.6 mysql5.7
    Centos6.4环境下DNS服务器的搭建
    CentOS系统中使用iptables设置端口转发
    通过WEB网管登录
  • 原文地址:https://www.cnblogs.com/jisuozhao/p/5928034.html
Copyright © 2011-2022 走看看