第二次結對程式設計 畢設導師智慧型分配

2022-09-13 18:33:08 字數 1288 閱讀 4285

張建明黃偉煒

編碼實現乙個畢設導師的智慧型匹配的程式。提供輸入包括:30個老師(包含帶學生數的要求的上限,單個數值,在[0,8]內),100個學生(包含績點資訊),每個學生有5個導師志願(志願的導師可以重複但不能空缺)。實現乙個智慧型自動分配演算法,根據輸入資訊,輸出導師和學生間的匹配資訊(乙個學生只能有乙個確認導師,乙個導師可以帶少於等於其要求的學生數的學生) 及 未被分配到學生的導師 和 未被導師選中的學生。

我們結對討論後,決定選擇按照績點優先及志願優先的原則進行導師分配。績點高的學生優先分配導師。並且按照這個學生的志願進行順序匹配。

這樣可以保證,

偽碼描述:

queue.sort()

for s in queue:

for t in s.list:

if t.cur < tea.cap:

t.cur += 1

t.list.push(s)

break;

最後的實現效果如下(忽略那個奇怪的圖示)

!(c:\users\wythe\pictures\s**ed pictures\軟工.png)

在上述的演算法實現中,

首先,按照學生的績點優先和學生志願優先來選擇導師。保證績點高的學生能夠選到心儀的導師。但是在多數學生選擇熱門導師的時候,就會出現匹配度不高,未分配學生數多的情況。

為了解決這個問題,我們請教了 gy 同學,他提議使用費用流演算法來實現畢設導師分配。於是,查閱了資料發現這個演算法可以在績點優先的前提下,達到學生和導師的最大匹配。到發部落格為止,針對這個演算法,實現了學生和導師之間的最大配,還未考慮績點優先。還需要後續改進。

因此,我們擁有兩個版本:

後面,會將python版實現的演算法移植到csharp上

結對的過程中,需要對友之間相互磨合。提出自己對問題的理解,通過多次討論才能把問題解決。每次討論會對不同看法相互爭論,但到最後總能得出解決方法。這就是結對程式設計的魅力所在吧。

第二次結對程式設計作業 畢設導師智慧型匹配

031402337 胡心穎 031402341 王婷婷 編碼實現乙個畢設導師的智慧型匹配的程式。提供輸入包括 30個老師 包含帶學生數的要求的上限,單個數值,在 0,8 內 100個學生 包含績點資訊 每個學生有5個導師志願 志願的導師可以重複但不能空缺 實現乙個智慧型自動分配演算法,根據輸入資訊,...

第二次結對程式設計作業 畢業導師智慧型匹配

結對程式設計人員 031402418汪培僑031402618林宇晨 編碼實現乙個畢設導師的智慧型匹配的程式。提供輸入包括 30個老師 包含帶學生數的要求的上限,單個數值,在 0,8 內 100個學生 包含績點資訊 每個學生有5個導師志願 志願的導師可以重複但不能空缺 實現乙個智慧型自動分配演算法,根...

第二次結對程式設計

作業要求 第二次結對作業 班級成績 作業目標 爬取雲班課上的資料 作業源 pair 羅童 211803324 許培騰 211804229 預計實際 需求分析 無5min 學習時間 5 8h 6 7h 編碼時間 1 2h 2h 量 100 200 203執行時間 無1.5min 羅童 me 本來打算這...