结对作业:四则运算网页版

coding克隆仓地址:https://git.coding.net/huyifeng1998/jieduixiangmu.git


一、预期PSP:

二、结对编程对接口的设计

information hiding:

      信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

      我们在结对项目中将各种经常用到的类和方法放在外联,而不是内嵌在一个类中,这样每个类分工明确,便于修改。信息隐藏同时体现在各种类、算法对用户不可见,能隐藏复杂度,隐藏变化源。

Interface Design:

      面向对象设计最大的原则就是针对接口设计。接口能够定义好,不仅便于自身维护,而且也能使上层应用不需要太多变动。所以我们在项目开工前就明确设计好了接口,避免无用功。

Loose Coupling:

      软件工程中对象之间的耦合度就是对象之间的依赖性。对象之间的耦合度越高,维护成本越高。所以我们在项目中设计的底层函数功能尽量单一,尽量避免修改底层函数。功能相近的函数,设计2个以上,不要为了减少代码量,把一个函数的功能设计的太多,不然不便于修改。

 

三、模块接口的设计与实现

三个jsp页面:

first.jsp是首页,可以选择跳转至download或zuoti

download.jsp是下载页面,可以在此页面定制题目,并下载

 zuoti.jsp是做题页面,可以上传文件批改,也可以在线做题

两个servlet:

ChuanServlet是用于做题传参获取题目,调用dangejisuan类的方法来获取题目并传递到前台

xianshi是用于下载打印,并从前台获取参数传递到类的方法中,调用创建题目的两个类creat和creat1,分别构造不含乘除的表达式和包含乘除的表达式

 

四、效能分析

五、异常处理

题目数量的异常处理:

public static void scopeOfSumError(int num) throws Exception{

        if(num<=0||num>10000)

            throw new Exception("输入范围有误,请重新输入");

    }

运算数上下界的异常处理:

public static void ScopeOfArgsMError(int scope_Lower,int scope_Upper) throws Exception{

        if(scope_Lower<1||scope_Lower>100||scope_Upper<50||scope_Upper>1000)

            throw new Exception("m的输入范围有误");

        if(scope_Lower>=scope_Upper)

            throw new Exception("上界要大于下界");

    }

运算符的异常处理:

public static void OperationError(int Operation)throws Exception{

        if(Operation<=0||Operation>10000)

            throw new Exception("o的输入有误,-o 范围为 1 到 10");      

    }

六、界面模块的设计

首页first.jsp:

首页我们使用了bootstrap和css:

<script src="js/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="css/bootstrap-3.3.7-dist/css/bootstrap.css" />
<link rel="stylesheet" href="css/first.css" />

出题页面download.jsp:

<div class="center" style="background-color:gray;">
  <h1>题目要求</h1>
  <form  class="wrap" action="servlet/ChuanServlet" method="post">
    <div class="form-inline"  >
      <div class="form-group" >
        <label for="exampleInputName2"  >题目数量</label>
        <input  class="form-control" name="problem-number" placeholder="请输入数字">
      </div>
    </div>
    <div class="form-inline">
      <div class="form-group">
        <label for="exampleInputName2" >下限数值</label>
        <input type="text" class="form-control" name="down-number" placeholder="请输入">
      </div>
      <div class="form-group" >
        <label for="exampleInputEmail2">上限数值</label>
        <input  class="form-control" name="up-number" placeholder="请输入">
      </div>
    </div>
    <div class="form-inline" >
      <div class="form-group">
        <label for="exampleInputName2" >运算符数</label>
        <input  class="form-control" name="operator-number" placeholder="请输入">
      </div>
    </div>
    <div class="form-inline">
      <label for="exampleInputName2">是否需要乘除法</label>
      <select class="form-control" name="select-chengchu">
        <option>是</option>
        <option>否</option>
      </select>
      <label for="exampleInputName2" style="margin-left:8%;">是否需要括号</label>
      <select class="form-control" name="select-kuohao">
        <option>是</option>
        <option>否</option>
      </select>
    </div>
    
    <button type="submit" class="btn btn-default" style="margin-left:30%;">打印题目到本地</button>
  </form> 
  <div>  <a href="first.jsp">
  <button type="button" class="btn btn-default" style="margin-left:70%" >返回首页</button>
  </a> <a href="zuoti.jsp">
  <button type="button" class="btn btn-default" >直接做题</button>
  </a>  </div>
</div>

七、界面模块与计算模块的对接

      因为我们组做的是网页版的四则运算,所以我们前后端的连接与数据传输主要是通过前台js和后台servlet。用mvc模式,servlet做控制器。通过form调用表单传参至servlet,servlet调用后台的最终接口,接口再调用各种相关的类,实现题目的定制和下载。

八、结对编程的优缺点

结对编程的优点:

1、程序员能够互帮互助,提高效率 

2、各抒己见,增强代码和产品质量 

3、共享知识,降低现学的成本 

4、在编程中,相互讨论,可能更快更有效地解决问题。

结队编程的缺点:

1、与合不来的人一起编程容易发生争执,不利于团队和谐。
2、经验丰富的老手可能会对新手产生不满的情绪。
3、开发者之间可能就某一问题发生分歧,产生矛盾,造成不必要的内耗。
4、开发人员可能会在工作时交谈一些与工作无关的事,分散注意力,造成效率低下。

 

九、结对过程

 上官文钦的优点:

       逻辑思维能力强,编程严谨

       认真负责

       动手能力强,效率高

上官文钦的缺点:

      完美主义,对于页面设计太纠结

我的优点:

      认真仔细

      有耐心

      学习能力强

我的缺点:

      编程经验不足

 

十、实际PSP

 

原文地址:https://www.cnblogs.com/huyifeng/p/8776184.html