前言:想要寫出一篇引人入勝的文章?我們特意為您整理了C語言實(shí)驗(yàn)教學(xué)平臺的設(shè)計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:為了幫助學(xué)生完成C語言程序設(shè)計實(shí)驗(yàn),采用模塊化的方法設(shè)計了一個C語言實(shí)驗(yàn)教學(xué)平臺.這個平臺是由程序編輯、程序編譯&運(yùn)行、程序調(diào)試、題庫管理和考試評分5大模塊組成.使用C語言實(shí)驗(yàn)教學(xué)平臺,學(xué)生可以單獨(dú)進(jìn)行C語言學(xué)習(xí)與考試、上機(jī)編程和調(diào)試操作.為了在實(shí)驗(yàn)平臺中控制好底層編譯器的返回結(jié)果,我們提出了一種基于管道的調(diào)用方法,這種方法具有速度快、效率高的優(yōu)點(diǎn).
關(guān)鍵詞:平臺設(shè)計;C語言;實(shí)驗(yàn)教學(xué)
0引言
C語言程序設(shè)計是計算機(jī)及相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課,是操作系統(tǒng)、編譯原理等課程的前期課程[1].由于沒有專門針對C語言程序設(shè)計的實(shí)驗(yàn)平臺,許多高等學(xué)校是使用VC6.0或者Eclipse作為程序設(shè)計的實(shí)驗(yàn)平臺[2].這些軟件開發(fā)平臺是針對大型軟件系統(tǒng)開發(fā)的,操作起來較復(fù)雜,對于剛剛接觸C語言程序設(shè)計的學(xué)生來說,有點(diǎn)“殺雞用牛刀”的味道,學(xué)生操作起來比較麻煩,實(shí)驗(yàn)效果不是很理想.Eclipse是Java程序開發(fā)的工具,需要在Java環(huán)境中運(yùn)行,Eclipse的運(yùn)行效率比較低.我們只有安裝和配置CDT插件以后才能夠使用Eclipse開發(fā)C語言程序[3].同時,近年來越來越多的研究人員開始使用計算機(jī)來輔助C語言程序設(shè)計實(shí)驗(yàn)教學(xué),如建設(shè)網(wǎng)絡(luò)化的精品課程網(wǎng)站或平臺[4,5],但是這些實(shí)驗(yàn)平臺或者網(wǎng)站都是從C語言語法知識方面輔助學(xué)生學(xué)習(xí),學(xué)生編寫和調(diào)試程序還是只能求助于VC6.0等軟件開發(fā)平臺.為了幫助學(xué)生進(jìn)行C語言程序設(shè)計實(shí)驗(yàn),我們設(shè)計了一個C語言實(shí)驗(yàn)教學(xué)平臺,它具有程序編寫、編譯、調(diào)試、程序操作考試和評分等功能.使用我們的C語言實(shí)驗(yàn)教學(xué)平臺,學(xué)生可以進(jìn)行C語言知識學(xué)習(xí)與考試、上機(jī)編程和調(diào)試操作.
1實(shí)驗(yàn)平臺的系統(tǒng)結(jié)構(gòu)
C語言實(shí)驗(yàn)教學(xué)平臺是由程序編輯、程序編譯運(yùn)行、程序調(diào)試、題庫管理、考試和評分5大模塊組成,這5大模塊由一個主控模塊控制,它們的系統(tǒng)結(jié)構(gòu)如圖1所示.主控模塊是整個實(shí)驗(yàn)平臺的控制中心,它以菜單方式把整個實(shí)驗(yàn)平臺的功能顯示出來,用戶通過操作主控模塊而選擇不同的功能,如編輯程序、程序調(diào)試或計算機(jī)操作考試.程序編輯模塊負(fù)責(zé)程序的錄入、修改和存盤等功能.程序編譯運(yùn)行模塊則主要是通過調(diào)用GCC程序的相應(yīng)命令來完成程序編譯操作,并把這些命令的運(yùn)行結(jié)果在實(shí)驗(yàn)平臺上顯示出來.程序調(diào)試模塊則通過與GDB程序交互來調(diào)試程序.題庫管理模塊則主要完成試題的錄入和查詢及維護(hù)等功能.考試模塊主要對學(xué)生進(jìn)行上機(jī)考試.評分模塊則是對學(xué)生考試成績進(jìn)行評分.
2基于管道的調(diào)用方法
為了使C語言實(shí)驗(yàn)教學(xué)平臺具有很好的擴(kuò)展性,我們采用了開放式和模塊化的設(shè)計方法,在C語言實(shí)驗(yàn)教學(xué)平臺中以命令方式調(diào)用底層編譯器編譯與調(diào)試實(shí)驗(yàn)程序.實(shí)驗(yàn)教學(xué)平臺中使用了國際上流行編譯器GCC來編譯程序.由于系統(tǒng)是開放的,用戶只要稍微配置一下就可換用其它的編譯器,如微軟或者Borland公司的編譯器.然而要在平臺中控制好底層編譯器的返回結(jié)果則比較困難.我們研究發(fā)現(xiàn)可以使用兩種不同方法來解決這個問題,一種方法是把編譯結(jié)果輸出到一個文本文件中,然后再在平臺的一個消息文本框中逐條顯示.另一種方法是采管道技術(shù),即在底層編譯器與上層調(diào)用程序之間建立管道,然后再通過管道來傳遞消息.我們通過對這兩種方法進(jìn)行實(shí)驗(yàn)對比后發(fā)現(xiàn)第一種方法速度慢,平臺不好控制底層命令,而第二種方法則完全克服了第一種方法的這些缺點(diǎn).因此,在我們的實(shí)驗(yàn)平臺中采用了第二種方法,
3平臺主要模塊的功能實(shí)現(xiàn)和運(yùn)行
為了實(shí)現(xiàn)這個C語言實(shí)驗(yàn)教學(xué)平臺,我們采用模塊化的設(shè)計方法把圖1中的每一個模塊用一個窗體和相應(yīng)的控制過程來實(shí)現(xiàn)它.主控程序調(diào)用已定義好的各模塊組合成一個C語言實(shí)驗(yàn)教學(xué)平臺.下面重點(diǎn)介紹主控模塊、程序編輯和程序編譯與運(yùn)行等模塊3.1主控模塊C語言實(shí)驗(yàn)教學(xué)平臺主控模塊主要是向用戶提供系統(tǒng)界面,把系統(tǒng)的主要功能以菜單和工具欄的方式展示在電腦屏幕上,用戶通過鼠標(biāo)和鍵盤來選擇相應(yīng)的功能和操作.我們把平臺的常用功能以圖標(biāo)的方式放在常用工具欄上,這樣可以提高實(shí)驗(yàn)人員的工作效率.C語言實(shí)驗(yàn)教學(xué)平臺主控模塊的運(yùn)3.2程序編輯模塊程序編輯模塊主要是把用戶所要編輯的C語言程序讀入到內(nèi)存中供用戶編輯操作,用戶的編輯包括插入、刪除、修改等常規(guī)操作,也包括復(fù)制、粘貼、剪切等特殊操作,同時用戶在編輯時還可以通過選擇常用工具欄上的一些按鈕操作來改變程序的一些字體,如加粗、傾斜和劃線,在我們的具體實(shí)現(xiàn)中,我們是把C語言程序文件讀入到一個VB的多文本編輯控件中,然后再對多文本控件中的文本進(jìn)行操作的.
4程序編譯與運(yùn)行模塊
程序編譯與運(yùn)行模塊主要功能是首先把用戶所編輯好的C語言程序存入硬盤,并與底層的GCC建立管道,然后由程序編譯與運(yùn)行模塊發(fā)送命令給GCC編譯程序,最后由程序編譯與運(yùn)行模塊讀取GCC的編譯結(jié)果,如果編譯成功則運(yùn)行所編譯后的程序.
5結(jié)束語
本文介紹了C語言實(shí)驗(yàn)教學(xué)平臺的設(shè)計與實(shí)現(xiàn).使用這個平臺,學(xué)生可以單獨(dú)進(jìn)行C語言學(xué)習(xí)與考試、上機(jī)編程和調(diào)試操作.通過近二年教學(xué)實(shí)踐,許多科任教師認(rèn)為C語言實(shí)驗(yàn)教學(xué)平臺可以提高學(xué)生的實(shí)驗(yàn)效果和考試成績.當(dāng)然,C語言實(shí)驗(yàn)教學(xué)平臺還有許多不完善的地方,如不支持網(wǎng)絡(luò)討論,不支持網(wǎng)絡(luò)作業(yè)等,我們將在下一個版本中克服這些弱點(diǎn).
作者:譚小蘭 鄧作杰 單位:湖南工程學(xué)院計算機(jī)與通信學(xué)院