首頁 > 精品范文 > 程序設(shè)計(jì)的結(jié)構(gòu)
時(shí)間:2023-08-03 16:08:44
序論:寫作是一種深度的自我表達(dá)。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內(nèi)心深處的真相,好投稿為您帶來了七篇程序設(shè)計(jì)的結(jié)構(gòu)范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創(chuàng)作。

1.在《C程序設(shè)計(jì)》與《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中對(duì)課程整合概念的理解
理論上,課程整合是指對(duì)課程設(shè)置、各課程教育教學(xué)目標(biāo)、教學(xué)設(shè)計(jì)、評(píng)價(jià)等諸要素作系統(tǒng)的考察與操作。在實(shí)際教學(xué)中,課程整合是指考慮到各門相互分裂的課程之間的有機(jī)聯(lián)系,將這些課程綜合化。
在傳統(tǒng)的教學(xué)模式中,《C程序設(shè)計(jì)》是先行課程,《數(shù)據(jù)結(jié)構(gòu)》是后續(xù)課程,它們都是學(xué)習(xí)操作系統(tǒng)、數(shù)據(jù)庫原理和應(yīng)用、面向?qū)ο蟪绦蛟O(shè)計(jì)等課程的基礎(chǔ)。《C語言程序設(shè)計(jì)》是學(xué)生最先接觸的結(jié)構(gòu)化程序設(shè)計(jì)語言,其教學(xué)目的主要是使學(xué)生了解結(jié)構(gòu)化程序設(shè)計(jì)的算法和思路,掌握程序設(shè)計(jì)和調(diào)試的基本技巧,培養(yǎng)良好的軟件設(shè)計(jì)基礎(chǔ)。《數(shù)據(jù)結(jié)構(gòu)》主要是研究非數(shù)值應(yīng)用問題中數(shù)據(jù)之間的邏輯關(guān)系和對(duì)數(shù)據(jù)的操作,同時(shí)還研究如何將具有邏輯關(guān)系的數(shù)據(jù)按一定的存儲(chǔ)方式存放在計(jì)算機(jī)內(nèi)。其教學(xué)目的主要是使學(xué)生掌握數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的算法,培養(yǎng)學(xué)生解決實(shí)際問題的能力,即能夠把現(xiàn)實(shí)世界中的客觀問題,變換為在計(jì)算機(jī)內(nèi)的表示形式,學(xué)會(huì)組織數(shù)據(jù)、選擇算法、養(yǎng)成良好的程序設(shè)計(jì)風(fēng)格。
《數(shù)據(jù)結(jié)構(gòu)》課程中分析數(shù)據(jù)之間的邏輯關(guān)系和確定數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)結(jié)構(gòu)是所有程序設(shè)計(jì)過程中必須完成的兩大任務(wù),且《數(shù)據(jù)結(jié)構(gòu)》中算法描述的語言又多采用C語言,兩門課程之間存在著緊密而內(nèi)在聯(lián)系,為兩門課程的整合提供了可能性。
2.《C程序設(shè)計(jì)》與《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)現(xiàn)狀
在傳統(tǒng)的教學(xué)模式中,《C程序設(shè)計(jì)》是先行課程,《數(shù)據(jù)結(jié)構(gòu)》是后續(xù)課程,將兩門課程分開來教學(xué),人為地割斷了它們之間的內(nèi)在聯(lián)系,導(dǎo)致學(xué)生在學(xué)習(xí)《C程序設(shè)計(jì)》時(shí),僅局限于C語言的語法層面上,不能把C語言的程序設(shè)計(jì)思路和語法知識(shí)具體運(yùn)用到數(shù)據(jù)結(jié)構(gòu)的算法中去,使理論知識(shí)與實(shí)踐運(yùn)用脫鉤。而在學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》時(shí),由于教師的更換和教材的多樣化,任課教師又不得不花掉一、兩周的時(shí)間來復(fù)習(xí)C語言的相關(guān)知識(shí),造成了課時(shí)的浪費(fèi)和學(xué)生反感。在具體運(yùn)用時(shí),又出現(xiàn)學(xué)生能理解數(shù)據(jù)結(jié)構(gòu)中的算法和讀懂算法,卻不能運(yùn)用C語言去實(shí)現(xiàn)算法等程序設(shè)計(jì)能力較差的現(xiàn)象。筆者長(zhǎng)期從事這兩門課程的教學(xué)工作,一直在探索如何提高這兩門課程的教學(xué)效果,培養(yǎng)學(xué)生運(yùn)用C語言這個(gè)工具去解決實(shí)際問題的能力。
3.《C程序設(shè)計(jì)》與《數(shù)據(jù)結(jié)構(gòu)》課程整合的思路
在高職院校計(jì)算機(jī)應(yīng)用專業(yè)的課程體系中,實(shí)現(xiàn)《C程序設(shè)計(jì)》和《數(shù)據(jù)結(jié)構(gòu)》這兩門課程的整合,要結(jié)合職業(yè)教育培養(yǎng)實(shí)用型人才的目標(biāo),根據(jù)后續(xù)專業(yè)課程的需要來確定?!禖程序設(shè)計(jì)》和《數(shù)據(jù)結(jié)構(gòu)》課程整合化的思路以C語言為工具,以實(shí)踐為中心,重視基礎(chǔ)知識(shí),注重能力培養(yǎng),對(duì)兩門課程教學(xué)內(nèi)容和教學(xué)模式進(jìn)行優(yōu)化和整合。
在實(shí)施過程中,將這兩門課程整合為一門課程,課程名稱為《C程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》,在一個(gè)學(xué)期內(nèi)完成授課內(nèi)容。堅(jiān)持理論聯(lián)系實(shí)踐的教學(xué)模式,突出實(shí)踐教學(xué)的重要性,去掉繁瑣的理論推導(dǎo),重新設(shè)計(jì)教學(xué)、實(shí)訓(xùn)大綱,處理教材,合理分配學(xué)時(shí)。在具體教學(xué)中,以C語言為主線,將數(shù)據(jù)結(jié)構(gòu)的內(nèi)容溶入到C語言的教學(xué)中,對(duì)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容以“適度夠用”為原則,適當(dāng)?shù)剡M(jìn)行刪減,以滿足高職教育培養(yǎng)應(yīng)用型人才的教學(xué)需要。
4.《C程序設(shè)計(jì)》與《數(shù)據(jù)結(jié)構(gòu)》課程整合的具體實(shí)施
(1)整合后理論課教學(xué)的內(nèi)容和學(xué)時(shí)分配
整合后周學(xué)時(shí)為6節(jié),總學(xué)時(shí)為102節(jié)(按17個(gè)教學(xué)周計(jì)),其中理論課時(shí)為68節(jié),上機(jī)實(shí)踐課時(shí)為34節(jié)。
(2)課程整合后的實(shí)踐教學(xué)設(shè)計(jì)
在實(shí)踐教學(xué)中,要進(jìn)一步鞏固對(duì)理論知識(shí)的理解,提高學(xué)生靈活運(yùn)用數(shù)據(jù)結(jié)構(gòu)和算法的能力,使學(xué)生在編程、上機(jī)操作、程序調(diào)試與正確性驗(yàn)證等基本技能方面得到訓(xùn)練和提高。實(shí)驗(yàn)可分兩部分,一是驗(yàn)證性實(shí)驗(yàn),主要結(jié)合課堂理論教學(xué)內(nèi)容展開,學(xué)生可以對(duì)在課堂上學(xué)到的基本算法進(jìn)行驗(yàn)證;二是運(yùn)用性實(shí)驗(yàn),組織學(xué)生以小組為單位設(shè)計(jì)一些實(shí)用程序,要求學(xué)生從實(shí)際出發(fā),在具體、真實(shí)的環(huán)境中分析研究數(shù)據(jù)對(duì)象的特性,構(gòu)造合理的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的算法。
(3)課程整合后的考試要求
整合后的課程培養(yǎng)目標(biāo)是提高學(xué)生的計(jì)算機(jī)應(yīng)用能力,計(jì)算機(jī)應(yīng)用能力包括了三個(gè)層次:操作使用能力、應(yīng)用開發(fā)能力和創(chuàng)新能力。因此整合后的課程考核,應(yīng)采取理論基礎(chǔ)閉卷和上機(jī)操作開卷相結(jié)合的方式進(jìn)行,綜合評(píng)價(jià)應(yīng)從以下三個(gè)方面來著手。
①筆試。筆試主要是考察學(xué)生對(duì)理論知識(shí)的系統(tǒng)性的理解,可由客觀題型(如選擇、填空題等)和主觀題型組成,客觀題型要立足于基礎(chǔ)知識(shí),小而全,避免死記硬背。主觀題型要靈活多樣,如問題解決分析、程序編寫等。占整個(gè)評(píng)價(jià)的30%。
②上機(jī)實(shí)踐。上機(jī)實(shí)踐貫穿于整個(gè)教學(xué)當(dāng)中,所以要注重過程考核,結(jié)合實(shí)訓(xùn)計(jì)劃,在各單元模塊結(jié)束時(shí),進(jìn)行隨堂考核,并認(rèn)真檢查和記錄學(xué)生考核情況,作為期末上機(jī)實(shí)踐成績(jī)的一部分。實(shí)行各單元過關(guān),有了各單元模塊的考核,到期末上機(jī)操作綜合考核時(shí)就不成問題了。通過對(duì)上機(jī)操作實(shí)踐的評(píng)價(jià),可以考察學(xué)生應(yīng)用計(jì)算機(jī)解決實(shí)際問題的能力。占整個(gè)評(píng)價(jià)的40%。
③學(xué)生的平時(shí)表現(xiàn)。學(xué)生的平時(shí)表現(xiàn)是指是否認(rèn)真上課、聽課,上機(jī)練習(xí)的任務(wù)是否獨(dú)立完成,上機(jī)設(shè)計(jì)的任務(wù)是否有創(chuàng)意,作業(yè)是否按時(shí)上交等等,這些資料的積累,有利于對(duì)學(xué)生學(xué)習(xí)情況的全面認(rèn)識(shí)。學(xué)生在整個(gè)授課過程中的表現(xiàn),占整個(gè)評(píng)價(jià)的30%。
在課程整合中,合理的考核方案能促進(jìn)學(xué)生知識(shí)的積累,避免學(xué)生考前突擊和死記硬背現(xiàn)象,使學(xué)生真正學(xué)到知識(shí)。
關(guān)鍵詞:結(jié)構(gòu)化程序設(shè)計(jì);順序結(jié)構(gòu);選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu);算法
當(dāng)前,計(jì)算機(jī)技術(shù)飛速發(fā)展,程序設(shè)計(jì)技術(shù)已從結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)向面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)過渡,對(duì)一個(gè)規(guī)模較大的應(yīng)用程序,總體框架是由面向?qū)ο蟪绦蛟O(shè)計(jì)構(gòu)搭而成,而在局部實(shí)現(xiàn)時(shí)仍需采用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。C語言是一種很好的結(jié)構(gòu)化程序設(shè)計(jì)語言,因此,筆者論述了C中的的結(jié)構(gòu)化程序設(shè)計(jì)的方法。
結(jié)構(gòu)化程序設(shè)計(jì)(STRUCTURED PROGRAMING,簡(jiǎn)稱SP)的概念是由荷蘭學(xué)者E·W.DUKSTRA等人在20世紀(jì)60年代后期提出的,是以模塊化設(shè)計(jì)為中心,將原來較為復(fù)雜的問題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì),也就是將—個(gè)大的計(jì)算任務(wù)劃分為一個(gè)個(gè)比較小的任務(wù),這些小任務(wù)均由函數(shù)來完成。而函數(shù)既可以是C的標(biāo)準(zhǔn)庫函數(shù)。也可以是自定義函數(shù)。在C中,一個(gè)具備一定規(guī)模的C程序往往是由多個(gè)函數(shù)組成,其中必有一個(gè)名為main的主函數(shù),由main來調(diào)用其他函數(shù),必要的話,其他函數(shù)還可以調(diào)用另外的函數(shù)。同一函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用一次或多次。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)槲覀兛梢猿浞掷矛F(xiàn)有的模塊作積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的思想是一個(gè)程序的任何邏輯問題,均可用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這3種基本結(jié)構(gòu)來描述。順序結(jié)構(gòu)的程序流程是按語句的書寫順序依次執(zhí)行;選擇結(jié)構(gòu)是對(duì)給定條件進(jìn)行判斷,根據(jù)判斷結(jié)果決定執(zhí)行兩分支中的一個(gè)分支或多分支中的一個(gè)分支;循環(huán)結(jié)構(gòu)是在給定條件成立的情況下,反復(fù)執(zhí)行某個(gè)程序段。實(shí)現(xiàn)這些程序流程的語句都是流程控制語句。流程控制語句在程序設(shè)計(jì)中起著重要的作用,通過3種基本控制結(jié)構(gòu)使結(jié)構(gòu)化程序具有唯一的人口和出口,沒有死循環(huán),而且程序的靜態(tài)形式與動(dòng)態(tài)執(zhí)行形式之間具有良好的對(duì)應(yīng)關(guān)系。在C語言中,有4種語句是順序執(zhí)行的:①空語句,光有一個(gè)分號(hào)“;”作為語句結(jié)束符,它表示什么也不做。②表達(dá)式語句,表達(dá)式后面加一個(gè)分號(hào),表達(dá)式語句主要有賦值語句、自加減運(yùn)算符構(gòu)成的語句和逗號(hào)表達(dá)式語句。③函數(shù)調(diào)用語句,它是由一個(gè)函數(shù)調(diào)用加上一個(gè)分號(hào)組成的。④復(fù)合語句,由“{”和“}”把一些變量說明和語句組合放在一起,又稱為語句塊。選擇語句有if語句和switch語句。循環(huán)語句有for,while和do-while語句以及一些輔助流程轉(zhuǎn)向語句如continue,break,goto等。順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元,由這3種結(jié)構(gòu)經(jīng)過反復(fù)嵌套構(gòu)成的程序稱為結(jié)構(gòu)化程序,也就是說,結(jié)構(gòu)化程序是由上述3種基本結(jié)構(gòu)組成的。但如果在編程過程中無限制地使用轉(zhuǎn)移語句(goto),會(huì)使程序的控制流程強(qiáng)制性地向前或向后跳轉(zhuǎn)而導(dǎo)致程序的流程無序可循,結(jié)構(gòu)雜亂無章。結(jié)構(gòu)化構(gòu)造減少了程序的復(fù)雜性,提高了可靠性、可測(cè)試性和可維護(hù)性,使用少數(shù)的基本結(jié)構(gòu),就可使程序邏輯結(jié)構(gòu)清晰,易讀易懂,并且容易驗(yàn)證程序的正確性。對(duì)—個(gè)初學(xué)計(jì)算機(jī)語言的人來說。最重要的就是要有正確的程序流程概念,不僅要懂得而且要靈活應(yīng)用。由此可見,用結(jié)構(gòu)化方法設(shè)計(jì)的結(jié)構(gòu)是清晰的,有利于編寫出結(jié)構(gòu)良好的程序。因此。結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。將程序設(shè)計(jì)針對(duì)的問題進(jìn)行分解,直到分解到對(duì)應(yīng)于一個(gè)個(gè)功能更簡(jiǎn)單,又獨(dú)立的模塊,每個(gè)模塊再分解到上述3種基本程序結(jié)構(gòu)。
結(jié)構(gòu)程序化設(shè)計(jì)方法如下:
結(jié)構(gòu)化程序設(shè)計(jì)方法是按照模塊劃分原則以提高程序可讀性和易維護(hù)性、可調(diào)性和可擴(kuò)充性為目標(biāo)的一種程序設(shè)計(jì)方法。在結(jié)構(gòu)化的程序設(shè)計(jì)中,只允許三種基本的程序結(jié)構(gòu)形式,它們是順序結(jié)構(gòu)、分支結(jié)構(gòu)、(包括多分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu),這三種基本結(jié)構(gòu)的共同特點(diǎn)是只允許有一個(gè)流動(dòng)入口和一個(gè)出口,僅有這三種基本結(jié)構(gòu)組成的程序稱為結(jié)構(gòu)化程序。結(jié)構(gòu)化程序設(shè)計(jì)適用于程序規(guī)模較大的情況,對(duì)于規(guī)模較小程序也可采用非結(jié)構(gòu)化程序設(shè)計(jì)方法。
(來源:文章屋網(wǎng) )
關(guān)鍵詞: 高級(jí)語言程序設(shè)計(jì) 流程圖 控件 子程序 參數(shù)傳遞
一方面中職學(xué)生在初中階段基礎(chǔ)較差,另一方面對(duì)于高級(jí)語言程序設(shè)計(jì)的教學(xué)不同教材編寫者有不同的思路,為了適應(yīng)中職學(xué)生的學(xué)習(xí),在教學(xué)中如何更便于學(xué)生掌握高級(jí)語言程序設(shè)計(jì),我在長(zhǎng)期從事高級(jí)語言程序設(shè)計(jì)教學(xué)的過程中摸索出一套針對(duì)中職學(xué)生教學(xué)的組織教材的思路,下面就以Visual Basic語言為教學(xué)背景談?wù)劷滩慕M織,請(qǐng)同行予以批評(píng)指正。
首先,讓學(xué)生熟悉所學(xué)的高級(jí)語言程序設(shè)計(jì)的程序結(jié)構(gòu)。不同的高級(jí)語言的程序結(jié)構(gòu)的描述過程是不同的,以Visual Basic語言為例,它的程序結(jié)構(gòu)大至如下:
End Sub
因此,讓學(xué)生熟悉上述的結(jié)構(gòu)描述方法,讓它像模板一樣印在學(xué)生的腦袋中,對(duì)于學(xué)生對(duì)該語言的編寫格式的直觀認(rèn)識(shí)及后續(xù)的學(xué)習(xí)會(huì)起到良好的作用,同時(shí)也會(huì)為后續(xù)學(xué)習(xí)數(shù)據(jù)類型、運(yùn)算符、表達(dá)式和常用函數(shù)的上機(jī)調(diào)試掃除障礙。
其次,讓學(xué)生熟悉所學(xué)的高級(jí)語言程序設(shè)計(jì)上機(jī)的調(diào)試環(huán)境和掌握基本的調(diào)試步驟。對(duì)于程序設(shè)計(jì)的最終結(jié)果是否正確,上機(jī)調(diào)試是必過的一關(guān),不同的高級(jí)語言程序上機(jī)的調(diào)試環(huán)境是不同的,有的調(diào)試環(huán)境功能單一,有的調(diào)試環(huán)境功能很多,我認(rèn)為首先掌握基本的調(diào)試功能,再根據(jù)需要逐步介紹和掌握調(diào)試環(huán)境所提供的其他功能,這樣更有利于學(xué)生學(xué)習(xí)。以Visual Basic語言為例,我們要求學(xué)生首先掌握以下幾個(gè)技能:建立一個(gè)新的工程,打開代碼編寫環(huán)境,保存一個(gè)工程,打開已有的工程,知道運(yùn)行程序,自如查看運(yùn)行的結(jié)果,并從運(yùn)行結(jié)果中返回并重新修改程序。至于Visual Basic語言集成開發(fā)環(huán)境中所具有的其他功能,則根據(jù)具體調(diào)試演示時(shí)的需要零散分開,并個(gè)別介紹,這樣學(xué)生將掌握得較好。
再次,讓學(xué)生掌握程序的基本輸入、輸出語句或函數(shù)的功能及用法。程序要進(jìn)行調(diào)試就要有各種各樣測(cè)試的數(shù)據(jù)及根據(jù)測(cè)試數(shù)據(jù)運(yùn)行后顯示出的測(cè)試結(jié)果,以驗(yàn)證所編寫程序是否正確,這就要求掌握基本的輸入輸出語句的用法。在Visual Basic語言中,inputbox()函數(shù)和print語句的用法就是必須掌握的。通過以上,學(xué)生掌握了程序設(shè)計(jì)的基本“骨架”,以及輸入輸出語句的用法,就可以進(jìn)行最簡(jiǎn)單的順序結(jié)構(gòu)程序的設(shè)計(jì)了,從而在較短的時(shí)間里體驗(yàn)到成就感,為后繼學(xué)習(xí)樹立信心。
另外,在講解順序結(jié)構(gòu)程序設(shè)計(jì)的過程中就要開始逐步地把流程圖的識(shí)讀及使用方法教授給學(xué)生。流程圖能直觀地表示整個(gè)程序設(shè)計(jì)的流程, 程序的編寫只是對(duì)流程圖的一種語句的細(xì)化過程,因此看懂流程圖既方便程序設(shè)計(jì)的講解,又便于學(xué)生在課后通過流程圖了解程序設(shè)計(jì)的思路進(jìn)行復(fù)習(xí)或思考,從而避免由于對(duì)識(shí)讀程序的困難造成理解上的不便。我曾試圖讓學(xué)生沒看流程圖而直接通過程序語句來理解程序設(shè)計(jì)思路,與讓學(xué)生通過流程圖來理解程序設(shè)計(jì)的思路相比,顯然前一種方式對(duì)學(xué)生來說要困難得多,而且時(shí)間長(zhǎng)了就很難再理解,而通過流程圖顯然更容易,即使時(shí)間久了重新識(shí)讀起來也相當(dāng)容易。
不要把控件的功能及屬性單獨(dú)介紹。以Visual Basic語言為例,很多教材都是以順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、常用控件的順序來組織教學(xué),我認(rèn)為這樣讓學(xué)生感到很枯燥。因?yàn)楹芏鄬?shí)例在內(nèi)容上涉及許多數(shù)學(xué)的知識(shí),而學(xué)生本來數(shù)學(xué)基礎(chǔ)就很差,這樣學(xué)生厭學(xué)的情緒會(huì)增加,既不利于教學(xué),又不利于學(xué)生學(xué)習(xí)。因此在教學(xué)中應(yīng)把后面要掌握的控件分別有意識(shí)地穿插在順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)課堂的實(shí)例中,讓學(xué)生生動(dòng)地用各種控件結(jié)合順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序?qū)嵗齺韺W(xué)習(xí)程序設(shè)計(jì)。一方面,學(xué)生不僅有濃厚的興趣而且很容易體驗(yàn)到成功的喜悅,另一方面又聯(lián)系緊密、節(jié)省課時(shí)。當(dāng)然這樣穿插教學(xué),程序樣例的選擇就非常關(guān)鍵,每個(gè)樣例都要精挑細(xì)選,每節(jié)新課牽涉到的控件以1~2個(gè)為宜,否則控件太多的話就會(huì)造成課堂時(shí)間不足,學(xué)生掌握得也不好。
最后就是子程序與參數(shù)的傳遞要放在該門課程快結(jié)束時(shí)再介紹。這部分內(nèi)容對(duì)學(xué)生來說相對(duì)較難,特別是參數(shù)傳遞,若在學(xué)生還未掌握好程序設(shè)計(jì)或程序設(shè)計(jì)還不熟練時(shí)就介紹,學(xué)生就會(huì)思路混亂,從而增加學(xué)習(xí)難度。若學(xué)生都已經(jīng)能熟練地進(jìn)行程序設(shè)計(jì),在此基礎(chǔ)上再進(jìn)一步地增加子程序與參數(shù)的傳遞的知識(shí),就會(huì)錦上添花,學(xué)生和老師都會(huì)有事半功倍的體驗(yàn)。
當(dāng)然,對(duì)于教材中的其他內(nèi)容,則基本上根據(jù)教材編寫的既定內(nèi)容進(jìn)行講授。以上是我在高級(jí)語言程序設(shè)計(jì)教學(xué)中的體會(huì),至于是否適應(yīng)其他老師的課堂教學(xué)要求,還要在實(shí)際教學(xué)中進(jìn)一步探討。
參考文獻(xiàn):
關(guān)鍵詞:面向過程;面向?qū)ο?;泛型;軟件工程;程序設(shè)計(jì)方法
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)02-0333-02
Comparison of Program Design Method in Software Engineering
CHEN Rong, CHEN Feng
(Department of Information Engineering, Tibet University for Nationalities, Xianyang 712082, China)
Abstract: In the field of software engineering, has appeared three kinds of program design method, they are process-oriented program? ming method, object-oriented programming method and generic programming method. This paper analyzed and compared three kinds of program design methods deeply.
Key words: process-oriented; object-oriented; generic; software engineering; programming method
20世紀(jì)60年代中期,隨著軟件系統(tǒng)的規(guī)模和復(fù)雜程度的不斷增加,軟件可靠性問題也不斷突出,出現(xiàn)了“軟件危機(jī)”。1968年,正式提示“軟件工程”一詞,并形成一門新的工程學(xué)科[1]。在軟件工程領(lǐng)域,先后出現(xiàn)了三種程序設(shè)計(jì)方法,分別是面向過程的程序設(shè)計(jì)、面向?qū)ο蟮某绦蛟O(shè)計(jì)和泛型程序設(shè)計(jì)。
本文對(duì)三類方法――面向過程程序設(shè)計(jì)方法、面向?qū)ο蟪绦蛟O(shè)計(jì)方法、泛型程序設(shè)計(jì)方法,進(jìn)行了深入分析和比較。
1面向過程、面向?qū)ο?、泛型概?/p>
20世紀(jì)70年代,面向過程的程序設(shè)計(jì)方法(也稱結(jié)構(gòu)化方法)出現(xiàn)并在早期的軟件工程領(lǐng)域占用主導(dǎo)地位。面向過程采用是自頂向下、逐步求精、模塊化等設(shè)計(jì)原則,將軟件系統(tǒng)分解為若干可獨(dú)立的子模塊。各個(gè)模塊完成后組合起來,成為一個(gè)最終的軟件系統(tǒng)。隨著軟件工程的發(fā)展,出現(xiàn)了軟件生產(chǎn)率低、軟件維護(hù)困難等難以解決的問題[1]。
20世紀(jì)80年代,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法應(yīng)運(yùn)而生,它解決了面向過程的程序設(shè)計(jì)方法的缺點(diǎn),提高了軟件的生產(chǎn)率和方便軟件的維護(hù)?,F(xiàn)在已成為目前主流的程序設(shè)計(jì)方法。面向?qū)ο髮④浖到y(tǒng)分解成一個(gè)個(gè)的對(duì)象,每個(gè)對(duì)象都是通過對(duì)現(xiàn)實(shí)世界的分析、理解而得出的。面向?qū)ο蟾咏谌祟愓J(rèn)知世界的方式,并通過以類和繼承為構(gòu)造機(jī)制將現(xiàn)實(shí)世界構(gòu)建成對(duì)應(yīng)的軟件系統(tǒng)。對(duì)于面向?qū)ο笠恍╇y以克服的缺點(diǎn),如它不能將所有關(guān)系都用繼承來實(shí)現(xiàn),抽象程度不夠高,通用性不足等問題,提出了泛型程序設(shè)計(jì)[2-3]。
近年來,泛型程序設(shè)計(jì)出現(xiàn)并發(fā)展。泛型的特點(diǎn)是抽象程度很高,將程序?qū)懙帽M可能通用,可適合多種數(shù)據(jù)類型的操作,同時(shí)不損失效率。泛型程序設(shè)計(jì)的過程是發(fā)現(xiàn)類型需求、分析類型需求之間的關(guān)系,并運(yùn)用這種類型需求關(guān)系實(shí)現(xiàn)軟件系統(tǒng)的結(jié)構(gòu)和邏輯[2]。
2面向過程、面向?qū)ο?、泛型的比較
面向過程程序設(shè)計(jì)以模塊為中心,采用自頂向下、逐步求精的開發(fā)方法,將軟件系統(tǒng)分解為若干可獨(dú)立的子模塊,這些模塊形成樹狀結(jié)構(gòu),表現(xiàn)了各個(gè)模塊相互調(diào)用的關(guān)系;每一個(gè)模塊內(nèi)部均由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。各個(gè)模塊完成后組合起來,成為一個(gè)最終的軟件系統(tǒng)。面向過程注重實(shí)現(xiàn)過程的順序,它的抽象層次低,實(shí)現(xiàn)簡(jiǎn)單。它適合解決簡(jiǎn)單問題和小規(guī)模的問題。
面向?qū)ο蟪绦蛟O(shè)計(jì)以對(duì)象為中心,將軟件系統(tǒng)分解成一個(gè)個(gè)的對(duì)象,把屬性和這組屬性上的專用操作進(jìn)行封裝放在一起作為一個(gè)對(duì)象,以類和繼承為構(gòu)造機(jī)制將客觀世界構(gòu)建成軟件系統(tǒng)。同一個(gè)對(duì)象間通過消息傳遞來實(shí)現(xiàn)服務(wù)的請(qǐng)求。和面向過程相比,面向?qū)ο笫褂脤?duì)象分解取代了傳統(tǒng)的功能分解。面向?qū)ο蟮奶卣魇欠庋b(將數(shù)據(jù)和代碼放到對(duì)象里面,從對(duì)象外部不能直接訪問或修改數(shù)據(jù)和代碼)、繼承(從父類直接獲得的屬性和操作,可重新定義)、多態(tài)(父對(duì)象定義的一個(gè)方法,允許子對(duì)象以適合自己的方式去實(shí)現(xiàn)消息)等。面向?qū)ο笞⒅貙?duì)象的分析和設(shè)計(jì),它的抽象層次高,實(shí)現(xiàn)復(fù)雜。它適用于復(fù)雜問題,特別是對(duì)象間形成層 次關(guān)系的問題。
泛型程序設(shè)計(jì)以類型需求為中心,將程序?qū)懙帽M可能通用,可適合多種數(shù)據(jù)類型的操作,同時(shí)不損失效率。泛型程序設(shè)計(jì)的過程是發(fā)現(xiàn)類型需求、分析類型需求之間的關(guān)系,并運(yùn)用這種類型需求關(guān)系實(shí)現(xiàn)軟件系統(tǒng)結(jié)構(gòu)和邏輯的過程。泛型設(shè)計(jì)的目標(biāo)是將算法從對(duì)象的行為中分離出來,做到算法的設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)無關(guān),從而實(shí)現(xiàn)軟件的復(fù)用。它通過將數(shù)據(jù)結(jié)構(gòu)與算法之間的強(qiáng)禍合關(guān)系削弱為弱禍合關(guān)系,來實(shí)現(xiàn)軟件的復(fù)用。它有三個(gè)重要概念:概念、模型、強(qiáng)化[2],概念是與具體數(shù)據(jù)類型無關(guān)的一組定義,支持?jǐn)?shù)據(jù)類型的操作。模型是當(dāng)某數(shù)據(jù)類型使用此概念時(shí),稱為此概念的一個(gè)模型。如果某個(gè)概念擁有了其他一個(gè)或概念的所有功能,稱為這個(gè)概念是其他一個(gè)或多個(gè)概念的強(qiáng)化。泛型注重軟件的高度抽象和通用性,因而實(shí)現(xiàn)很復(fù)雜。它適用于很復(fù)雜問題,特別是需要高度抽象和通用性的問題。
同時(shí),三類程序設(shè)計(jì)方法在安全性和可靠性方面都是安全和可靠的。表1給出三類程序方法的比較。
表1三類程序設(shè)計(jì)方法的比較
通過上面的分析,我們得出,三種方法各有其優(yōu)點(diǎn)。對(duì)于簡(jiǎn)單的、小規(guī)模的問題域,面向過程的程序設(shè)計(jì)是最合適的;對(duì)于繼承和行為多態(tài)起主要作用的應(yīng)用域,面向?qū)ο蟮某绦蛟O(shè)計(jì)是最合適的;而對(duì)于那些需要解決一類相似需求的應(yīng)用域,泛型程序設(shè)計(jì)是最合適的。
3結(jié)束語
軟件工程為研究和克服“軟件危機(jī)”而出現(xiàn),在軟件工程領(lǐng)域的程序設(shè)計(jì)方法方面,先后出現(xiàn)了三種程序設(shè)計(jì)方法,面向過程的程序設(shè)計(jì)、面向?qū)ο蟮某绦蛟O(shè)計(jì)和泛型程序設(shè)計(jì)。本文對(duì)三類方法――面向過程程序設(shè)計(jì)方法、面向?qū)ο蟪绦蛟O(shè)計(jì)方法、泛型程序設(shè)計(jì)方法,進(jìn)行了深入分析和比較。三種方法各有其特點(diǎn),如果能將三種方法的優(yōu)點(diǎn)結(jié)合,將會(huì)更好地解決軟件開發(fā)領(lǐng)域的實(shí)際問題。
參考文獻(xiàn):
[1]李惠明,敖廣武.軟件工程[M].沈陽:東北大學(xué)出版社,2010.
流程圖
一般來講,流程圖是由一些圖形框和流程線組成的,其中圖形框表示各種操作的類型,圖形框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。流程圖有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。程序的靈魂是算法,而流程圖是一種很好的算法表示方法,它的特點(diǎn)是結(jié)構(gòu)清晰、直觀,且容易學(xué)習(xí)和掌握。
表 標(biāo)準(zhǔn)流程圖符號(hào)
流程圖是程序設(shè)計(jì)中最基本、最重要的分析技術(shù)(或稱為診斷工具),它是程序分析過程中最基本的工具,可以使學(xué)生分析出知識(shí)的結(jié)構(gòu)、幫助學(xué)生理解知識(shí)間的相互關(guān)系。除此之外,流程圖在程序設(shè)計(jì)教學(xué)中還具有如下功能。
1. 流程圖作為一種教的技能,已經(jīng)被許多教師掌握和應(yīng)用,并取得了很好的效果。
2. 流程圖作為一種教的策略,能有效地改變學(xué)生對(duì)程序設(shè)計(jì)算法的認(rèn)知方式,切實(shí)提高教師的教學(xué)效果。
3. 流程圖作為一種學(xué)習(xí)的策略,能促進(jìn)學(xué)生合作學(xué)習(xí)和創(chuàng)造性學(xué)習(xí),最終使學(xué)生學(xué)會(huì)學(xué)習(xí)。
流程圖在教學(xué)中的應(yīng)用
教師備課
教師在備課過程中,習(xí)慣采用書面語言的方式撰寫教案,如果遇到較復(fù)雜的教學(xué)問題,多數(shù)情況下都要制作教學(xué)課件。自從將流程圖引入到小學(xué)信息技術(shù)課上進(jìn)行嘗試以來,教師們清楚地發(fā)現(xiàn),采用流程圖的方式繪制教學(xué)過程其實(shí)就是教師備課的全過程。在這個(gè)過程中,教師通過規(guī)劃、分析、繪制流程圖,可以非常清晰地了解到本節(jié)課教學(xué)內(nèi)容、各個(gè)環(huán)節(jié)之間的邏輯關(guān)系,在教學(xué)中應(yīng)該考慮的問題可以在繪制流程圖的過程中全部呈現(xiàn)出來。
問題直觀分析
課堂上,對(duì)于較復(fù)雜問題的研究,教師通過流程圖的方式呈現(xiàn)知識(shí)要點(diǎn),使學(xué)生非常形象、直觀地看到每一條語句之間的邏輯關(guān)系,這樣比教師以條目的形式呈現(xiàn)給學(xué)生更加便于學(xué)生記憶式的學(xué)習(xí)。此外,課堂上還可以利用流程圖,將學(xué)生表述出來的想法和思路記錄下來以編寫程序,有效地激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,提高學(xué)生邏輯思維能力。
學(xué)生動(dòng)手實(shí)踐
在教學(xué)中,經(jīng)常需要學(xué)生進(jìn)行一些創(chuàng)作,而教師往往會(huì)抱怨學(xué)生只有簡(jiǎn)單的模仿卻不會(huì)獨(dú)立創(chuàng)作。而在引入流程圖以后,學(xué)生對(duì)創(chuàng)作感覺豁然開朗,同時(shí)流程圖可以讓學(xué)生對(duì)一個(gè)程序進(jìn)行分析,以達(dá)到比較嚴(yán)謹(jǐn)?shù)乃季S方式。
例如,在教學(xué)“利用VB編寫登錄密碼程序”時(shí),采取如下教學(xué)過程。
師:我們先一起看程序?qū)崿F(xiàn)的過程,并用流程圖的方法進(jìn)行分析。觀察流程圖,想一想今天我們編寫的程序的執(zhí)行過程和以往學(xué)習(xí)機(jī)器人編程有哪些相同之處?誰能試著邊分析邊把這個(gè)流程圖轉(zhuǎn)換成今天的程序流程圖?
圖 流程圖示例
這節(jié)課是選擇結(jié)構(gòu)程序編程的基礎(chǔ)課,通過具體的流程圖例子,講解如何正確使用選擇結(jié)構(gòu)語句,來引導(dǎo)學(xué)生理解VB選擇結(jié)構(gòu)以及程序設(shè)計(jì)思想,逐步了解VB編程基本方法和步驟。通過分析程序流程圖,引出選擇結(jié)構(gòu),學(xué)生編寫程序,利用程序編寫帶出“用選擇結(jié)構(gòu)解決問題”這一教學(xué)重點(diǎn)。在師生共同分析下,將機(jī)器人程序進(jìn)行遷移,探究討論和上機(jī)實(shí)踐,提高學(xué)生的學(xué)習(xí)興趣,運(yùn)用流程圖解決了教學(xué)重點(diǎn)與難點(diǎn)。
流程圖教學(xué)所引發(fā)的一些思考
流程圖不可能包羅萬象,也不必包羅萬象。我們不能要求所有教學(xué)都要用流程圖描述,否則就犯了教條主義錯(cuò)誤,就會(huì)滑向繁瑣哲學(xué)的陷阱。我們要明確,流程圖是把復(fù)雜的事情簡(jiǎn)單化,把簡(jiǎn)單的事情規(guī)范化。
在程序設(shè)計(jì)教學(xué)中發(fā)現(xiàn)這樣一種現(xiàn)象:很多學(xué)生表面上對(duì)信息技術(shù)課非常感興趣,到計(jì)算機(jī)教室上課的熱情很高,但一到學(xué)習(xí)程序設(shè)計(jì)時(shí),卻發(fā)現(xiàn)很難激發(fā)他們的興趣,有的學(xué)生甚至覺得學(xué)習(xí)程序設(shè)計(jì)是一種負(fù)擔(dān),學(xué)習(xí)上缺乏主動(dòng)性。分析其原因,我們認(rèn)為主要有以下三方面。
一是很多學(xué)生之所以對(duì)計(jì)算機(jī)感興趣,是因?yàn)樗麄儫嶂杂谏暇W(wǎng)、聊天、游戲等電腦娛樂,而對(duì)于程序設(shè)計(jì),他們認(rèn)為要學(xué)好這個(gè)模塊很困難,缺乏自信心。
二是程序設(shè)計(jì)本身比較枯燥、嚴(yán)謹(jǐn),較難理解,學(xué)習(xí)本模塊對(duì)邏輯思維有一定的要求,要求學(xué)生的注意力非常集中。
三是很多學(xué)生認(rèn)為程序設(shè)計(jì)沒有實(shí)際用途,所以漸漸對(duì)教師教授的內(nèi)容失去了興趣,學(xué)習(xí)也變成被教師“牽著鼻子走”。因此,激發(fā)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生樹立信心,使其順利進(jìn)入程序設(shè)計(jì)的學(xué)習(xí),是至關(guān)重要的。
通過分析,我們認(rèn)為教師應(yīng)做到如下幾點(diǎn)。
首先,在開始學(xué)習(xí)程序設(shè)計(jì)內(nèi)容時(shí),向?qū)W生展示往屆同學(xué)創(chuàng)作的一些經(jīng)典范例,請(qǐng)他們?cè)囉?,并就界面設(shè)計(jì)是否美觀、功能設(shè)計(jì)是否合理等方面提出自己的看法,激發(fā)他們的求知欲,樹立學(xué)習(xí)程序設(shè)計(jì)的自信心。在以后教學(xué)中,注意選擇學(xué)生學(xué)習(xí)與生活中熟悉的實(shí)例作為學(xué)習(xí)活動(dòng)的例子,使學(xué)生感到親切,有利于學(xué)生順利進(jìn)入課程的學(xué)習(xí)。
其次,在教學(xué)中,考慮學(xué)生身心發(fā)展及心理年齡特點(diǎn),利用一些學(xué)生生活中熟悉的例子進(jìn)行對(duì)比,結(jié)合流程圖輔助學(xué)生理解難點(diǎn)知識(shí)。如選擇結(jié)構(gòu)的問題,可以將選擇過程比作教師的批改作業(yè)過程,對(duì)就畫勾,錯(cuò)就畫叉。通過這一類對(duì)比,學(xué)生很快就可以寫出正確的代碼。這樣不僅可以幫助學(xué)生理解算法,同時(shí)可以減少他們對(duì)程序設(shè)計(jì)的畏懼感,激發(fā)他們的學(xué)習(xí)興趣。
再次,在教學(xué)中要注意引導(dǎo)學(xué)生利用所學(xué)的知識(shí)去解決學(xué)習(xí)與生活中的實(shí)際問題,使學(xué)生有一種成就感,如指導(dǎo)學(xué)生制作電腦登錄密碼窗口等。
關(guān)鍵詞: 《C語言程序設(shè)計(jì)》 程序案例 計(jì)算思維 流程圖
1.引言
《C語言程序設(shè)計(jì)》課程的實(shí)踐性是很強(qiáng)的,理論聯(lián)系實(shí)際是這門課的特點(diǎn),怎樣利用所學(xué)理論知識(shí)解決實(shí)際問題是學(xué)習(xí)這門課的重點(diǎn),也是難點(diǎn)。多年的教學(xué)實(shí)踐表明,在教學(xué)過程中使用計(jì)算思維的方法解決問題,對(duì)培養(yǎng)學(xué)生的綜合應(yīng)用能力是有益的,通過使用流程圖描述算法,學(xué)生將更好地理解和掌握結(jié)構(gòu)化程序設(shè)計(jì)方法。
2.教學(xué)中充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性
學(xué)生只有對(duì)C語言程序有濃厚的興趣,才會(huì)積極和創(chuàng)造性地學(xué)習(xí)??蓮囊韵聨讉€(gè)方面探討:
(1)強(qiáng)調(diào)學(xué)生學(xué)習(xí)C語言的重要性。突出教學(xué)重點(diǎn),使學(xué)生明確學(xué)習(xí)任務(wù)。在首次課堂教學(xué)中,教師一定要向?qū)W生講解清楚C語言課程的教學(xué)目標(biāo)(為什么學(xué)習(xí)編程或程序設(shè)計(jì))。對(duì)于C語言程序設(shè)計(jì)課程的教學(xué)目標(biāo),可有如下三方面的講解,學(xué)習(xí)基本的編程知識(shí)、培養(yǎng)求解問題的能力和具備一定的創(chuàng)新素質(zhì)。知識(shí)的傳授和學(xué)習(xí)應(yīng)融入問題求解中;問題求解能力是創(chuàng)新的基礎(chǔ)。
(2)結(jié)合《C語言全國(guó)計(jì)算機(jī)等級(jí)考試》的試題庫進(jìn)行教學(xué),學(xué)生學(xué)習(xí)起來更有動(dòng)力。試題庫包括筆試試題庫和上機(jī)試題庫。試題庫按章節(jié)分類,題目類型以程序設(shè)計(jì)為主。筆試題型有單項(xiàng)選擇、程序分析、程序填空、程序改錯(cuò)和程序設(shè)計(jì),上機(jī)題型有程序改錯(cuò)、程序填空和程序設(shè)計(jì)。
(3)利用Visual c++6.0工具進(jìn)行C語言程序教學(xué),培養(yǎng)學(xué)生的學(xué)習(xí)興趣。VC是一種基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境,是廣泛使用的一種開發(fā)工具。VC程序的兩種模式是WINAPI方式和MFC方式。應(yīng)用這兩種模式能夠有效提高教學(xué)質(zhì)量,激發(fā)學(xué)生的學(xué)習(xí)興趣。
3.教學(xué)內(nèi)容的設(shè)置
上課內(nèi)容安排不盡合理,對(duì)于實(shí)踐教學(xué)環(huán)節(jié)重視不夠,難以提高學(xué)生的積極性。教師應(yīng)理論聯(lián)系實(shí)際,注重編程實(shí)現(xiàn)的示范性,讓學(xué)生清楚地看到教師編寫代碼和程序調(diào)試的過程和運(yùn)行結(jié)果。上課安排內(nèi)容應(yīng)包括兩部分:一部分為學(xué)習(xí)基本知識(shí),對(duì)基礎(chǔ)知識(shí)的理解和掌握。另一部分是理論聯(lián)系實(shí)際,對(duì)實(shí)際案例問題的分析引導(dǎo)學(xué)生,并且案例留有思考空間,使學(xué)生舉一反三,培養(yǎng)學(xué)生創(chuàng)造性思考的能力。比如在第一次課告訴學(xué)生C語言的十四種語句,既讓學(xué)生對(duì)C語言有全面的認(rèn)識(shí),又消除學(xué)生對(duì)C語言的畏難情緒。C語言的語句概括起來只有十四種,即定義變量語句、賦值語句、返回語句、函數(shù)聲明語句、函數(shù)調(diào)用語句、分支(選擇)語句(共三種分支語句)、循環(huán)語句(共三種循環(huán)語句)、break語句、Conitnue語句和復(fù)合語句。所有的C程序,都是由其中的某些語句組成的。在具體介紹這些語句的時(shí)候,一定要完整清楚地列出各種語句的語法格式。以后講C程序的時(shí)候,會(huì)提問學(xué)生這個(gè)程序中包含哪些C語句,學(xué)生比較容易看明白C程序的語句組成,幫助學(xué)生很快讀懂程序,有利于改正學(xué)生編寫程序時(shí)的常見語法錯(cuò)誤。
4.實(shí)驗(yàn)指導(dǎo)書建設(shè)
學(xué)習(xí)C語言的很多學(xué)生都認(rèn)為概念易懂,程序難寫,其實(shí)主要是缺乏足夠的實(shí)踐和練習(xí)。依據(jù)主教材結(jié)構(gòu)和實(shí)際需要,上機(jī)課結(jié)合課本《C語言程序設(shè)計(jì)上機(jī)指導(dǎo)》進(jìn)行相關(guān)和有趣的案例的程序運(yùn)行。學(xué)生分析算法、畫出流程圖到寫出程序,并親自運(yùn)行出結(jié)果,會(huì)給學(xué)生很大的成就感。要將計(jì)算思維的方法應(yīng)用到程序設(shè)計(jì),設(shè)計(jì)各種算法以實(shí)現(xiàn)功能,并拓寬思路,掌握C語言的概念和編程方法。
5.案例設(shè)計(jì)與計(jì)算思維相結(jié)合
學(xué)習(xí)C語言,目的不是僅僅懂得一門程序設(shè)計(jì)語言,更重要的是讓學(xué)生的編程思維得到鍛煉和提高。C語言學(xué)習(xí)分成以下三個(gè)循序漸進(jìn)的部分:第一部分是入門,主要介紹C語言程序的基本結(jié)構(gòu)、數(shù)據(jù)的表達(dá)方式、基本表達(dá)式語句、C語言程序的運(yùn)行方式等。這部分可以設(shè)計(jì)由簡(jiǎn)單表達(dá)式語句組成的按順序執(zhí)行的程序。第二部分是程序的基本結(jié)構(gòu),主要介紹程序設(shè)計(jì)的簡(jiǎn)單算法表示方法,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這部分能用計(jì)算思維的方法,設(shè)計(jì)簡(jiǎn)單的算法,根據(jù)算法編寫程序,掌握思考問題和解決問題的方法。第三部分是程序設(shè)計(jì)方法和手段的提高,主要介紹程序的模塊化實(shí)現(xiàn)方法和更多的程序設(shè)計(jì)方法。這部分能采用計(jì)算思維的方式掌握模塊化的程序設(shè)計(jì)方法,對(duì)問題進(jìn)行分解,靈活地使用指針、結(jié)構(gòu)、文件、位運(yùn)算等方法編寫程序。
6.案例設(shè)計(jì)實(shí)例
編寫程序計(jì)算學(xué)生年齡的遞歸函數(shù):已知第一位學(xué)生年齡最小為10歲,其余學(xué)生一個(gè)比一個(gè)大2歲,求第5位學(xué)生的年齡。分析得到的遞歸公式如下:
age=10(n=1)age(n-1)+2(n>1)
在遞歸公式中,使用數(shù)字1為回歸的條件,使用IFELSE語句決定是遞推還是回歸。
根據(jù)問題得出流程圖和程序?yàn)椋?/p>
只有寫出遞歸算法的數(shù)學(xué)公式,才能編寫出遞歸函數(shù),從而很容易根據(jù)遞歸問題描述寫出遞歸公式,進(jìn)而寫出遞歸程序。
7.結(jié)語
“基于問題求解的C語言”教學(xué)模式,隨著我國(guó)計(jì)算機(jī)技術(shù)的應(yīng)用和發(fā)展,為了適應(yīng)社會(huì)的需求,培養(yǎng)學(xué)生解決問題的能力,增強(qiáng)學(xué)生自主能動(dòng)性和動(dòng)手操作能力,讓學(xué)生成為社會(huì)的技能型人才,都是有益的。實(shí)踐證明,借助流程圖表達(dá)算法,能讓學(xué)生更好地理解結(jié)構(gòu)化程序設(shè)計(jì)的思想,更好地掌握C程序設(shè)計(jì)的核心方法。
參考文獻(xiàn):
[1]李麗娟.C語言程序設(shè)計(jì)教程實(shí)驗(yàn)指導(dǎo)與習(xí)題解答[M].北京:人民郵電出版社,2013.
[2]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1999.
[3]魏書堤,趙輝煌,鄧紅衛(wèi).基于計(jì)算思維的C語言教學(xué)案例設(shè)計(jì)[J].當(dāng)代教育理論與實(shí)踐,2014(3).
[4]但志平,汪東,王安慧,任小燕.地方高校C語言教學(xué)改革的探討與分析[J].教育教學(xué)論壇,2014.5.