考場自動安排工具開發手記

2021-08-25 02:59:59 字數 1879 閱讀 1396

昨天教務的乙個同事,提出有沒有辦法可以對169門考試(合計1744個學生)進行考試安排。因為是期末考試補考。因此其中很多考試存在學生衝突現象。

例如:(英語翻譯2-2英語聽力4-4) id:200616031109

(英語專業四級培訓-3英語聽力4-4) id:200616031133

(英語翻譯2-2英語聽力4-4) id:200616031109

(英語專業四級培訓-3英語聽力4-4) id:200616031133

(英語翻譯2-2英語聽力4-4) id:200616031109

(英語專業四級培訓-3英語聽力4-4) id:200616031133

(英語聽說2-2大學英語聽說4-2) id:200616013260

(英語聽說2-2合同法案例實踐-2) id:200616041257

存在衝突的考試科目就不能安排在同一批次(也就是同一時間段內)

軟體介面如圖:

軟體工作流程:

(1)匯入csv資料檔案。

檔案格式為:

[學號]-[姓名]-[考試科目]

csv檔案匯入**:

///

/// 將csv格式檔案導成dataset

///

/// 檔案路徑

/// 檔名

///

public dataset getcsv(string filepath, string filename)

;dbq=";

strconn += filepath;

strconn += ";extensions=asc,csv,tab,txt;";

odbcconnection con = new odbcconnection(strconn);

dataset data = new dataset();

string sql = "select * from " + filename;

odbcdataadapter adp = new odbcdataadapter(sql, con);

con.open();

adp.fill(data, "csv");

return data;

}(2)把匯入的資料進行處理。

處理過程採用物件導向的思想,建立了乙個考試類。

using system;

using system.collections.generic;

using system.text;

using system.collections;

namespace exammanager

public string examname;//考試科目

public string examtime;//考試時間

public int students;//學生數

public arraylist studentlist = new arraylist(); //學生列表

public void addstudent(string studentid,string studentname)

public bool checkstudentidlist(int n_pc,exam ex,ref stringbuilder sb_ct)}}

該類主要負責將csv檔案進行處理,把同一考試科目的學生歸集到一起。其次是負責將2個考試物件進行檢測,看看是否存在衝突。演算法採用雙重迴圈,效率較低。呵呵

(3)考試安排

public void ksap()

if (le.checkstudentidlist(n_pc,e, ref sb_ct) == false)

}if (tmp.count > 0)

考試安排也是採用了迴圈+goto 實現,根據預先設定好的同一批次科目數,將不存在衝突的考試科目安排在一起。

EBS 財務輔助工具開發手記 開篇之作

公司馬上立上oracl ebs 系統,考慮到日後的許多任務作的需要,自己準備寫個小工具,用於 簡化日常工作。軟體的基本功能主要保證ebs 下的財務報表與之前的as400保持一致,同事實現日常用財務指標的自動化。具體內容包括 訂 131006 01 版 一 經費分析報表的平滑過度,主要包括 fkr31...

C 開發站點自動登陸工具

最近準備開發個站點自動登陸的小工具。因為webbrowser很直觀,所以一開始就用它了。期間遇到了2個問題。1。如何判斷 資料載入完成 在documentcompleted事件中判斷webbrowser 控制項屬性 readystate 為 complete 資料載入完成。2。登陸失敗的彈出視窗如何...

Nodemon 開發環境自動重啟服務工具

在開發環境下,往往需要乙個工具來自動重啟專案工程。寫 nodejs 的時候發現 supervisior 在很多地方都有他的身影,nodejs 也有乙個 npm 模組supervisior也是用來監控程序的,不過除了 supervisior 外,還有很多其他的工具 從 github 的評分上看,比較熱...