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