C語言求助

2022-11-18 23:26:11 字數 4788 閱讀 3594

1樓:獨曼琳琅

(一)「專案驅動」式教學

目前最著名、最有影響、應用最廣泛的windows、linux和unix三個作業系統都是用c語言編寫的。0s是計算機系統(由軟硬體兩個子系統構成)的核心和靈魂,它是軟體中最龐大最複雜的系統軟體。既然如此龐大複雜的0s都可以用c語言編寫,從狹義而言,還有什麼系統軟體和應用軟體不能用c語言編寫呢?

由此可以肯定的說,c語言是一門十分優秀而又重要的語言。

c語言程式設計是過程性程式設計語言,它的發展貫穿了計算機發展的歷程,它蘊含了程式設計的基本思想,囊括了程式設計的基本概念,所以它是理工科高等院校的一門基礎課程。

從市面上有關c語言的書籍和高等院校採用的教材來看,它們有一個共性,那就是:脫離了實際應用(全是小打小鬧的小例子),純粹的過程性程式設計,沒有軟體工程思想的體現,沒有一定程式設計風格,僅僅是為了讓大家明白什麼是c語言而已。

高等院校開設c語言程式設計的目的是讓學生對程式設計有個入門,有個直觀的理解,同時為其他後續課程作鋪墊。但是如果教學僅僅以此為目的,那麼教學本身就效果而言是個大大的失敗。

大家知道,在商業上講究唯利是圖,「利」是商業追求的目標,離開了「利」經商,則商無動力,其結果是必敗無疑。在c語言程式設計教學當中,教師應該把「唯用是圖」作為教學的首要目標。如果拋開了實際應用進行程式設計教學,就是紙上談兵,就是「說明書」式的教學。

印度的程式設計課程採用「事件驅動式

教學,我認為在中國的c語言程式設計教學中應該採用「專案驅動式」教學。「專案驅動式」教學就是以專案為目的,以c語言理論教學為過程,最終能用c語言設計專案,實現專案的要求。「專案驅動式」教學的關鍵在於培養學生「如何做什麼」和「可以幹什麼」。

一個專案就是一個工程,在「專案驅動式」教學中,首先應該讓學生簡單瞭解什麼是軟體工程思想,其次在c語言理論教學過程中,讓學生懂得物件導向的程式設計的風格,最後引導他們來設計專案。

(二)「專案驅動」式教學應注意的問題

1.c語言程式設計教學要幫助學生樹立面向工程的觀點

在計算機行業中,軟體是通過人們的智力活動、把知識與技術轉化成資訊的一種產品。軟體的設計已經用工程的觀念來進行管理。軟體設計工作被當作一項系統工程來對待。

軟體的的生存週期一般可分為以下階段:問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、執行與維護。我們不難看出軟體工程的複雜程度是很大的。

理工科高等院校把c語言作為一門基礎課程,也是為了給社會培養資訊科技人才。眾所周知,養成一個好的習慣是非常重要的,所以c語言程式設計作為大多數工科院校學生接觸的第一門程式設計語言(有的院校講pascal),就應該讓學生樹立正確的觀點。那麼當前的程式設計教學也必須以切合將來軟體工程開發的實際需要為第一目標,使學生在學習程式設計的初級階段就樹立正確的軟體工程觀點。

這樣做不僅可以為學生將來從事計算機應用設計打下良好的基礎,而且有利於培養學生分析問題的完備性,以及統籌全域性,協調關係的基本素質。

2.理論教學應從單一的「結構化程式設計」向「結構化與物件導向並舉」轉變

「結構化程式設計」方法是程式設計的基礎,必須讓學生掌握得堅實可靠。結構化程式設計的過程是培養學生思維能力的過程,在教學中經常發現有些學生的思維混亂。這些都是缺乏思維訓練的結果。

結構化程式設計的訓練不僅可以讓學生養成良好的程式設計習慣,而且可以有效地培養學生思維的條理性和邏輯性。所以在授課過程中要注意講解結構化程式設計的思想時應突出兩點:(1)程式的質量首先取決於它的結構。

(2)程式設計的基本方法是自頂向下地逐步求精和模組化。

在c程式教學過程中,越到後面的章節,學生越會產生設計程式逐漸變難的感覺,這是不符合邏輯的一種怪現象。按照常理,c語言學的越多,說明你的程式設計知識越多,設計起程式來應該更加得心應手,那麼出現這種現象的原因何在呢?當然該問題的出現的原因是多方面的,但是其中最重要的一點就是長期以來程式設計的觀念不是以如何處理好物件為出發點,而是以如何使用好語言為基本點。

受這種思想的影響,我們的程式設計教學大多數不是以如何解決好問題為重點,而是以講解語法規則和語句格式為重點,是「說明書」式的教學。這樣做造成的結果就是見到一個程式後學生首先想到是該用哪條語句,而不是思考怎樣合理的解析。要切實解決這個問題,首先應該改變程式設計的觀念。

「物件導向程式設計」思想是目前最為流行、極為實用的一種程式設計方法,但是讓學生直接接觸「物件導向程式設計」,肯定不能對程式設計打下牢固的基礎。「結構化與物件導向並舉」是現代計算機程式設計的發展趨勢,應該認真探索研究,讓學生有一個較為輕鬆的學習過程。程式設計的實質就是編寫處理物件的過程,所以將c與c++有機的融為一體的教材應該是首選教材,在教學過程中,我們應該從社會發展的角度進行探索研究,將目前最為流行又極為實用「物件導向程式設計」思想融合到c語言教學中。

3.c語言教學應培養學生良好的程式設計風格

具有良好的設計風格應該是程式設計師所具備的基本素質,在實際的專案中程式設計師往往都有自己的一些程式設計風格。目前95%以上的程式設計書籍不注重程式設計風格問題,這導致了很多學生沒有良好的程式設計風格,在他們剛剛畢業踏入社會時,如果周圍的同事沒有良好的程式設計風格,那麼很難通過環境來使自己提高這方面的素質,即使有提高也不容易比較全面的提高。因此在學生接觸的第一門程式設計語言教學中,就應該培養學生良好的程式設計風格,使他們一進工作環境就具備這個素質。

pascal設計者n.writh教授十分重視程式設計風格的養成,他堅信「教給學生們以表達他們思維的語言會深深地影響他們思維和創造發明的習慣,而正是這些語言本身的混亂直接影響著學生們的程式設計的風格」,他這裡所指的「這些運用」是當時那些主要用於程式設計教學的計算機語言。對學生來講,一開始就強調程式設計風格很有必要,良好的程式設計風格不僅有助於提高程式的可靠性、可理解性、可測試性、可維護性和可重用性,而且也能夠促進技術的交流,改善軟體的質量。

所以培養良好的程式設計風格對於初學者來說非常重要。

程式設計風格,實際上是指的是編碼風格。在教學過程中應從源程式文件化,資料說明的原則,輸入/輸出方法這三個方面培養學生的編碼風格,進而從編碼原則**提高程式的可讀性、改善程式質量的方法。

(1)源程式文件化。編碼的目的是產生程式,但是為了提高程式的可維護性。源**是需要實現文件化的。源程式文件化包括選擇識別符號(變數和標號)的名字、安排註釋以及標準的書寫格式等。

①選擇識別符號的命名規則。識別符號包括模組名、變數名、常量名、標號名、子程式名等。這些名字應能反映它所代表的實際東西,應有一定實際意義,使其能顧名思義。

另外在模組名、變數名、常量名、標號名、子程式名中使用下劃線是一種風格。使用這一技術的一種廣為人知的命名規則就是匈牙利命名法(變數型別由一個或兩個字元表示,並且這些字元將作為變數名的字首)。當然使用匈牙利命名法與否都沒有錯誤,重要的是要保持一致性——在整個程式中使用相同的命名規則。

這就是說,如果你在一個小組環境中程式設計,你和其他小組成員應該制定一種命名規則。並自始至終使用這種規則。如果有人使用了別的命名規則,那麼整合的程式讀起來將是很費勁的。

此外,你還要與程式中用到的第三方庫(如果有的話)所使用的風格保持一致。如果可能的話,你應該儘量使用與第三方庫相同的命名規則,這將加強你的程式的可讀性和一致性。

②註釋。程式中的註釋是程式設計者與程式閱讀者之間通訊的重要手段。註釋能夠幫助讀者理解程式,併為後續測試維護提供明確的指導資訊。

因此,註釋是十分重要的,大多數程式設計語言提供了使用自然語言來寫註釋的環境,為程式閱讀者帶來很大的方便。註釋分為功能性註釋和序言性註釋。

a.功能性註釋。功能性註釋在源程式中,用以描述其後的語句或程式段是在做什麼工作,也就是解釋下面要「做什麼」,而不是解釋下面怎麼做。

對於書寫功能性註釋,要注意以下幾點:第一描述一段程式,而不是每一個語句。第二利用縮排和空行,使程式與註釋容易區別。

第三註釋要準確無誤。

b.序言性註釋。序言性註釋通常位於每個程式模組的開頭部分,它給出程式的整體說明,對於理解程式具有引導作用。

有些軟體開發部門對序言性註釋做了明確而嚴格的規定,要求程式編制者逐項列出。有關內容包括:程式標題;有關該模組功能和目的的說明;主要演算法;介面說明:

包括呼叫形式,引數描述,子程式清單;有關資料描述;模組位置(在哪一個原始檔中,或隸屬於哪一個軟體包);開發簡歷:模組設計者、複審考、複審日期。

③用標準的書寫格式。源程式清單的書寫建議採用以下幾點:

a.每行只寫一條語句;

b.用分層縮排的寫法顯示巢狀結構層次,這樣可使程式的邏輯結構更加清晰,層次更加分明。

c.書寫表示式時適當使用空格或圓括號作隔離符。

d.在註釋段周圍加上邊框;

e.註釋段與程式段、以及不同的程式段之間插入字行;

(2)資料說明採用的原則。在編寫程式時,要注意資料說明的風格。

資料說明的次序如果規範,將有利於測試,排錯和維護。首先說明的先後次序要固定,例如,按常量說明、簡單變數型別說明、陣列說明用資料塊說明、所有的檔案說明的順序說明。當然在型別說明中還可進一步要求,例如按如下順序排列:

整型量說明、實型量說明、字元量說明、邏輯說明。

其次當用一個語句說明多個變數名時,應當對這些變數按字母的順序排列。

最後對於複雜資料結構,應利用註釋說明實現這個資料結構的特點。

(3)輸入/輸出方法。輸入/輸出的方式和格式應當儘量避免因設計不當給使用者帶來的麻煩。這就要求,源程式的輸入/輸出風格必須滿足能否為使用者接受這一原則。

所以在設計程式時,應考慮以下原則:輸入資料時,要使輸入的步驟和操作儘可能簡單,應允許使用自由格式輸入;應允許預設值;對輸入的資料要進行檢驗,以保證每個資料的有效性。

(三)結束語

在教學過程中,我們讓學生設計一個程式模擬體育彩票的銷售與對獎的過程,取得了良好的效果。他不僅啟發和誘導了學生獨立思考、積極思維的主動性,而且充分調動了學生學習的自覺性和積極性,使學生融會貫通地掌握了所學知識,提高了分析問題和解決實際問題的能力。

搞好c程式設計的教學工作涉及的因素很多,如果以專案來驅動教學,首先讓學生樹立面向工程的思想,其次把教學從單一的「結構化程式設計」向「結構化與物件導向並舉」轉變,最後特別要培養學生養成良好的編碼風格,從而使他們學會能夠「幹什麼」,那麼我們認為教學目的就達到了。

c語言問題求助,C語言問題求助!!!!

include void sort int p1,int p2,int p3 else if p1 p3 else else if p2 p3 if p1 看下函式形參和實參的概念。include main void sort int p1,int p2,int p3 少括號 else 少括號 el...

求助C語言高手,求助C語言高手!

inlcude include int main file fopen a.dat rw 開啟a.bat檔案,存入file指標裡 for i 0 i 200 i return 0 返回 return 這就是現在的大學生 在學校混文憑!題目出的不錯,你們老師有點水平 一樓的做得不太完整,隨機數有問題,...

C語言問題,求助,C語言問題,求助大神

這題是迷惑人用的.因為迴圈內部沒有break,所以for會一直執行下去,直到a 11,這時a大於10,迴圈結束。最終a的值為11 for a 0 a 10 a 直到a 11時,迴圈結束。迴圈體對a的值沒有影響,包括continue對迴圈沒有影響。所以,最後列印a的值是11,選項b。c語言問題,求助大...