摘要在電子信息類專業教學中,主要以c++為設計語言學習面向對象程序設計的思想和方法,并為后續的《window程序設計》課程作鋪墊。筆者針對實際教學中發現的c++與window程序設計難以順利銜接的問題,提出了在c++課程中引入MFC類庫及windows編程機制分析作為教學線索的教學方法,提高學生分析復雜系統的能力,為后續課程做好鋪墊。
關鍵詞電子信息工程 面向對象 教學方法
中圖分類號:G420文獻標識碼:A
Object-oriented Programming Courses Teaching Reform of Electronic
Information Engineering
QI Wen
(Liaodong College, Dandong, Liaoning 118003)
AbstractThe teaching of electronic information, mainly in the c + + for the design of object-oriented programming language to learn ideas and methods, and follow-up \"window Program Design \" laying the groundwork. The author for the actual teaching found in the c + + with window program design is difficult to smooth convergence of the problem, put forward in c + + program to introduce MFC class library, windows programming mechanism analysis as a teaching clues teaching methods and improve the students to analyze complex systems capacity for follow-up Pave the way courses.
Key wordselectronic information engineering; object-oriented; teaching methods
0 引言
面向對象程序設計能簡化應用程序的開發, 使編程人員輕松步入可重用編程世界。面向對象的概念和應用已超越了程序設計和軟件開發,擴展到很寬的范圍,如數據庫系統、交互式界面、應用結構、應用平臺、分布式系統、網絡管理結構、CAD 技術、人工智能等領域。面向對象程序設計作為計算機學科特別是軟件學科的一個重要知識領域,是學科知識體系的基礎。①能否學好這門課程將會直接影響到學生后續專業課程的學習,也直接影響到今后的程序設計能力乃至就業等方方面面。究竟應選擇什么語種作為其基本教學語言,不同的院校和專業有不同的考慮,而電子信息類專業則主要考慮C語言和C++ ,②c++的面向對象知識作為學生學習windows程序設計的基礎,不但要掌握面向對象的基本思想,還要能夠理解windows MFC框架的基本結構和工作機制,只有這樣才能真正掌握windows程序設計的精髓。
1 教學現狀及存在問題
各高校基本是按照課本上知識體系的邏輯順序來授課和實踐,理論和實踐教學重點主要放在語法的講解上,沒有很好引導學生自主學習和思考實踐創新。老師在進行理論教學之后,再進行實踐訓練,實踐內容來源主要是書本及相關資料,實踐目的主要是讓學生熟悉書本語法知識,再通過習題、例題加深對理論知識的掌握。這樣似乎將課程知識點有效傳遞給了學生,但是帶來的最大問題是無法引起學生對課程學習的興趣以及知識的深入分析,對后續課程《windows程序設計》鋪墊不夠。
2 MFC框架作為分析對象,引導學生分析問題
表1知識點和MFC類對照說明
在C++面向對象程序設計中,語言本身的知識和C語言幾乎沒有區別,知識的側重點轉向到代碼的面向對象組織方式中,其中“封裝”、“繼承”和“多態性”是面向對象的基本內容,所有知識點幾乎都圍繞這三點。每一點的知識在課堂上往往都有相應的例子,在筆者教學實踐過程中,發現雖然學生理解的課堂的例子,但對于復雜應用卻理解不夠,在后續的windows程序設計課程中卻沒有多余的時間去重新分析,而MFC框架的的理解程度卻決定了學生能否靈活進行程序設計尤其是windows程序設計的關鍵。③為此筆者將MFC框架中的重要類的設計引入到面向對象課程中,將面向對象的知識點與MFC框架設計進行對照分析,實踐證明,除了有助于學生學習面向對象相關知識點外,也大大減輕了后續學習《windows程序設計》的難度。知識點對照關系如表1所示:
3 綜合應用相關類,引入windows編程機制
在闡明MFC應用程序的運行機理和相關類之間的相互關系之后通過綜合實例介紹windows MFC編程基本過程,為后續課程《window程序設計》奠定基礎,過程如下:
3.1 設計過程
設計一個簡單完整MFC程序,產生一個窗口。不用AppWizard自動生成。在Win32 Application工程文件中寫以下代碼:
#include
class MyApp : public CWinApp
{
public:
BOOL InitInstance() //程序入點
{
CFrameWnd *Frame=new CFrameWnd();//構造框架
m_pMainWnd=Frame; //將m_pMainWnd設定為Frame;
Frame->Create(NULL,\"最簡單的窗口\");//建立框架
Frame->ShowWindow(SW_SHOW); //顯示框架
return true; //返回
}
};
MyApp theApp; //建立應用程序。
設定鏈接MFC庫,運行,即可看見一個窗口。
3.2 過程分析
從上面,讓學生看到建立一個MFC窗口很容易,只用兩步:一是從CWinApp派生一個應用程序類(這里是MyApp),然后建立應用程序對象(theApp),就可以產生一個自己需要的窗口(即需要什么樣就在InitInstance()里創建就行了)。整個程序,就改寫一個InitInstance()虛函數,創建那么一個對象(theApp),就是一個完整的窗口程序。使學生體會通過面向對象機制實現“黑箱”作業的魅力,也對MFC工作的內部原理有所了解。課程中為了真正搞清楚MFC初始化過程,可以通過一步步跟蹤執行程序來實現。
4 總結
教學方法選擇的恰當與否,直接反映在教學效果上。通過幾年來在理論與實踐教學中進行改革,改變傳統課本為線索或以簡單實例講解知識點,提前將MFC類庫和windows編程知識引到C++面向對象課程中,取得了良好的教學效果。使用該方法進行教學的學生對MFC的熟練掌握程度及編程能力大大超過沒使用該方法的學生。
注釋
①彭召意,朱艷輝,周玉.C++面向對象程序設計課程的實踐教學研究[J].計算機教育,2010.5:151-154.
②吳星,陳明銳.電子信息類專業《程序設計語言》課程的設置和教學改革[J].海南師范學院學報(自然科學版),2004.1(17):87-89.
③劉玲,曹建秋等.基于編程切入點的MFC教學方法研究[J].西南師范大學學報(自然科學版),2010.2(35):115-119.