摘 要:隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,大中專院校中越來(lái)越多的專業(yè)開(kāi)設(shè)了C語(yǔ)言與C++語(yǔ)言的有關(guān)課程,由于它們是一門實(shí)踐性很強(qiáng)的學(xué)科,而理論性學(xué)習(xí)不能真正的讓學(xué)生掌握其有關(guān)知識(shí),不能真正反映學(xué)生的計(jì)算機(jī)應(yīng)用水平和能力。本系統(tǒng)是為了提高學(xué)生的知識(shí)水平及實(shí)踐編程而設(shè)計(jì)的。此系統(tǒng)能夠讓學(xué)生更好、更快的掌握C/C++語(yǔ)言的基本知識(shí)和編程方法。
關(guān)鍵詞:C/C++程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)?zāi)M;delphi;Access數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311
C/C++語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語(yǔ)言,在各類高等院校的計(jì)算機(jī)及相關(guān)專業(yè)中,C/C++語(yǔ)言均被列為一門必修的基礎(chǔ)課。學(xué)習(xí)C/C++語(yǔ)言,理論知識(shí)的掌握很重要,實(shí)踐應(yīng)用能力的培養(yǎng)更是不容忽視。目前也有很多有關(guān)C/C++語(yǔ)言的題庫(kù),可很好地實(shí)現(xiàn)對(duì)理論知識(shí)的練習(xí),但對(duì)于程序設(shè)計(jì)題并沒(méi)有很好的歸納,并不能實(shí)現(xiàn)對(duì)實(shí)踐應(yīng)用的練習(xí)。因此學(xué)生的計(jì)算機(jī)能力大多限于“紙上談兵”,其上機(jī)操作能力差,在實(shí)際上機(jī)環(huán)境中常常束手無(wú)策。
針對(duì)這些問(wèn)題我們?cè)O(shè)計(jì)出一款C/C++的學(xué)習(xí)軟件,這款軟件的目的就是輔助老師的教學(xué),并且讓學(xué)生們通過(guò)實(shí)際的練習(xí)可以增強(qiáng)自己的實(shí)踐能力和培養(yǎng)學(xué)生的編程思維,本系統(tǒng)采用delphi和access來(lái)開(kāi)發(fā)。
1 語(yǔ)言學(xué)習(xí)系統(tǒng)需求分析
1.1 總體需求分析
C/C++學(xué)系統(tǒng)主要在C/C++基礎(chǔ)知識(shí)上的學(xué)習(xí)和上機(jī)實(shí)驗(yàn)的使用,因此本文分析過(guò)程中主要以一些上機(jī)實(shí)驗(yàn)題,并且針對(duì)每一個(gè)實(shí)驗(yàn)題都有詳細(xì)的解答。具體設(shè)計(jì)如下:
(1)章節(jié)練習(xí)
該練習(xí)模塊中,將入門程序?qū)嵗珍浢恳徽碌牧?xí)題。同時(shí)能夠?qū)⒉粫?huì)的題加入C語(yǔ)言題庫(kù)和C++題庫(kù)。再能夠進(jìn)行VC和TC程序的調(diào)用,用來(lái)進(jìn)行編程。同時(shí)幫助里面有函數(shù)查詢、常見(jiàn)控制字符表、ASCII碼字符對(duì)照表、運(yùn)算符優(yōu)先級(jí)別次序表。并且在系統(tǒng)的編輯模塊中可以進(jìn)行復(fù)制、剪切、粘貼、全選、清空的作用。
(2)入門程序?qū)嵗?/p>
該模塊中,能夠進(jìn)行一些簡(jiǎn)單的程序?qū)嵗恼故?,同時(shí)可以把不會(huì)的題加入C語(yǔ)言題庫(kù)和C++題庫(kù)。通過(guò)調(diào)用VC和TC來(lái)進(jìn)行編程。同時(shí)通過(guò)在幫助模塊中里面有函數(shù)查詢、常見(jiàn)控制字符表、ASCII碼字符對(duì)照表、運(yùn)算符優(yōu)先級(jí)別次序表。幫助進(jìn)行入門程序練習(xí)訓(xùn)練。另外,其通過(guò)展示一些典型的源程序,利用典型的算法、函數(shù)應(yīng)用等達(dá)到程序應(yīng)用的目的。
(3)典型程序?qū)W習(xí)
通過(guò)將一些不會(huì)的題加入C語(yǔ)言題庫(kù)和C++題庫(kù)中,同時(shí)能夠?qū)崿F(xiàn)VC和TC等調(diào)用,從而為編程做好基本命令準(zhǔn)備。在此基礎(chǔ)上,通過(guò)系統(tǒng)幫助模塊中的函數(shù)查詢、常見(jiàn)控制字符表、ASCII碼字符對(duì)照表、運(yùn)算符優(yōu)先級(jí)別次序表。
(4)課程設(shè)計(jì)
在課程設(shè)計(jì)模塊中,通過(guò)應(yīng)用一些小的程序,在對(duì)VC、TC等的調(diào)用下,實(shí)現(xiàn)對(duì)應(yīng)的編程命令。同樣,能夠利用幫助里面的函數(shù)查詢、常見(jiàn)控制字符表、ASCII碼字符對(duì)照表、運(yùn)算符優(yōu)先級(jí)別次序表功能。
(5)我的題庫(kù)
在該模塊設(shè)計(jì)過(guò)程中,能夠?qū)⒁恍┙處熣J(rèn)為經(jīng)典的題目收錄到其中。通常,其中好ui包含兩個(gè)題庫(kù),即C語(yǔ)言題庫(kù)和C++題庫(kù)。在題目的定位方面,主要需要設(shè)置上一題、下一題等定位按鈕,以達(dá)到題目的切換目的。同時(shí),教師也需要能夠自主的進(jìn)行題庫(kù)的編輯。例如能夠及時(shí)的對(duì)題庫(kù)中的題目進(jìn)行更新、刪掉里面的不想要的題目等操作。
1.2 筆者在通過(guò)實(shí)際的分析調(diào)研基礎(chǔ)上,將C/C++學(xué)習(xí)系統(tǒng)的功能分為典型源程序、章節(jié)練習(xí)、課程設(shè)計(jì)、我的題庫(kù)、知識(shí)學(xué)習(xí)等幾個(gè)大模塊。
(1)章節(jié)練習(xí)
經(jīng)過(guò)每一章節(jié)的扎實(shí)的練習(xí),讓用戶了解每一章節(jié)的基本概念 和原理,了解自己的不足起到查缺補(bǔ)漏的作用。
(2)入門程序?qū)嵗?/p>
收集了一些基礎(chǔ)性的實(shí)例,使用用戶了解一些基本的算法,初步培養(yǎng)用戶的編程思想和增強(qiáng)用戶的編程能力,其功能模塊圖與圖1類似,都具有相同的子模塊。
(3)我的題庫(kù)
可以把自己在做題過(guò)程中不會(huì)的題加入自己的題庫(kù)中,并且還可以編寫自己的題庫(kù),其具體的功能模塊如圖1所示:
2 數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)
在概念結(jié)構(gòu)的設(shè)計(jì)過(guò)程中,設(shè)計(jì)者要對(duì)用戶需求進(jìn)行綜合、歸納和抽象,形成一個(gè)獨(dú)立于具體計(jì)算機(jī)和數(shù)據(jù)庫(kù)管理系統(tǒng)的概念模型。數(shù)據(jù)邏輯設(shè)計(jì)的主要任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換為access支持的數(shù)據(jù)模型,并將性能進(jìn)行優(yōu)化。
根據(jù)上文中對(duì)該系統(tǒng)的功能結(jié)構(gòu)進(jìn)行分析,結(jié)合具體的教學(xué)實(shí)際需要,形成了數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)的概念結(jié)構(gòu)圖示,得到了系統(tǒng)的具體E-R圖。由于各個(gè)系統(tǒng)的E-R圖相似,所以僅列出章節(jié)練習(xí)的E-R圖,如圖2所示。
3 系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)
本系統(tǒng)共包括七個(gè)模塊登錄模塊、主界面、章節(jié)練習(xí)、入門程序?qū)嵗?、典型源代碼、課程設(shè)計(jì)、我的題庫(kù)。
3.1 數(shù)據(jù)庫(kù)連接方案
(1)方案分析
access數(shù)據(jù)庫(kù)連接方案就是通過(guò)驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)建立連接,對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。access是C/S類型的數(shù)據(jù)庫(kù),客戶端應(yīng)用程序可以通過(guò)ADO技術(shù),選擇合適的驅(qū)動(dòng)程序連接服務(wù)器端的數(shù)據(jù)庫(kù),能夠使多客戶連接同一數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)數(shù)共享。
(2)系統(tǒng)設(shè)計(jì)的具體實(shí)施過(guò)程
在delphi中新新建一個(gè)工程,再在工程中新建一個(gè)數(shù)據(jù)模塊Data Module,在Data Module 中放置一個(gè)TADOConnection和其它數(shù)據(jù)庫(kù)訪問(wèn)組件,其它數(shù)據(jù)庫(kù)組件都引用模塊中的TADOConnection組件作為數(shù)據(jù)源,這種方式保證一個(gè)工程中只建立了一個(gè)數(shù)據(jù)庫(kù)連接,減少了對(duì)資源的占用。
雙擊TADOConnection組件,打開(kāi)ConnectionString屬性對(duì)話框,進(jìn)行數(shù)據(jù)庫(kù)連接設(shè)置。
3.2 登錄模塊的設(shè)計(jì)
(1)用戶登錄界面
當(dāng)用戶輸入用戶名和密碼,系統(tǒng)會(huì)核查用戶名及密碼的真假,當(dāng)密碼和用戶名錯(cuò)誤,系統(tǒng)會(huì)提示用戶重新輸入正確的密碼,而輸入正確的用戶名及密碼,系統(tǒng)會(huì)直接跳轉(zhuǎn)到主界面。
(2)注冊(cè)新用戶界面
當(dāng)用戶進(jìn)行注冊(cè)時(shí),當(dāng)用戶輸入用戶名和密碼時(shí),系統(tǒng)會(huì)核查用戶名和密碼是否合法,當(dāng)密碼和用戶名錯(cuò)誤時(shí),系統(tǒng)會(huì)提示用戶重新輸入,而輸入正確,則表示注冊(cè)成功并返回到用戶登錄界面。
(3)主界面模塊設(shè)計(jì)
主界面起到導(dǎo)航的作用,在這里可以順利的切換的每一個(gè)界面,并且在主界面有關(guān)于學(xué)習(xí)C語(yǔ)言的一些方法。
3.3 章節(jié)練習(xí)模塊設(shè)計(jì)
在章節(jié)練習(xí)模塊中你可以選擇任意章節(jié)的習(xí)題進(jìn)行練習(xí),并且有詳細(xì)的答案,對(duì)比較重要的題可以加入自己的題庫(kù)方便以后的復(fù)習(xí)。
在章節(jié)練習(xí)中運(yùn)用了菜單運(yùn)用了MainMenu1,題目定位運(yùn)用了TreeView1,加入題庫(kù)運(yùn)用了Batton等控件。
3.4 入門程序?qū)嵗?/p>
入門程序?qū)嵗饕且恍┖?jiǎn)單的程序?qū)嵗?,通過(guò)一些簡(jiǎn)單的練習(xí)初步建立編程思想。在入門程序?qū)嵗羞\(yùn)用了菜單運(yùn)用了MainMenu1,題目定位運(yùn)用了TreeView1,加入題庫(kù)運(yùn)用了Batton等控件。
3.5 典型源程序
典型源程序收集一些有典型的算法和典型的函數(shù)的程序題,適用于有一定程序編程能力的學(xué)生。
3.6 課程設(shè)計(jì)
在課程設(shè)計(jì)這個(gè)模塊中收集了一些小型程序供大家參考,為學(xué)生的學(xué)習(xí)提供具體的實(shí)例知道操作。
4 結(jié)語(yǔ)
C++是計(jì)算機(jī)學(xué)科教學(xué)的重點(diǎn),同時(shí)也是難點(diǎn)工作。本文就如何利用程序編制語(yǔ)言的方式形成C++程序的教學(xué)系統(tǒng)進(jìn)行了詳細(xì)論述。這樣,不但能夠顯著提高教育效率,達(dá)到對(duì)應(yīng)的教學(xué)水平。而且還通過(guò)程序系統(tǒng)將C++學(xué)科的重要作用活生生的展示在了學(xué)生面前,使得學(xué)生的學(xué)習(xí)興趣得到提高,為學(xué)生學(xué)習(xí)質(zhì)量的提高打下了基礎(chǔ)。
參考文獻(xiàn):
[1]呂鳳翥.C++語(yǔ)言程序設(shè)計(jì)(第2版)[M].北京:電子工業(yè)出版社,2007,2.
[2]Harvey Dietel,Paul Deitel.C:How to Program[M].Pearson Education,Inc,2010.
[3]Mark Lee.C++ Programming for the Absolute Beginner For the Absolute Beginner[M].Course Technology,2009.
[4]J.Stanley Warford.Computer Systems[M].JonesBartlett Publishers,2009.
[5]那一沙,吳子?xùn)|,杜修平.基于建構(gòu)主義的面向?qū)ο蟪绦蛟O(shè)計(jì)C++教學(xué)[J].現(xiàn)代遠(yuǎn)距離教育,2008,4.
作者簡(jiǎn)介:馬坤鵬(1989.12-),男,本科,研究方向:計(jì)算機(jī)軟件。
作者單位:新疆農(nóng)業(yè)大學(xué)計(jì)算機(jī)與信息工程學(xué)院信息管理與信息系統(tǒng)專業(yè)102班,烏魯木齊 830052