昨天教務的乙個同事,提出有沒有辦法可以對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 的評分上看,比較熱...