已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中國(guó)商業(yè)出版社,模塊 二 輸入/輸出順序程序設(shè)計(jì),學(xué)習(xí)目標(biāo),數(shù)據(jù)類型及常量、變量 賦值、算術(shù)、關(guān)系表達(dá)式 printf和scanf輸入輸出函數(shù),據(jù)格式化輸出和輸入 程序與算法 順序程序設(shè)計(jì)的一般方法,模塊內(nèi)容,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,2.2 程序與算法描述,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,2.4 項(xiàng)目五 輸入輸出同學(xué)個(gè)人信息,2.5 項(xiàng)目六 超市購物結(jié)賬程序,2.6 語法小節(jié),2.7 工程軟件編程規(guī)范,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【項(xiàng)目任務(wù)】,從鍵盤輸入三角形三個(gè)邊a,b,c的值,計(jì)算打印它們的周長(zhǎng)和面積程序。,【項(xiàng)目目標(biāo)】,了解程序設(shè)計(jì)分析方法。 掌握變量、運(yùn)算符、表達(dá)式的應(yīng)用。 掌握賦值語句的應(yīng)用。 了解輸入、輸出的使用。,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【技術(shù)要點(diǎn)】,1程序設(shè)計(jì)思路。先把從鍵盤輸入三個(gè)邊a,b,c的值存起來,分別按公式計(jì)算出周長(zhǎng)l和面積s,然后打印輸出。要解決這個(gè)計(jì)算問題,計(jì)算機(jī)是分步完成任務(wù)的,要思考幾個(gè)問題: (1) 數(shù)據(jù)如何存放?(如何定義存儲(chǔ)數(shù)據(jù)的變量?) (2) 數(shù)據(jù)如何輸入? (3) 如何按數(shù)學(xué)公式計(jì)算? (4) 如何輸出結(jié)果?,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【技術(shù)要點(diǎn)】,2.變量的定義。定義變量的目的是要計(jì)算機(jī)在內(nèi)存中為程序的數(shù)據(jù)開辟存儲(chǔ)空間。定義變量必須明確以下三點(diǎn): (1) 變量名。 變量名標(biāo)明數(shù)據(jù)在內(nèi)存中地址,是存儲(chǔ)單元的標(biāo)識(shí)符,是變量存取的依據(jù)。程序需要多少個(gè)變量來存儲(chǔ)數(shù)據(jù),方便計(jì)算機(jī)程序處理。 (2) 變量的類型。變量是用來存儲(chǔ)數(shù)據(jù)的,不同類型的數(shù)據(jù)在計(jì)算機(jī)內(nèi)所占的存儲(chǔ)單元數(shù)是不同的,范圍大小不同。 (3) 變量的值。定義變量后初始值是不確定的,一般可通過賦值語句或輸入語句為其賦值。,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【技術(shù)要點(diǎn)】,3數(shù)據(jù)計(jì)算。本項(xiàng)目實(shí)際是一個(gè)數(shù)學(xué)計(jì)算問題,給出了數(shù)學(xué)計(jì)算公式,數(shù)學(xué)公式在程序中有的計(jì)算機(jī)無法識(shí)別,編譯無法通過,不能生成執(zhí)行文件;故數(shù)學(xué)公式在程序中要求按C語言表達(dá)式格式書寫,以便計(jì)算機(jī)正確編譯。本項(xiàng)目中周長(zhǎng)計(jì)算由l=a+b+c賦值語句完成,求面積利用s =sqrt(p*(p-a)*(p-b)*(p-c) 賦值語句完成。,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【技術(shù)要點(diǎn)】,4程序在框架內(nèi)由語句序列分步驟完成。 (1) 定義變量 (2) 輸入a,b,c的值 (3) 計(jì)算周長(zhǎng)l (4) 計(jì)算p和面積s (5) 輸出計(jì)算結(jié)果,項(xiàng)目流程圖,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,程序代碼,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,#include #include main() float a,b,c,p ,l; double s; printf(“please input the a,b,c:n“); scanf(“%f %f%f“, /*打印周長(zhǎng)和面積*/ ,2.1 項(xiàng)目三 數(shù)值計(jì)算計(jì)算三角形周長(zhǎng)和面積,【程序說明】,程序的功能是計(jì)算三角形周長(zhǎng)和面積。 第二行#include是C預(yù)處理程序的一條包含命令,math.h包含了數(shù)學(xué)求平方根sqrt()函數(shù),計(jì)算平方根時(shí)用到,故放在源程序的前面。 變量聲明float用來定義單精度實(shí)型的變量a、b、c、p、l,用double定義變量s為雙精度實(shí)型,用來存儲(chǔ)計(jì)算的面積。 本項(xiàng)目中周長(zhǎng)計(jì)算l=a+b+c賦值語句執(zhí)行過程,先取a、b、c變量值,計(jì)算(a+b)+c的和,再賦值給變量l,存入變量l的存儲(chǔ)單元之中,面積s的計(jì)算過程,先取a、b、c變量值,計(jì)算p=(a+b+c)/2,“/”表示除號(hào);計(jì)算p*(p-a)*(p-b)*(p-c)表達(dá)式的值,由平方根函數(shù)計(jì)算sqrt(p*(p-a)*(p-b)*(p-c),最后再賦值給變量s,完成計(jì)算任務(wù)。,程序思考,有同學(xué)將“p=(a+b+c)/2;” 改為“p=1/2* (a+b+c);” 請(qǐng)問程序計(jì)算結(jié)果正確嗎? 試一試,分析原因,如何改之。,應(yīng)用拓展,程序拓展變量賦值。程序功能輸入兩個(gè)數(shù)據(jù)給變量,交換后輸出。 程序設(shè)計(jì)思想,變量實(shí)質(zhì)是存儲(chǔ)單元,要交換存儲(chǔ)單元的數(shù)據(jù)內(nèi)容,就好比有兩個(gè)分別裝滿了雪碧和可口可樂飲料的飲料瓶,現(xiàn)想把瓶中的飲料互換一下,互換時(shí)不能使飲料混合,我們必須借助相同的容積的空飲料瓶,首先將飲料1倒入過度的空瓶中(t=a),將飲料2倒入飲料1的瓶中(a=b),最后將過度瓶中的飲料倒入飲料2中(b=a),由三步完成交換操作。,應(yīng)用拓展,變 量 交 換 流 程 圖,應(yīng)用拓展,#include “stdio.h” main( ) int a,b,t=0; /*定義三個(gè)變量為整型*/ printf(“input two numbers:”) scanf(“%d%d”, /*輸出交換之后變量的值*/ 運(yùn)行結(jié)果: input two numbers:35 46 a=35,b=46 a=46,b=35,應(yīng)用拓展,語句行 “t=a;a=b;b=t;”中有三條語句,可分三行書寫,但次序不能巔倒,如下圖2-3所示,每一步執(zhí)行后變量的結(jié)果。,變量賦值過程,拓展思考,討論比較一下,兩變量交換與雪碧飲料瓶和可口可樂飲料瓶中的飲料在交換過程中都借助的存儲(chǔ)空間,交換結(jié)束后,借助的兩存儲(chǔ)空間的結(jié)果有什么區(qū)別?,知識(shí)總結(jié),1數(shù)據(jù)類型 所謂一個(gè)數(shù)據(jù)的“數(shù)據(jù)類型”,是該數(shù)據(jù)自身的一種屬性,數(shù)據(jù)要在內(nèi)存中占用多少個(gè)字節(jié)。程序中涉及的各種數(shù)據(jù)(常量、變量),都必須存放在內(nèi)存里。在語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類。,知識(shí)總結(jié),2. 常量 在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,取值可變的量稱為變量。 在C語言中,常量又分為普通常量和符號(hào)常量,在程序中,常量的類型由常量本身隱含決定的。如求球體積“v = 4.0/3.0*PI*r*r*r; ”語句中4.0、3.0是普通常量,PI是符號(hào)常量。 普通常量:有整型常量、實(shí)型常量、字符型常量、字符串常量。 (1)整型常量:整型常量就是整常數(shù)。在語言中,使用的整常數(shù)有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種。 (2)實(shí)型常量 實(shí)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。在語言中,實(shí)數(shù)只采用十進(jìn)制。它有二種形式: 十進(jìn)制數(shù)形式指數(shù)形式。 十進(jìn)制數(shù)形式:由數(shù)碼0 9和小數(shù)點(diǎn)組成。例如:0.0,.25,5.789,-267.8230 指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號(hào))組成。其一般形式 如: 2.1E5 (等于2.1*105), 3.7E-2 (等于3.7*10-2),知識(shí)總結(jié),3.符號(hào)常量 符號(hào)常量是用標(biāo)識(shí)符代表一個(gè)常量。在語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。如用PI代(3.14)是符號(hào)常量。 符號(hào)常量在使用之前必須先定義,其一般形式為: #define 標(biāo)識(shí)符 常量 其中#define也是一條預(yù)處理命令(預(yù)處理命令都以“#“開頭),稱為宏定義命令(在后面預(yù)處理程序中將進(jìn)一步介紹),其功能是把該標(biāo)識(shí)符定義為其后的常量值。一經(jīng)定義,以后在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均代之以該常量值。 符號(hào)常量與變量不同,符號(hào)常量采用大寫字母表示,它的值在其作用域內(nèi)不能改變,也不能再被賦值。使用符號(hào)常量的好處是:含義清楚;能做到“一改全改”。 習(xí)慣上符號(hào)常量的標(biāo)識(shí)符用大寫字母,變量標(biāo)識(shí)符用小寫字母,以示區(qū)別。,知識(shí)總結(jié),4.變量 在程序執(zhí)行過程中,其值可以改變的量稱為變量。變量使用是要關(guān)注三個(gè)要素:類型,名字,當(dāng)前值。 (1)變量的類型 按基本數(shù)據(jù)類型來分,變量可為整型變量、實(shí)型變量、字符型變量。 整型變量可分為以下幾類: 基本型:類型說明符為int,在內(nèi)存中占2個(gè)字節(jié),其取值為基本整常數(shù)。 短整量:類型說明符為short int。所占字節(jié)和取值范圍均與基本型相同。 長(zhǎng)整型:類型說明符為long int或long ,在內(nèi)存中占4個(gè)字節(jié),其取值為長(zhǎng)整常數(shù)。 無符號(hào)型:類型說明符為unsigned。 無符號(hào)型又可與上述三種類型匹配而構(gòu)成: 無符號(hào)基本型 類型說明符為unsigned int或unsigned。 無符號(hào)短整型 類型說明符為unsigned short。 無符號(hào)長(zhǎng)整型 類型說明符為unsigned long。 實(shí)型變量分為兩類: 單精度型:其類型說明符為float。在內(nèi)存中占4個(gè)字節(jié),其取值為基本實(shí)數(shù)。 雙精度型:其類型說明符為double。在內(nèi)存中占8個(gè)字節(jié),其取值為基本實(shí)數(shù)。 字符型 字符型:其類型說明符為char。在內(nèi)存中占1個(gè)字節(jié),其取值為字符常量。,知識(shí)總結(jié),(2)變量的定義與賦初值 變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。變量定義的一般形式為: 類型說明符 變量名1=初始數(shù)據(jù),變量名2=初始數(shù)據(jù),.; 例如:int a,b,t; (a,b,t 為整型變量) float a,b,c=1.0; (a,b,c 為實(shí)型變量,并給c賦初值1.0。) char ch=A ; (ch 為字符型變量,并賦初值A(chǔ)。字符變量用來存儲(chǔ)單個(gè)字符) 變量一經(jīng)定義后就有一個(gè)名字,有類型(在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,就會(huì)有地址),可以用來裝什么類型的數(shù)據(jù),當(dāng)前的值是什么。如圖2-6所示。35a變量名變量的值變量的存儲(chǔ)單元65480變量的存儲(chǔ)單元地址(由計(jì)算機(jī)編譯分配) 變量定義時(shí),應(yīng)注意以下幾點(diǎn): 允許在一個(gè)類型說明符后,定義多個(gè)相同類型的變量。各變量名之間用逗號(hào)間隔。類型說明符與變量名之間至少用一個(gè)空格間隔。 最后一個(gè)變量名之后必須以“;”號(hào)結(jié)尾。 變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。,知識(shí)總結(jié),5.C 語言算術(shù)表達(dá)式與數(shù)學(xué)公式 表達(dá)式是由運(yùn)算符和括號(hào)連接起來的式子。表達(dá)式是由常量、變量、函數(shù)和運(yùn)算符組合起來的式子。一個(gè)表達(dá)式有一個(gè)值及其類型,它們等于計(jì)算表達(dá)式所得結(jié)果的值和類型。 算術(shù)表達(dá)式是用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合 C 語法規(guī)則的式子。以下是算術(shù)表達(dá)式的例子: a+b (a*2)c (x+r)*8-(a+b)7 數(shù)學(xué)公式在程序中正確的轉(zhuǎn)換成C語言算術(shù)表達(dá)式要注意幾點(diǎn): 正確使用算術(shù)運(yùn)算符,加(+)、減( - )、乘 ( * ) 、 除 ( / ),特別是“*”不能省,平方、立方采用“*”連乘求積,平方根采用函數(shù) sqrt( )。 如果是分?jǐn)?shù)形式的數(shù)學(xué)表達(dá)式,則一定要將分子、分母分別用一對(duì)圓括號(hào)括起來,用括號(hào)決定運(yùn)算順序。如(a+b+c)/2; 除法“/”運(yùn)算還與數(shù)據(jù)類型有關(guān),當(dāng)左右兩側(cè)為整型,運(yùn)算結(jié)果是整型。當(dāng)左右兩側(cè)為有一個(gè)為實(shí)型時(shí),運(yùn)算結(jié)果是實(shí)型。如13/2結(jié)果是6,而不是6.5,而13.0/2、13.0/2.0或13/2.0的運(yùn)算結(jié)果都是6.5。,知識(shí)總結(jié),6.賦值運(yùn)算 簡(jiǎn)單賦值運(yùn)算符記為“=”。由“=”連接的式子稱為賦值表達(dá)式。其一般形式為: 變量=表達(dá)式 例如:x=a+b,p=(a+b+c)/2 賦值表達(dá)式的功能是計(jì)算表達(dá)式的值再賦予左邊的變量。“=” 賦值號(hào)左邊一定為變量。,技能訓(xùn)練,模仿項(xiàng)目示例,定義對(duì)應(yīng)的單精度實(shí)型變量,按數(shù)學(xué)公式寫出C語言計(jì)算的賦值語句,由輸入語句給變量送數(shù)據(jù),計(jì)算結(jié)果由輸出語句輸出。 1從鍵盤上輸入三角形的兩邊長(zhǎng)a、b值其及夾角x,由公式S=absin(x)/2計(jì)算三角形面積。 2編程輸入你穿多少碼的鞋子,輸出你的腳長(zhǎng)多少厘米。公式:y=2x-10 (y為鞋碼號(hào),x為腳長(zhǎng)單位cm) 3求ax2+bx+c=0 方程的根,a,b,c由鍵盤輸入,設(shè)b2-4ac0。 求根公式為:,2.2程序與算法描述,1程序 程序是指讓計(jì)算機(jī)完成特定的任務(wù)而設(shè)計(jì)的指令序列,一個(gè)程序應(yīng)包括以下兩方面內(nèi)容: 對(duì)數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)。 對(duì)數(shù)據(jù)的處理描述。即操作步驟,也就是算法。算法是為解決一個(gè)問題而采取的方法和步驟。 著名的計(jì)算機(jī)科學(xué)家Nikiklaus Wirth 提出的公式: 程序=數(shù)據(jù)結(jié)構(gòu)+算法 程序設(shè)計(jì)就是要在合理地組織數(shù)據(jù)的基礎(chǔ)上,設(shè)計(jì)好算法。本課程的目的是使同學(xué)知道怎樣編寫一個(gè)C 程序,進(jìn)行編寫程序的初步訓(xùn)練,因此,只介紹算法的初步知識(shí)。,2.2程序與算法描述,2算法 做任何事情都有一定的步驟。為解決一個(gè)問題而采取的方法和步驟,就稱為算法。 計(jì)算機(jī)算法:計(jì)算機(jī)能夠執(zhí)行的算法。 計(jì)算機(jī)算法可分為兩大類: 數(shù)值運(yùn)算算法:求解數(shù)值; 非數(shù)值運(yùn)算算法:事務(wù)管理領(lǐng)域。,2.2程序與算法描述,3算法描述 為把解決問題的方法和步驟(即算法)描述出來,按算法的描述編寫程序時(shí),思路會(huì)更加清晰??山柚谙铝泄ぞ撸?(1)自然語言:借助人們?nèi)粘J褂玫恼Z言(稱為“自然語言”)分步描述; (2)偽代碼:偽代碼使用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)來描述算法。 (3)流程圖:借助于傳統(tǒng)的流程圖表示算法,直觀形象,易于理解。畫流程框圖時(shí)常用的一些符號(hào)。用箭頭表示操作流程。 (4)計(jì)算機(jī)語言:用計(jì)算機(jī)語言表示算法必須嚴(yán)格遵循所用語言的語法規(guī)則。,流程圖符號(hào),舉例說明,例如:從鍵盤輸入一個(gè)數(shù),輸出其絕對(duì)值。 (1)流程圖描述算法 (2)偽代碼描述 INPUT x IF X0 THEN XY ELSE XY PRINT Y,(3)計(jì)算機(jī)C語言描述: #include main() int x,y; printf(“please input the x:n“); scanf(“%d“, ,2.2程序與算法描述,【技能訓(xùn)練】 1用流程圖來描述項(xiàng)目三技能訓(xùn)練各題。 2用流程圖來描述從鍵盤上輸入兩個(gè)數(shù),將較大的數(shù)輸出。(要求至少二種方法),2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【項(xiàng)目任務(wù)】 密碼加工程序。從鍵盤輸入小寫字母,后移加密,當(dāng)超出字母范圍從頭循環(huán),如當(dāng)后移2位時(shí),輸入kyz加工后為mab。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【項(xiàng)目目標(biāo)】 了解字符型及存儲(chǔ)特點(diǎn)。 熟悉getchar()函數(shù)。 熟悉putchar()函數(shù)。 掌握算術(shù)運(yùn)算、關(guān)系運(yùn)算表達(dá)式。 了解三目運(yùn)算及使用。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【技術(shù)要點(diǎn)】 1、程序設(shè)計(jì)思路。 先把從鍵盤輸入小寫字母存入字符變量中,字符型數(shù)據(jù)存儲(chǔ)占一個(gè)字節(jié),實(shí)際上按ASCII碼存儲(chǔ); 后移加密,實(shí)際上是把字符變量進(jìn)行加法運(yùn)算,得到后面的字符; 計(jì)算處理是根據(jù)條件修定字符范圍。如果計(jì)算出的字符超出a-z范圍就要處理了,將字符變量減去a-z的長(zhǎng)度26,否則不必處理,保證字符變量的值在a-z之間。 結(jié)果輸出,將加密處理后的字符變量輸出。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【技術(shù)要點(diǎn)】 2.定義字符變量,本項(xiàng)目設(shè)三個(gè)字符變量,用char 定義三個(gè)ch1、ch2、ch3字符型變量;定義一個(gè)加密的偏移值d。 3.加密計(jì)算采用賦值語句,ch1=ch1+d; 4.根據(jù)ASCII的范圍條件,修定字符范圍,采用模除運(yùn)算處理。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【程序代碼】 # include main() int d=3; /*密碼后移量*/ char ch1,ch2,ch3; printf(“n請(qǐng)輸入三個(gè)小寫字母: “); /* scanf(“%c%c%c“, ,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【程序說明】 1、語句int d=3;定義整型并賦初值為3,d為密碼后移量。 2、字符變量賦值。scanf(“%c%c%c“, 是字符輸出函數(shù),將字符變量ch1的值輸出到屏幕上。也可用 printf(“n密碼為%c %c %cn“, ch1,ch2,ch3)實(shí)現(xiàn)輸出。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【程序思考】 有同學(xué)將“ch1= ch1+d; ch1=a+(ch1-a)%26; ”兩語句合并為一條語句“ch1=a+( ch1+d -a)%26;” 分析一下,試一試 ,程序計(jì)算結(jié)果正確嗎?,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【應(yīng)用拓展】 根據(jù)ASCII的范圍條件,修定字符范圍,采用三目運(yùn)算處理。,# include main() int d=3; /*密碼后移量*/ char ch1,ch2,ch3; printf(“n請(qǐng)輸入三個(gè)小寫字母: “); /* scanf(“%c%c%c“, 三目運(yùn)算,先把變量ch1的字符的值與z值進(jìn)行比較,如果大于z條件成立,則執(zhí)行“?”后的表達(dá)式ch1-26,否則執(zhí)行“:”后的表達(dá)式ch1,最后把表達(dá)式的值賦給ch1。,【拓展思考】 你能將“ch1= ch1+d; ch1= ch1z?ch1-26:ch1;”兩值賦語句合并為一條值賦語句嗎?合并后,當(dāng)d=3、ch1=c 、ch1=y分析表達(dá)式計(jì)算順序。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,【知識(shí)總結(jié)】 1字符變量的存儲(chǔ)形式與運(yùn)算 (1)字符變量的存儲(chǔ) 字符變量用來存儲(chǔ)字符常量,即單個(gè)字符。每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以 ASCII碼的形式存放在變量的內(nèi)存單元之中的,如a的ASCII碼值97,ch1=a;就是把97存入ch1變量中。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,b的ASCII碼值是98,依此類推,z ASCII碼是122,大寫字母A ASCII碼65,大小寫字母的 ASCII碼相差 32,數(shù)碼0 ASCII碼48,其他的可查ASCII碼表。 (2)字符變量參與數(shù)值運(yùn)算。 語言允許字符變量參與數(shù)值運(yùn)算,如: ch1= ch1+d,ch1=a+(ch1-a)%26??梢园阉鼈兛闯墒钦土俊?語言允許對(duì)整型變量賦以字符值,也允許對(duì)字符變量賦以整型值。在輸出時(shí),允許把字符變量按整型量輸出, printf(“nASCII碼為%d n“, ch1), 也允許把整型量按字符量輸出。 整型量為二字節(jié)量,字符量為單字節(jié)量,當(dāng)整型量按字符型量處理時(shí),只有低八位字節(jié)參與處理。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,2、字符數(shù)據(jù)的輸入輸出 (1)putchar 函數(shù)(字符輸出函數(shù)) putchar 函數(shù)是字符輸出函數(shù), 其功能是在顯示器上輸出單個(gè)字符。 其一般形式為:putchar(ch) ,ch為一個(gè)字符數(shù)據(jù)(普通字符、轉(zhuǎn)義字符或整數(shù))例如: putchar(A); (輸出大寫字母 A) putchar(ch1); putchar(n); (換行) (2)getchar 函數(shù)(鍵盤輸入函數(shù)) getchar 函數(shù)的功能是從鍵盤上輸入一個(gè)字符。通常把輸入的字符賦予一個(gè)字符變量,構(gòu)成賦值語句,如:ch1=getchar(); 注意:getchar 函數(shù)只能接受單個(gè)字符,輸入數(shù)字也按字符處理。輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符。使用本函數(shù)前必須包含文件“stdio.h”。,2.3 項(xiàng)目四 字符運(yùn)算密碼加工譯碼器,3、基本算術(shù)運(yùn)算符、關(guān)系運(yùn)算符 (1)基本的算術(shù)運(yùn)算符 基本的算術(shù)運(yùn)算符有加法運(yùn)算符“+”、減法運(yùn)算符“-”、 乘法運(yùn)算符“*”、 除法運(yùn)算符“/”和模除運(yùn)算“%”。 相同點(diǎn):都有兩個(gè)量參與運(yùn)算,又稱雙目運(yùn)算。如 a+b,4+8,a-b,(a+b)*(a-b),(a-b)/2.0。 不同點(diǎn): 除法運(yùn)算符“/”,當(dāng)參與運(yùn)算量均為整型時(shí),結(jié)果也為整型,舍去小數(shù)。如果運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型。 模除運(yùn)算“%”兩側(cè)必須是整型數(shù)據(jù)。求除數(shù)運(yùn)算的結(jié)果等于兩數(shù)相除后的余數(shù)。常用來判斷是否為奇偶數(shù),如:3%2、1%2值均為1,4%2值為0,設(shè)x為整數(shù),則x%2的值為0,被2整除為偶數(shù)。數(shù)的折分,如153%10,個(gè)位數(shù)值為3; 153/10%10或者153%100/10十位為5; 153/100百位數(shù)為1。,2、關(guān)系、邏輯運(yùn)算符與邏輯表達(dá)式 關(guān)系運(yùn)算符包括大于()、小于(=)、小于等于(A, a=b ,a!=A,5+26結(jié)果為真(1)。 aa,8+2!=10,2A&a=b ,a!=A|5+26, aa,8+2!=10|2=a&ch1=z, 結(jié)果為真(1)表示ch1在a-z字母范圍內(nèi)。,4、運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 (1)運(yùn)算符的優(yōu)先級(jí) 表達(dá)式求值按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性規(guī)定的順序進(jìn)行。 語言中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為 15 級(jí)。1 級(jí)最高,15 級(jí)最低。 在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。而在一個(gè)運(yùn)算量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。 (2)運(yùn)算符的結(jié)合性 語言中各運(yùn)算符的結(jié)合性分為兩種:左結(jié)合性(自左至右),如算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右。如有表達(dá)式 x-y+z則 y 應(yīng)先與“-”號(hào)結(jié)合,執(zhí)行 x-y 運(yùn)算,然后再執(zhí)行+z 的運(yùn)算。這種自左至右的結(jié)合方向就稱為“左結(jié)合性”。 右結(jié)合性(自右至左),自右至左的結(jié)合方向稱為“右結(jié)合性”。 最典型的右結(jié)合性運(yùn)算符是賦值運(yùn)算符。如 x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行 y=z 再執(zhí)行 x=(y=z)運(yùn)算。 一般而言,單目運(yùn)算符優(yōu)先級(jí)較高,賦值運(yùn)算符優(yōu)先級(jí)低。算術(shù)運(yùn)算符優(yōu)先級(jí)較高,關(guān)系和邏輯運(yùn)算符優(yōu)先級(jí)較低。多數(shù)運(yùn)算符具有左結(jié)合性,單目運(yùn)算符、三目運(yùn)算符、賦值運(yùn)算符具有右結(jié)合性。,5、條件運(yùn)算符和條件表達(dá)式 條件運(yùn)算符為?和:,它是一個(gè)三目運(yùn)算符,即有三個(gè)參與運(yùn)算的量。 由條件運(yùn)算符組成條件表達(dá)式的一般形式為: 表達(dá)式 1? 表達(dá)式 2: 表達(dá)式 3 其求值規(guī)則為:如果表達(dá)式 1 的值為真,則以表達(dá)式 2 的值作為條件表達(dá)式的值,否則以表達(dá)式 2 的值作為整個(gè)條件表達(dá)式的值。,條件表達(dá)式的表達(dá)式 1為關(guān)系運(yùn)算或邏輯運(yùn)算表達(dá)式,運(yùn)算結(jié)果為真(1)或假(0),決定運(yùn)算取值。條件表達(dá)式通常用于賦值語句之中。如 “ch1= ch1z?ch1-26:ch1; ” 執(zhí)行該語句的語義是:如 ch1z 比較值成立為真,則把表達(dá)式ch1-26值賦給ch1,否則把ch1的值不變賦給 ch1,即如果字符變量超出z的范圍就減26的操作,否則不變。例如輸出兩個(gè)數(shù)中的大數(shù)。 main() int a,b,max; printf(“n input two numbers: “); scanf(“%d%d“, ,使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn): (1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。 (2)條件運(yùn)算符的結(jié)合方向是自右至左。 例如:ab?a:cd?c:d應(yīng)理解為 ab?a:(cd?c:d) 這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式 3 又是一個(gè)條件表達(dá)式。,【技能訓(xùn)練】 1模仿項(xiàng)目示例,完成數(shù)碼加密程序。從鍵盤輸入數(shù)字字符(0-9),后移加密,當(dāng)超出字符范圍從頭循環(huán),如當(dāng)后移2位時(shí),輸入109加工后為321。 2編一程序,以鍵盤輸入三個(gè)大寫字母,要求改用小寫字母輸出。(提示:大寫字母對(duì)應(yīng)的ASCII碼序號(hào)比相應(yīng)的小寫字母的ASCII碼序號(hào)小32) 3編一程序,從鍵盤輸入三個(gè)英文字母或數(shù)字字符,要求打印輸出字母的ASCII碼。 (提示:printf(“nASCII碼為%d n“, ch1),ch1為字符變量),24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【項(xiàng)目任務(wù)】 從鍵盤上輸入學(xué)生基本信息,打印輸出。 = 學(xué)號(hào): 09288726 姓名: 張小勤 性別: 男 年 齡: 19 身高: 1.70 m 體重: 50 kg 班級(jí): ACCP2 電話:1352626889 QQ號(hào): 78788068 電子郵箱: =,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【項(xiàng)目目標(biāo)】 了解C語言的數(shù)據(jù)類型 了解整型、實(shí)型和字符型數(shù)據(jù)的形式 了解字符型、字符串?dāng)?shù)據(jù)的存儲(chǔ)特點(diǎn) 掌握各類型變量的定義以及賦值的方法 掌握printf()、 scanf()函數(shù)輸出格式 了解轉(zhuǎn)義字符,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【技術(shù)要點(diǎn)】 1、項(xiàng)目程序的設(shè)計(jì)步驟 順序結(jié)構(gòu)程序的函數(shù)體中,由完成具體功能的語句構(gòu)成。 (1)變量定義語句。分析信息的基本數(shù)據(jù)類型,聲明各信息存儲(chǔ)的變量。 (2)數(shù)據(jù)輸入語句。使用賦值運(yùn)算、用Scanf()輸入函數(shù)為變量賦值。 (3)計(jì)算語句。 運(yùn)用各種計(jì)算方法對(duì)數(shù)據(jù)進(jìn)行處理。 (4)結(jié)果輸出語句。 使用輸出函數(shù),設(shè)計(jì)輸出格式,將處理的結(jié)果數(shù)據(jù)輸出至計(jì)算機(jī)顯示。 本項(xiàng)目程序是順序程序,根據(jù)項(xiàng)目程序設(shè)計(jì)的要求,其主要操作是輸入輸出,只有數(shù)據(jù)的輸入存儲(chǔ)和輸出,沒有數(shù)據(jù)計(jì)算。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,2、學(xué)生信息的基本數(shù)據(jù)類型 先分析基本數(shù)據(jù)的格式特點(diǎn),確定輸入輸出的信息存儲(chǔ)要求,根據(jù)基本數(shù)據(jù)特點(diǎn),確定變量名,定義變量的類型,便于輸入、輸出的信息。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,變量名取對(duì)應(yīng)的英文,便于輸入操作。類型要考慮存儲(chǔ)字符格式。 學(xué)號(hào)(stu_id)、QQ號(hào)是整數(shù)字,不含其他字母,數(shù)位較長(zhǎng),采用長(zhǎng)整型; 姓名(name)、班級(jí)(class_num)可以是英文字母、數(shù)字、漢字等只好采用字符串; 性別(sex)只有一個(gè)字母M或W,采用字符型; 身高(height)、體重(weight)有小數(shù),用實(shí)型; 年齡(age)整數(shù),用整型; 電話(tel_num)可用長(zhǎng)整型,考慮有時(shí)輸入?yún)^(qū)號(hào)、括號(hào),故采用字符串。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,3、輸入輸出語句 在C語言中,所有的數(shù)據(jù)輸入、輸出都是由庫函數(shù)完成的。 scanf()函數(shù)稱為格式輸入函數(shù),它的功能是按用戶指定的格式把數(shù)據(jù)輸入到指定的變量之中。printf()函數(shù)是一個(gè)格式輸出函數(shù),數(shù)據(jù)輸出時(shí)由格式控制字符串指定輸出格式,不同類型的數(shù)據(jù)輸入、輸出時(shí)格式要求是不相同的。格式控制字符串內(nèi)定容是不同的,利用轉(zhuǎn)義字符可定位格式。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【程序代碼】 #include void main() long stu_id; /*長(zhǎng)整型變量,存放學(xué)號(hào)*/ char name20; /*字符串,存放姓名*/ char sex; /*字符型變量sex,存放性別*/ int age; /* 整型變量age,存放齡*/ float height; /*實(shí)型變量height,存放身高*/ float weight; /*實(shí)型變量weight,存放體重*/ char tel_num12; /*字符串,存放電話號(hào)碼*/ char class_num10; /*字符串,存放班級(jí)*/ long qq_num ; /*長(zhǎng)整型變量,存放QQ號(hào)碼*/ char e_mail50; /*字符串,存放電子郵件*/,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,printf(“please input stu_id:n“); scanf(“%ld“, ,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,printf(“n -%s data- n“, name); printf(“=n“); printf(“stu_id:tt%ldn“,stu_id); printf(“name:tt%sn“,name); printf(“Sex:tt%cn“,sex); printf(“Age:tt%dn“,age); printf(“height:tt%0.2f mn“,height); printf(“weight:tt%0.2f kgn“,weight); printf(“Class:tt%sn“, class_num); printf(“Tel_num:t%-sn“,tel_num); printf(“qq_num:tt%ldn“, qq_num); printf(“e_mail:tt%sn“,e_mail); printf(“=n“); ,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【程序說明】 1字符串的存取 在語言中沒有相應(yīng)的字符串變量。但是可以用一個(gè)字符數(shù)組來存放一個(gè)字符串常量。 字符數(shù)組的定義:字符類型 字符數(shù)組名長(zhǎng)度 char name20; char e_mail50; 定義的字節(jié)長(zhǎng)度至少大于字符串中字符個(gè)數(shù)加1。 字符數(shù)組存儲(chǔ)值的賦值,采用scanf(“%s“, name)輸入。scanf(“%s“, name)在輸入字符串?dāng)?shù)據(jù)時(shí),使用字符串的首地址,不要一個(gè)取地址運(yùn)算符“&”。 字符數(shù)組存儲(chǔ)值的輸出,采用printf(“name:tt%sn”,name)打印f函數(shù)輸出。 2. 程序輸入的提示信息 由于scanf函數(shù)本身不能顯示提示串,故先用printf語句在屏幕上輸出提示信息,方便用戶輸入值。程序的輸入scanf語句的上一條語句是printf打印語句,用來提示用戶輸入數(shù)據(jù)。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,3輸入scanf函數(shù)數(shù)據(jù)類型與變量的類型一致 scanf函數(shù)輸入數(shù)據(jù)的類型與變量的類型要一致,由格式控制字符串來確定,格式字符串是以%開頭的字符串,在%后面跟有各種格式字符來說明,如:“%ld“(長(zhǎng)整型)、“%d“(整型)、“%f“(實(shí)型)、“%s“(字符串)和“%c“(字符型)。 4清除緩沖fflush函數(shù) 語句中fflush(stdin)是清除緩沖fflush函數(shù),上一條輸入語句scanf(“%s“, name)是“回車鍵”結(jié)束,下一條輸入語句scanf(“%c“, ” 語句替換吸收“回車鍵”字符。 5printf 函數(shù)格式控制 printf 函數(shù)格式控制字符串中的轉(zhuǎn)義字符:“n”為回車換行符號(hào)?!皌”跳到下一個(gè)輸出區(qū),每個(gè)為8字符位置。用于對(duì)齊打印輸出?!?7.2f”表示指定輸出寬度為7、精度為2的實(shí)數(shù)。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【程序思考】 printf(“please input stu_id:n“); scanf(“%ld“, 請(qǐng)你將上述兩printf函數(shù)語句合并為一條提示輸入語句,用scanf函數(shù)語句一次輸入(stu_id、name)兩個(gè)變量的值?,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【應(yīng)用拓展】 重新編寫輸出語句,使程序運(yùn)行結(jié)果將個(gè)人信息一行顯示兩項(xiàng)。 printf(“n %s data n“, name); printf(“=n“); printf(“stu_id:t%ld tname:t%snn“,stu_id,name); printf(“Sex:t%c tAge: t%dnn“,sex,age); printf(“height:t%7.2fm tweight:t%7.2fkgnn“,height,weight); printf(“Class:t%s tTel_num:t%snn“, class_num,tel_num); printf(“qq_num:t%ld te_mail:t%snn“, qq_num,e_mail); printf(“=n“);,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【拓展思考】 請(qǐng)你重新編寫輸出語句,使程序運(yùn)行結(jié)果將個(gè)人信息一行兩項(xiàng)并用中文顯示。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【知識(shí)總結(jié)】 1、順序結(jié)構(gòu)程序的特點(diǎn) 順序結(jié)構(gòu)程序在函數(shù)體中,由完成具體功能的語句構(gòu)成。 變量定義語句。 數(shù)據(jù)輸入語句。使用賦值運(yùn)算、輸入函數(shù),將數(shù)據(jù)提供給計(jì)算機(jī)。 計(jì)算語句。運(yùn)用各種計(jì)算方法對(duì)數(shù)據(jù)進(jìn)行處理。 結(jié)果輸出語句。使用輸出函數(shù),將處理的結(jié)果數(shù)據(jù)輸出至計(jì)算機(jī)顯示。 順序結(jié)構(gòu)程序的特點(diǎn),各條語句是按照物理位置的先后次序順序執(zhí)行的,并且每條語句都會(huì)被執(zhí)行到。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,2、字符串常量 字符串常量是由一對(duì)雙引號(hào)括起的字符序列。例如: “CHINA“ , “C program” , “$12.5“ 等都是合法的字符串常量。 字符串常量和字符常量是不同的量。它們之間主要有以下區(qū)別: (1)字符常量由單引號(hào)括起來,字符串常量由雙引號(hào)括起來。 (2)字符常量只能是單個(gè)字符,字符串常量則可以含一個(gè)或多個(gè)字符。 (3)可以把一個(gè)字符常量賦予一個(gè)字符變量,但不能把一個(gè)字符串常量賦予一個(gè)字符變量。在語言中沒有相應(yīng)的字符串變量。但是可以用一個(gè)字符數(shù)組來存放一個(gè)字符串常量。在數(shù)組一章內(nèi)予以介紹。 (4)字符常量占一個(gè)字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個(gè)字節(jié)中存放字符“0“ (ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,3、數(shù)據(jù)的格式輸入與輸出 scanf 函數(shù)和printf 函數(shù)是一個(gè)標(biāo)準(zhǔn)庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。 printf 函數(shù)(格式輸出函數(shù)) printf 函數(shù)稱為格式輸出函數(shù),其功能是按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。printf 函數(shù)調(diào)用的一般形式為: printf(“格式控制字符串”,輸出表列) 其中格式控制字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。 格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長(zhǎng)度、小數(shù)位數(shù)等。如:“%d”(十進(jìn)制整型),“%ld”(十進(jìn)制長(zhǎng)整型)。 非格式字符串在輸出時(shí)原樣照印,在顯示中起提示作用。 輸出表列中給出了各個(gè)輸出項(xiàng),要求格式字符串和各輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng)。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,C中格式字符串的一般形式為: 標(biāo)志輸出最小寬度.精度長(zhǎng)度類型 其中方括號(hào) 中的項(xiàng)為可選項(xiàng)。 (1)類型:類型字符用以表示輸出數(shù)據(jù)的類型,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,(2)標(biāo)志:標(biāo)志字符為-、+、#、空格四種,其意義下表所示:,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,(3)輸出最小寬度:用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。 (4)精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。本項(xiàng)的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過的部分。 (5)長(zhǎng)度:長(zhǎng)度格式符為h,l兩種,h表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,scanf 函數(shù)的一般形式為: scanf(“格式控制字符串”,地址表列); (1)“地址表列”是由若干個(gè)地址組成的列表,可以是變量的地址或字符串的首地址。在輸入字符串?dāng)?shù)據(jù)時(shí),使用字符串的首地址,不要一個(gè)取地址運(yùn)算符“&”。 (2)格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。在scanf語句的格式串中由于沒有非格式字符在“%d%d%d”之間作輸入時(shí)的間隔,因此在輸入時(shí)要用一個(gè)以上的空格或回車鍵作為每?jī)蓚€(gè)輸入數(shù)之間的間隔。,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,轉(zhuǎn)義字符 轉(zhuǎn)義字符以反斜線“開頭,后跟一個(gè)或幾個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。 常用的轉(zhuǎn)義字符及其含義 轉(zhuǎn)義字符 轉(zhuǎn)義字符的意義 n 回車換行 t 橫向跳到下一制表位置 v 豎向跳格 b 退格 r 回車,24 項(xiàng)目五 輸入/輸出同學(xué)個(gè)人信息,【技能訓(xùn)練】 模仿項(xiàng)目示例,分析圖書管理系統(tǒng)中圖書的基本數(shù)據(jù),根據(jù)其特點(diǎn)定義對(duì)應(yīng)的變量類型,從鍵盤上輸入數(shù)據(jù),打印輸出。,25 項(xiàng)目六 超市購物結(jié)賬程序,【項(xiàng)目任務(wù)】 超市購物結(jié)賬程序,購買飲料,打印購買商品清單。 項(xiàng)目程序設(shè)計(jì)的功能要求: 1提示用戶購買的商品,分別輸入四種購買商品的數(shù)量; 2打印輸出各商品的數(shù)量、單價(jià)、支付價(jià)序列; 3計(jì)算總計(jì)價(jià),打印輸出; 4提示輸入用戶是否是會(huì)員,是會(huì)員扣價(jià)95%,打印輸出折扣計(jì)價(jià)。 5提示輸入收用戶支付的整幣,打印輸出應(yīng)找零幣。 程序運(yùn)行結(jié)果:,25 項(xiàng)目六 超市購物結(jié)賬程序,【項(xiàng)目目標(biāo)】 熟悉順序程序設(shè)計(jì)方法和步驟 熟悉整型、實(shí)型和字符型數(shù)據(jù)的形式 掌握各類型變量的定義以及賦值的方法 掌握輸入、輸出函數(shù)格式和賦值語句的用法,25 項(xiàng)目六 超市購物結(jié)賬程序,【技術(shù)要點(diǎn)】 1、項(xiàng)目算法設(shè)計(jì) 確定會(huì)員身份 錄入購買商品的數(shù)量、匯總 收取用戶整幣 找零幣 打印購買商品清單,開始,25 項(xiàng)目六 超市購物結(jié)賬程序,【技術(shù)要點(diǎn)】 2、程序數(shù)據(jù)結(jié)構(gòu) 購買商品信息表,商品的數(shù)量(int)整型、購買商品的單價(jià)、總價(jià)、折扣、輸入收整幣等金額采用(float)實(shí)型。會(huì)員的標(biāo)志用字符型變量ch1存儲(chǔ)。,25 項(xiàng)目六 超市購物結(jié)賬程序,【程序代碼】 #include void main() char ch1; /*字符型變量ch1,存放是否是會(huì)員Y/N*/ int coke_num; /*存放可樂數(shù)量*/ float coke_pr; /*存放可樂單價(jià)coke_price */ int redb_num; /*存放紅牛數(shù)量redbull_num */ float redb_pr; /*存放紅牛單價(jià)redbull_price */ int Budw_num; /*存放百威數(shù)量Budweiser_num */ float Budw_pr /*存放百威單價(jià)Budweiser_price */ int Mcon_num; /*存放八寶粥數(shù)量Mixedcongee_num */ float Mcon_pr; /*存放八寶粥單價(jià)Mixedcongee_price */ float Disc; /*存放商品折扣Discount */ float total ; /*存放商品總價(jià)*/ float total_dis ; /*存放商品折扣總價(jià)*/ float RMB_in ; /*存放收取RMB RMB_input */ float RMB_out ; /*存放回找RMB RMB_output */,25 項(xiàng)目六 超市購物結(jié)賬程序,coke_pr=3.5; redb_pr=4.0; Budw_pr=3.5; Mcon_pr=4.5; Disc=0.95; printf(“請(qǐng)輸入是否是會(huì)員Y/N:n“); ch1=getchar(); printf(“please input 可樂num:n“); scanf(“%d“, ,25 項(xiàng)目六 超市購物結(jié)賬程序,printf(“n -data- n“); printf(“=n“); printf(“飲品: t數(shù)量 t 計(jì)價(jià)nn“); printf(“可樂: t%d*%.2f t %0.2fnn“,coke_num,coke_price,coke_num*coke_price); printf(“紅牛: t%d*%.2f t %0.2fnn“,redb_num,redb_pr,redb_num*redb_pr); printf(“百威: t%d*%.2f t %0.2fnn“,Budw_num,Budw_pr,Budw_num*Budw_pr); printf(“八寶粥:t%d*%.2f t %0.2fnn“,Mcon_num,Mcon_pr,Mcon_num*Mcon_pr); total =coke_num*coke_pr+redbl_num*redbl_pr+Budw_num*Budw_pr+Mcon_num*Mcon_pr; total_zk =(ch1=y|ch1=Y)?total* Disc:total; printf(“t總計(jì)價(jià)=: %0.2fnn“,total); printf(“t折扣計(jì)價(jià)=: %0.2fnn“,total_dis); printf(“請(qǐng)輸入收入整幣:“); scanf(“%f“, ,25 項(xiàng)目六 超市購物結(jié)賬程序,【知識(shí)總結(jié)】 1、順序結(jié)構(gòu)程序語句 順序結(jié)構(gòu)程序在函數(shù)體中,由完成具體功能的語句構(gòu)成。 (1)變量定義語句。 (2)數(shù)據(jù)輸入語句。 (3)計(jì)算語句。 (4)結(jié)果輸出語句。 2、條件運(yùn)算符和條件表達(dá)式 條件運(yùn)算符為?和:,它是一個(gè)三目運(yùn)算符,即有三個(gè)參與運(yùn)算的量。 由條件運(yùn)算符組成條件表達(dá)式的一般形式為: 表達(dá)式 1? 表達(dá)式 2: 表達(dá)式 3 其求值規(guī)則為:如果表達(dá)式 1 的值為真,則以表達(dá)式 2 的值作為條件表達(dá)式的值,否則以表達(dá)式 2 的值作為整個(gè)條件表達(dá)式的值。,25 項(xiàng)目六 超市購物結(jié)賬程序,【技能訓(xùn)練】 模仿項(xiàng)目示例,為體育用品商店設(shè)計(jì)結(jié)賬打印清單程序,會(huì)員優(yōu)惠90%。,2.6 知識(shí)小結(jié),2.6.1 C 語言的常量和變量 2.6.2 語言的基本數(shù)據(jù)類型及范圍 2.6.3 C語言運(yùn)算符 2.6.4 運(yùn)算符和表達(dá)式 2.6.5 賦值運(yùn)算符和賦值表達(dá)式 2.6.6 類型轉(zhuǎn)換 2.6.7 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 2.6.8 C語言中的輸入輸出的實(shí)現(xiàn) 2.6.9 程序與算法,2.6.1 C 語言的常量和變量,1、常量和變量 對(duì)于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量?jī)煞N。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,取值可變的量稱為變量。 2、符號(hào)常量 在語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。 3、字符型量 字符型量包括字符常量和字符變量。 (1)字符常量 字符常量是用單引號(hào)括起來的一個(gè)字符。例如a,b,=,+,?都是合法字符常量。 (2)轉(zhuǎn)義字符,2.6.1 C 語言的常量和變量,常用的轉(zhuǎn)義字符及其含義,2.6.1 C 語言的常量和變量,(3)字符變量 字符變量的取值是字符常量,即單個(gè)字符。字符變量的類型說明符是char。 4、字符串 字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育科技在家居環(huán)境中的應(yīng)用與推廣
- 數(shù)據(jù)驅(qū)動(dòng)的企業(yè)產(chǎn)品研發(fā)實(shí)驗(yàn)決策
- 個(gè)人間2024年無償借款合同書一
- 2025年度離婚協(xié)議書附財(cái)產(chǎn)清算與債務(wù)處理規(guī)范文本3篇
- 智慧校園建設(shè)中的教學(xué)資源共享策略研究
- 學(xué)生足球基本技巧與教學(xué)策略
- 二零二五版臨設(shè)工程設(shè)計(jì)與轉(zhuǎn)讓技術(shù)支持協(xié)議4篇
- 二零二五版旅游觀光景區(qū)門票銷售合同4篇
- 2025版臨建場(chǎng)地設(shè)施設(shè)備拆除與回收利用合同4篇
- 二零二五年度門面房買賣合同附贈(zèng)周邊商業(yè)配套使用協(xié)議4篇
- 社區(qū)醫(yī)療抗菌藥物分級(jí)管理方案
- 開題報(bào)告-鑄牢中華民族共同體意識(shí)的學(xué)校教育研究
- 《醫(yī)院標(biāo)識(shí)牌規(guī)劃設(shè)計(jì)方案》
- 夜市運(yùn)營(yíng)投標(biāo)方案(技術(shù)方案)
- 2024中考地理必考試卷含解析
- (高清版)DZT 0282-2015 水文地質(zhì)調(diào)查規(guī)范(1:50000)
- 《紅樓夢(mèng)》禮儀研究
- 會(huì)議分組討論主持詞
- 動(dòng)火作業(yè)審批表
- 新能源汽車火災(zāi)事故處置程序及方法
- 教學(xué)查房及體格檢查評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論