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