侯春望,薄迎春,宋曙芹
(中國石油大學(華東)信息與控制工程學院,山東青島 266580)
近年來,我院在自動化、電子、電氣和測控等四個專業陸續開設了“Visual C++語言”課程,課程設置的目的在于培養學生掌握可視化編程的方法,提高計算機應用能力。但是,實際教學效果并不是很理想。根據文獻[1]并結合筆者教學經驗分析,“Visual C++語言”課程教學中主要存在以下三個問題:①課程Visual C++語言內容較多,而教學課時有限;②學生有畏難情緒;③ 學生上機編程能力差。因為原來的教學方式和考核方式引導學生把主要精力放在去記憶一些概念和例程的代碼上面。
針對以上問題,筆者參考案例教學方法和相關教改經驗,在教學過程中根據專業特點,精選專業工程案例進行案例教學[2,3]。我們將一個工程案例按照功能模塊進行劃分,同時將所要講授的VC知識點嵌入到各個功能模塊的實現過程中。
下面以“基于對話框的應用程序”授課內容為例來簡要說明筆者采用的案例教學過程。
筆者在“基于對話框的應用程序”授課過程中,選定了一個數據采集工程案例作為教學案例,此案例的圖形界面如圖1所示。教學過程中,將數據采集程序劃分為如下二個功能模塊。
(1)數據采集曲線顯示效果控制—該模塊實現的功能包括將采集到的數據以曲線的方式顯示出來,并且可以實現控制圖形曲線的線型和顏色。這里可以考慮嵌入Windows圖形輸出和控件編程等重要知識點。
(2)數據采集流程控制—該模塊實現的功能是通過VC的定時器定時采集數據采集卡的端口數據。可以考慮嵌入定時器消息編程和數據采集卡應用編程等重要知識點。

圖1 數據采集軟件案例
案例程序首先要實現數據的顯示功能,涉及到MFC圖形輸出操作。根據程序需要,定義對話框類的兩個成員變量用來保存相關數據:
CPoint m_Data[100];//采集到的數據
int m_nPointNum;//數據計數器
然后在對話框的成員函數OnPaint中編寫繪圖代碼實現繪圖區域網格和數據曲線的繪制。基本繪圖功能實現之后,添加滾動條控件控制曲線的顏色,添加單選按鈕控制曲線的線型,添加復選框按鈕可以控制是否顯示曲線。
通過曲線繪制和控制功能的實現,重點講解MFC圖形輸出中設備環境選擇、畫筆和畫刷的使用、按鈕和滾動條控件的編程和MFC消息映射等一系列重要知識點。
案例程序通過定時器消息和數據采集卡的編程接口實現數據采集功能。
在MFC中可以使用消息映射實現定時器消息WM_TIMER的處理。定時器消息的處理包括如下三個步驟。
(1)啟動定時器,可通過調用函數CWnd::Set-Timer()實現;
(2)定時器消息處理,可通過映射定時器消息WM_TIMER并實現消息處理函數實現;
(3)停止定時器,可通過調用函數CWnd::Kill-Timer()實現。
教學案例中使用AM-4000UA數據采集卡,它可以提供12位32路AD輸入,12位2路DA輸出,16路開關量輸入和16路開關量輸出功能。采集卡AM-4000UA還提供了Visual C++的編程接口,通過接口函數可以實現對數據采集卡的控制。案例中使用了AD輸入功能,運用幾個接口函數完成如下功能:①獲取本機上插的USB采集卡的個數;②打開USB采集卡;③設置USB采集卡的工作參數;④讀取采集的轉換數據;⑤關閉USB采集卡。
使用數據采集卡首先要進行初始化,通過“啟動”和“停止”按鈕控制定時器的啟動和停止,從而控制數據采集的流程。最后,在定時器消息WM_TIMER的處理函數OnTimer中實現數據采集和對數據的處理功能。
通過數據采集功能的實現,可以重點介紹定時器消息的編程和AM-4000UA數據采集卡在Visual C++環境下的編程方法。
筆者將上述改革方案在我院兩屆學生中進行了試驗研究,獲得了較好的效果,并獲得了一定的推廣經驗。
(1)案例教學方法以工程案例為中心,采用模塊化的教學方式,可以使學生將計算機知識和所學專業知識快速融合,有助于學生分析、解決問題能力的提高。任課教師可根據自身的實際情況靈活地選擇合適的實例,該方法易于實現和推廣。
(2)案例教學方法可將最新的專業軟件研究成果應用于課堂教學。通過將相關課程內容進行有機結合,可以大大提高學生應用VisualC++語言解決專業問題的能力,為后續課程學習打下堅實基礎。
綜上所述,針對專業特色設計的案例教學方案是提高學生軟件開發和應用能力的一種有效手段。
[1] 郭曉芳.“Visual C++程序設計語言”教學效果調查分析[J].北京:計算機教育,2007(7)
[2] 靳玉樂.案例教學原理[M].重慶:西南師范大學出版社,2003
[3] 翁虹.Visual C++6.0環境下匯編與C/C++混合編程的教學[J].南京:電氣電子教學學報2003,25(4)