簡單三角函數胡計算器ppt課件(完整版)_第1頁
簡單三角函數胡計算器ppt課件(完整版)_第2頁
簡單三角函數胡計算器ppt課件(完整版)_第3頁
簡單三角函數胡計算器ppt課件(完整版)_第4頁
簡單三角函數胡計算器ppt課件(完整版)_第5頁
已閱讀5頁,還剩420頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1篇 基礎篇簡單三角函數計算器項目概述任務描述采用結構化程序設計思想,綜合運用C語言知識,完成簡單三角函數計算器的開發(fā)。該系統(tǒng)主要包括輸入要計算的角度、選擇要計算的三角函數(正弦、余弦、正切、余切)、輸出計算結果等功能。任務分析實現一個簡單三角函數計算器,能夠完成計算出正弦、余弦、正切、余切等三角函數值。除了實現計算功能外,還需要實現基本的人機交互。比如,程序運行后,首先顯示一個菜單(以下統(tǒng)稱為主菜單),提示用戶選擇要進行哪種計算;用戶選擇后,該系統(tǒng)提示用戶輸入角度,并接收用戶輸入的角度;計算該角度的三角函數;然后在屏幕上輸出計算結果;最后提示用戶“按任意鍵返回主菜單”。在主菜單中,用戶選擇

2、“0”時,退出程序。學習目標熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數據類型及變量的方法理解結構化程序設計思想掌握C語言中表示數據的方法掌握C語言程序人機交互的實現方法掌握C語言程序的三種基本結構掌握C語言用戶自定義函數的定義、調用方法完成簡單三角函數計算器的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點包括:基本數據類型、常量和變量、運算符和表達式、輸入輸出函數、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計和函數等內容。任務分解任務一 構建開發(fā)環(huán)境任務二 主菜單的順序執(zhí)行任務三 主菜單的選擇執(zhí)行任務四 主菜單的循環(huán)執(zhí)行任務五 利用函數優(yōu)化源代碼任務一 構建開發(fā)環(huán)境本任務要搭建C語言

3、的集成開發(fā)環(huán)境,并熟悉在該環(huán)境中開發(fā)C語言程序的步驟。后續(xù)任務均在該環(huán)境中完成。任務描述選擇一種C語言開發(fā)集成環(huán)境,并完成安裝。熟悉在該環(huán)境中開發(fā)C語言程序的過程。任務分析本書中采用VC+6.0開發(fā)環(huán)境。本任務需要下載VC+6.0安裝包,并完成安裝,構建C語言開發(fā)環(huán)境。在該環(huán)境中,運行本章例題,熟悉C語言程序的開發(fā)過程。學習目標了解C語言的發(fā)展及特點。掌握C語言程序的基本結構。掌握使用VC+6.0開發(fā)C語言程序的過程。能夠構建C語言開發(fā)環(huán)境。相關知識一、程序設計語言1.低級語言低級語言依賴于所在的計算機系統(tǒng),也稱為面向機器的語言。由于不同的計算機系統(tǒng)使用的指令系統(tǒng)可能不同,因此使用低級語言編寫

4、的程序移植性較差。低級語言主要2.高級語言高級語言是面向用戶的、基本上獨立于計算機種類和結構的語言,其最大的優(yōu)點是形式上接近于算術語言和自然語言。高級語言編寫的程序易讀、易修改、移植性好。包括機器語言和匯編語言。相關知識二、C語言發(fā)展及特點1.C語言的發(fā)展C語言是1972年由美國的Dennis M. Ritchie和Ken Thompson設計開發(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)。相關知識2.C語言的特點和其他語言相比,C語言具有書寫格式自由、數據類型豐富、語句功能強大、執(zhí)行速度快和存儲控制能力強等特點。(1)語言簡潔、緊湊,使用方便、靈活。(2)數據結構豐富,具有現代化語言的各種數據結構。(3)C語言是結構式語言。(4)把高級語言的基本結構和語句與低級語言的實用性結合起來。(5)程序可移植性好。(6)表達力強。相關知識三、C語言程序的基本結構1.幾個簡單的C語言程序2.C語言程序的基本結構(1)一個C語言源程序可以由一個或多個源文件組成。(2)源程序中可以有預處理命令(includ

6、e),通常放在源文件或源程序的最前面。(3)每個源文件可由一個或多個函數組成。(4)每個源程序必須有一個且只能有一個主函數main(),由系統(tǒng)自動地調用,是程序執(zhí)行的起始點。主函數的位置是任意的,可以在程序開頭、兩個函數之間或程序的結尾。(5)所有語句必須以分號結束,但預處理命令、函數頭和函數體的花括號“”之后不能加分號。(6)可以用“/*/”對C語言程序的任何部分做注釋,以增強程序的可讀性。VC+中還可以用“/”給程序加注釋。相關知識3.C語言程序的書寫規(guī)則(1)C語言源程序一般用小寫字母書寫。(2)一個說明或一條語句占一行。(3)用“”括起來的部分,通常表示程序的某一層次結構。(4)低一層

7、次的語句或說明可比高一層次的語句或說明縮進若干格后書寫。增加程序的可讀性。(5)對程序有必要的注釋,以增強程序的可讀性。相關知識四、C語言程序的運行過程任務實施一、安裝VC+6.0二、利用VC+6.0運行C程序拓展提升一、編程時常犯的錯誤二、程序調試的基本方法小 結C語言的特點。C語言程序的基本結構。使用VC+6.0開發(fā)C語言程序的過程。構建C語言開發(fā)環(huán)境。第1篇 基礎篇簡單三角函數計算器項目概述學習目標熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數據類型及變量的方法理解結構化程序設計思想掌握C語言中表示數據的方法掌握C語言程序人機交互的實現方法掌握C語言程序的三種基本結構掌握C語

8、言用戶自定義函數的定義、調用方法完成簡單三角函數計算器的開發(fā)任務分解任務一 構建開發(fā)環(huán)境任務二 主菜單的順序執(zhí)行任務三 主菜單的選擇執(zhí)行任務四 主菜單的循環(huán)執(zhí)行任務五 利用函數優(yōu)化源代碼任務二 主菜單的順序執(zhí)行在任務一中,我們已經搭建好C語言的集成開發(fā)環(huán)境,從任務二開始逐步進行教學項目的開發(fā)。本任務首先完成項目主菜單的顯示與順序執(zhí)行。任務描述實現項目主菜單的顯示,接收用戶從鍵盤輸入的角度,按主菜單順序依次計算其正弦、余弦、正切、余切等4個三角函數,并輸出計算結果。項目主菜單包括四項功能:正弦、余弦、正切、余切,如圖2-1所示。任務分析該任務需要解決四個問題,即如何顯示主菜單、如何接收從鍵盤輸入

9、的數據、如何計算正弦、余弦、正切、余切,以及如何輸出計算結果。(1)顯示主菜單。(2)接收從鍵盤輸入的數據。(3)計算正弦、余弦、正切、余切。(4)輸出計算結果。學習目標掌握C語言的基本數據類型。理解將實際問題中的信息抽象為C語言數據的方法。掌握常量和變量的概念及使用方法。掌握常用運算符的使用方法。掌握數據輸入輸出的常用方法。實現項目主菜單的顯示和順序執(zhí)行。相關知識一、數據類型相關知識二、常量與變量1.常量常量是指在程序運行過程中始終不發(fā)生變化的量,主要包括整型常量、實型常量、字符型常量和字符串型常量。2.變量變量是指在程序運行過程中其值可以改變的量,通常用變量來保存程序執(zhí)行時的輸入數據、中間

10、結果和最終結果等。相關知識三、運算符與表達式用來表示各種運算的符號稱為“運算符”。用運算符把操作數連接在一起組成的式子稱為“表達式”。表達式按照運算符的運算規(guī)則進行運算,得到一個結果,稱為“表達式的值”。相關知識1.算術運算符與算術表達式相關知識2.賦值運算符與賦值表達式相關知識3.關系運算符與關系表達式相關知識4.邏輯運算符與邏輯表達式相關知識四、數據類型轉換C語言中的數據類型轉換有兩種方式:自動類型轉換和強制類型轉換。1.自動類型轉換自動類型轉換是指C語言的編譯系統(tǒng)按既定的規(guī)則進行類型轉換。其轉換規(guī)則為:(1)在C語言的一般表達式中,不同類型數據進行運算時,其轉換原則是:參加運算的各種變量

11、轉換成它們之間占用空間最長的數據類型。(2)在C語言的賦值表達式中,如果賦值號左右兩邊的類型不一致,則右邊的值先轉換成與賦值號左邊的變量相同的類型,然后再進行賦值。相關知識2.強制類型轉換上面的數據類型轉換是C語言自動完成的。在編寫程序時,可以根據需要進行強制類型轉換。一般格式是:()功能:將表達式的值強制轉換為指定的數據類型,即在括號內標出的數據類型。相關知識五、格式輸入/輸出函數1.格式輸出函數printf()printf()函數是一個標準的庫函數,它的函數原型在頭文件“stdio.h”中,但不要求在使用printf()函數前必須使用文件包含命令:#include 。函數功能:首先計算輸出

12、表列中各表達式的值,然后按照中給出的格式說明,將各表達式的值轉換成所需要的輸出格式,在顯示器上輸出。調用形式:printf(格式控制字符串,輸出表列);相關知識相關知識2.格式輸入函數scanf()scanf ()函數是一個標準的庫函數,它的函數原型在頭文件“stdio.h”中,但不要求在使用scanf ()函數前必須使用文件包含命令:#include stdio.h。函數功能:從鍵盤按照中規(guī)定的格式輸入若干個數據,按中變量的順序,依次賦值給對應的變量。調用形式:scanf (格式控制字符串,變量地址表列);相關知識六、字符輸入/輸出函數1.字符輸出函數putchar()putchar()函數

13、是一個標準的庫函數,它的函數原型在頭文件“stdio.h”中,要求在使用putchar()函數前必須使用文件包含命令:#include stdio.h。函數功能:向終端輸出一個字符或字符變量的值。調用形式:putchar(c);相關知識2.字符輸入函數getchar()getchar ()函數是一個標準的庫函數,它的函數原型在頭文件“stdio.h”中,要求在使用getchar ()函數前必須使用文件包含命令:#include stdio.h。函數功能:等待用戶從標準輸入設備鍵盤輸入一個字符。如果輸入成功,函數返回這個字符的ASCII值。任務實施一、顯示主菜單#include #include

14、 void main() int x; double sinx,cosx,tanx,cotx; printf(nnnn); printf(ttt 三角函數計算器 n); printf(ttt-n); printf(tttt1.正弦n); printf(tttt2.余弦n); printf(tttt3.正切n); printf(tttt4.余切n); printf(ttt-n); printf(ttt請輸入角度(0-180):);任務實施二、接收從鍵盤輸入的數據修改上面程序,在第15行后增加以下語句:scanf(%d,&x); /接收用戶從鍵盤輸入的角度任務實施三、計算正弦、余弦、正切、余切在語

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);任務實施四、輸出計算結果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、符與條件表達式五、符號常量六、位運算小 結C語言的基本數據類型。將實際問題中的信息抽象為C語言數據的方法。常量和變量的概念及使用方法。常用運算符的使用方法。數據輸入輸出的常用方法。項目主菜單的顯示和順序執(zhí)行。第1篇 基礎篇簡單三角函數計算器項目概述學習目標熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數據類型及變量的方法理解結構化程序設計思想掌握C語言中表示數據的方法掌握C語言程序人機交互的實現方法掌握C語言程序的三種基本結構掌握C語言用戶自定義函數的定義、調用方法完成簡單三角函數計算器的開發(fā)任務分解任務一 構建開發(fā)環(huán)境任務二 主菜單的順序執(zhí)行任務三 主菜單的選擇執(zhí)行任務四 主菜單的

17、循環(huán)執(zhí)行任務五 利用函數優(yōu)化源代碼任務三 主菜單的選擇執(zhí)行在任務二里,我們完成了項目主菜單的顯示與順序執(zhí)行。運行程序后,接收用戶輸入的角度,計算其正弦、余弦、正切、余切等4個三角函數,并在屏幕上輸出計算結果。但是有時用戶并不需要計算全部4個三角函數,只需要計算其中1個。這種情況下,源代碼不需要順序執(zhí)行全部語句,而是根據用戶的需要有選擇地執(zhí)行部分語句。比如用戶只想計算正弦,程序只需執(zhí)行正弦的計算語句和輸出語句,其余3個三角函數的計算和輸出語句則不需執(zhí)行。這就是主菜單的選擇執(zhí)行,需要用C語言中的選擇語句實現。任務描述實現項目主菜單的選擇執(zhí)行。具體為,屏幕輸出主菜單,用戶根據菜單提示選擇三角函數類型

18、,并輸入角度,程序計算并輸出對應的三角函數值。如圖3-1所示。任務分析本任務要根據用戶對主菜單的選擇進行不同的計算。主菜單共有4個選項,相應地,程序就需要處理4種不同的情況,這在C語言里稱為分支結構。C語言有兩種語句實現分支結構:一是if語句;二是switch語句。本任務將分別用if語句和switch語句實現主菜單的選擇執(zhí)行。學習目標理解C語言的三種程序結構。理解程序流程圖。掌握選擇結構程序設計的思想和方法。掌握if語句實現分支結構的方法。掌握switch語句實現分支結構的方法。能運用C語言分支結構解決實際問題。相關知識一、程序設計1.程序設計的步驟程序設計的一般步驟如下:分析問題。針對具體的

19、實際問題,分析問題涉及到的各種數據信息及其基本結構。設計數據結構。數據結構是指對數據的描述。通過分析要解決的任務,確定輸入數據和輸出數據,并在程序中指定數據的類型和數據的組織形式。設計算法。算法是指計算機解決問題的操作方法和步驟,即對計算機求解步驟的具體描述。編寫程序。根據確定的數據結構和算法,使用選定的計算機語言編寫程序代碼。調試程序。將編寫好的程序代碼輸入到計算機中,對程序進行測試并修正,直到程序符合任務要求為止。數據結構設計和算法設計處于核心的位置。相關知識2.算法的表示(1)自然語言自然語言即人們日常使用的語言,如漢語、英語或其他國語言。(2)流程圖流程圖是指用規(guī)定圖形符號、流程線和文

20、字說明表示各種操作的圖形。(3)N-S圖N-S圖去掉了箭頭,全部算法寫在一個矩形框內。做圖簡單,面積小,適于結構化程序設計。(4)偽代碼法偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。每一行或幾行表示一個基本操作。書寫方便,格式緊湊,便于向計算機語言算法(即程序)過渡。相關知識2.算法的表示(1)自然語言【例3-1】輸入3個數,輸出其中最大的數。用自然語言描述算法。分析:定義4個變量用于存放3個數及3個數中的最大數,比較是兩兩進行的。設輸入的3個數分別為A、B、C,最大數放在MAX中。第一步:輸入A、B、C的值。第二步:比較A、B的值,把大數放入MAX中。第三步:比較C、MAX

21、的值,把大數放入MAX中。第四步:輸出MAX,算法結束。相關知識2.算法的表示(2)流程圖相關知識2.算法的表示(3)N-S圖相關知識2.算法的表示(4)偽代碼法input A、B、Cif A BMAX=AelseMAX=Bif C MAXMAX=Coutput MAX相關知識二、三種基本程序結構程序的三種基本控制結構是順序結構、選擇結構和循環(huán)結構。順序結構是最簡單的一種結構,在順序結構程序中,各語句按照書寫的先后順序依次執(zhí)行。選擇結構根據判斷結果確定不同的后續(xù)語句,主要用于描述程序中根據某些數據的取值或者計算結果選取不同操作的處理方式。循環(huán)結構是指利用給定條件控制某組語句重復執(zhí)行多次的流程。

22、相關知識1.順序結構相關知識2.選擇結構相關知識3.循環(huán)結構循環(huán)結構又稱為重復結構,即在一定條件下反復執(zhí)行某一部分的操作。這里的一定條件稱為循環(huán)條件,通常用關系表達式或邏輯表達式表示。反復執(zhí)行的部分稱為循環(huán)體。循環(huán)結構是3種基本結構中較復雜的一種結構。循環(huán)結構有當型和直到型兩種主要形式。(1)當型循環(huán)結構功能:先判斷條件是否成立,若條件成立則執(zhí)行循環(huán)體,然后重新去判斷條件是否成立,若條件成立則繼續(xù)執(zhí)行循環(huán)體,如此反復直到條件不成立為止。如圖3-9所示。 (2)直到型循環(huán)結構功能:先執(zhí)行循環(huán)體,再去判斷條件是否成立,若成立則去執(zhí)行循環(huán)體,直到條件不成立為止。如圖3-10所示。 循環(huán)結構一般包含以

23、下4個部分。(1)初始化部分:為循環(huán)變量及各種有關變量賦初值。(2)循環(huán)體:重復執(zhí)行的部分。(3)修改部分:修改循環(huán)變量的值,為下一次重復執(zhí)行做準備。(4)判斷檢查部分:判斷檢查循環(huán)變量的值,是否已超過循環(huán)變量的終值,若未超過則繼續(xù)重復執(zhí)行循環(huán)體,否則結束。相關知識三、if語句if語句有種形式:單分支if語句、雙分支if語句、多分支if語句。1.單分支if語句格式如下:if(表達式) 語句;功能:若表達式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行語句。相關知識2.雙分支if語句格式如下:if(表達式) 語句1;else語句2;功能:若表達式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2。相關知識3.多分支

24、if語句格式如下:if(表達式1) 語句1;else if(表達式2)語句2;else if(表達式m)語句m;else語句n; 功能:由上而下,依次判斷表達式的值,當某個表達式的值為真時,就執(zhí)行其對應的語句。執(zhí)行完畢后,跳出if選擇語句,繼續(xù)執(zhí)行其下一條語句。如果所有的表達式全為假,則執(zhí)行else后的語句n。相關知識4.if語句的嵌套在if語句中,語句1和語句2本身也可以是if語句,此時稱為if語句的嵌套。格式如下:if(表達式1) if(表達式2)語句1;else語句2;elseif(表達式3)語句3;else語句4;相關知識四、switch語句使用if語句實現復雜問題的多分支選擇時,程序

25、的結構顯得不夠清晰,因此,C語言提供了一種專門用來實現多分支選擇結構的switch語句,又稱開關語句。switch語句的一般形式如下:switch(表達式)case 常量1:語句1;case 常量2:語句2;case 常量n:語句n;default:語句n+1;任務實施一、使用if語句實現二、使用if嵌套語句實現使用switch語句實現拓展提升一、用條件表達式實現簡單的選擇結構二、在程序中使用條件表達式小 結C語言的三種程序結構。選擇結構程序設計的思想和方法。if語句實現分支結構的方法。switch語句實現分支結構的方法。C語言分支結構解決實際問題的方法。第1篇 基礎篇簡單三角函數計算器項目概

26、述學習目標熟悉C語言開發(fā)集成環(huán)境理解將實際問題中的信息抽象為C語言數據類型及變量的方法理解結構化程序設計思想掌握C語言中表示數據的方法掌握C語言程序人機交互的實現方法掌握C語言程序的三種基本結構掌握C語言用戶自定義函數的定義、調用方法完成簡單三角函數計算器的開發(fā)任務分解任務一 構建開發(fā)環(huán)境任務二 主菜單的順序執(zhí)行任務三 主菜單的選擇執(zhí)行任務四 主菜單的循環(huán)執(zhí)行任務五 利用函數優(yōu)化源代碼任務四 主菜單的循環(huán)執(zhí)行在任務三里,我們完成了項目主菜單的選擇執(zhí)行,接收用戶的選擇,并執(zhí)行對應的功能。但是每次運行程序只能選擇主菜單中的一項功能,執(zhí)行完這項功能后直接退出程序。我們希望程序開始運行后,只要不選擇“

27、退出”功能,程序就一直運行。具體為,程序運行后,顯示主菜單,根據用戶選擇執(zhí)行完一項功能后,返回到程序主菜單,等待用戶再次選擇,直到用戶選擇“退出”,程序結束。在這個過程中,主菜單的顯示是重復性的操作。在C語言中,稱為循環(huán)執(zhí)行,可以利用C語言提供的循環(huán)語句實現。任務描述本任務中實現項目主菜單的循環(huán)執(zhí)行,即每執(zhí)行完一項功能后,返回到程序主菜單,等待用戶再次選擇,直到用戶選擇“退出”,整個程序運行結束,如圖4-1所示。這是典型的循環(huán)結構,只要用戶不輸入“0”,則計算并輸出三角函數值(當輸入14時)或者提示選擇錯誤(當輸入14之外的數值時)后,就再次顯示主菜單,等待用戶再次選擇;直到用戶輸入“0”,程

28、序才結束。任務分析無論采用哪種循環(huán)語句,循環(huán)結構必須指定循環(huán)條件和循環(huán)體。在本任務中,循環(huán)條件是:用戶輸入的選項不為“0”。循環(huán)體包括:三角函數的計算及輸出、項目主菜單的顯示、接收用戶輸入的選項。即,只要用戶不選擇“0”,每執(zhí)行完一項功能,就會顯示項目主菜單;如果用戶選擇了“0”,則退出循環(huán)體,不再顯示項目主菜單。任務四將用三種方法實現項目主菜單的循環(huán)執(zhí)行。學習目標理解循環(huán)結構程序設計的思想和方法掌握while、dowhile和for語句的使用格式和執(zhí)行過程掌握while、dowhile和for語句實現循環(huán)結構的方法掌握break和continue語句的使用方法和區(qū)別能運用C語言中的循環(huán)語句解

29、決實際問題相關知識一、while語句1.while語句的語法格式while語句的一般形式為:while(表達式)循環(huán)體2.while語句的執(zhí)行過程相關知識3.while語句應用舉例相關知識二、dowhile語句1.dowhile語句的語法格式dowhile語句的一般形式為:do循環(huán)體 while(表達式);其中,do是C語言的關鍵字,必須和while聯合使用。dowhile語句由do開始,到while結束。注意,在while的表達式后必須有分號,表示該語句的結束。其他同while語句。相關知識2.dowhile語句的執(zhí)行過程(1)首先執(zhí)行循環(huán)體語句,然后判斷表達式的值為真(非0)還是為假(0)

30、。(2)如果表達式的值為真,則重復步驟(1);如果表達式的值為假,則循環(huán)結束,執(zhí)行while語句之后的語句。相關知識3.dowhile語句應用舉例相關知識三、for語句相關知識3.for語句應用舉例相關知識四、break語句break語句通常用在循環(huán)語句和switch語句中。break在switch語句中的用法在前面已經講過,這里不再重復。當break語句用于while、dowhile和for循環(huán)語句中時,可使程序終止break語句所在層的循環(huán),提前退出循環(huán)。相關知識五、continue語句相關知識2.continue語句應用舉例相關知識3.break和continue語句的區(qū)別相關知識六、幾

31、種循環(huán)的比較13種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。2在while循環(huán)和dowhile循環(huán)中,只在while后面的括號內指定循環(huán)條件,因此為了使循環(huán)能正常結束,應在循環(huán)體中包含使循環(huán)趨于結束的語句。for循環(huán)可以在“表達式3”中包含使循環(huán)趨于結束的操作,甚至可以將循環(huán)體中的操作全部放到表達式3中,因此,for語句的功能更強,凡用while循環(huán)能完成的,用for循環(huán)都能實現。3用while和dowhile循環(huán)時,循環(huán)變量初始化的操作應在while和dowhile語句之前完成。而for語句可以在表達式1中實現循環(huán)變量的初始化。4 while循環(huán)、dowhile循環(huán)和for循環(huán)

32、,都可以用break語句跳出循環(huán),用continue語句結束本次循環(huán)。任務實施一、使用while語句實現二、使用dowhile語句實現三、使用for語句實現拓展提升一、循環(huán)嵌套二、while循環(huán)和dowhile循環(huán)的比較三、循環(huán)結構的測試小 結循環(huán)結構程序設計的思想和方法while、dowhile和for語句的使用格式和執(zhí)行過程while、dowhile和for語句實現循環(huán)結構的方法break和continue語句的使用方法和區(qū)別運用C語言中的循環(huán)語句解決實際問題第2篇 提高篇學生信息管理系統(tǒng)項目概述采用結構化程序設計思想,綜合運用C語言知識,完成學生信息管理系統(tǒng)的開發(fā)。該系統(tǒng)主要包括學生信息

33、的錄入與瀏覽、成績的統(tǒng)計分析、補考名單的輸出、學生信息的查詢與修改等功能。任務分析根據系統(tǒng)主要功能,可以將系統(tǒng)劃分為錄入學生信息、瀏覽學生信息、成績統(tǒng)計分析、輸出補考名單、查詢學生信息、修改學生信息等6個模塊。任務分析(1)錄入學生信息。接收用戶從鍵盤輸入的學生信息,包括姓名、班級、學號、成績。(2)瀏覽學生信息。輸出所有學生的信息,包括姓名、班級、學號、成績。(3)成績統(tǒng)計分析。輸出最高分、最低分、平均分,統(tǒng)計各分數段人數及比例。分數段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應百分制的90 x100、80 x90、70 x80、60 x70、x60。(4)輸出補考名單。查找不及格學

34、生,輸出其學號及姓名。(5)查詢學生信息。按學號查找并輸出指定學生的信息。(6)修改學生信息。按學號查找并修改指定學生的信息,比如班級、姓名、成績。學習目標理解將實際問題中的信息抽象為C語言數組、結構體變量的方法理解指針的概念和使用方法掌握數組、結構體表示數據的方法掌握文件讀寫操作的方法完成學生信息管理系統(tǒng)的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點主要包括程序的3種基本結構、函數、數組、指針、結構體、文件等內容。其中程序的3種基本結構、函數已經在第一篇進行了介紹。數組、指針、結構體、文件的知識將在本篇詳細介紹。任務分解任務六 學生成績信息的統(tǒng)計分析利用數組處理學生信息里的數值類數據(成績)。任務七 學

35、生綜合信息的管理利用結構體處理學生綜合信息,包括數值型及字符型數據。任務八 學生信息的存儲利用磁盤文件保存學生信息。任務六 學生成績信息的管理本章我們將進行學生成績統(tǒng)計分析系統(tǒng)的開發(fā)。系統(tǒng)功能主要包括:輸入學生成績、瀏覽學生信息、找出最高分、最低分、計算平均分、統(tǒng)計各分數段人數及比例、輸出需補考學號、按學號查詢成績、按學號修改成績等。任務描述本任務實現學生成績信息的統(tǒng)計分析。從系統(tǒng)具體功能可知,系統(tǒng)主模塊應包含顯示主菜單、輸入學生成績、瀏覽學生成績、成績統(tǒng)計分析、輸出補考學號、查詢學生成績、修改學生成績等7項。任務分析采用結構化程序設計思想,每個模塊都定義為一個功能相對獨立的函數,各模塊對應函

36、數如下:(1)顯示主菜單。函數為MainMenu()。(2)錄入學生成績。函數為Input()。(3)瀏覽學生成績。函數為Display()。(4)成績統(tǒng)計分析。函數為Analyze()。(5)輸出補考名單。函數為Output()。(6)查詢學生成績。函數為Search()。(7)修改學生成績。函數為Modify()。學習目標理解利用數組存放信息的思想和方法能將實際問題中的數據信息抽象為數組掌握數組的定義與初始化的操作方法掌握對數組元素輸入、輸出、查找、修改的操作方法完成學生成績信息統(tǒng)計分析系統(tǒng)的開發(fā)相關知識通常,在程序中參與操作的數可以分為兩種形式:一種是單一數據;另一種是批量數據。單一數據

37、是指用于描述一個事物或一個概念且相對獨立的數據;而批量數據是指將若干個具有相同性質的數據組織在一起且共同參與某項操作的數據集合。數組是C語言提供的一種專門用來組織批量數據的數據類型,它可以將性質相同且需要共同參與某項操作的多個數據有效地組織起來,是一種應用十分頻繁且非常重要的數據類型。相關知識一、一維數組1.一維數組的定義一維數組變量的定義格式如下:元素類型 數組變量名;例如:float score6;相關知識2.一維數組的初始化數組初始化的基本格式為元素類型 數組變量名 =元素初值1,元素初值2,.,元素初值n;例如,float score6=70,68,82,58,92,89;相關知識3.

38、一維數組元素的引用及基本操作對數組元素的引用格式如下數組變量名下標表達式其中,“數組變量名”是一個已經定義的數組變量,“下標表達式”的結果應該是一個介于數組下標取值范圍內的整型數值。例如,score0、score1、score5分別表示score數組的各個元素。相關知識(1)數組的賦值數組的賦值有三種方法,一是在定義數組型變量的同時對其進行初始化;二是利用賦值語句為數組賦值;三是調用標準輸入函數為數組賦值。當為數組中的某個特定元素賦值時,需要通過數組變量名和下標值指出相應的數組元素。例如:score5=78;scanf(%f,&score2); /程序等待用戶通過鍵盤輸入1個實型數值,賦給sc

39、ore數組中下標是2的元素。相關知識當需要為數組中的每個元素賦值時,應該使用循環(huán)結構。例如:int i;for(i=0;i6;i+) /給score數組中的每個元素賦值20scorei=20;C語言除了在定義數組時可以為數組整體賦值之外,不能在其他情況對數組進行整體賦值。例如,下面的用法是錯誤的。int array10;for(i=0;i10;i+)scanf(%d,array);相關知識(2)數組的輸出與數組型變量賦值一樣,數組的輸出是通過輸出數組型變量中的每一個元素值實現的。例如:int i;for(i=0;i6;i+)/依次輸出score數組中的6個元素printf(%.2f,score

40、i);相關知識【例6-1】從鍵盤輸入10個整數,找出最大值并輸出。相關知識例6-2】從鍵盤輸入10個學生的百分制成績,計算平均成績并輸出。相關知識【例6-3】從鍵盤輸入某班(每班最多50人)學生的百分制成績(輸入-1時表示該班成績輸入完畢),求平均成績并輸出。相關知識【例6-4】從鍵盤輸入10個學生的百分制成績,統(tǒng)計各分數段人數及比例。分數段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應百分制的90 x100、80 x90、70 x80、60 x70、x60。相關知識【例6-5】從鍵盤輸入10個學生的百分制成績,判斷是否有不及格的學生。相關知識【例6-6】從鍵盤輸入10個學生的百分制成績

41、,查找不及格的學生,輸出其在數組中的順序號及成績。相關知識【例6-7】計算選手得分。假設有10位評委打分,計算選手最終得分的方法是:首先去掉一個最高分和一個最低分,然后計算剩余8個分數的平均值,所得結果就是選手的最終得分。編程實現該功能。相關知識【例6-8】統(tǒng)計選舉結果。假設有5位候選人,編程統(tǒng)計每位候選人的得票數目及選舉結果。相關知識二、字符數組前面介紹的數組都是數值型的數組,數組中的每一個元素都是用來存放數值型的數據。數組不僅可以是數值型的,也可以是字符型的或其他類型的(比如指針類型、結構體類型)。用來存放字符數據的數組是字符數組。字符數組中的一個元素存放一個字符。相關知識1.字符數組的定

42、義及初始化(1)先定義數組再逐個賦值相關知識(2)定義字符數組時對各元素賦值,即初始化。char str10= I, , a, m, , L, i, l, y, . ;char str10= L, i, l, y;相關知識2.字符串字符串是一種常用的數據形式,是指一個有限長度的字符序列。在C語言中,并沒有直接提供字符串數據類型,而是借助于字符型數組實現字符串的組織。在C語言中,字符串常量用一對雙引號括起來。例如,“Lily Xu”、“張三”、“山東職業(yè)學院”、“男”都是字符串常量。相關知識在C語言中,字符串用字符型數組存儲,并且以0作為結束標志。例如char s11=I am Lily.;相關

43、知識3.字符數組的輸入輸出字符數組的輸入輸出有兩種方法。一種是逐個字符輸入輸出;另一種是整個字符串輸入輸出。相關知識(1)逐個字符輸入輸出。用字符輸入輸出函數getchar()和putchar(),或者用格式化輸入輸出函數scanf()和printf()的格式符“%c”,結合循環(huán)實現逐個字符輸入或輸出。例如,char name10;for(i=0;i10;i+)scanf(%c,&namei);/或者 namei=getchar();for(i=0;i10;i+)printf(%c,namei);/或者 putchar(namei);相關知識(2)整個字符串輸入輸出用格式化輸入輸出函數scan

44、f()和printf()的格式符“%s”將整個字符串一次輸入或輸出。char name10;scanf(%s,name);printf(%s,name);用gets()和puts()函數實現整個字符串的輸入輸出。相關知識三、字符串標準函數相關知識四、數組作函數參數1.數組元素作函數參數數組元素作函數的實參,與普通變量作實參一樣,傳遞方式是單向值傳遞方式。相關知識2.數組名作為函數參數在C語言程序中,有時需要把數組的全部元素傳遞到另一個函數中去處理,此時可以用數組名作為函數參數。任務實施一、搭建系統(tǒng)整體框架二、具體函數的實現(1)錄入學生成績函數(2)瀏覽學生成績函數(3)成績統(tǒng)計分析函數(4)

45、輸出補考名單函數(5)查詢學生成績函數(6)修改學生成績函數拓展提升一、二維數組1.二維數組的定義定義二維數組的一般形式為:類型名 數組名常量表達式1常量表達式2;拓展提升2.二維數組的初始化二維數組的初始化形式有以下幾種。(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)只對二維數組中的部分元素初始化。int array134=,1,2,3,4,5,6;int array234=1,2,3,4,5

46、,6;拓展提升3.二維數組元素的引用定義二維數組型變量之后,就可以通過引用二維數組的每個元素對其實現各類操作。由于每個二維數組元素需要由兩個下標才能夠惟一確定,因此引用二維數組元素的格式為:數組名下標1下標2拓展提升二、排序排序就是將一組無序的數列重新排列成非遞減或非遞增的順序。拓展提升1.選擇排序選擇排序是一種最簡單的排序方法。假設有n個數據要排序,其基本思路是:首先從n個數據中選擇一個最小的數據,并將它交換到第1個位置;然后再從后面n-1個數據中選擇一個最小的數據,并將它交換到第2個位置;以此類推,直至最后從兩個數據中選擇一個最小的數據,并將它交換到第n-1個位置為止,整個排序操作結束。拓

47、展提升2.冒泡排序冒泡排序的基本思路是:先將第1個數和第2個數比較,如果第1個數比第2個數大,就將兩個數互換,這樣,第2個數就是2個數中最大的了;然后再將第2個數和第3個數比較,如果第2個數比第3個數大,就將兩個數互換,這樣,第3個數就是3個數中最大的了;依此規(guī)律,將相鄰兩個數比較,將大的調到后頭。最終實現將所有的數據按照非遞減的順序重新排列。拓展提升三、二分查找查找是指根據某個給定的條件,在一組數據中搜索是否存在滿足該條件的數據的過程。如果存在,則表示查找成功,給出成功的標志;否則表示查找不成功,給出失敗的標志。順序查找是按照從前往后的順序依次查看每個數據,如果找到,則終止查找;如果所有數據

48、都查看完畢,仍沒有找到符合條件的數據,說明該數據不存在。拓展提升如果參加查找操作的所有數據已經是排好順序的(稱為有序數列),可以充分利用它的有序性,采用更快捷的二分查找法。二分查找法是指每次將要查找的數(以下用key代替)與位于查找區(qū)間中央位置的元素進行比較,比較結果將會產生下面3種情形之一(以非遞減有序數列為例)。(1)如果相等,說明查找成功。(2)如果key小于中央位置的元素,說明如果存在這樣的元素,應該位于查找區(qū)間的前半部分。此時可以將查找區(qū)間縮減為原來的一半,并在這一半的區(qū)間中繼續(xù)用相同的方式查找。(3)如果key大于中央位置的元素,說明如果存在這樣的元素,應該位于查找區(qū)間的后半部分。

49、此時可以將查找區(qū)間縮減為原來的一半,并在這一半的區(qū)間中繼續(xù)用相同的方式查找??梢钥闯?,用key與當前查找區(qū)間中央位置的元素比較后,不是找到了,就是將查找區(qū)間縮小了一半。直到查找區(qū)間不存在了,說明沒有要找的key。小 結利用數組存放信息的思想和方法將實際問題中的數據信息抽象為數組數組的定義與初始化的操作方法對數組元素輸入、輸出、查找、修改的操作方法學生成績信息統(tǒng)計分析系統(tǒng)的開發(fā)第2篇 提高篇學生信息管理系統(tǒng)項目概述采用結構化程序設計思想,綜合運用C語言知識,完成學生信息管理系統(tǒng)的開發(fā)。該系統(tǒng)主要包括學生信息的錄入與瀏覽、成績的統(tǒng)計分析、補考名單的輸出、學生信息的查詢與修改等功能。任務分析根據系統(tǒng)

50、主要功能,可以將系統(tǒng)劃分為錄入學生信息、瀏覽學生信息、成績統(tǒng)計分析、輸出補考名單、查詢學生信息、修改學生信息等6個模塊。任務分析(1)錄入學生信息。接收用戶從鍵盤輸入的學生信息,包括姓名、班級、學號、成績。(2)瀏覽學生信息。輸出所有學生的信息,包括姓名、班級、學號、成績。(3)成績統(tǒng)計分析。輸出最高分、最低分、平均分,統(tǒng)計各分數段人數及比例。分數段共有優(yōu)秀、良好、中等、及格、不及格五個等級,分別對應百分制的90 x100、80 x90、70 x80、60 x70、x60。(4)輸出補考名單。查找不及格學生,輸出其學號及姓名。(5)查詢學生信息。按學號查找并輸出指定學生的信息。(6)修改學生信

51、息。按學號查找并修改指定學生的信息,比如班級、姓名、成績。學習目標理解將實際問題中的信息抽象為C語言數組、結構體變量的方法理解指針的概念和使用方法掌握數組、結構體表示數據的方法掌握文件讀寫操作的方法完成學生信息管理系統(tǒng)的開發(fā)知識要點系統(tǒng)開發(fā)涉及的知識點主要包括程序的3種基本結構、函數、數組、指針、結構體、文件等內容。其中程序的3種基本結構、函數已經在第一篇進行了介紹。數組、指針、結構體、文件的知識將在本篇詳細介紹。任務分解任務六 學生成績信息的統(tǒng)計分析任務七 學生綜合信息的管理任務八 學生信息的存儲任務七 學生綜合信息的管理上一章我們開發(fā)的學生成績信息管理系統(tǒng),只能處理學生的成績信息,即數值類

52、信息。本章我們將對成績系統(tǒng)進行功能擴充,完成對學生綜合信息的管理,除了學生的數值型信息外,還包括學生的學號、姓名、性別、專業(yè)、出生日期、3門課的成績及平均成績等信息。系統(tǒng)主要功能和任務一類似,主要包括:輸入學生信息、瀏覽學生信息、成績統(tǒng)計分析、輸出補考名單、按學號查詢學生信息、按學號修改學生信息等。任務描述本任務實現學生綜合信息的管理。系統(tǒng)主模塊與任務一類似,功能進行了擴充。包括顯示主菜單、輸入學生信息、瀏覽學生信息、成績統(tǒng)計分析、輸出補考名單、查詢學生信息、修改學生信息等7項。任務分析采用結構化程序設計思想,每個模塊都定義為一個功能相對獨立的函數,各模塊對應函數如下:(1)顯示主菜單。函數為

53、MainMenu()。(2)錄入學生信息。函數為Input()。(3)瀏覽學生信息。函數為Display()。(4)成績統(tǒng)計分析。函數為Analyze()。(5)輸出補考名單。函數為Output()。(6)查詢學生信息。函數為Search()。(7)修改學生信息。函數為Modify()。學習目標理解結構體類型、結構體變量、結構體數組變量的含義掌握結構體變量、結構體數組變量的定義、初始化的操作方法掌握結構體變量、結構體數組變量的輸入、輸出、查找、修改的操作方法掌握指針變量的定義、初始化的操作方法掌握利用指針變量引用數組元素、結構體變量的操作方法完成學生綜合信息管理系統(tǒng)的開發(fā)相關知識本任務中,學生

54、的學號、姓名、性別、專業(yè)、出生日期、三門課的成績及平均成績的數據類型不一致。其中的學號、姓名、性別、專業(yè)為字符型數據;出生日期包括年、月、日三項,均為整型數據;成績?yōu)閷嵭蛿祿?。為了將不同類型的數據組合成一個整體,C語言提供了一種構造類型的數據結構體,它可以將某些有相互聯系的、不同類型的數據存放在一起。結構體由若干“成員”組成。每一個成員可以是一個基本類型或者是一個已經定義過的構造類型。相關知識一、結構體類型在C語言中,將結構體中的變量稱為“成員”,結構體類型聲明的語法格式為:struct 結構體類型名數據類型 成員名1;數據類型 成員名2;數據類型 成員名n;其中,struct是保留字,它是聲

55、明結構體類型的開始標志,“結構體類型名”、“成員名”應該符合C語言的自定義標識符規(guī)則;結構體所包含的所有成員都封裝在一對花括號之間;對每個成員必須做類型說明,可以是基本數據類型,也可以是已定義的結構體類型。相關知識相關知識相關知識相關知識相關知識二、結構體變量1.結構體變量的定義聲明結構體類型之后,就可以定義結構體變量了。C語言提供了兩種定義結構體變量的方式:一種是利用結構體類型名定義變量;一種是在聲明結構體類型的同時定義變量。相關知識(1)利用已聲明的結構體類型定義變量格式為:結構體類型名 變量名1,變量名2,.,變量名n;例如:POINT p1, p2; /等價于struct point_

56、type p1, p2;RECT rect;/等價于struct rectangle_type rect;相關知識(2)在聲明結構體類型的同時定義變量格式為:struct 結構體類型名數據類型 成員名1;數據類型 成員名2;數據類型 成員名n;變量名1,變量名2,變量名n;例如:struct point_typefloat x;/x坐標float y;/y坐標 p1,p2;相關知識(3)直接定義結構體變量。格式為:struct 數據類型 成員名1;數據類型 成員名2;數據類型 成員名n;變量名1,變量名2,變量名n;例如:structfloat x;/x坐標float y;/y坐標 p1,p2

57、;相關知識2.結構體變量的初始化在定義結構體變量的同時也可以進行初始化。對結構體變量進行初始化的格式為:struct 結構體類型名 變量名=成員值列表;相關知識3.結構體變量的引用定義結構體變量之后,就可以對變量進行操作了。一般不能直接使用結構體變量,對結構體變量的引用包括賦值、輸入、輸出和運算等都是通過對結構體變量的成員進行操作來實現的。引用結構體變量成員的格式為結構體變量名.成員名相關知識(1)引用結構體變量應遵循的規(guī)則不能將一個結構體變量作為一個整體變量進行輸入輸出,只能對結構體變量中的各個成員分別進行輸入輸出。如果某個結構體變量成員的數據類型又是一個結構體類型,則只能對最低級的成員進行

58、賦值、輸入、輸出以及運算。結構體變量的成員可以像普通變量一樣進行各種運算可以引用結構體變量成員的地址,其引用格式為: &結構體變量名.成員名相關知識(2)結構體變量的輸入與輸出(3)結構體變量的賦值C語言提供了2種方式給結構體變量賦值,一種是對每個成員分別賦值;另一種是整體賦值。相關知識4.結構體與函數在函數間傳遞結構體變量與傳遞其他類型數據的方法完全相同,結構體變量可以直接作為函數參數,也屬于單向值傳遞。相關知識三、結構體數組結構體數組是指數組的每一個元素都是具有相同結構的結構體變量,比如一個單位的所有員工信息、一個班級學生的信息等,都要用結構體數組來描述。相關知識1.結構體數組的定義定義結

59、構體數組的方法與定義結構體變量的方法相似,只需多加一個方括號,表示其為數組。(1)先聲明結構體類型,再定義結構體數組。(2)在聲明結構體類型的同時定義結構體數組。(3)直接定義結構體數組。相關知識2.結構體數組的初始化其一般形式是:在定義數組的后面加上“=初值表列”。注意,要將每個元素的數據分別用花括號括起來。相關知識3.結構體數組的引用一個結構體數組的元素相當于一個結構體變量,所以前述的關于結構體變量的引用方法對結構體數組元素均適用。相關知識四、指針類型指針類型是C語言提供的一種特殊的基本數據類型。其特殊性在于:在指針型變量中存放的不是待操作的數據,而是待操作數據的存儲地址。簡單說,指針就是

60、內存地址。相關知識五、指針與數組數組是由若干類型相同的元素構成的有序序列,這些元素在內存中占據了一組連續(xù)的存儲空間,每個元素都有一個地址。數組的地址指的是數組的起始地址,即數組中第一個元素的地址。C語言規(guī)定,數組名代表數組的地址。C語言規(guī)定,如果指針變量p指向數組中的一個元素,則p+1指向同一數組中的下一個元素。相關知識六、指針與結構體1.指向結構體變量的指針結構體變量的地址就是該結構體變量所占內存單元的起始地址??梢远x一個指針變量來指向一個結構體變量,即將結構體變量的地址賦值給指針變量。定義一個指向結構體變量的指針變量的一般形式為:struct 結構體類型名 *指針變量名;相關知識2.指向

溫馨提示

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

評論

0/150

提交評論