侯春望,薄迎春,宋曙芹
(中國石油大學(xué)(華東)信息與控制工程學(xué)院,山東青島 266580)
近年來,我院在自動化、電子、電氣和測控等四個(gè)專業(yè)陸續(xù)開設(shè)了“Visual C++語言”課程,課程設(shè)置的目的在于培養(yǎng)學(xué)生掌握可視化編程的方法,提高計(jì)算機(jī)應(yīng)用能力。但是,實(shí)際教學(xué)效果并不是很理想。根據(jù)文獻(xiàn)[1]并結(jié)合筆者教學(xué)經(jīng)驗(yàn)分析,“Visual C++語言”課程教學(xué)中主要存在以下三個(gè)問題:①課程Visual C++語言內(nèi)容較多,而教學(xué)課時(shí)有限;②學(xué)生有畏難情緒;③ 學(xué)生上機(jī)編程能力差。因?yàn)樵瓉淼慕虒W(xué)方式和考核方式引導(dǎo)學(xué)生把主要精力放在去記憶一些概念和例程的代碼上面。
針對以上問題,筆者參考案例教學(xué)方法和相關(guān)教改經(jīng)驗(yàn),在教學(xué)過程中根據(jù)專業(yè)特點(diǎn),精選專業(yè)工程案例進(jìn)行案例教學(xué)[2,3]。我們將一個(gè)工程案例按照功能模塊進(jìn)行劃分,同時(shí)將所要講授的VC知識點(diǎn)嵌入到各個(gè)功能模塊的實(shí)現(xiàn)過程中。
下面以“基于對話框的應(yīng)用程序”授課內(nèi)容為例來簡要說明筆者采用的案例教學(xué)過程。
筆者在“基于對話框的應(yīng)用程序”授課過程中,選定了一個(gè)數(shù)據(jù)采集工程案例作為教學(xué)案例,此案例的圖形界面如圖1所示。教學(xué)過程中,將數(shù)據(jù)采集程序劃分為如下二個(gè)功能模塊。
(1)數(shù)據(jù)采集曲線顯示效果控制—該模塊實(shí)現(xiàn)的功能包括將采集到的數(shù)據(jù)以曲線的方式顯示出來,并且可以實(shí)現(xiàn)控制圖形曲線的線型和顏色。這里可以考慮嵌入Windows圖形輸出和控件編程等重要知識點(diǎn)。
(2)數(shù)據(jù)采集流程控制—該模塊實(shí)現(xiàn)的功能是通過VC的定時(shí)器定時(shí)采集數(shù)據(jù)采集卡的端口數(shù)據(jù)。可以考慮嵌入定時(shí)器消息編程和數(shù)據(jù)采集卡應(yīng)用編程等重要知識點(diǎn)。
圖1 數(shù)據(jù)采集軟件案例
案例程序首先要實(shí)現(xiàn)數(shù)據(jù)的顯示功能,涉及到MFC圖形輸出操作。根據(jù)程序需要,定義對話框類的兩個(gè)成員變量用來保存相關(guān)數(shù)據(jù):
CPoint m_Data[100];//采集到的數(shù)據(jù)
int m_nPointNum;//數(shù)據(jù)計(jì)數(shù)器
然后在對話框的成員函數(shù)OnPaint中編寫繪圖代碼實(shí)現(xiàn)繪圖區(qū)域網(wǎng)格和數(shù)據(jù)曲線的繪制。基本繪圖功能實(shí)現(xiàn)之后,添加滾動條控件控制曲線的顏色,添加單選按鈕控制曲線的線型,添加復(fù)選框按鈕可以控制是否顯示曲線。
通過曲線繪制和控制功能的實(shí)現(xiàn),重點(diǎn)講解MFC圖形輸出中設(shè)備環(huán)境選擇、畫筆和畫刷的使用、按鈕和滾動條控件的編程和MFC消息映射等一系列重要知識點(diǎn)。
案例程序通過定時(shí)器消息和數(shù)據(jù)采集卡的編程接口實(shí)現(xiàn)數(shù)據(jù)采集功能。
在MFC中可以使用消息映射實(shí)現(xiàn)定時(shí)器消息WM_TIMER的處理。定時(shí)器消息的處理包括如下三個(gè)步驟。
(1)啟動定時(shí)器,可通過調(diào)用函數(shù)CWnd::Set-Timer()實(shí)現(xiàn);
(2)定時(shí)器消息處理,可通過映射定時(shí)器消息WM_TIMER并實(shí)現(xiàn)消息處理函數(shù)實(shí)現(xiàn);
(3)停止定時(shí)器,可通過調(diào)用函數(shù)CWnd::Kill-Timer()實(shí)現(xiàn)。
教學(xué)案例中使用AM-4000UA數(shù)據(jù)采集卡,它可以提供12位32路AD輸入,12位2路DA輸出,16路開關(guān)量輸入和16路開關(guān)量輸出功能。采集卡AM-4000UA還提供了Visual C++的編程接口,通過接口函數(shù)可以實(shí)現(xiàn)對數(shù)據(jù)采集卡的控制。案例中使用了AD輸入功能,運(yùn)用幾個(gè)接口函數(shù)完成如下功能:①獲取本機(jī)上插的USB采集卡的個(gè)數(shù);②打開USB采集卡;③設(shè)置USB采集卡的工作參數(shù);④讀取采集的轉(zhuǎn)換數(shù)據(jù);⑤關(guān)閉USB采集卡。
使用數(shù)據(jù)采集卡首先要進(jìn)行初始化,通過“啟動”和“停止”按鈕控制定時(shí)器的啟動和停止,從而控制數(shù)據(jù)采集的流程。最后,在定時(shí)器消息WM_TIMER的處理函數(shù)OnTimer中實(shí)現(xiàn)數(shù)據(jù)采集和對數(shù)據(jù)的處理功能。
通過數(shù)據(jù)采集功能的實(shí)現(xiàn),可以重點(diǎn)介紹定時(shí)器消息的編程和AM-4000UA數(shù)據(jù)采集卡在Visual C++環(huán)境下的編程方法。
筆者將上述改革方案在我院兩屆學(xué)生中進(jìn)行了試驗(yàn)研究,獲得了較好的效果,并獲得了一定的推廣經(jīng)驗(yàn)。
(1)案例教學(xué)方法以工程案例為中心,采用模塊化的教學(xué)方式,可以使學(xué)生將計(jì)算機(jī)知識和所學(xué)專業(yè)知識快速融合,有助于學(xué)生分析、解決問題能力的提高。任課教師可根據(jù)自身的實(shí)際情況靈活地選擇合適的實(shí)例,該方法易于實(shí)現(xiàn)和推廣。
(2)案例教學(xué)方法可將最新的專業(yè)軟件研究成果應(yīng)用于課堂教學(xué)。通過將相關(guān)課程內(nèi)容進(jìn)行有機(jī)結(jié)合,可以大大提高學(xué)生應(yīng)用VisualC++語言解決專業(yè)問題的能力,為后續(xù)課程學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)。
綜上所述,針對專業(yè)特色設(shè)計(jì)的案例教學(xué)方案是提高學(xué)生軟件開發(fā)和應(yīng)用能力的一種有效手段。
[1] 郭曉芳.“Visual C++程序設(shè)計(jì)語言”教學(xué)效果調(diào)查分析[J].北京:計(jì)算機(jī)教育,2007(7)
[2] 靳玉樂.案例教學(xué)原理[M].重慶:西南師范大學(xué)出版社,2003
[3] 翁虹.Visual C++6.0環(huán)境下匯編與C/C++混合編程的教學(xué)[J].南京:電氣電子教學(xué)學(xué)報(bào)2003,25(4)