




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1篇 基礎(chǔ)篇簡單三角函數(shù)計算器項目概述任務(wù)描述采用結(jié)構(gòu)化程序設(shè)計思想,綜合運用C語言知識,完成簡單三角函數(shù)計算器的開發(fā)。該系統(tǒng)主要包括輸入要計算的角度、選擇要計算的三角函數(shù)(正弦、余弦、正切、余切)、輸出計算結(jié)果等功能。任務(wù)分析實現(xiàn)一個簡單三角函數(shù)計算器,能夠完成計算出正弦、余弦、正切、余切等三角函數(shù)值。除了實現(xiàn)計算功能外,還需要實現(xiàn)基本的人機交互。比如,程序運行后,首先顯示一個菜單(以下統(tǒng)稱為主菜單),提示用戶選擇要進行哪種計算;用戶選擇后,該系統(tǒng)提示用戶輸入角度,并接收用戶輸入的角度;計算該角度的三角函數(shù);然后在屏幕上輸出計算結(jié)果;最后提示用戶“按任意鍵返回主菜單”。在主菜單中,用戶選擇
2、“0”時,退出程序。學(xué)習(xí)目標(biāo)熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數(shù)據(jù)類型及變量的方法理解結(jié)構(gòu)化程序設(shè)計思想掌握C語言中表示數(shù)據(jù)的方法掌握C語言程序人機交互的實現(xiàn)方法掌握C語言程序的三種基本結(jié)構(gòu)掌握C語言用戶自定義函數(shù)的定義、調(diào)用方法完成簡單三角函數(shù)計算器的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點包括:基本數(shù)據(jù)類型、常量和變量、運算符和表達式、輸入輸出函數(shù)、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計和函數(shù)等內(nèi)容。任務(wù)分解任務(wù)一 構(gòu)建開發(fā)環(huán)境任務(wù)二 主菜單的順序執(zhí)行任務(wù)三 主菜單的選擇執(zhí)行任務(wù)四 主菜單的循環(huán)執(zhí)行任務(wù)五 利用函數(shù)優(yōu)化源代碼任務(wù)一 構(gòu)建開發(fā)環(huán)境本任務(wù)要搭建C語言
3、的集成開發(fā)環(huán)境,并熟悉在該環(huán)境中開發(fā)C語言程序的步驟。后續(xù)任務(wù)均在該環(huán)境中完成。任務(wù)描述選擇一種C語言開發(fā)集成環(huán)境,并完成安裝。熟悉在該環(huán)境中開發(fā)C語言程序的過程。任務(wù)分析本書中采用VC+6.0開發(fā)環(huán)境。本任務(wù)需要下載VC+6.0安裝包,并完成安裝,構(gòu)建C語言開發(fā)環(huán)境。在該環(huán)境中,運行本章例題,熟悉C語言程序的開發(fā)過程。學(xué)習(xí)目標(biāo)了解C語言的發(fā)展及特點。掌握C語言程序的基本結(jié)構(gòu)。掌握使用VC+6.0開發(fā)C語言程序的過程。能夠構(gòu)建C語言開發(fā)環(huán)境。相關(guān)知識一、程序設(shè)計語言1.低級語言低級語言依賴于所在的計算機系統(tǒng),也稱為面向機器的語言。由于不同的計算機系統(tǒng)使用的指令系統(tǒng)可能不同,因此使用低級語言編寫
4、的程序移植性較差。低級語言主要2.高級語言高級語言是面向用戶的、基本上獨立于計算機種類和結(jié)構(gòu)的語言,其最大的優(yōu)點是形式上接近于算術(shù)語言和自然語言。高級語言編寫的程序易讀、易修改、移植性好。包括機器語言和匯編語言。相關(guān)知識二、C語言發(fā)展及特點1.C語言的發(fā)展C語言是1972年由美國的Dennis M. Ritchie和Ken Thompson設(shè)計開發(fā)的,由早期的編程語言BCPL(Basic Combined Programming Language)發(fā)展演變而來。早期的C語言主要用于編寫UNIX操作系統(tǒng)的核心。目前,在計算機上廣泛使用的C語言編譯系統(tǒng)有Borland C+、Turbo C、Mic
5、rosoft Visual C+(簡稱VC+)等。本書使用的開發(fā)環(huán)境是VC+6.0系統(tǒng)。相關(guān)知識2.C語言的特點和其他語言相比,C語言具有書寫格式自由、數(shù)據(jù)類型豐富、語句功能強大、執(zhí)行速度快和存儲控制能力強等特點。(1)語言簡潔、緊湊,使用方便、靈活。(2)數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。(3)C語言是結(jié)構(gòu)式語言。(4)把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。(5)程序可移植性好。(6)表達力強。相關(guān)知識三、C語言程序的基本結(jié)構(gòu)1.幾個簡單的C語言程序2.C語言程序的基本結(jié)構(gòu)(1)一個C語言源程序可以由一個或多個源文件組成。(2)源程序中可以有預(yù)處理命令(includ
6、e),通常放在源文件或源程序的最前面。(3)每個源文件可由一個或多個函數(shù)組成。(4)每個源程序必須有一個且只能有一個主函數(shù)main(),由系統(tǒng)自動地調(diào)用,是程序執(zhí)行的起始點。主函數(shù)的位置是任意的,可以在程序開頭、兩個函數(shù)之間或程序的結(jié)尾。(5)所有語句必須以分號結(jié)束,但預(yù)處理命令、函數(shù)頭和函數(shù)體的花括號“”之后不能加分號。(6)可以用“/*/”對C語言程序的任何部分做注釋,以增強程序的可讀性。VC+中還可以用“/”給程序加注釋。相關(guān)知識3.C語言程序的書寫規(guī)則(1)C語言源程序一般用小寫字母書寫。(2)一個說明或一條語句占一行。(3)用“”括起來的部分,通常表示程序的某一層次結(jié)構(gòu)。(4)低一層
7、次的語句或說明可比高一層次的語句或說明縮進若干格后書寫。增加程序的可讀性。(5)對程序有必要的注釋,以增強程序的可讀性。相關(guān)知識四、C語言程序的運行過程任務(wù)實施一、安裝VC+6.0二、利用VC+6.0運行C程序拓展提升一、編程時常犯的錯誤二、程序調(diào)試的基本方法小 結(jié)C語言的特點。C語言程序的基本結(jié)構(gòu)。使用VC+6.0開發(fā)C語言程序的過程。構(gòu)建C語言開發(fā)環(huán)境。第1篇 基礎(chǔ)篇簡單三角函數(shù)計算器項目概述學(xué)習(xí)目標(biāo)熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數(shù)據(jù)類型及變量的方法理解結(jié)構(gòu)化程序設(shè)計思想掌握C語言中表示數(shù)據(jù)的方法掌握C語言程序人機交互的實現(xiàn)方法掌握C語言程序的三種基本結(jié)構(gòu)掌握C語
8、言用戶自定義函數(shù)的定義、調(diào)用方法完成簡單三角函數(shù)計算器的開發(fā)任務(wù)分解任務(wù)一 構(gòu)建開發(fā)環(huán)境任務(wù)二 主菜單的順序執(zhí)行任務(wù)三 主菜單的選擇執(zhí)行任務(wù)四 主菜單的循環(huán)執(zhí)行任務(wù)五 利用函數(shù)優(yōu)化源代碼任務(wù)二 主菜單的順序執(zhí)行在任務(wù)一中,我們已經(jīng)搭建好C語言的集成開發(fā)環(huán)境,從任務(wù)二開始逐步進行教學(xué)項目的開發(fā)。本任務(wù)首先完成項目主菜單的顯示與順序執(zhí)行。任務(wù)描述實現(xiàn)項目主菜單的顯示,接收用戶從鍵盤輸入的角度,按主菜單順序依次計算其正弦、余弦、正切、余切等4個三角函數(shù),并輸出計算結(jié)果。項目主菜單包括四項功能:正弦、余弦、正切、余切,如圖2-1所示。任務(wù)分析該任務(wù)需要解決四個問題,即如何顯示主菜單、如何接收從鍵盤輸入
9、的數(shù)據(jù)、如何計算正弦、余弦、正切、余切,以及如何輸出計算結(jié)果。(1)顯示主菜單。(2)接收從鍵盤輸入的數(shù)據(jù)。(3)計算正弦、余弦、正切、余切。(4)輸出計算結(jié)果。學(xué)習(xí)目標(biāo)掌握C語言的基本數(shù)據(jù)類型。理解將實際問題中的信息抽象為C語言數(shù)據(jù)的方法。掌握常量和變量的概念及使用方法。掌握常用運算符的使用方法。掌握數(shù)據(jù)輸入輸出的常用方法。實現(xiàn)項目主菜單的顯示和順序執(zhí)行。相關(guān)知識一、數(shù)據(jù)類型相關(guān)知識二、常量與變量1.常量常量是指在程序運行過程中始終不發(fā)生變化的量,主要包括整型常量、實型常量、字符型常量和字符串型常量。2.變量變量是指在程序運行過程中其值可以改變的量,通常用變量來保存程序執(zhí)行時的輸入數(shù)據(jù)、中間
10、結(jié)果和最終結(jié)果等。相關(guān)知識三、運算符與表達式用來表示各種運算的符號稱為“運算符”。用運算符把操作數(shù)連接在一起組成的式子稱為“表達式”。表達式按照運算符的運算規(guī)則進行運算,得到一個結(jié)果,稱為“表達式的值”。相關(guān)知識1.算術(shù)運算符與算術(shù)表達式相關(guān)知識2.賦值運算符與賦值表達式相關(guān)知識3.關(guān)系運算符與關(guān)系表達式相關(guān)知識4.邏輯運算符與邏輯表達式相關(guān)知識四、數(shù)據(jù)類型轉(zhuǎn)換C語言中的數(shù)據(jù)類型轉(zhuǎn)換有兩種方式:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。1.自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換是指C語言的編譯系統(tǒng)按既定的規(guī)則進行類型轉(zhuǎn)換。其轉(zhuǎn)換規(guī)則為:(1)在C語言的一般表達式中,不同類型數(shù)據(jù)進行運算時,其轉(zhuǎn)換原則是:參加運算的各種變量
11、轉(zhuǎn)換成它們之間占用空間最長的數(shù)據(jù)類型。(2)在C語言的賦值表達式中,如果賦值號左右兩邊的類型不一致,則右邊的值先轉(zhuǎn)換成與賦值號左邊的變量相同的類型,然后再進行賦值。相關(guān)知識2.強制類型轉(zhuǎn)換上面的數(shù)據(jù)類型轉(zhuǎn)換是C語言自動完成的。在編寫程序時,可以根據(jù)需要進行強制類型轉(zhuǎn)換。一般格式是:()功能:將表達式的值強制轉(zhuǎn)換為指定的數(shù)據(jù)類型,即在括號內(nèi)標(biāo)出的數(shù)據(jù)類型。相關(guān)知識五、格式輸入/輸出函數(shù)1.格式輸出函數(shù)printf()printf()函數(shù)是一個標(biāo)準(zhǔn)的庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,但不要求在使用printf()函數(shù)前必須使用文件包含命令:#include 。函數(shù)功能:首先計算輸出
12、表列中各表達式的值,然后按照中給出的格式說明,將各表達式的值轉(zhuǎn)換成所需要的輸出格式,在顯示器上輸出。調(diào)用形式:printf(格式控制字符串,輸出表列);相關(guān)知識相關(guān)知識2.格式輸入函數(shù)scanf()scanf ()函數(shù)是一個標(biāo)準(zhǔn)的庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,但不要求在使用scanf ()函數(shù)前必須使用文件包含命令:#include stdio.h。函數(shù)功能:從鍵盤按照中規(guī)定的格式輸入若干個數(shù)據(jù),按中變量的順序,依次賦值給對應(yīng)的變量。調(diào)用形式:scanf (格式控制字符串,變量地址表列);相關(guān)知識六、字符輸入/輸出函數(shù)1.字符輸出函數(shù)putchar()putchar()函數(shù)
13、是一個標(biāo)準(zhǔn)的庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,要求在使用putchar()函數(shù)前必須使用文件包含命令:#include stdio.h。函數(shù)功能:向終端輸出一個字符或字符變量的值。調(diào)用形式:putchar(c);相關(guān)知識2.字符輸入函數(shù)getchar()getchar ()函數(shù)是一個標(biāo)準(zhǔn)的庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,要求在使用getchar ()函數(shù)前必須使用文件包含命令:#include stdio.h。函數(shù)功能:等待用戶從標(biāo)準(zhǔn)輸入設(shè)備鍵盤輸入一個字符。如果輸入成功,函數(shù)返回這個字符的ASCII值。任務(wù)實施一、顯示主菜單#include #include
14、 void main() int x; double sinx,cosx,tanx,cotx; printf(nnnn); printf(ttt 三角函數(shù)計算器 n); printf(ttt-n); printf(tttt1.正弦n); printf(tttt2.余弦n); printf(tttt3.正切n); printf(tttt4.余切n); printf(ttt-n); printf(ttt請輸入角度(0-180):);任務(wù)實施二、接收從鍵盤輸入的數(shù)據(jù)修改上面程序,在第15行后增加以下語句:scanf(%d,&x); /接收用戶從鍵盤輸入的角度任務(wù)實施三、計算正弦、余弦、正切、余切在語
15、句scanf(%d,&x)之后增加以下語句:sinx=sin(x*3.14/180);cosx=cos(x*3.14/180);tanx=tan(x*3.14/180);cotx=1/tan(x*3.14/180);任務(wù)實施四、輸出計算結(jié)果printf(nttt%d的正弦值是:%.2lf。,x,sinx);printf(nttt%d的余弦值是:%.2lf。,x,cosx);printf(nttt%d的正切值是:%.2lf。,x,tanx);printf(nttt%d的余切值是:%.2lf。n,x,cotx);拓展提升一、整型變量的類型二、sizeof運算符三、逗號運算符與逗號表達式四、條件運算
16、符與條件表達式五、符號常量六、位運算小 結(jié)C語言的基本數(shù)據(jù)類型。將實際問題中的信息抽象為C語言數(shù)據(jù)的方法。常量和變量的概念及使用方法。常用運算符的使用方法。數(shù)據(jù)輸入輸出的常用方法。項目主菜單的顯示和順序執(zhí)行。第1篇 基礎(chǔ)篇簡單三角函數(shù)計算器項目概述學(xué)習(xí)目標(biāo)熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數(shù)據(jù)類型及變量的方法理解結(jié)構(gòu)化程序設(shè)計思想掌握C語言中表示數(shù)據(jù)的方法掌握C語言程序人機交互的實現(xiàn)方法掌握C語言程序的三種基本結(jié)構(gòu)掌握C語言用戶自定義函數(shù)的定義、調(diào)用方法完成簡單三角函數(shù)計算器的開發(fā)任務(wù)分解任務(wù)一 構(gòu)建開發(fā)環(huán)境任務(wù)二 主菜單的順序執(zhí)行任務(wù)三 主菜單的選擇執(zhí)行任務(wù)四 主菜單的
17、循環(huán)執(zhí)行任務(wù)五 利用函數(shù)優(yōu)化源代碼任務(wù)三 主菜單的選擇執(zhí)行在任務(wù)二里,我們完成了項目主菜單的顯示與順序執(zhí)行。運行程序后,接收用戶輸入的角度,計算其正弦、余弦、正切、余切等4個三角函數(shù),并在屏幕上輸出計算結(jié)果。但是有時用戶并不需要計算全部4個三角函數(shù),只需要計算其中1個。這種情況下,源代碼不需要順序執(zhí)行全部語句,而是根據(jù)用戶的需要有選擇地執(zhí)行部分語句。比如用戶只想計算正弦,程序只需執(zhí)行正弦的計算語句和輸出語句,其余3個三角函數(shù)的計算和輸出語句則不需執(zhí)行。這就是主菜單的選擇執(zhí)行,需要用C語言中的選擇語句實現(xiàn)。任務(wù)描述實現(xiàn)項目主菜單的選擇執(zhí)行。具體為,屏幕輸出主菜單,用戶根據(jù)菜單提示選擇三角函數(shù)類型
18、,并輸入角度,程序計算并輸出對應(yīng)的三角函數(shù)值。如圖3-1所示。任務(wù)分析本任務(wù)要根據(jù)用戶對主菜單的選擇進行不同的計算。主菜單共有4個選項,相應(yīng)地,程序就需要處理4種不同的情況,這在C語言里稱為分支結(jié)構(gòu)。C語言有兩種語句實現(xiàn)分支結(jié)構(gòu):一是if語句;二是switch語句。本任務(wù)將分別用if語句和switch語句實現(xiàn)主菜單的選擇執(zhí)行。學(xué)習(xí)目標(biāo)理解C語言的三種程序結(jié)構(gòu)。理解程序流程圖。掌握選擇結(jié)構(gòu)程序設(shè)計的思想和方法。掌握if語句實現(xiàn)分支結(jié)構(gòu)的方法。掌握switch語句實現(xiàn)分支結(jié)構(gòu)的方法。能運用C語言分支結(jié)構(gòu)解決實際問題。相關(guān)知識一、程序設(shè)計1.程序設(shè)計的步驟程序設(shè)計的一般步驟如下:分析問題。針對具體的
19、實際問題,分析問題涉及到的各種數(shù)據(jù)信息及其基本結(jié)構(gòu)。設(shè)計數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是指對數(shù)據(jù)的描述。通過分析要解決的任務(wù),確定輸入數(shù)據(jù)和輸出數(shù)據(jù),并在程序中指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式。設(shè)計算法。算法是指計算機解決問題的操作方法和步驟,即對計算機求解步驟的具體描述。編寫程序。根據(jù)確定的數(shù)據(jù)結(jié)構(gòu)和算法,使用選定的計算機語言編寫程序代碼。調(diào)試程序。將編寫好的程序代碼輸入到計算機中,對程序進行測試并修正,直到程序符合任務(wù)要求為止。數(shù)據(jù)結(jié)構(gòu)設(shè)計和算法設(shè)計處于核心的位置。相關(guān)知識2.算法的表示(1)自然語言自然語言即人們?nèi)粘J褂玫恼Z言,如漢語、英語或其他國語言。(2)流程圖流程圖是指用規(guī)定圖形符號、流程線和文
20、字說明表示各種操作的圖形。(3)N-S圖N-S圖去掉了箭頭,全部算法寫在一個矩形框內(nèi)。做圖簡單,面積小,適于結(jié)構(gòu)化程序設(shè)計。(4)偽代碼法偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。每一行或幾行表示一個基本操作。書寫方便,格式緊湊,便于向計算機語言算法(即程序)過渡。相關(guān)知識2.算法的表示(1)自然語言【例3-1】輸入3個數(shù),輸出其中最大的數(shù)。用自然語言描述算法。分析:定義4個變量用于存放3個數(shù)及3個數(shù)中的最大數(shù),比較是兩兩進行的。設(shè)輸入的3個數(shù)分別為A、B、C,最大數(shù)放在MAX中。第一步:輸入A、B、C的值。第二步:比較A、B的值,把大數(shù)放入MAX中。第三步:比較C、MAX
21、的值,把大數(shù)放入MAX中。第四步:輸出MAX,算法結(jié)束。相關(guān)知識2.算法的表示(2)流程圖相關(guān)知識2.算法的表示(3)N-S圖相關(guān)知識2.算法的表示(4)偽代碼法input A、B、Cif A BMAX=AelseMAX=Bif C MAXMAX=Coutput MAX相關(guān)知識二、三種基本程序結(jié)構(gòu)程序的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu),在順序結(jié)構(gòu)程序中,各語句按照書寫的先后順序依次執(zhí)行。選擇結(jié)構(gòu)根據(jù)判斷結(jié)果確定不同的后續(xù)語句,主要用于描述程序中根據(jù)某些數(shù)據(jù)的取值或者計算結(jié)果選取不同操作的處理方式。循環(huán)結(jié)構(gòu)是指利用給定條件控制某組語句重復(fù)執(zhí)行多次的流程。
22、相關(guān)知識1.順序結(jié)構(gòu)相關(guān)知識2.選擇結(jié)構(gòu)相關(guān)知識3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu),即在一定條件下反復(fù)執(zhí)行某一部分的操作。這里的一定條件稱為循環(huán)條件,通常用關(guān)系表達式或邏輯表達式表示。反復(fù)執(zhí)行的部分稱為循環(huán)體。循環(huán)結(jié)構(gòu)是3種基本結(jié)構(gòu)中較復(fù)雜的一種結(jié)構(gòu)。循環(huán)結(jié)構(gòu)有當(dāng)型和直到型兩種主要形式。(1)當(dāng)型循環(huán)結(jié)構(gòu)功能:先判斷條件是否成立,若條件成立則執(zhí)行循環(huán)體,然后重新去判斷條件是否成立,若條件成立則繼續(xù)執(zhí)行循環(huán)體,如此反復(fù)直到條件不成立為止。如圖3-9所示。 (2)直到型循環(huán)結(jié)構(gòu)功能:先執(zhí)行循環(huán)體,再去判斷條件是否成立,若成立則去執(zhí)行循環(huán)體,直到條件不成立為止。如圖3-10所示。 循環(huán)結(jié)構(gòu)一般包含以
23、下4個部分。(1)初始化部分:為循環(huán)變量及各種有關(guān)變量賦初值。(2)循環(huán)體:重復(fù)執(zhí)行的部分。(3)修改部分:修改循環(huán)變量的值,為下一次重復(fù)執(zhí)行做準(zhǔn)備。(4)判斷檢查部分:判斷檢查循環(huán)變量的值,是否已超過循環(huán)變量的終值,若未超過則繼續(xù)重復(fù)執(zhí)行循環(huán)體,否則結(jié)束。相關(guān)知識三、if語句if語句有種形式:單分支if語句、雙分支if語句、多分支if語句。1.單分支if語句格式如下:if(表達式) 語句;功能:若表達式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行語句。相關(guān)知識2.雙分支if語句格式如下:if(表達式) 語句1;else語句2;功能:若表達式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2。相關(guān)知識3.多分支
24、if語句格式如下:if(表達式1) 語句1;else if(表達式2)語句2;else if(表達式m)語句m;else語句n; 功能:由上而下,依次判斷表達式的值,當(dāng)某個表達式的值為真時,就執(zhí)行其對應(yīng)的語句。執(zhí)行完畢后,跳出if選擇語句,繼續(xù)執(zhí)行其下一條語句。如果所有的表達式全為假,則執(zhí)行else后的語句n。相關(guān)知識4.if語句的嵌套在if語句中,語句1和語句2本身也可以是if語句,此時稱為if語句的嵌套。格式如下:if(表達式1) if(表達式2)語句1;else語句2;elseif(表達式3)語句3;else語句4;相關(guān)知識四、switch語句使用if語句實現(xiàn)復(fù)雜問題的多分支選擇時,程序
25、的結(jié)構(gòu)顯得不夠清晰,因此,C語言提供了一種專門用來實現(xiàn)多分支選擇結(jié)構(gòu)的switch語句,又稱開關(guān)語句。switch語句的一般形式如下:switch(表達式)case 常量1:語句1;case 常量2:語句2;case 常量n:語句n;default:語句n+1;任務(wù)實施一、使用if語句實現(xiàn)二、使用if嵌套語句實現(xiàn)使用switch語句實現(xiàn)拓展提升一、用條件表達式實現(xiàn)簡單的選擇結(jié)構(gòu)二、在程序中使用條件表達式小 結(jié)C語言的三種程序結(jié)構(gòu)。選擇結(jié)構(gòu)程序設(shè)計的思想和方法。if語句實現(xiàn)分支結(jié)構(gòu)的方法。switch語句實現(xiàn)分支結(jié)構(gòu)的方法。C語言分支結(jié)構(gòu)解決實際問題的方法。第1篇 基礎(chǔ)篇簡單三角函數(shù)計算器項目概
26、述學(xué)習(xí)目標(biāo)熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數(shù)據(jù)類型及變量的方法理解結(jié)構(gòu)化程序設(shè)計思想掌握C語言中表示數(shù)據(jù)的方法掌握C語言程序人機交互的實現(xiàn)方法掌握C語言程序的三種基本結(jié)構(gòu)掌握C語言用戶自定義函數(shù)的定義、調(diào)用方法完成簡單三角函數(shù)計算器的開發(fā)任務(wù)分解任務(wù)一 構(gòu)建開發(fā)環(huán)境任務(wù)二 主菜單的順序執(zhí)行任務(wù)三 主菜單的選擇執(zhí)行任務(wù)四 主菜單的循環(huán)執(zhí)行任務(wù)五 利用函數(shù)優(yōu)化源代碼任務(wù)四 主菜單的循環(huán)執(zhí)行在任務(wù)三里,我們完成了項目主菜單的選擇執(zhí)行,接收用戶的選擇,并執(zhí)行對應(yīng)的功能。但是每次運行程序只能選擇主菜單中的一項功能,執(zhí)行完這項功能后直接退出程序。我們希望程序開始運行后,只要不選擇“
27、退出”功能,程序就一直運行。具體為,程序運行后,顯示主菜單,根據(jù)用戶選擇執(zhí)行完一項功能后,返回到程序主菜單,等待用戶再次選擇,直到用戶選擇“退出”,程序結(jié)束。在這個過程中,主菜單的顯示是重復(fù)性的操作。在C語言中,稱為循環(huán)執(zhí)行,可以利用C語言提供的循環(huán)語句實現(xiàn)。任務(wù)描述本任務(wù)中實現(xiàn)項目主菜單的循環(huán)執(zhí)行,即每執(zhí)行完一項功能后,返回到程序主菜單,等待用戶再次選擇,直到用戶選擇“退出”,整個程序運行結(jié)束,如圖4-1所示。這是典型的循環(huán)結(jié)構(gòu),只要用戶不輸入“0”,則計算并輸出三角函數(shù)值(當(dāng)輸入14時)或者提示選擇錯誤(當(dāng)輸入14之外的數(shù)值時)后,就再次顯示主菜單,等待用戶再次選擇;直到用戶輸入“0”,程
28、序才結(jié)束。任務(wù)分析無論采用哪種循環(huán)語句,循環(huán)結(jié)構(gòu)必須指定循環(huán)條件和循環(huán)體。在本任務(wù)中,循環(huán)條件是:用戶輸入的選項不為“0”。循環(huán)體包括:三角函數(shù)的計算及輸出、項目主菜單的顯示、接收用戶輸入的選項。即,只要用戶不選擇“0”,每執(zhí)行完一項功能,就會顯示項目主菜單;如果用戶選擇了“0”,則退出循環(huán)體,不再顯示項目主菜單。任務(wù)四將用三種方法實現(xiàn)項目主菜單的循環(huán)執(zhí)行。學(xué)習(xí)目標(biāo)理解循環(huán)結(jié)構(gòu)程序設(shè)計的思想和方法掌握while、dowhile和for語句的使用格式和執(zhí)行過程掌握while、dowhile和for語句實現(xiàn)循環(huán)結(jié)構(gòu)的方法掌握break和continue語句的使用方法和區(qū)別能運用C語言中的循環(huán)語句解
29、決實際問題相關(guān)知識一、while語句1.while語句的語法格式while語句的一般形式為:while(表達式)循環(huán)體2.while語句的執(zhí)行過程相關(guān)知識3.while語句應(yīng)用舉例相關(guān)知識二、dowhile語句1.dowhile語句的語法格式dowhile語句的一般形式為:do循環(huán)體 while(表達式);其中,do是C語言的關(guān)鍵字,必須和while聯(lián)合使用。dowhile語句由do開始,到while結(jié)束。注意,在while的表達式后必須有分號,表示該語句的結(jié)束。其他同while語句。相關(guān)知識2.dowhile語句的執(zhí)行過程(1)首先執(zhí)行循環(huán)體語句,然后判斷表達式的值為真(非0)還是為假(0)
30、。(2)如果表達式的值為真,則重復(fù)步驟(1);如果表達式的值為假,則循環(huán)結(jié)束,執(zhí)行while語句之后的語句。相關(guān)知識3.dowhile語句應(yīng)用舉例相關(guān)知識三、for語句相關(guān)知識3.for語句應(yīng)用舉例相關(guān)知識四、break語句break語句通常用在循環(huán)語句和switch語句中。break在switch語句中的用法在前面已經(jīng)講過,這里不再重復(fù)。當(dāng)break語句用于while、dowhile和for循環(huán)語句中時,可使程序終止break語句所在層的循環(huán),提前退出循環(huán)。相關(guān)知識五、continue語句相關(guān)知識2.continue語句應(yīng)用舉例相關(guān)知識3.break和continue語句的區(qū)別相關(guān)知識六、幾
31、種循環(huán)的比較13種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。2在while循環(huán)和dowhile循環(huán)中,只在while后面的括號內(nèi)指定循環(huán)條件,因此為了使循環(huán)能正常結(jié)束,應(yīng)在循環(huán)體中包含使循環(huán)趨于結(jié)束的語句。for循環(huán)可以在“表達式3”中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達式3中,因此,for語句的功能更強,凡用while循環(huán)能完成的,用for循環(huán)都能實現(xiàn)。3用while和dowhile循環(huán)時,循環(huán)變量初始化的操作應(yīng)在while和dowhile語句之前完成。而for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。4 while循環(huán)、dowhile循環(huán)和for循環(huán)
32、,都可以用break語句跳出循環(huán),用continue語句結(jié)束本次循環(huán)。任務(wù)實施一、使用while語句實現(xiàn)二、使用dowhile語句實現(xiàn)三、使用for語句實現(xiàn)拓展提升一、循環(huán)嵌套二、while循環(huán)和dowhile循環(huán)的比較三、循環(huán)結(jié)構(gòu)的測試小 結(jié)循環(huán)結(jié)構(gòu)程序設(shè)計的思想和方法while、dowhile和for語句的使用格式和執(zhí)行過程while、dowhile和for語句實現(xiàn)循環(huán)結(jié)構(gòu)的方法break和continue語句的使用方法和區(qū)別運用C語言中的循環(huán)語句解決實際問題第2篇 提高篇學(xué)生信息管理系統(tǒng)項目概述采用結(jié)構(gòu)化程序設(shè)計思想,綜合運用C語言知識,完成學(xué)生信息管理系統(tǒng)的開發(fā)。該系統(tǒng)主要包括學(xué)生信息
33、的錄入與瀏覽、成績的統(tǒng)計分析、補考名單的輸出、學(xué)生信息的查詢與修改等功能。任務(wù)分析根據(jù)系統(tǒng)主要功能,可以將系統(tǒng)劃分為錄入學(xué)生信息、瀏覽學(xué)生信息、成績統(tǒng)計分析、輸出補考名單、查詢學(xué)生信息、修改學(xué)生信息等6個模塊。任務(wù)分析(1)錄入學(xué)生信息。接收用戶從鍵盤輸入的學(xué)生信息,包括姓名、班級、學(xué)號、成績。(2)瀏覽學(xué)生信息。輸出所有學(xué)生的信息,包括姓名、班級、學(xué)號、成績。(3)成績統(tǒng)計分析。輸出最高分、最低分、平均分,統(tǒng)計各分數(shù)段人數(shù)及比例。分數(shù)段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應(yīng)百分制的90 x100、80 x90、70 x80、60 x70、x60。(4)輸出補考名單。查找不及格學(xué)
34、生,輸出其學(xué)號及姓名。(5)查詢學(xué)生信息。按學(xué)號查找并輸出指定學(xué)生的信息。(6)修改學(xué)生信息。按學(xué)號查找并修改指定學(xué)生的信息,比如班級、姓名、成績。學(xué)習(xí)目標(biāo)理解將實際問題中的信息抽象為C語言數(shù)組、結(jié)構(gòu)體變量的方法理解指針的概念和使用方法掌握數(shù)組、結(jié)構(gòu)體表示數(shù)據(jù)的方法掌握文件讀寫操作的方法完成學(xué)生信息管理系統(tǒng)的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點主要包括程序的3種基本結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等內(nèi)容。其中程序的3種基本結(jié)構(gòu)、函數(shù)已經(jīng)在第一篇進行了介紹。數(shù)組、指針、結(jié)構(gòu)體、文件的知識將在本篇詳細介紹。任務(wù)分解任務(wù)六 學(xué)生成績信息的統(tǒng)計分析利用數(shù)組處理學(xué)生信息里的數(shù)值類數(shù)據(jù)(成績)。任務(wù)七 學(xué)
35、生綜合信息的管理利用結(jié)構(gòu)體處理學(xué)生綜合信息,包括數(shù)值型及字符型數(shù)據(jù)。任務(wù)八 學(xué)生信息的存儲利用磁盤文件保存學(xué)生信息。任務(wù)六 學(xué)生成績信息的管理本章我們將進行學(xué)生成績統(tǒng)計分析系統(tǒng)的開發(fā)。系統(tǒng)功能主要包括:輸入學(xué)生成績、瀏覽學(xué)生信息、找出最高分、最低分、計算平均分、統(tǒng)計各分數(shù)段人數(shù)及比例、輸出需補考學(xué)號、按學(xué)號查詢成績、按學(xué)號修改成績等。任務(wù)描述本任務(wù)實現(xiàn)學(xué)生成績信息的統(tǒng)計分析。從系統(tǒng)具體功能可知,系統(tǒng)主模塊應(yīng)包含顯示主菜單、輸入學(xué)生成績、瀏覽學(xué)生成績、成績統(tǒng)計分析、輸出補考學(xué)號、查詢學(xué)生成績、修改學(xué)生成績等7項。任務(wù)分析采用結(jié)構(gòu)化程序設(shè)計思想,每個模塊都定義為一個功能相對獨立的函數(shù),各模塊對應(yīng)函
36、數(shù)如下:(1)顯示主菜單。函數(shù)為MainMenu()。(2)錄入學(xué)生成績。函數(shù)為Input()。(3)瀏覽學(xué)生成績。函數(shù)為Display()。(4)成績統(tǒng)計分析。函數(shù)為Analyze()。(5)輸出補考名單。函數(shù)為Output()。(6)查詢學(xué)生成績。函數(shù)為Search()。(7)修改學(xué)生成績。函數(shù)為Modify()。學(xué)習(xí)目標(biāo)理解利用數(shù)組存放信息的思想和方法能將實際問題中的數(shù)據(jù)信息抽象為數(shù)組掌握數(shù)組的定義與初始化的操作方法掌握對數(shù)組元素輸入、輸出、查找、修改的操作方法完成學(xué)生成績信息統(tǒng)計分析系統(tǒng)的開發(fā)相關(guān)知識通常,在程序中參與操作的數(shù)可以分為兩種形式:一種是單一數(shù)據(jù);另一種是批量數(shù)據(jù)。單一數(shù)據(jù)
37、是指用于描述一個事物或一個概念且相對獨立的數(shù)據(jù);而批量數(shù)據(jù)是指將若干個具有相同性質(zhì)的數(shù)據(jù)組織在一起且共同參與某項操作的數(shù)據(jù)集合。數(shù)組是C語言提供的一種專門用來組織批量數(shù)據(jù)的數(shù)據(jù)類型,它可以將性質(zhì)相同且需要共同參與某項操作的多個數(shù)據(jù)有效地組織起來,是一種應(yīng)用十分頻繁且非常重要的數(shù)據(jù)類型。相關(guān)知識一、一維數(shù)組1.一維數(shù)組的定義一維數(shù)組變量的定義格式如下:元素類型 數(shù)組變量名;例如:float score6;相關(guān)知識2.一維數(shù)組的初始化數(shù)組初始化的基本格式為元素類型 數(shù)組變量名 =元素初值1,元素初值2,.,元素初值n;例如,float score6=70,68,82,58,92,89;相關(guān)知識3.
38、一維數(shù)組元素的引用及基本操作對數(shù)組元素的引用格式如下數(shù)組變量名下標(biāo)表達式其中,“數(shù)組變量名”是一個已經(jīng)定義的數(shù)組變量,“下標(biāo)表達式”的結(jié)果應(yīng)該是一個介于數(shù)組下標(biāo)取值范圍內(nèi)的整型數(shù)值。例如,score0、score1、score5分別表示score數(shù)組的各個元素。相關(guān)知識(1)數(shù)組的賦值數(shù)組的賦值有三種方法,一是在定義數(shù)組型變量的同時對其進行初始化;二是利用賦值語句為數(shù)組賦值;三是調(diào)用標(biāo)準(zhǔn)輸入函數(shù)為數(shù)組賦值。當(dāng)為數(shù)組中的某個特定元素賦值時,需要通過數(shù)組變量名和下標(biāo)值指出相應(yīng)的數(shù)組元素。例如:score5=78;scanf(%f,&score2); /程序等待用戶通過鍵盤輸入1個實型數(shù)值,賦給sc
39、ore數(shù)組中下標(biāo)是2的元素。相關(guān)知識當(dāng)需要為數(shù)組中的每個元素賦值時,應(yīng)該使用循環(huán)結(jié)構(gòu)。例如:int i;for(i=0;i6;i+) /給score數(shù)組中的每個元素賦值20scorei=20;C語言除了在定義數(shù)組時可以為數(shù)組整體賦值之外,不能在其他情況對數(shù)組進行整體賦值。例如,下面的用法是錯誤的。int array10;for(i=0;i10;i+)scanf(%d,array);相關(guān)知識(2)數(shù)組的輸出與數(shù)組型變量賦值一樣,數(shù)組的輸出是通過輸出數(shù)組型變量中的每一個元素值實現(xiàn)的。例如:int i;for(i=0;i6;i+)/依次輸出score數(shù)組中的6個元素printf(%.2f,score
40、i);相關(guān)知識【例6-1】從鍵盤輸入10個整數(shù),找出最大值并輸出。相關(guān)知識例6-2】從鍵盤輸入10個學(xué)生的百分制成績,計算平均成績并輸出。相關(guān)知識【例6-3】從鍵盤輸入某班(每班最多50人)學(xué)生的百分制成績(輸入-1時表示該班成績輸入完畢),求平均成績并輸出。相關(guān)知識【例6-4】從鍵盤輸入10個學(xué)生的百分制成績,統(tǒng)計各分數(shù)段人數(shù)及比例。分數(shù)段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應(yīng)百分制的90 x100、80 x90、70 x80、60 x70、x60。相關(guān)知識【例6-5】從鍵盤輸入10個學(xué)生的百分制成績,判斷是否有不及格的學(xué)生。相關(guān)知識【例6-6】從鍵盤輸入10個學(xué)生的百分制成績
41、,查找不及格的學(xué)生,輸出其在數(shù)組中的順序號及成績。相關(guān)知識【例6-7】計算選手得分。假設(shè)有10位評委打分,計算選手最終得分的方法是:首先去掉一個最高分和一個最低分,然后計算剩余8個分數(shù)的平均值,所得結(jié)果就是選手的最終得分。編程實現(xiàn)該功能。相關(guān)知識【例6-8】統(tǒng)計選舉結(jié)果。假設(shè)有5位候選人,編程統(tǒng)計每位候選人的得票數(shù)目及選舉結(jié)果。相關(guān)知識二、字符數(shù)組前面介紹的數(shù)組都是數(shù)值型的數(shù)組,數(shù)組中的每一個元素都是用來存放數(shù)值型的數(shù)據(jù)。數(shù)組不僅可以是數(shù)值型的,也可以是字符型的或其他類型的(比如指針類型、結(jié)構(gòu)體類型)。用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組。字符數(shù)組中的一個元素存放一個字符。相關(guān)知識1.字符數(shù)組的定
42、義及初始化(1)先定義數(shù)組再逐個賦值相關(guān)知識(2)定義字符數(shù)組時對各元素賦值,即初始化。char str10= I, , a, m, , L, i, l, y, . ;char str10= L, i, l, y;相關(guān)知識2.字符串字符串是一種常用的數(shù)據(jù)形式,是指一個有限長度的字符序列。在C語言中,并沒有直接提供字符串?dāng)?shù)據(jù)類型,而是借助于字符型數(shù)組實現(xiàn)字符串的組織。在C語言中,字符串常量用一對雙引號括起來。例如,“Lily Xu”、“張三”、“山東職業(yè)學(xué)院”、“男”都是字符串常量。相關(guān)知識在C語言中,字符串用字符型數(shù)組存儲,并且以0作為結(jié)束標(biāo)志。例如char s11=I am Lily.;相關(guān)
43、知識3.字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出有兩種方法。一種是逐個字符輸入輸出;另一種是整個字符串輸入輸出。相關(guān)知識(1)逐個字符輸入輸出。用字符輸入輸出函數(shù)getchar()和putchar(),或者用格式化輸入輸出函數(shù)scanf()和printf()的格式符“%c”,結(jié)合循環(huán)實現(xiàn)逐個字符輸入或輸出。例如,char name10;for(i=0;i10;i+)scanf(%c,&namei);/或者 namei=getchar();for(i=0;i10;i+)printf(%c,namei);/或者 putchar(namei);相關(guān)知識(2)整個字符串輸入輸出用格式化輸入輸出函數(shù)scan
44、f()和printf()的格式符“%s”將整個字符串一次輸入或輸出。char name10;scanf(%s,name);printf(%s,name);用gets()和puts()函數(shù)實現(xiàn)整個字符串的輸入輸出。相關(guān)知識三、字符串標(biāo)準(zhǔn)函數(shù)相關(guān)知識四、數(shù)組作函數(shù)參數(shù)1.數(shù)組元素作函數(shù)參數(shù)數(shù)組元素作函數(shù)的實參,與普通變量作實參一樣,傳遞方式是單向值傳遞方式。相關(guān)知識2.數(shù)組名作為函數(shù)參數(shù)在C語言程序中,有時需要把數(shù)組的全部元素傳遞到另一個函數(shù)中去處理,此時可以用數(shù)組名作為函數(shù)參數(shù)。任務(wù)實施一、搭建系統(tǒng)整體框架二、具體函數(shù)的實現(xiàn)(1)錄入學(xué)生成績函數(shù)(2)瀏覽學(xué)生成績函數(shù)(3)成績統(tǒng)計分析函數(shù)(4)
45、輸出補考名單函數(shù)(5)查詢學(xué)生成績函數(shù)(6)修改學(xué)生成績函數(shù)拓展提升一、二維數(shù)組1.二維數(shù)組的定義定義二維數(shù)組的一般形式為:類型名 數(shù)組名常量表達式1常量表達式2;拓展提升2.二維數(shù)組的初始化二維數(shù)組的初始化形式有以下幾種。(1)對每個元素進行初始化int a34=12,11,10,9,8,7,6,5,4,3,2,1;int a34=12,11,10,9,8,7,6,5,4,3,2,1;int a4=12,11,10,9,8,7,6,5,4,3,2,1;拓展提升(2)只對二維數(shù)組中的部分元素初始化。int array134=,1,2,3,4,5,6;int array234=1,2,3,4,5
46、,6;拓展提升3.二維數(shù)組元素的引用定義二維數(shù)組型變量之后,就可以通過引用二維數(shù)組的每個元素對其實現(xiàn)各類操作。由于每個二維數(shù)組元素需要由兩個下標(biāo)才能夠惟一確定,因此引用二維數(shù)組元素的格式為:數(shù)組名下標(biāo)1下標(biāo)2拓展提升二、排序排序就是將一組無序的數(shù)列重新排列成非遞減或非遞增的順序。拓展提升1.選擇排序選擇排序是一種最簡單的排序方法。假設(shè)有n個數(shù)據(jù)要排序,其基本思路是:首先從n個數(shù)據(jù)中選擇一個最小的數(shù)據(jù),并將它交換到第1個位置;然后再從后面n-1個數(shù)據(jù)中選擇一個最小的數(shù)據(jù),并將它交換到第2個位置;以此類推,直至最后從兩個數(shù)據(jù)中選擇一個最小的數(shù)據(jù),并將它交換到第n-1個位置為止,整個排序操作結(jié)束。拓
47、展提升2.冒泡排序冒泡排序的基本思路是:先將第1個數(shù)和第2個數(shù)比較,如果第1個數(shù)比第2個數(shù)大,就將兩個數(shù)互換,這樣,第2個數(shù)就是2個數(shù)中最大的了;然后再將第2個數(shù)和第3個數(shù)比較,如果第2個數(shù)比第3個數(shù)大,就將兩個數(shù)互換,這樣,第3個數(shù)就是3個數(shù)中最大的了;依此規(guī)律,將相鄰兩個數(shù)比較,將大的調(diào)到后頭。最終實現(xiàn)將所有的數(shù)據(jù)按照非遞減的順序重新排列。拓展提升三、二分查找查找是指根據(jù)某個給定的條件,在一組數(shù)據(jù)中搜索是否存在滿足該條件的數(shù)據(jù)的過程。如果存在,則表示查找成功,給出成功的標(biāo)志;否則表示查找不成功,給出失敗的標(biāo)志。順序查找是按照從前往后的順序依次查看每個數(shù)據(jù),如果找到,則終止查找;如果所有數(shù)據(jù)
48、都查看完畢,仍沒有找到符合條件的數(shù)據(jù),說明該數(shù)據(jù)不存在。拓展提升如果參加查找操作的所有數(shù)據(jù)已經(jīng)是排好順序的(稱為有序數(shù)列),可以充分利用它的有序性,采用更快捷的二分查找法。二分查找法是指每次將要查找的數(shù)(以下用key代替)與位于查找區(qū)間中央位置的元素進行比較,比較結(jié)果將會產(chǎn)生下面3種情形之一(以非遞減有序數(shù)列為例)。(1)如果相等,說明查找成功。(2)如果key小于中央位置的元素,說明如果存在這樣的元素,應(yīng)該位于查找區(qū)間的前半部分。此時可以將查找區(qū)間縮減為原來的一半,并在這一半的區(qū)間中繼續(xù)用相同的方式查找。(3)如果key大于中央位置的元素,說明如果存在這樣的元素,應(yīng)該位于查找區(qū)間的后半部分。
49、此時可以將查找區(qū)間縮減為原來的一半,并在這一半的區(qū)間中繼續(xù)用相同的方式查找??梢钥闯觯胟ey與當(dāng)前查找區(qū)間中央位置的元素比較后,不是找到了,就是將查找區(qū)間縮小了一半。直到查找區(qū)間不存在了,說明沒有要找的key。小 結(jié)利用數(shù)組存放信息的思想和方法將實際問題中的數(shù)據(jù)信息抽象為數(shù)組數(shù)組的定義與初始化的操作方法對數(shù)組元素輸入、輸出、查找、修改的操作方法學(xué)生成績信息統(tǒng)計分析系統(tǒng)的開發(fā)第2篇 提高篇學(xué)生信息管理系統(tǒng)項目概述采用結(jié)構(gòu)化程序設(shè)計思想,綜合運用C語言知識,完成學(xué)生信息管理系統(tǒng)的開發(fā)。該系統(tǒng)主要包括學(xué)生信息的錄入與瀏覽、成績的統(tǒng)計分析、補考名單的輸出、學(xué)生信息的查詢與修改等功能。任務(wù)分析根據(jù)系統(tǒng)
50、主要功能,可以將系統(tǒng)劃分為錄入學(xué)生信息、瀏覽學(xué)生信息、成績統(tǒng)計分析、輸出補考名單、查詢學(xué)生信息、修改學(xué)生信息等6個模塊。任務(wù)分析(1)錄入學(xué)生信息。接收用戶從鍵盤輸入的學(xué)生信息,包括姓名、班級、學(xué)號、成績。(2)瀏覽學(xué)生信息。輸出所有學(xué)生的信息,包括姓名、班級、學(xué)號、成績。(3)成績統(tǒng)計分析。輸出最高分、最低分、平均分,統(tǒng)計各分數(shù)段人數(shù)及比例。分數(shù)段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應(yīng)百分制的90 x100、80 x90、70 x80、60 x70、x60。(4)輸出補考名單。查找不及格學(xué)生,輸出其學(xué)號及姓名。(5)查詢學(xué)生信息。按學(xué)號查找并輸出指定學(xué)生的信息。(6)修改學(xué)生信
51、息。按學(xué)號查找并修改指定學(xué)生的信息,比如班級、姓名、成績。學(xué)習(xí)目標(biāo)理解將實際問題中的信息抽象為C語言數(shù)組、結(jié)構(gòu)體變量的方法理解指針的概念和使用方法掌握數(shù)組、結(jié)構(gòu)體表示數(shù)據(jù)的方法掌握文件讀寫操作的方法完成學(xué)生信息管理系統(tǒng)的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點主要包括程序的3種基本結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等內(nèi)容。其中程序的3種基本結(jié)構(gòu)、函數(shù)已經(jīng)在第一篇進行了介紹。數(shù)組、指針、結(jié)構(gòu)體、文件的知識將在本篇詳細介紹。任務(wù)分解任務(wù)六 學(xué)生成績信息的統(tǒng)計分析任務(wù)七 學(xué)生綜合信息的管理任務(wù)八 學(xué)生信息的存儲任務(wù)七 學(xué)生綜合信息的管理上一章我們開發(fā)的學(xué)生成績信息管理系統(tǒng),只能處理學(xué)生的成績信息,即數(shù)值類
52、信息。本章我們將對成績系統(tǒng)進行功能擴充,完成對學(xué)生綜合信息的管理,除了學(xué)生的數(shù)值型信息外,還包括學(xué)生的學(xué)號、姓名、性別、專業(yè)、出生日期、3門課的成績及平均成績等信息。系統(tǒng)主要功能和任務(wù)一類似,主要包括:輸入學(xué)生信息、瀏覽學(xué)生信息、成績統(tǒng)計分析、輸出補考名單、按學(xué)號查詢學(xué)生信息、按學(xué)號修改學(xué)生信息等。任務(wù)描述本任務(wù)實現(xiàn)學(xué)生綜合信息的管理。系統(tǒng)主模塊與任務(wù)一類似,功能進行了擴充。包括顯示主菜單、輸入學(xué)生信息、瀏覽學(xué)生信息、成績統(tǒng)計分析、輸出補考名單、查詢學(xué)生信息、修改學(xué)生信息等7項。任務(wù)分析采用結(jié)構(gòu)化程序設(shè)計思想,每個模塊都定義為一個功能相對獨立的函數(shù),各模塊對應(yīng)函數(shù)如下:(1)顯示主菜單。函數(shù)為
53、MainMenu()。(2)錄入學(xué)生信息。函數(shù)為Input()。(3)瀏覽學(xué)生信息。函數(shù)為Display()。(4)成績統(tǒng)計分析。函數(shù)為Analyze()。(5)輸出補考名單。函數(shù)為Output()。(6)查詢學(xué)生信息。函數(shù)為Search()。(7)修改學(xué)生信息。函數(shù)為Modify()。學(xué)習(xí)目標(biāo)理解結(jié)構(gòu)體類型、結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組變量的含義掌握結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組變量的定義、初始化的操作方法掌握結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組變量的輸入、輸出、查找、修改的操作方法掌握指針變量的定義、初始化的操作方法掌握利用指針變量引用數(shù)組元素、結(jié)構(gòu)體變量的操作方法完成學(xué)生綜合信息管理系統(tǒng)的開發(fā)相關(guān)知識本任務(wù)中,學(xué)生
54、的學(xué)號、姓名、性別、專業(yè)、出生日期、三門課的成績及平均成績的數(shù)據(jù)類型不一致。其中的學(xué)號、姓名、性別、專業(yè)為字符型數(shù)據(jù);出生日期包括年、月、日三項,均為整型數(shù)據(jù);成績?yōu)閷嵭蛿?shù)據(jù)。為了將不同類型的數(shù)據(jù)組合成一個整體,C語言提供了一種構(gòu)造類型的數(shù)據(jù)結(jié)構(gòu)體,它可以將某些有相互聯(lián)系的、不同類型的數(shù)據(jù)存放在一起。結(jié)構(gòu)體由若干“成員”組成。每一個成員可以是一個基本類型或者是一個已經(jīng)定義過的構(gòu)造類型。相關(guān)知識一、結(jié)構(gòu)體類型在C語言中,將結(jié)構(gòu)體中的變量稱為“成員”,結(jié)構(gòu)體類型聲明的語法格式為:struct 結(jié)構(gòu)體類型名數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;數(shù)據(jù)類型 成員名n;其中,struct是保留字,它是聲
55、明結(jié)構(gòu)體類型的開始標(biāo)志,“結(jié)構(gòu)體類型名”、“成員名”應(yīng)該符合C語言的自定義標(biāo)識符規(guī)則;結(jié)構(gòu)體所包含的所有成員都封裝在一對花括號之間;對每個成員必須做類型說明,可以是基本數(shù)據(jù)類型,也可以是已定義的結(jié)構(gòu)體類型。相關(guān)知識相關(guān)知識相關(guān)知識相關(guān)知識相關(guān)知識二、結(jié)構(gòu)體變量1.結(jié)構(gòu)體變量的定義聲明結(jié)構(gòu)體類型之后,就可以定義結(jié)構(gòu)體變量了。C語言提供了兩種定義結(jié)構(gòu)體變量的方式:一種是利用結(jié)構(gòu)體類型名定義變量;一種是在聲明結(jié)構(gòu)體類型的同時定義變量。相關(guān)知識(1)利用已聲明的結(jié)構(gòu)體類型定義變量格式為:結(jié)構(gòu)體類型名 變量名1,變量名2,.,變量名n;例如:POINT p1, p2; /等價于struct point_
56、type p1, p2;RECT rect;/等價于struct rectangle_type rect;相關(guān)知識(2)在聲明結(jié)構(gòu)體類型的同時定義變量格式為:struct 結(jié)構(gòu)體類型名數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;數(shù)據(jù)類型 成員名n;變量名1,變量名2,變量名n;例如:struct point_typefloat x;/x坐標(biāo)float y;/y坐標(biāo) p1,p2;相關(guān)知識(3)直接定義結(jié)構(gòu)體變量。格式為:struct 數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;數(shù)據(jù)類型 成員名n;變量名1,變量名2,變量名n;例如:structfloat x;/x坐標(biāo)float y;/y坐標(biāo) p1,p2
57、;相關(guān)知識2.結(jié)構(gòu)體變量的初始化在定義結(jié)構(gòu)體變量的同時也可以進行初始化。對結(jié)構(gòu)體變量進行初始化的格式為:struct 結(jié)構(gòu)體類型名 變量名=成員值列表;相關(guān)知識3.結(jié)構(gòu)體變量的引用定義結(jié)構(gòu)體變量之后,就可以對變量進行操作了。一般不能直接使用結(jié)構(gòu)體變量,對結(jié)構(gòu)體變量的引用包括賦值、輸入、輸出和運算等都是通過對結(jié)構(gòu)體變量的成員進行操作來實現(xiàn)的。引用結(jié)構(gòu)體變量成員的格式為結(jié)構(gòu)體變量名.成員名相關(guān)知識(1)引用結(jié)構(gòu)體變量應(yīng)遵循的規(guī)則不能將一個結(jié)構(gòu)體變量作為一個整體變量進行輸入輸出,只能對結(jié)構(gòu)體變量中的各個成員分別進行輸入輸出。如果某個結(jié)構(gòu)體變量成員的數(shù)據(jù)類型又是一個結(jié)構(gòu)體類型,則只能對最低級的成員進行
58、賦值、輸入、輸出以及運算。結(jié)構(gòu)體變量的成員可以像普通變量一樣進行各種運算可以引用結(jié)構(gòu)體變量成員的地址,其引用格式為: &結(jié)構(gòu)體變量名.成員名相關(guān)知識(2)結(jié)構(gòu)體變量的輸入與輸出(3)結(jié)構(gòu)體變量的賦值C語言提供了2種方式給結(jié)構(gòu)體變量賦值,一種是對每個成員分別賦值;另一種是整體賦值。相關(guān)知識4.結(jié)構(gòu)體與函數(shù)在函數(shù)間傳遞結(jié)構(gòu)體變量與傳遞其他類型數(shù)據(jù)的方法完全相同,結(jié)構(gòu)體變量可以直接作為函數(shù)參數(shù),也屬于單向值傳遞。相關(guān)知識三、結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組是指數(shù)組的每一個元素都是具有相同結(jié)構(gòu)的結(jié)構(gòu)體變量,比如一個單位的所有員工信息、一個班級學(xué)生的信息等,都要用結(jié)構(gòu)體數(shù)組來描述。相關(guān)知識1.結(jié)構(gòu)體數(shù)組的定義定義結(jié)
59、構(gòu)體數(shù)組的方法與定義結(jié)構(gòu)體變量的方法相似,只需多加一個方括號,表示其為數(shù)組。(1)先聲明結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體數(shù)組。(2)在聲明結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體數(shù)組。(3)直接定義結(jié)構(gòu)體數(shù)組。相關(guān)知識2.結(jié)構(gòu)體數(shù)組的初始化其一般形式是:在定義數(shù)組的后面加上“=初值表列”。注意,要將每個元素的數(shù)據(jù)分別用花括號括起來。相關(guān)知識3.結(jié)構(gòu)體數(shù)組的引用一個結(jié)構(gòu)體數(shù)組的元素相當(dāng)于一個結(jié)構(gòu)體變量,所以前述的關(guān)于結(jié)構(gòu)體變量的引用方法對結(jié)構(gòu)體數(shù)組元素均適用。相關(guān)知識四、指針類型指針類型是C語言提供的一種特殊的基本數(shù)據(jù)類型。其特殊性在于:在指針型變量中存放的不是待操作的數(shù)據(jù),而是待操作數(shù)據(jù)的存儲地址。簡單說,指針就是
60、內(nèi)存地址。相關(guān)知識五、指針與數(shù)組數(shù)組是由若干類型相同的元素構(gòu)成的有序序列,這些元素在內(nèi)存中占據(jù)了一組連續(xù)的存儲空間,每個元素都有一個地址。數(shù)組的地址指的是數(shù)組的起始地址,即數(shù)組中第一個元素的地址。C語言規(guī)定,數(shù)組名代表數(shù)組的地址。C語言規(guī)定,如果指針變量p指向數(shù)組中的一個元素,則p+1指向同一數(shù)組中的下一個元素。相關(guān)知識六、指針與結(jié)構(gòu)體1.指向結(jié)構(gòu)體變量的指針結(jié)構(gòu)體變量的地址就是該結(jié)構(gòu)體變量所占內(nèi)存單元的起始地址??梢远x一個指針變量來指向一個結(jié)構(gòu)體變量,即將結(jié)構(gòu)體變量的地址賦值給指針變量。定義一個指向結(jié)構(gòu)體變量的指針變量的一般形式為:struct 結(jié)構(gòu)體類型名 *指針變量名;相關(guān)知識2.指向
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村個人租房協(xié)議合同范本
- 2021-2026年中國連州市服裝市場發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報告
- 公交車安裝防護欄合同范本
- 養(yǎng)殖鍋爐租賃合同范本
- 2025年中國紡織行業(yè)節(jié)能減排行業(yè)競爭格局分析及投資規(guī)劃研究報告
- 兒童藝術(shù)培訓(xùn)家長合同范本
- 養(yǎng)殖蛋雞加盟合作合同范本
- 兄弟之間合同范本
- 中國多重連接器項目投資可行性研究報告
- 科技創(chuàng)新在文化傳播中的作用與價值
- 轉(zhuǎn)運鐵水包安全風(fēng)險告知卡
- 31863:2015企業(yè)履約能力達標(biāo)全套管理制度
- 蘇教版數(shù)學(xué)二年級下冊《認識時分》教案(無錫公開課)
- 打造金融級智能中臺的數(shù)據(jù)底座
- 工程合同管理教材(共202頁).ppt
- ANKYLOS機械并發(fā)癥處理方法
- 道路橋梁實習(xí)日記12篇
- 第十章運動代償
- 氬弧焊機保養(yǎng)記錄表
- 明星97iii程序說明書
- 《企業(yè)經(jīng)營統(tǒng)計學(xué)》課程教學(xué)大綱
評論
0/150
提交評論