C語言程序課程設(shè)計報告書數(shù)組的排列_第1頁
C語言程序課程設(shè)計報告書數(shù)組的排列_第2頁
C語言程序課程設(shè)計報告書數(shù)組的排列_第3頁
C語言程序課程設(shè)計報告書數(shù)組的排列_第4頁
C語言程序課程設(shè)計報告書數(shù)組的排列_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、吉林工程技術(shù)師范學(xué)院c語言程序課程設(shè)計報告書設(shè)計題目: 數(shù) 組 的 排 列 專 業(yè): 計算機(jī)應(yīng)用 班級 1021 學(xué)生姓名xx 學(xué)號: 10 指導(dǎo)教師:xx 2010年12月摘 要 我所設(shè)計的報告是關(guān)于數(shù)組的相關(guān)應(yīng)用。數(shù)組是一組同類型數(shù)據(jù)的有序集合數(shù)組在程序設(shè)計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在語言中, 數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個數(shù)組可以分解為多個數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。數(shù)組說明的一般形式為: 類型說明

2、符 數(shù)組名 常量表達(dá)式,; 其中,類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。 數(shù)組名是用戶定義的數(shù)組標(biāo)識符。 方括號中的常量表達(dá)式表示數(shù)據(jù)元素的個數(shù),也稱為數(shù)組的長度數(shù)組元素是組成數(shù)組的基本單元。數(shù)組元素也是一種變量, 其標(biāo)識方法為數(shù)組名后跟一個下標(biāo)。 下標(biāo)表示了元素在數(shù)組中的順序號。數(shù)組元素的一般形式為: 數(shù)組名下標(biāo) 其中的下標(biāo)只能為整型常量或整型表達(dá)式。如為小數(shù)時,c編譯將自動取整。關(guān)鍵字:數(shù)組 變量 類型說明符 下標(biāo) 目 錄摘 要i第1章 概述1第2章 系統(tǒng)分析22.1 技術(shù)分析22.2 功能分析2第3章 總體設(shè)計與詳細(xì)設(shè)計33.1 系統(tǒng)總體設(shè)計33.2 詳細(xì)設(shè)計4第4章 編碼實現(xiàn)5

3、4.1 數(shù)據(jù)輸入部分代碼設(shè)計54.2 運(yùn)算部分代碼設(shè)計54.3 輸出部分代碼設(shè)計5第5章 系統(tǒng)調(diào)試65.1 程序運(yùn)行結(jié)果65.2 調(diào)試過程中的問題與對策7第6章 設(shè)計總結(jié)8參考資料11致謝11附錄:1 源代碼12第1章 概述c語言程序設(shè)計對于現(xiàn)階段的學(xué)生來說,是一門較難掌握的課程。其中,數(shù)組這一章的內(nèi)容更是難點。數(shù)組的難點在于數(shù)組的概念,當(dāng)弄清了基本概念后,再進(jìn)行數(shù)組的應(yīng)用。循序漸近,打好基礎(chǔ),由點到面,重在應(yīng)用。關(guān)鍵在于基礎(chǔ)是否牢靠。如何進(jìn)行數(shù)組概念的講解,我認(rèn)為主要抓住一點:數(shù)組就是一組變量的集合,但又不單純是變量的簡單集合,而是一組互相關(guān)聯(lián),有一定關(guān)系的變量。這組變量的關(guān)系如下:1. 其

4、數(shù)組名相同,下標(biāo)以等差數(shù)列依次排列。2. 以一維數(shù)組a10為例,該數(shù)組成員分別是a0、a1、a2a9。在內(nèi)存中各成員的位置以下標(biāo)為序,在內(nèi)存地址中依次升序存放。所以,當(dāng)我們找到了某數(shù)組中任一個成員的地址,即可以通過該地址找到其他所有成員。清楚這一點后,可以進(jìn)行較深入的講解。其中,有幾個重要知識是必須要強(qiáng)調(diào)的。首先要講清楚任何一個數(shù)組其成員的下標(biāo)都是從0開始的,而在定義過程中的下標(biāo)僅指數(shù)組長度。數(shù)組的優(yōu)點在于能夠簡化程序設(shè)計的復(fù)雜性。對于一維數(shù)組,有幾道較為典型的例題,其中若干個數(shù)字的排序是最為重要的。我們可把“冒泡法”排序和“選擇法”排序作為一個切入點,深入地進(jìn)行數(shù)組的學(xué)習(xí)。所以這幾種是是否學(xué)

5、好數(shù)組的關(guān)鍵所在。其次,數(shù)組的下標(biāo)仍是不可忽視的關(guān)鍵環(huán)節(jié)。在程序設(shè)計中經(jīng)常使用到的數(shù)組是可以在內(nèi)存中連續(xù)存儲多個元素的結(jié)構(gòu),數(shù)組元素在數(shù)組里順序排列編號,這些元素的編號稱為元素的下標(biāo)。在數(shù)組的處理過程中,如果數(shù)組的下標(biāo)“越界”,c語言不會導(dǎo)致語法錯誤,不會執(zhí)行數(shù)組下標(biāo)有效性檢查,而且數(shù)組的下標(biāo)不僅是可以從0開始,還可以從一個負(fù)數(shù)開始,因為實際上c語言的數(shù)組根本就是一個指針的語法。再者就是數(shù)組的定義,如何定義一個正確的數(shù)組直接影響整個程序的正常運(yùn)行。把具有相同數(shù)據(jù)類型的若干變量按有序的形式組織起來,以便于程序處理,這些數(shù)據(jù)元素的集合就是數(shù)組,按照數(shù)組元素的類型不同,可分為:數(shù)值數(shù)組、字符數(shù)組、指

6、針數(shù)組結(jié)構(gòu)數(shù)組等各種類別。第2章 系統(tǒng)分析2.1 技術(shù)分析本程序利用for()語句來實現(xiàn)數(shù)據(jù)運(yùn)行結(jié)果,該語句的執(zhí)行過程簡單通俗易懂。for()語句的一般格式是(表達(dá)式;表達(dá)式;表達(dá)式)循環(huán)體語句for循環(huán)語句的執(zhí)行過程為:執(zhí)行表達(dá)式;計算表達(dá)式的值,若為真,執(zhí)行循環(huán)體;若為假,則結(jié)束循環(huán);計算表達(dá)式的值,然后重復(fù)進(jìn)行表達(dá)式值的判斷,為鎮(zhèn)接著進(jìn)行循環(huán),否則結(jié)束循環(huán)。for是關(guān)鍵字,執(zhí)行時,表達(dá)式只操作一次,而表達(dá)式和表達(dá)式需要重復(fù)處理各個表達(dá)式可以使任意的表達(dá)式,各個表達(dá)式之間用分號隔開,常見的情況表達(dá)式為賦值表達(dá)式,第二個表達(dá)式是關(guān)系或邏輯表達(dá)式,第三表達(dá)式是自加、自減表達(dá)式。而且當(dāng)循環(huán)體中包

7、含一條語句時可以省略“。如果循環(huán)體中包括兩條或兩條以上的語句那么該語句稱之為復(fù)合語句。而且,在三個表達(dá)式中部分語句可以省略不寫,但中間的分號是不可以去掉的,也就是在某種意義上被省略的語句還是存在的2.2 功能分析我所設(shè)計的有關(guān)數(shù)組的程序是為剛剛學(xué)習(xí)數(shù)組的初學(xué)者而設(shè)計的。對于初學(xué)者來說,能夠熟練的掌握一些簡單的數(shù)組例題是一項不小的進(jìn)步。如果能夠幫助初學(xué)者更進(jìn)一步的掌握數(shù)組知識是我設(shè)計這個程序的最大心愿。我所設(shè)計的程序能夠?qū)崿F(xiàn)一維數(shù)組的排序。第3章 總體設(shè)計與詳細(xì)設(shè)計3.1 系統(tǒng)總體設(shè)計1設(shè)計流程圖系統(tǒng)總統(tǒng)設(shè)計圖 如圖所示:。 開始輸入數(shù)組元素 輸出原數(shù)組執(zhí)行程序體 結(jié)束輸出數(shù)組元素定義數(shù)組定義變

8、量i,j;輸入字符串 圖3-1 總體設(shè)計流程圖2包含的功能結(jié)合了for語句的應(yīng)用,輸出語句、實現(xiàn)數(shù)組元素的顛倒輸出。3.2 詳細(xì)設(shè)計#includestdio.hmain() /*主函數(shù)*/int a10=1,2,3,4,5,6,7,8,9,0; /*定義數(shù)組a,給數(shù)組賦值*/ int i,j; /*定義連個變量 i,j;for(i=0;i=0;j-); /*使用for語句運(yùn)行程序*/printf(%d,ai); /*輸出原數(shù)組元素*/printf(n); / *利用輸出語句換行*/第4章 編碼實現(xiàn)4.1 數(shù)據(jù)輸入部分代碼設(shè)計輸入部分是利用循環(huán)語句來實現(xiàn)的。輸入部分可以在程序開始之前賦給事先定

9、義好的數(shù)組,也可以利用scanf()語句進(jìn)行相應(yīng)的賦值實現(xiàn)程序的輸入部分。程序中利用了數(shù)組進(jìn)行存儲數(shù)據(jù),有利于數(shù)據(jù)的管理和更好的使用程序中所要使用的相關(guān)數(shù)據(jù)。本程序中還使用了發(fā)for循環(huán)語句,使原有的復(fù)雜的程序變得更簡單明了int a10=1,2,3,4,5,6,7,8,9,0; /*定義數(shù)組a,給數(shù)組賦值*/ int i,j; /*定義連個變量 i,j;4.2 運(yùn)算部分代碼設(shè)計運(yùn)算部分主要利用數(shù)據(jù)的交換來實現(xiàn)運(yùn)算的,;利用for語句實現(xiàn)程序的運(yùn)行達(dá)到實現(xiàn)數(shù)據(jù)顛倒順序的功能;for(i=0;i=0;j-); /*使用for語句運(yùn)行程序*/4.3 輸出部分代碼設(shè)計輸出部分是利用printf語句來

10、實現(xiàn)的,輸出顛倒順序后的數(shù)組元素,從而實現(xiàn)所要實現(xiàn)的功能;printf(%d,ai); /*輸出原數(shù)組元素*/printf(n); / *利用輸出語句換行*/第5章 系統(tǒng)調(diào)試5.1 程序運(yùn)行結(jié)果系統(tǒng)調(diào)試通過后的運(yùn)行界面如圖5-1所示。圖5-1 程序運(yùn)行結(jié)果圖在輸出結(jié)果之前一般應(yīng)注明輸入的數(shù)據(jù),以便對輸出結(jié)果進(jìn)行分析和比較。5.2 調(diào)試過程中的問題與對策1. 問題1 如圖 本程序中輸入語句使用gets語句無法正常運(yùn)行。2 for語句無法正常使用。3 數(shù)組不賦初值程序仍無法正常運(yùn)行,仍有錯誤語句出現(xiàn)。4 當(dāng)程序中再沒有錯誤語句出現(xiàn)時,程序還是不能正常運(yùn)行。5 當(dāng)程序可以運(yùn)行并能夠輸出結(jié)果時,運(yùn)行結(jié)

11、果界面出現(xiàn)黑屏。2. 對策當(dāng)程序使用gets語句時程序不能正常運(yùn)行,是因為本程序運(yùn)行的是針對數(shù)組元素為數(shù)字的程序,而gets語句是指對字符串的輸入函數(shù),而輸入數(shù)組數(shù)字應(yīng)該使用scanf語句;當(dāng)使用for語句時,條件后面是不能使用分號結(jié)尾的;如果使用了分號程序仍無法運(yùn)行下去;在使用時,必須首先確定保存路徑,如果路徑不對程序?qū)詣油顺龀绦蜻M(jìn)入編輯界面。如果沒有實現(xiàn)保存路徑運(yùn)行結(jié)果將出現(xiàn)黑屏。第6章 設(shè)計總結(jié)經(jīng)過這學(xué)期對c程序設(shè)計的學(xué)習(xí),我們學(xué)習(xí)了理論知識,了解了c語言程序設(shè)計的思想,這些知識都為我們的下一步學(xué)習(xí)打下了堅實的基礎(chǔ)。通過課程設(shè)計,一方面是為了檢查我們一個學(xué)期來我們學(xué)習(xí)的成果,另一方面

12、也是為了讓我們進(jìn)一步的掌握和運(yùn)用它,同時也讓我們認(rèn)清自己的不足之處和薄弱環(huán)節(jié),加以彌補(bǔ)和加強(qiáng)。當(dāng)所有的課程都悄然結(jié)束。c語言課程設(shè)計悄悄地走進(jìn)了我們的復(fù)習(xí)生活,剛剛進(jìn)入大學(xué)對于一些事物都很陌生,從來沒有做過的課程設(shè)計對于我們來說是一個不小的挑戰(zhàn)。什么都不懂什么都顯得那么棘手。但是,你卻不能不去做,不是說要在現(xiàn)實中不斷的摸索嗎?所以就算在難也要堅持下去,只有這樣才有進(jìn)步的可能,如果一味的停留在原地只會讓自己變得更愚昧無知。在課程設(shè)計的第一天,帶著必須受挫的地心理進(jìn)入了實驗室。當(dāng)選擇的課程題目敲定后,我就覺得課程設(shè)計好像沒有想象中的那么難嘛。所以我就帶著一顆“課設(shè)不難”的心態(tài)去做所有的準(zhǔn)備工作。但

13、是,我的想法太過單純了,當(dāng)程序不斷的出錯,再改,再出錯時,我真是有想哭的沖動,為什么要做這東西啊,我們不過是大一的新生,干嘛要做這么復(fù)雜的東西啊。這么難、這么費(fèi)勁。但是當(dāng)情緒調(diào)整過來之后還是要繼續(xù)去做,如果什么事情都不能做到最后那還有什么事情可以讓我們有堅持下去的理由呢?所以我告訴自己你必須堅持下去,而且要堅持到最后。說起c語言,對我們學(xué)習(xí)軟件技術(shù)的學(xué)生還是特別重要,它除了能便于一些小型程序之外,還能便于一些大型的程序。計算機(jī)本身是無生命的機(jī)器,要是計算機(jī)能夠云喜過年起來,為人類完成各種各樣的工作,就必須讓他執(zhí)行相應(yīng)的程序,這些程序都是依靠程序設(shè)計語言編寫出來的。在眾多的程序設(shè)計語言中,c語言

14、有獨(dú)特之處。它作為一種高級程序設(shè)計語言,具備方便性、靈活性和通用性等特點。同時,他還向程序員提供了直接操作計算機(jī)硬件的功能,具備低級語言的特點,適合各種類型的軟件開發(fā)。因此c語言是深受軟件工程人員歡迎的程序設(shè)計語言。要想學(xué)好c語言首先要了解c語言的發(fā)展、特點等一些知識任何事物的產(chǎn)生都有一定的歷史背景,c語言也是這樣。20世紀(jì)60年代,隨著計算機(jī)技術(shù)的迅速發(fā)展,高級程序設(shè)計語言得到了廣泛的應(yīng)用。但是,仍沒有一種可以用于開發(fā)操作系統(tǒng)等系統(tǒng)軟件的高級語言,人們不得不用匯編語言來開發(fā)。然而匯編語言存在著不可移動、可讀性差、研制軟件效率不如高級語言等缺點,給編程帶來了極大的不便。為此,人們希望能夠找到一

15、種既具有一般高級語言的特點,又具有低級語言特性的語言。c語言就是在這種背景下誕生的。這就是c語言的產(chǎn)生。c語言的特點。一種語言之所以能存在和發(fā)展,并具有生命力,總有些不同于其他語言的特點。c語言有以下幾個基本特點1 c語言既具有高級語言的通用性及易讀的特點,又具有匯編語言的“位處理”、“地址操作”等能力。這使得c語言不僅像pascal、fortran、basic等高級語言那樣用于應(yīng)用軟件的設(shè)計,還能像匯編語言那樣用于計算機(jī)系統(tǒng)軟件和控制軟件的開發(fā)。2 c語言是一種結(jié)構(gòu)化程序設(shè)計語言,具有豐富的數(shù)據(jù)類型、眾多的運(yùn)算符,這使得程序員能輕松地實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算;c語言所具有的體現(xiàn)結(jié)構(gòu)化程序

16、設(shè)計的控件結(jié)構(gòu)和具備抽象功能及體現(xiàn)信息隱藏思想的函數(shù),可以實現(xiàn)程序的模塊化設(shè)計。3 語言簡練、緊湊、使用方便靈活。編譯后生成的代碼質(zhì)量高,運(yùn)行速度快。4 c語言具備良好的可移植性。若程序員在書寫程序是嚴(yán)格遵循ansic標(biāo)準(zhǔn),則其源代碼基本上可不做修改,就能用于各種型號的計算機(jī)和各種操作系統(tǒng)。5 語言功能豐富。它不僅提供了豐富的運(yùn)算符號,還提供了各種功能強(qiáng)大的系統(tǒng)函數(shù)。盡管c語言有很多優(yōu)點,但也存在一些缺點和不足。比如它的類型檢驗和轉(zhuǎn)換比較隨便,優(yōu)先級太多不便于記憶,不檢查數(shù)組越界。這些的都對程序設(shè)計者提出了更高的要求,也給初學(xué)者增加了難度。以上就是語言的特點。雖然,這不是一項簡單的程序,但是只

17、要用心細(xì)心的去分析就會找出具有它獨(dú)特的方法,從而更方便的將語言應(yīng)用到生活當(dāng)中。課程設(shè)計為學(xué)生提供了一個既動手又動腦,獨(dú)立實踐的機(jī)會,將課本上的理論知識和實際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實際問題的能力。提高學(xué)生適應(yīng)實際,實踐編程的能力。課程設(shè)計的基本理論是該課程設(shè)計的c語言為基礎(chǔ),掌握程序設(shè)計方法,為科學(xué)研究中的基層開發(fā)工作奠定良好基礎(chǔ);同時培養(yǎng)學(xué)生的分析能力、設(shè)計能力和整體設(shè)計思想,以提高學(xué)生的科學(xué)研究素質(zhì)和在工作崗位中的具體應(yīng)用能力。課程設(shè)計內(nèi)容和基本要求,首先課程設(shè)計內(nèi)容是利用學(xué)到的編程知識和編程技巧,通過布置具有一定難度的程序設(shè)計題目,幫助學(xué)生熟悉程序編寫,及時查究錯誤,獨(dú)立完成如

18、果說第一天是摸索,第二天是創(chuàng)業(yè),第三天是完善,第四天就是革命了!經(jīng)過我的不段努力,一個又一個的問題在我的腦細(xì)胞下伏首稱臣,一個又一個枷鎖被我斬斷,好象又獲得了另一片天地,感到神情氣爽,一坐又一坐高山被我征服,在歡慶勝利的喜悅的同時,我看著下面依然在不懈的奮斗中的同胞姐妹們,心里叫一個著急??!我知道今天的努力就是明天的成功。我是經(jīng)過自己的努力成功了,但在這可能是我終生難忘的,在這過程中我經(jīng)歷了風(fēng)風(fēng)雨雨,經(jīng)過了酸甜苦辣課程設(shè)計就快要結(jié)束了,但是學(xué)習(xí)的路程依然漫長,“學(xué)海無涯苦做舟,書山有路勤為徑”,這句話一直在我腦海中。在實現(xiàn)社會中知識是永無止境的,在知識中我們可以學(xué)習(xí)前人豐富的思想學(xué)識,我們可以熏陶自己的靈魂,我們可以增進(jìn)自己的情感

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論