莊緒德,劉志峰
1.曲阜師范大學信息網絡中心,山東曲阜 273165
2.曲阜師范大學運籌與管理學院,山東曲阜 273165
用Excel VBA設計考試信息系統(tǒng)
莊緒德1,劉志峰2
1.曲阜師范大學信息網絡中心,山東曲阜 273165
2.曲阜師范大學運籌與管理學院,山東曲阜 273165
高校學生期末考試,如果每場考試都采取隨機座次,并且直到入考場時學生才知道自己的座次,學生就沒有機會提前設計協同作弊。但是用手工方式實現每場考試隨機安排座位,工作量大,效率低下。使用Excel制作一個考試信息系統(tǒng),能完美的完成這項工作。
Excel VBA;隨機;信息系統(tǒng)
高校學生一般都安排集中期末考試,考試都是各專業(yè)單獨組織考場,考生都是平時在一起學習的同學。如果座次直接按照學號,可以方便監(jiān)考老師檢查考生到場情況,但是一直是一樣的座次不變,固定考生相鄰的時間長了,會出現協同作弊的現象,甚至出現雷同卷。雖然可以通過監(jiān)考老師加強監(jiān)視力度來避免,但是最好用技術的方法來解決。如果打印出學生學號姓名清單,隨機貼到座位上,但是每場考試都貼標簽,太麻煩,而且學生不容易找到自己的座位。后來采用當場抽簽的辦法,制作兩份號碼標簽,一份貼到考試座位上,另外一份讓考生抽簽,抽到后對號入座,這種方法雖然能夠實現隨機排坐,但是太費時間,監(jiān)考教師手里沒有座次表,學生可以趁亂自己換標簽調座,另外如果有缺考的學生,難以查找登記。最后,我們決定還是使用計算機,進行考場安排,以達到事半功倍的效果。該設想是考場里座位上只貼號碼,有N個座位則號碼從1~N。考試前半小時隨機產生考生座次表,考試前10分鐘在考場門口張貼一張座次表,此表按學號排序,考生可快速查到自己的座位號。監(jiān)考教師領一份座次表,此表按座位號排序,監(jiān)考教師可快速查到每個座位上的考生,對缺考考生快速查找登記。
我們借助Excel電子表格實現這個工作。首先制作出學生清單,包含學號、姓名、性別等幾列,并填入實際數據。添加一列用來產生隨機數,添加另外一列,用來產生座次號。具體方法如下,在隨機數一列第一單元格插入函數rand(),或者直接輸入“=rand()”,把這一單元格內容復制到此列其他單元格,或者使用快速填充。這樣隨機數一列所有單元格都有一個隨機數,按照隨機數列給所有行重新排序,排序完畢后,在座次號一列用1,2,3……填充,然后刪掉隨機數列,按照學號一列重新排序,這樣就把所有的考生隨機的安排到相應的座位上去。按照學號排序打印的表格就是張貼給學生查找自己座號的表格,考生可快速檢索到自己的座位。按照座號排序打印出的表格就是給監(jiān)考教師核對學生入場情況的表格,只需在表格上標記出空位的座位號,便可記錄下缺考學生。如此組織考場簡潔方便,快速有序。需要說明是,如果同一次的考試安排到多個考場,比如兩個,那么這兩個考場的座次號都是從1開始。制作表格的時候,按座號排序后,再添加一列標題為考場,選取前面第一考場人數的行在考場這一列標記為第一考場,剩下的標記為第二考場另外座次號減去第一考場人數,從1開始排起。
以上利用Excel實現了隨機安排考生座位,但是需要手動編輯Excel數據,手動排序打印,容易出現誤操作,并且不熟悉Excel的用戶不能勝任。我們考慮編制程序,做一個直觀的用戶界面,讓用戶能夠選擇考生范圍,輸入考場個數,考場地點,把相應的考生隨機安排到指定的考場里。這樣使用起來更加直觀,另外添加學生管理,課程管理,成績錄入,成績單打印等模塊,做成一個完整的考試信息系統(tǒng)。把所有學生的信息制作成一個電子表格,作為基本的數據庫,其他數據從這里提取。利用Excel VBA設計一個窗體作為程序的主界面。添加相應功能模塊的按鈕,分別編寫對應模塊的程序代碼。這里給出生成考生隨機座號的程序代碼。
[1] 趙志東.Excel VBA基礎入門[M].北京:人民郵電出版社,2006.
[2] 王萍萍,等.ASP+Dreamweaver動態(tài)網站開發(fā)[M].北京:清華大學出版社,2008.
TP31
A
1674-6708(2010)18-0140-01
曲阜師范大學科研項目,項目編號:XJ0721