王 瑜, 閆 沫
(1.西安航空學(xué)院 機(jī)械工程學(xué)院,陜西 西安 710077;2.西安建筑科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710055)
隨著計(jì)算機(jī)軟、硬件技術(shù)的飛速發(fā)展,以信息技術(shù)為代表的管理信息系統(tǒng)在各個(gè)行業(yè)的應(yīng)用十分普遍,在各大院校中采用學(xué)生成績(jī)管理系統(tǒng)又起著舉足輕重的作用。隨著我國(guó)高校的招生規(guī)模逐年擴(kuò)大,在校學(xué)生數(shù)量增加,學(xué)生成績(jī)管理成了新的難題,目前很多高校采取的辦法是靠人工進(jìn)行管理,每學(xué)期由任課教師把自己所帶的課程的學(xué)生成績(jī)統(tǒng)計(jì)、分析出來(lái)并填寫(xiě)每一個(gè)班級(jí)的成績(jī)統(tǒng)計(jì)分析表,統(tǒng)一交到考試管理中心,同時(shí)由任課教師將學(xué)生的成績(jī)登記到學(xué)校教務(wù)處的網(wǎng)頁(yè)上,供學(xué)生查詢(xún)??梢钥闯?,這種方法的效率很低,而且不利于對(duì)學(xué)生的成績(jī)等信息長(zhǎng)期保存,因此,需要一種學(xué)生成績(jī)管理系統(tǒng)來(lái)長(zhǎng)期、準(zhǔn)確、高效的管理學(xué)生成績(jī)等信息,并且減輕教師統(tǒng)計(jì)、分析學(xué)生成績(jī)的工作量。
本文在現(xiàn)有技術(shù)的基礎(chǔ)上,設(shè)計(jì)了學(xué)生成績(jī)管理系統(tǒng)。在系統(tǒng)中采用了LabWindows CVI作為開(kāi)發(fā)平臺(tái),與Microsoft Word、MicrosoftAccess之間實(shí)現(xiàn)數(shù)據(jù)庫(kù)和文檔的共享,該系統(tǒng)充分結(jié)合了LabWindows CVI的圖形界面功能、MicrosoftWord的文檔管理功能、MicrosoftAccess的數(shù)據(jù)庫(kù)開(kāi)發(fā)管理功能。實(shí)踐表明,該方案對(duì)于學(xué)生成績(jī)管理切實(shí)可行[1]。
系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生成績(jī)管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而達(dá)到提高教師對(duì)學(xué)生成績(jī)管理效率、減輕教師在填寫(xiě)試卷分析表時(shí)的勞動(dòng)強(qiáng)度的目的。由于教師需要在考試后的很短幾天內(nèi)在教務(wù)處的網(wǎng)頁(yè)上提交學(xué)生成績(jī),并同時(shí)提交試卷分析表。目前,在每一位教師所帶班級(jí)比較多的情況下,需要匯總、計(jì)算、分析的數(shù)據(jù)多,工作量大,采用人工的方式來(lái)管理學(xué)生成績(jī),實(shí)現(xiàn)起來(lái)有一定的困難,在成績(jī)管理的過(guò)程中常會(huì)出現(xiàn)各種各樣的由于人為的疏忽造成的錯(cuò)誤。本系統(tǒng)克服了上述困難,在教師錄入學(xué)生成績(jī)后,成績(jī)的統(tǒng)計(jì)和分析的數(shù)據(jù)全部由計(jì)算機(jī)自動(dòng)生成,自動(dòng)將學(xué)生成績(jī)的相關(guān)數(shù)據(jù)填寫(xiě)在試卷分析表中,并將相關(guān)數(shù)據(jù)保存到MicrosoftAccess數(shù)據(jù)庫(kù)中。學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)思路如圖1所示,系統(tǒng)主界面如圖2所示[2]。
圖1 系統(tǒng)設(shè)計(jì)思路圖Fig.1 The graph of the system design
該系統(tǒng)可以實(shí)現(xiàn)在LabWindows CVI環(huán)境下,打開(kāi)、編輯、保存、關(guān)閉、打印MicrosoftWord文檔等功能。LabWindows CVI中提供了針對(duì)MicrosoftWord操作的相應(yīng)驅(qū)動(dòng)文件,LabWindows CVI與MicrosoftWord混合調(diào)用的時(shí)候,只需要將相應(yīng)的驅(qū)動(dòng)文件加入工程即可[3]。
圖2 學(xué)生成績(jī)管理系統(tǒng)主界面Fig.2 The main interface of the students’achievement management system
在預(yù)先設(shè)計(jì)好的成績(jī)統(tǒng)計(jì)分析表中需要填寫(xiě)內(nèi)容的位置添加書(shū)簽,點(diǎn)擊圖2中的“打開(kāi)成績(jī)統(tǒng)計(jì)分析表”按鈕,就可以打開(kāi)“成績(jī)統(tǒng)計(jì)分析表.doc”文件,點(diǎn)擊圖2中的“填寫(xiě)成績(jī)統(tǒng)計(jì)分析表”就可以將統(tǒng)計(jì)分析好的學(xué)生成績(jī)及學(xué)生成績(jī)分布圖寫(xiě)入“成績(jī)統(tǒng)計(jì)分析表.doc”文件,如圖3所示。
下面是LabWindows CVI與MicrosoftWord混合調(diào)用的主要程序代碼及注釋?zhuān)?/p>
//打開(kāi)成績(jī)統(tǒng)計(jì)分析表
int CVICALLBACK GenerateReport (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2){
switch (event){
case EVENT_COMMIT:
if(bool_testrun==0)
MessagePopup ("Cannot Generate Report", "Please Run Tests first.");
else{
Generate_WordReport();
if(bool_reportgenerated==0)
bool_reportgenerated=1;
}
break;
}
圖3 成績(jī)統(tǒng)計(jì)分析表Fig.3 The analysis sheet of performance statistics
return 0;
}
//填寫(xiě)成績(jī)統(tǒng)計(jì)分析表
RptChk (WordRpt_GoToBookmark (docHandle, "graph")); //插入成績(jī)分布圖
RptChk (WordRpt_InsertImage (docHandle,imageFileName, &imageHandle));
RptChk (WordRpt_GoToBookmark (docHandle, "passrate")); //插入及格率
RptChk (WordRpt_AppendText (docHandle,Passrate));
RptChk (WordRpt_GoToBookmark (docHandle, "average")); //插入平均分
RptChk (WordRpt_AppendText (docHandle,Average));
RptChk (WordRpt_GoToBookmark (docHandle, "highscore")); //插入最高分
RptChk (WordRpt_AppendText (docHandle,Highscore));
RptChk (WordRpt_GoToBookmark (docHandle, "lowscore")); //插入最低分
RptChk (WordRpt_AppendText (docHandle,Lowscore));
點(diǎn)擊圖2中的“數(shù)據(jù)另存為Access文檔”按鈕,可以將學(xué)生成績(jī)以及統(tǒng)計(jì)分析數(shù)據(jù)等保存到MicrosoftAccess文檔中,便于后期對(duì)學(xué)生成績(jī)等信息的查詢(xún)和管理[4]。
學(xué)生成績(jī)管理系統(tǒng)如果要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),必須先指定一個(gè)數(shù)據(jù)源,在數(shù)據(jù)源中創(chuàng)建一個(gè)DSN(Data Source Name)。將數(shù)據(jù)源文件配置成已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)文件,數(shù)據(jù)源命名為“achievement”,數(shù)據(jù)源文件配置成“achievement.mdb”。 將數(shù)據(jù)源成功添加到操作系統(tǒng)以后,就可以在LabWindows CVI中,對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行插入、查詢(xún)、修改、刪除等操作了[5]。
DSN的創(chuàng)建步驟如下:
1)在WindowsXP操作系統(tǒng)中選擇“開(kāi)始”按鈕,接著選擇“設(shè)置”,接下來(lái)選擇“控制面板”,在控制面板中選擇“數(shù)據(jù)源(ODBC)”,彈出“ODBC 數(shù)據(jù)源管理器”對(duì)話框。
2)單擊“系統(tǒng) DSN”選項(xiàng)卡中的“添加…”按鈕,彈出“創(chuàng)建新數(shù)據(jù)源”對(duì)話框。
3)在“創(chuàng)建新數(shù)據(jù)源”對(duì)話框驅(qū)動(dòng)程序列表中選擇“Microsoft Access Driver(*.mdb)”, 并 單 擊 “ 完 成 ” 按 鈕 , 彈 出 “ODBC Microsoft Access安裝”對(duì)話框。
4)在“ODBC Microsoft Access 安裝”對(duì)話框,在“數(shù)據(jù)源名”一欄中填寫(xiě)創(chuàng)建的DSN的名稱(chēng),例如本系統(tǒng)的“SJY”,并點(diǎn)擊“選擇”按鈕,選擇需要利用 LabWindows CVI中的SQL語(yǔ)言訪問(wèn)的數(shù)據(jù)庫(kù),例如“achievement.mdb”。然后單擊“確定”,按鈕,即完成了DSN的創(chuàng)建。
下面是LabWindows CVI與MicrosoftAccess混合調(diào)用的主要程序代碼及注釋[6-7]:
{ SQLDBDSNConnect(achievement, "SJY", "admin",""); //數(shù)據(jù)庫(kù)連接
SQLDBAllocStateHandle (achievement);SQLDBSetStmtAttr (achievement,SQL_ATTR_CURSOR_TYPE,SQL_CURSOR_STATIC,IGNORE);
SQLDBAllocStateHandle (achievement); //創(chuàng)建一個(gè)新表
//向數(shù)據(jù)庫(kù)的表中添加學(xué)生成績(jī)等統(tǒng)計(jì)信息
SQLDBSQLPrepare (achievement, "INSERT INTO studentsscore([name],[score_1],[score_2],[totalscore])
VALUES (?,?,?,?)");
SQLDBBindParameter (achievement, 1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NA,
strlen(NA), &returnsize);
SQLDBBindParameter (achievement, 2,
SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,SCO_1,
strlen(SCO_1), &returnsize);
SQLDBBindParameter (achievement, 3,
SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,SCO_2,
strlen(SCO_2), &returnsize);
SQLDBBindParameter (achievement, 4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TSCO,
strlen(TSCO), &returnsize);
if(SQLDBExec (achievement)!=PASS){
//返回異常值
ReturnError_D=achievement->NativeError;
SQLDBFreeStateHandle (achievement);
if(ReturnError_D==0/*PRIMARYKEY*/){
return 0/*EXCEPTION*/; //用戶(hù)名已存在
}
else{return FAIL; //插入失敗
}
}
SQLDBFreeStateHandle (achievement);
return PASS;
}
本系統(tǒng)已實(shí)際應(yīng)用在學(xué)生的成績(jī)管理中,經(jīng)過(guò)實(shí)踐證明,該系統(tǒng)具有界面美觀,使用和維護(hù)方便,成績(jī)數(shù)據(jù)準(zhǔn)確可靠,比手工操作效率高,大大減輕了教師的勞動(dòng)強(qiáng)度,對(duì)學(xué)生成績(jī)管理的科學(xué)化、正規(guī)化起到了重要的推動(dòng)作用。
[1]張鳳均.LabWindows/CVI開(kāi)發(fā)入門(mén)和進(jìn)階[M].北京:北京航空航天大學(xué)出版社,2001.
[2]王秋茸.體育信息管理系統(tǒng)設(shè)計(jì)的關(guān)鍵技術(shù)研究[J].電子設(shè)計(jì)工程,2013(18):66-68.WANG Qu-rong.Research on key technologies of sports information managementsystem development[J].Electronic Design Engineering,2013(18):66-68.
[3]楊恒輝,王超.基于LabWindows/CVI的數(shù)據(jù)報(bào)表技術(shù)[J].科學(xué)技術(shù)與工程,2011(6):1371-1374.YANG Heng-hui,WANG Chao.Report technology based on LabWindows/CVI[J].Science Technology and Engineering,2011(6):1371-1374.
[4]趙波,全厚德.LabWindows/CVI平臺(tái)下的數(shù)據(jù)庫(kù)編程[J].微計(jì)算機(jī)信息,2008(2-3):171-172.ZHAO Bo,QUAN Hou-de.Database programming in the platform of LabWindows/CVI[J].Microcomputer Information,2008(2-3):171-172.
[5]楊建宏,周東,李廣武.基于LabWindows/CVI和ADO的動(dòng)態(tài)訪問(wèn)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2009(6):23-24.YANG Jian-hong,ZHOU Dong,LI Guang-wu.Dynamic realization of visiting database based on ADO and LabWindows/CVI[J].Industrial Control Computer,2009(6):23-24.
[6]葉群松,習(xí)友寶,詹惠琴.基于LabWindows/CVI的數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2008(3):38-41.YE Qun-song,XI You-bao,ZHAN Hui-qin.Development of database application based on LabWindows/CVI.Computer and Modernization,2008(3):38-41.
[7]李俊民.精通SQL結(jié)構(gòu)化查詢(xún)語(yǔ)言詳解[M].北京:人民郵電出版社,2008.