1. 程式人生 > >結對作業:四則運算網頁版

結對作業:四則運算網頁版

下界 學習 rap 程序員 題目 jquery 處理 ali 負責

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

技術分享圖片

結對作業:四則運算網頁版