前言:想要寫出一篇引人入勝的文章?我們特意為您整理了面向對象程序設計課程實驗系統范文,希望能給你帶來靈感和參考,敬請閱讀。
1實驗內容
在面向對象程序設計課程中,涉及到一系列與面向過程編程所不同的概念,如類、對象、屬性、操作、繼承、多態等。這些概念比較抽象,學生初學時難以理解和把握。而角色扮演游戲能較好地反映面向對象程序設計的特點,能讓學生在娛樂中學習這些基本概念。面向對象程序設計課程的教學一般是按照類的封裝性、繼承性、多態性的順序組織內容[9]。為此,筆者結合角色扮演游戲的特點,將面向對象的程序設計課程實驗劃分為以下3部分內容[10‐11]:(1)封裝:該部分實驗要求學生掌握和應用類的建立、對象的聲明和使用等知識,要求學生定義2個類———怪獸(Monster)類和英雄(Hero)類,并實現其基本屬性和操作。(2)繼承:該部分實驗要求學生掌握和應用類的繼承機制,實現Monster類和大怪獸(Boss)類之間的繼承關系。(3)多態:該部分實驗要求學生掌握和應用多態的實現機制,實現Monster類和Boss類的對象操作的多態。在以上實驗的基礎上,還可以擴展運算符重載、模板等實驗內容。
2系統設計與實現
基于游戲的面向對象程序設計課程實驗系統以實現一個簡單的對打游戲為背景,根據該課程的教學內容和教學進度要求,對游戲階段進行劃分,構造針對不同內容的實驗題目,逐步開放。每個實驗題目都要求學生在已有的固定程序框架下填入自行編寫的代碼,實現所要求的程序功能。學生提交代碼后,系統首先將學生編寫的代碼與程序框架進行合并,隨后采用后臺在線編譯工具進行整體編譯,查找是否存在語法錯誤。若有,則返回錯誤信息;否則,利用代碼分析工具對代碼進行分析,檢查是否已實現所要求實現的功能,是否實現選做功能。隨后,系統進行代碼測試,檢查是否存在運行錯誤。最后運行模塊將正確實現的功能在前臺顯示出來。前臺將讀取后臺代碼的實現情況,以圖形界面的方式顯示已正確定義的類和對象,并為對象提供后臺代碼正確實現的操作。根據后臺代碼定義的游戲流程,實現與學生的互動游戲,并在游戲中讓學生發現所寫代碼中缺少的功能,更好地體會每一部分代碼的功能和效果。(1)代碼編譯模塊將抽取實驗題目的固定框架代碼與學生提交的代碼進行拼接,調用在線編譯器MinGW對合并后的代碼進行編譯。若無錯誤,將代碼交予代碼分析模塊進行語義分析。(2)代碼分析模塊針對不同游戲階段的要求,規定類名、函數名等的標準,要求學生所提交的代碼的名稱以此為依據。運行時,分析模塊對學生提交代碼進行分析,提取關鍵類、函數等,與命名標準做對比,逐一排查是否實現對應功能。(3)代碼測試模塊針對學生程序設計完成情況,利用預先定義好的后臺數據,進行測試分析并生成相應的測試報告。(4)代碼運行模塊在對固定框架和學生代碼合并后的程序進行分析測試后,對程序進行修改,創建socket連接,使其具備通信功能,并在內部加入了通信協議解析,解析從前臺傳來的指令協議。(5)通信模塊負責通過socket在后臺與前臺之間進行數據與指令的傳輸。在收到請求后,首先創建連接線程,實現后臺程序和前臺顯示兩端的通信,將代碼功能以圖形化的效果展示。(6)前臺模塊提供教師模式和學生模式,為用戶提供各類功能使用的圖形化界面。在教師模式下,教師可以對題庫、作業、成績進行管理,增加或修改實驗題目,或結束實驗作業,查看學生代碼和提交情況,查看和管理學生的成績。在學生模式下,在線答題模塊讓學生可以查看作業、根據要求在線編寫代碼并提交。若代碼通過,可以進入在線游戲。若在游戲中發現功能的缺失,可以修改代碼并再次提交。在線游戲模塊通過通信模塊連接前后臺,將經過系統分析與編譯的學生提交代碼的實現情況傳輸給游戲模塊。游戲模塊根據收到的數據,在游戲場景下生成對應的角色,激活已正確實現的相關操作,轉化在圖形界面上展現出來,并根據編寫的程序流程與用戶進行游戲互動,讓學生在游戲中體會代碼經過編譯后,實際被執行的效果。
3系統測試
基于游戲的面向對象程序設計實驗系統為學生提供了趣味性的實驗過程。在系統固定的實驗流程框架下,學生在線編寫并提交考查關鍵知識點的代碼,系統后臺自動在線對代碼進行整合、編譯、分析等。系統對學生提交的類的實現代碼進行分析測試,對實現異常的函數進行標注。學生提交代碼通過后,系統提供在線游戲的功能,讓學生直觀感受所編寫代碼的效果。正確實現的類和對象及其相關的屬性和操作、類的繼承情況等被顯示出來,而出現異常的信息則無法顯示。
4結語
基于游戲的面向對象程序設計課程實驗系統要求學生在固定框架下,按照各個實驗考查的知識點,編寫并提交相應代碼。系統將在線編譯、分析、測試和運行提交的代碼,并在前臺結合角色扮演游戲,顯示正確實現的功能,以趣味化的方式,加深學生對面向對象程序設計課程中各個概念的理解和掌握。
參考文獻(References)
[1]賈澎濤.基于游戲案例的面向對象程序設計課程教學改革[J].陜西教育(高教版),2011(12):80.
[2]彭召意,文志強,朱艷輝.以項目驅動的面向對象程序設計課程教學研究[J].計算機教育,2012(24):95‐98.
[3]黃建燈,田娟.基于應用型人才培養的《面向對象程序設計》課程教學改革探討[J].計算機產品與流通,2017(7):201.
[4]國偉.《C#面向對象程序設計課程》教學改革探討與實踐[J].科技創新導報,2013(2):154.
作者:肖志嬌 劉士俊 徐婧 單位:深圳大學計算機與軟件學院