天天看點

軟工實踐結對作業第二次

成員:

031502328 駱景钊

031502337 肖小強

Github連結

問題描述:

實作一個智能自動配置設定算法,根據輸入資訊,輸出部門和學生間的比對資訊(一個學生可以确認多個他所申請的部門,一個部門可以配置設定少于等于其要求的學生數的學生) 及 未被配置設定到學生的部門 和 未被部門選中的學生。

提供輸入包括:

  • 20個部門
  • 部門編号(唯一确定值),字元;
  • 各部門需要學生數的要求的上限,單個,數值,在[10,15]内;
  • 各部門的特點标簽,多個(兩個以上),字元;
  • 各部門的正常活動時間段,多個(兩個以上),字元。
  • 300個學生
  • 學生編号(唯一确定值),字元;
  • 學生空閑時間段,多個(兩個以上),字元;
  • 興趣标簽,多個(兩個以上),字元(學生的興趣标簽一定是所有部門特點标簽其中的一個)
  • 每個學生有不多于5個的部門意願

資料生成

程式生成方法:
  • 程式采用java語言實作,加入json依賴庫來實作json的格式的讀取和輸出。
  • 将問題分為三個類,分别是student,department,entry類,其中主要是entry類來實作
  • 輸入輸出采用了相對路徑的方法

比對算法思想

  • 學生角度:

    學生的部門意願被作為主要大頭,标簽可以作為學生的技能特長,空閑時間可與部門時間互相比較。其中算法采用的是學生選擇部門的順序也作為比對的一個考慮因素。

  • 部門角度:

    部門考慮的因素主要是學生對部門選擇的順序是否靠前,學生的空閑時間的比對,以及學生的标簽(特長)是否符合部門的方向。

  • 評分标準 = 志願占50% + 時間占40% + 标簽占10%

    一開始我們隻是想将學生先循環去找部門,後來考慮到那要是先循環的學生可以先選擇部門,這對後循環的學生不公平。

    之後經過讨論,我們讨論出了一個評價标準。将學生的各個志願部門取出來,與對應的部門去求一個分數值。分值為100,志願占50% + 時間占40% + 标簽占10%,志願按順序百分比逐漸減少。算出的分值再去循環部門,部門按從高到底的規則去挑選學生。

    但是這樣也會存在一定的問題:1.首先這個算法有點類似于聯考志願填報,在前面的志願權重比較大,但這樣也存在一定的弊端;2.某個學生要是被錄取後,空閑時間必然減少。這個在後面的部門的選擇上也會有影響,但是在我們認識的這個問題的時候,時間來不及去改了。

代碼規範:

代碼規範之前沒說好,後來為了降低對接難度,雙方在商量後,規定了一下類的變量名後,就各自隻提供了api,來完成這個工程。

軟工實踐結對作業第二次
軟工實踐結對作業第二次

結果評估:

結對感受:

本次作業因為在假期的緣故,雖然之前有過讨論,但是假期中都去玩了,在結對作業上沒有放太多的心思。這次實驗我負責json的解析和輸出,小強負責的是累的編寫。雖然這個工程不算很大,但是在json依賴包的使用也花費了我很多時間。這次實踐也讓我體會到了兩個人的結對程式設計是完全不同于一個人的程式設計的,兩個人程式設計更加依賴于雙方的交流。希望下次合作可以更加上手。