首先呢,咱們可以想一想,排課衝突的原因。打個比方有這幾點,時間、地點(教室)、教師、學員。
排課軟體根本原理在於保證唯一性。時間、地點、教師、學員。相互之間沒有重複(也就是安排衝突)根據這個唯一性。排課可以分這麼幾步:
1、採集資料
這個採集資料就是使用者,把具有代表性衝突類別分類。比如上面說的時間、地點、授課教師、學員。新增到程式中
2、組合
先把時間和地點進行組合。比如一個教室分上午下午。這樣我們程式上就會虛擬生成兩個教室。
然後就在這個虛擬教室裡分派教師學員
把一節課所需要的時間、地點、教師、學員編排到一組。
3、查重
程式上的查重相打個比方相當於人員挨個對比各個資料有重複的就提示。使用的程式語言,可以是JAVA、也可以是javascript。專業術語是迴圈遍歷
上述是使用者自主排課查衝突,還有就是自動排課。
自動排課,需要使用者按哪個優先順序排。比如教師是臨時的,列出了幾個空餘時間點。這時,就要教師優先順序是第一。程式就會按著優先順序高低進行排列。
首先呢,咱們可以想一想,排課衝突的原因。打個比方有這幾點,時間、地點(教室)、教師、學員。
排課軟體根本原理在於保證唯一性。時間、地點、教師、學員。相互之間沒有重複(也就是安排衝突)根據這個唯一性。排課可以分這麼幾步:
1、採集資料
這個採集資料就是使用者,把具有代表性衝突類別分類。比如上面說的時間、地點、授課教師、學員。新增到程式中
2、組合
先把時間和地點進行組合。比如一個教室分上午下午。這樣我們程式上就會虛擬生成兩個教室。
然後就在這個虛擬教室裡分派教師學員
把一節課所需要的時間、地點、教師、學員編排到一組。
3、查重
程式上的查重相打個比方相當於人員挨個對比各個資料有重複的就提示。使用的程式語言,可以是JAVA、也可以是javascript。專業術語是迴圈遍歷
上述是使用者自主排課查衝突,還有就是自動排課。
自動排課,需要使用者按哪個優先順序排。比如教師是臨時的,列出了幾個空餘時間點。這時,就要教師優先順序是第一。程式就會按著優先順序高低進行排列。