《C語言程序設(shè)計項目式教程》05 學(xué)生成績統(tǒng)計寫字字帖_第1頁
《C語言程序設(shè)計項目式教程》05 學(xué)生成績統(tǒng)計寫字字帖_第2頁
《C語言程序設(shè)計項目式教程》05 學(xué)生成績統(tǒng)計寫字字帖_第3頁
《C語言程序設(shè)計項目式教程》05 學(xué)生成績統(tǒng)計寫字字帖_第4頁
《C語言程序設(shè)計項目式教程》05 學(xué)生成績統(tǒng)計寫字字帖_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章第四章目學(xué)生成績統(tǒng)計項五學(xué)習(xí)目標了解逗號運算的原理和應(yīng)用。掌握指針的原理機制、定義和實現(xiàn)技巧。掌握下標法表示數(shù)組元素與指針法表示數(shù)組元素的區(qū)別和實現(xiàn)技巧。掌握枚舉型數(shù)據(jù)的原理機制、定義和實現(xiàn)技巧。具有基本的程序測試與調(diào)試的能力學(xué)習(xí)路徑任務(wù)一計算學(xué)生課程總評成績逗號運算逗號運算是C語言提供的一種特殊運算符,用“,”將表達式連接起來的式子稱為逗號表達式。逗號表達式的一般格式如下:表達式1,表達式2,……,表達式n;指針(1)指針的概念指針是一種專門用于存放數(shù)據(jù)內(nèi)存地址的數(shù)據(jù)類型。計算機內(nèi)存是由連續(xù)的存儲單元(通常稱為字節(jié))組成,不同的數(shù)據(jù)類型所占用的存儲單元數(shù)不同,例如整型數(shù)據(jù)占2個單元,字符型數(shù)據(jù)占1個單元等。每個存儲單元有一個唯一的編號,這就是內(nèi)存“地址”,指針可以根據(jù)一個存儲單元的地址而準確地找到該內(nèi)存單元。指針(2)“直接訪問”方式“直接訪問”是一種按變量地址存取變量值的訪問方式。編譯程序?qū)⒋鎯卧刂放c變量名聯(lián)系起來,程序引用某個變量名時,也就訪問相應(yīng)的存儲單元。如圖5.2所示,使用“直接訪問”方式訪問數(shù)據(jù)。指針(3)“間接訪問”方式

“間接訪問”是一種按存儲單元中存放的數(shù)據(jù)地址間接讀寫數(shù)據(jù)的訪問方式。如圖5.2所示,訪問變量i的數(shù)值時可通過變量i_ptr進行間接訪問,編譯程序為變量i_ptr分配了地址為2000開始的存儲單元,存儲內(nèi)容為1000,也就是變量i占用存儲單元的起始地址,通過這個地址就可以訪問變量i的內(nèi)容數(shù)值10指針(4)指針變量的使用

指針變量和普通變量的使用方法相同,都需要先聲明和初始化再引用,才能正確對數(shù)據(jù)進行訪問,未經(jīng)初始化的指針變量不能使用,否則程序會產(chǎn)生錯誤的結(jié)果。指針變量使用之前必須把它聲明為指針。聲明格式如下:數(shù)據(jù)類型*變量名;指針(5)指針變量的引用引用指針變量需要使用“&運算符”和“*運算符”?!?運算符”是取地址運算符,可以實現(xiàn)取出變量的地址,在scanf()函數(shù)中,已經(jīng)了解并使用過“&運算符”;“*運算符”是指針運算符,表示指針變量所指向的變量,需要注意指針運算符*和指針變量聲明中的指針說明符*不同,表達式中運算符*表示指針變量所指的變量,指針變量聲明中“*”是類型說明符,表示變量是指針類型指針與數(shù)組(1)指針與數(shù)組的關(guān)系假設(shè)已經(jīng)聲明整型數(shù)組a[10],數(shù)組名a表示該數(shù)組在內(nèi)存的起始地址,也就是即第一個元素a[0]的地址&a[0]。則聲明一個指向數(shù)組元素的指針變量如圖指針與數(shù)組(2)指針訪問數(shù)組一維數(shù)組的存儲結(jié)構(gòu)是線性的,在內(nèi)存中占用一片連續(xù)的存儲單元。若聲明了指向數(shù)組的指針,將該指針指向數(shù)組的第一個元素,通過移動指針可以存取數(shù)組的每一個元素。任務(wù)二計算班級課程及格率、最高分和最低分指針變量作為函數(shù)參數(shù)使用指針做函數(shù)參時需注意以下3點要求:指針變量,既可以作為函數(shù)的形參,也可以作實參。做形參時被調(diào)用函數(shù)的定義和聲明必須指出參數(shù)類型是指針而不是數(shù)值;指針變量作實參時,與普通變量一樣,也是“單向值傳遞”,即將指針變量的值(地址)傳遞給被調(diào)用函數(shù)的形參(一個指針變量);被調(diào)用函數(shù)不能改變實參指針變量的值,但可通過形參指針變量改變它們所指向的變量的值任務(wù)三統(tǒng)計平時成績、期末成績和總評成績各分數(shù)段人數(shù)枚舉類型在C語言中,枚舉類型是一種構(gòu)造數(shù)據(jù)類型,它用于聲明一組命名的常數(shù),當一個變量有幾種可能的取值時,可以將它定義為枚舉類型。例如人的性別只有兩種取值,星期只有七種取值等。

定義枚舉類型的格式如下:enum

枚舉類型名{值列表};任務(wù)四按總評成績?yōu)槿鄬W(xué)生排序排序算法(1)插入排序

插入排序就是假設(shè)已經(jīng)有一個排好序的數(shù)字列,現(xiàn)在要把一個新數(shù)插入其中,使數(shù)列依然保持排序狀態(tài)。具體算法可描述為以下6步:第一步:從第一個元素開始,該元素可以認為已經(jīng)被排序;第二步:取出下一個元素,在已經(jīng)排序的元素序列中從后向前掃描;第三步:如果該元素(已排序)大于新元素,將該元素移到下一位置;第四步:重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置;第五步:將新元素插入到該位置后,第六步:重復(fù)步驟2~5。排序算法(2)插入排序

冒泡排序是一種簡單直觀的排序算法,這種方法主要是通過對相鄰兩個元素進行大小的比較,根據(jù)比較結(jié)果和算法規(guī)則對這兩個元素的位置進行交換,這樣逐個依次進行比較和交換,就能達到排序目的。具體算法可描述為以下4步:第一步:比較相鄰的元素。如果第一個比第二個大,就交換它們兩個;第二步:對每一對相鄰元素做同樣的工作,從開始第一對到結(jié)尾的最后一對。遍歷結(jié)束后,最后的元素應(yīng)該會是當前最大的數(shù);第三步:針對所有的元素重復(fù)以上的步驟,除了最后一個;第四步:持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。排序算法(3)選擇排序

選擇排序是對定位比較交換法(也就是冒泡排序法)的一種改進。它的基本思想是:每一次在n-i+1(i=1,2,…n-1)個數(shù)中選取最小值作為有序序列中第i

個記錄。具體算法可描述為以下3步:第一步:第1次遍歷,在待排序的n個數(shù)中選出最小值,將它與第一個數(shù)交換;第二步:第2次遍歷,在待排序的n-1個數(shù)中選出最小值,將它與第二個數(shù)交換,以此類推;第三步:第i

次遍歷,在待排序的n-i

個數(shù)中選出最小值,將它與第i

個數(shù)交換,使有序序列不斷增長直到全部排序完畢。任務(wù)五班級成績報表可視化程序測調(diào)(1)程序測試程序測試過程包括兩個階段,一是人工測試;二是基于計算機的測試。人工測試是一種高效的錯誤檢測過程,依照常見錯誤列表對逐條語句進行分析。除了查找錯誤之外,還要查看編程風(fēng)格和算法的選擇。基于計算機的測試,就是在計算機上使用測試用例真正運行程序,然后檢查運行顯示的結(jié)果是否與測試用例的預(yù)期結(jié)果一致。運行時錯誤可能會產(chǎn)生運行時錯誤消息。

對于較大的程序而言,程序測試可按模塊進行,模塊測試也稱單元測試,僅在模塊范圍內(nèi)進行。因為每個模塊都只完成相對獨立和單一的功能,所以測試相對簡單。所有模塊都測試之后,再進行集成測試,來查看模塊之間的數(shù)據(jù)是否匹配、傳遞是否正確等。程序測調(diào)(2)程序調(diào)試程序調(diào)試是指隔離和改正錯誤的過程。一個簡單的調(diào)試方法是在程序中放置顯示語句來顯示變量的值。它將顯示程序的動態(tài)信息,便于查看和比較執(zhí)行不同語句后變量的變化,從而確定出錯的語句。一旦確定出錯位置并改正錯誤后,就可把調(diào)試語句去掉?;蛘呤褂肅語言集成開發(fā)環(huán)境中提供的單步運行功能也可。另外兩種程序調(diào)試方法,一種是使用推導(dǎo)過程,利用排除和細化過程來確定錯誤位置;另一種錯誤定位法是順著程序的邏輯回推不正確結(jié)果,直到找到錯誤位置。常用簡單程序調(diào)試方法如下:通過觀察循環(huán)中的變量分析程序,如使用Alt+B,可設(shè)置需觀察的變量;使用printf(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論