![C#程序設(shè)計基礎(chǔ)教程第4章_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/ec606ef1-0b0b-42fe-b6a7-1a0c246d9864/ec606ef1-0b0b-42fe-b6a7-1a0c246d98641.gif)
![C#程序設(shè)計基礎(chǔ)教程第4章_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/ec606ef1-0b0b-42fe-b6a7-1a0c246d9864/ec606ef1-0b0b-42fe-b6a7-1a0c246d98642.gif)
![C#程序設(shè)計基礎(chǔ)教程第4章_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/ec606ef1-0b0b-42fe-b6a7-1a0c246d9864/ec606ef1-0b0b-42fe-b6a7-1a0c246d98643.gif)
![C#程序設(shè)計基礎(chǔ)教程第4章_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/ec606ef1-0b0b-42fe-b6a7-1a0c246d9864/ec606ef1-0b0b-42fe-b6a7-1a0c246d98644.gif)
![C#程序設(shè)計基礎(chǔ)教程第4章_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/ec606ef1-0b0b-42fe-b6a7-1a0c246d9864/ec606ef1-0b0b-42fe-b6a7-1a0c246d98645.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C#程序設(shè)計基礎(chǔ)教程(時間:(時間:1 15 5次課,次課,3030學(xué)時)學(xué)時)第四章第四章 學(xué)習(xí)情境:商品學(xué)習(xí)情境:商品采購管理系統(tǒng)發(fā)票金額采購管理系統(tǒng)發(fā)票金額計算計算C#程序設(shè)計基礎(chǔ)教程第四章第四章 學(xué)習(xí)情境:商品采購管理系統(tǒng)發(fā)票金額計算學(xué)習(xí)情境:商品采購管理系統(tǒng)發(fā)票金額計算4.1 學(xué)習(xí)情境引入4.2 基礎(chǔ)知識1 循環(huán)結(jié)構(gòu)4.3 基礎(chǔ)知識2 選擇結(jié)構(gòu)4.4 基礎(chǔ)知識3 異常處理4.5 決策與計劃:分析發(fā)票金額計算4.6 實施:實現(xiàn)發(fā)票金額計算4.7 訓(xùn)練4.8 小結(jié)C#程序設(shè)計基礎(chǔ)教程 4.1 學(xué)習(xí)情境引入4.1.1 項目需求4.1.2 展示4.1.3 技術(shù)分解C#程序設(shè)計基礎(chǔ)教程第四章第
2、四章 學(xué)習(xí)情境:商品采購管理系統(tǒng)發(fā)票金額計學(xué)習(xí)情境:商品采購管理系統(tǒng)發(fā)票金額計算算前面章節(jié)所涉及的應(yīng)用程序相對比較簡單,是按照程序語句的編寫順序依次執(zhí)行的,用以進(jìn)行簡單的運(yùn)算。但是應(yīng)用程序不僅僅限于簡單的運(yùn)算,往往需要根據(jù)條件執(zhí)行不同的代碼或者反復(fù)執(zhí)行相同代碼。C#程序設(shè)計基礎(chǔ)教程4.1.1 項目需求4.1.1 項目需求在商品采購管理系統(tǒng)中,計算發(fā)票金額是一個很重要的功能。系統(tǒng)根據(jù)每種商品的數(shù)量和單價,計算出每種商品的金額,然后將這若干商品的金額相加,計算出總金額(即發(fā)票金額)。C#程序設(shè)計基礎(chǔ)教程4.1.1 項目需求1功能性需求 實現(xiàn)計算每種商品的金額。 實現(xiàn)計算發(fā)票的總金額。2非功能性需求
3、 界面設(shè)計是否合理。 是否有必要的提示信息對話框。C#程序設(shè)計基礎(chǔ)教程4.1.2 展示發(fā)票金額計算界面如下圖所示C#程序設(shè)計基礎(chǔ)教程4.1.2 展示單擊3個“計算”按鈕后,顯示計算結(jié)果,如下圖所示。C#程序設(shè)計基礎(chǔ)教程單擊“計算總金額”按鈕后,顯示金額合計結(jié)果,如下圖所示4.1.2 展示C#程序設(shè)計基礎(chǔ)教程若有某種商品的金額未進(jìn)行計算,就單擊“計算總金額”按鈕,系統(tǒng)會彈出提示對話框,如圖下所示。4.1.2 展示C#程序設(shè)計基礎(chǔ)教程4.1.3 技術(shù)分解前面章節(jié)所涉及的程序都是按照程序語句的編寫順序依次執(zhí)行的,但在統(tǒng)計發(fā)票金額的時候,有時需要根據(jù)特定條件的成立與否,來決定是否執(zhí)行某一段代碼,有時又
4、需要反復(fù)執(zhí)行某一段代碼。要解決這兩種情況,就需要用到本章將要介紹的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。C#程序設(shè)計基礎(chǔ)教程4.1.3 技術(shù)分解1選擇結(jié)構(gòu)當(dāng)需要根據(jù)特定條件的成立與否來決定是否執(zhí)行某一段程序代碼的時候,需要用到選擇結(jié)構(gòu)。選擇結(jié)構(gòu)主要包含if語句及switch語句。C#程序設(shè)計基礎(chǔ)教程4.1.3 技術(shù)分解2循環(huán)結(jié)構(gòu)當(dāng)需要反復(fù)執(zhí)行某段程序代碼的時候,需要用到循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)包括for語句、foreach語句、while語句以及do-while語句。C#程序設(shè)計基礎(chǔ)教程4.1.3 技術(shù)分解 3異常處理在C#中,異常處理機(jī)制是為處理錯誤情況提供的一種機(jī)制。它為每種錯誤情況提供了定制的處理方式,并且把標(biāo)
5、識錯誤的代碼與處理錯誤的代碼分離開來。C#程序設(shè)計基礎(chǔ)教程4.2 基礎(chǔ)知識1:選擇結(jié)構(gòu)4.2.1 if語句4.2.2 switch語句4.2.3 演練4.2.4 自測C#程序設(shè)計基礎(chǔ)教程4.2.1 if語句1簡單的if語句2if else語句C#程序設(shè)計基礎(chǔ)教程【例4-1】 輸入兩個整數(shù)的值,輸出其中較大的值。運(yùn)行結(jié)果如圖下所示1 簡單的if語句C#程序設(shè)計基礎(chǔ)教程1 簡單的if語句(1)設(shè)計窗體界面。從工具箱中拖曳4個Label控件、2個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如下表所示。C#程序設(shè)計基礎(chǔ)教程控控 件件 類類 型型Name屬性屬性值值T
6、ext屬性值屬性值注釋注釋Label第一個整數(shù):Label第二個整數(shù):Label較大整數(shù)值:LabellabelDisplay(表示空)用于輸出較大的整數(shù)值TextBoxtextBoxNum1用于輸入第1個整數(shù)TextBoxtextBoxNum2用于輸入第2個整數(shù)ButtonbuttonOutput輸出較大的整數(shù)值Form輸出較大的整數(shù)值C#程序設(shè)計基礎(chǔ)教程1 簡單的if語句(2)編寫程序代碼。雙擊“buttonOutput”按鈕,在系統(tǒng)自動生成的“buttonOutput_Click”事件委托函數(shù)中輸入以下代碼,完成較大整數(shù)值的輸出。C#程序設(shè)計基礎(chǔ)教程1 簡單的if語句private vo
7、id buttonOutput_Click(object sender, EventArgs e) int num1, num2, largerNumber; num1 = Convert.ToInt32 (textBoxNum1.Text); num2 = Convert.ToInt32 (textBoxNum2.Text); largerNumber = num1; if (num2 num1) largerNumber = num2; labelDisplay.Text = largerNumber.ToString();C#程序設(shè)計基礎(chǔ)教程1 簡單的if語句從上例中可以看出,在程序中可
8、以使用if語句來有條件地執(zhí)行某一語句序列,其語法形式為if (條件表達(dá)式) 語句1 ; 語句n ;C#程序設(shè)計基礎(chǔ)教程簡單的if語句其中,條件表達(dá)式必須用“()”括起來。If語句執(zhí)行過程是:首先計算條件表達(dá)式的值,若為true,表示條件為真,則執(zhí)行語句序列;否則,就不執(zhí)行該語句序列。如果語句序列中只有一條可執(zhí)行語句,可以省略“”。C#程序設(shè)計基礎(chǔ)教程2if else語句將例4-1中“buttonOutput_Click”事件委托函數(shù)中的if語句改用if else語句編寫,程序代碼如下。C#程序設(shè)計基礎(chǔ)教程2if else語句private void buttonOutput_Click(obj
9、ect sender, EventArgs e) int num1, num2, largerNumber; num1 = Convert.ToInt32 (textBoxNum1.Text); num2 = Convert.ToInt32 (textBoxNum2.Text); if (num1 num2) largerNumber = num1; else largerNumber = num2; labelDisplay.Text = largerNumber.ToString(); C#程序設(shè)計基礎(chǔ)教程2if else語句從上面的程序代碼中可以看出,ifelse語句表示根據(jù)不同的條件分
10、別執(zhí)行不同的語句序列,其語法形式為if (條件表達(dá)式) 語句1 ; else 語句2 ; C#程序設(shè)計基礎(chǔ)教程2if else語句ifelse語句的執(zhí)行過程是:首先計算條件表達(dá)式的值,當(dāng)條件表達(dá)式的值為true時,執(zhí)行以語句1開始的語句序列,否則執(zhí)行以語句2開始的語句序列。當(dāng)if else語句中的語句序列只有一條執(zhí)行語句時,可以省略“”。C#程序設(shè)計基礎(chǔ)教程【例4-2】 根據(jù)以下函數(shù)表達(dá)式,輸入x的值,計算y的值。運(yùn)行結(jié)果如圖4-6所示。2if else語句C#程序設(shè)計基礎(chǔ)教程2if else語句(1)設(shè)計窗體界面。從工具箱中拖曳3個Label控件、1個TextBox控件和1個Button控件
11、放到窗體上,設(shè)置這些控件和窗體的屬性值,如表4-2所示。C#程序設(shè)計基礎(chǔ)教程2if else語句控控 件件 類類 型型Name屬性值屬性值Text屬性值屬性值注注 釋釋Label輸入x的值:Label函數(shù)值 y = LabellabelValueY(表示空)用于顯示函數(shù)值TextBoxtextBoxValueX用于輸入x的值ButtonbuttonCalculate計算Form計算函數(shù)值C#程序設(shè)計基礎(chǔ)教程2if else語句(2)編寫程序代碼。雙擊“buttonCalculate”按鈕,在系統(tǒng)自動生成的“buttonCalculate_ Click”事件委托函數(shù)中輸入以下代碼,完成函數(shù)值的計
12、算。C#程序設(shè)計基礎(chǔ)教程2if else語句private void buttonCalculate_Click(object sender, EventArgs e) int x, y; x = Convert.ToInt32 (textBoxValueX.Text); if (x = 0) y = 4 * x; else y = 152 * x; labelValueY.Text = y.ToString();C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句if語句每次最多只能判斷兩個分支,如果出現(xiàn)多重分支的情況,可以使用switch語句?!纠?-3】 根據(jù)輸入的數(shù)字,輸出該數(shù)字對應(yīng)的是星
13、期幾。對應(yīng)關(guān)系:0星期天;1星期一;2星期二;6星期六;其他數(shù)字未知。運(yùn)行結(jié)果如圖下所示。C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句(1)設(shè)計窗體界面。從工具箱中拖曳3個Label控件、1個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如表4-3所示。C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句控控 件件 類類 型型Name屬性值屬性值Text屬性值屬性值注注 釋釋Label請輸入數(shù)字:Label對應(yīng)星期幾:LabellabelWeekday(表示空)用于顯示星期幾TextBoxtextBoxNumbe
14、r用于輸入數(shù)字ButtonbuttonCheck查看星期幾Form輸出星期幾C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句(2)編寫程序代碼。雙擊“buttonCheck”按鈕,在系統(tǒng)自動生成的“buttonCheck_Click”事件委托函數(shù)中輸入以下代碼,完成輸出星期幾的功能。C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句private void buttonCheck_Click(object sender, EventArgs e) int number = Convert.ToInt32 (textBoxNumber.Text); switch (number) case 0:
15、labelWeekday.Text = 星期天星期天; break; case 1: labelWeekday.Text = 星期一星期一; break; case 2: labelWeekday.Text = 星期二星期二; break; case 3: labelWeekday.Text = 星期三星期三; break; C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句case 4: labelWeekday.Text = 星期四星期四; break; case 5: labelWeekday.Text = 星期五星期五; break; case 6: labelWeekday.Text
16、= 星期六星期六; break; default: labelWeekday.Text = 未知未知; break; C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句從上面的程序代碼中可以看出,switch語句可以實現(xiàn)多分支結(jié)構(gòu),其語法形式為switch (條件表達(dá)式) case 常量表達(dá)式1: 語句1; break; case 常量表達(dá)式2: 語句2; break; C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句 case 常量表達(dá)式n: 語句n; break; default: 語句n+1; break;C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句switch語句的執(zhí)行過程是:首先計
17、算條件表達(dá)式的值,然后與每一個case后面的常量值進(jìn)行比較,一旦發(fā)現(xiàn)某個能夠匹配的值,就執(zhí)行該case后面的語句序列,直到遇到break語句。如果表達(dá)式的值與所有case中的常量值都不匹配,則執(zhí)行default后面的語句序列,default語句可有可無。C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句說明: switch語句中,case后的常量表達(dá)式又稱為開關(guān)常量,可以是一個整數(shù)或整型常量表達(dá)式,也可以是一個字符常量、字符串常量、枚舉類型。 各常量表達(dá)式的類型必須與條件表達(dá)式的類型相同。 各常量表達(dá)式的值應(yīng)該互不相同。 switch語句的各case子句的排放順序是無關(guān)緊要的,甚至可以把defa
18、ult子句放在最前面。C#程序設(shè)計基礎(chǔ)教程4.2.2 switch語句 在關(guān)鍵字case和常量表達(dá)式之間一定要有空格,如“case 5: ”,不能寫成“case5: ”。 每個case子句必須有break語句,它起著退出switch結(jié)構(gòu)的作用。如果分支中沒有break語句,那么編譯時會出錯。但有一種例外情況,如果一個case子句為空,就可以從這個case跳到下一個case上,這樣就可以用相同的方式處理兩個或多個case子句了。 C#程序設(shè)計基礎(chǔ)教程4.2.3 演練1實驗題目:驗證用戶登錄2實驗?zāi)康模?)理解選擇結(jié)構(gòu)在程序設(shè)計中的作用。(2)掌握if語句的執(zhí)行過程。(3)熟練應(yīng)用if語句編寫簡單
19、的應(yīng)用程序。C#程序設(shè)計基礎(chǔ)教程3實驗內(nèi)容設(shè)計一個用戶登錄窗體,如圖下所示。4.2.3 演練C#程序設(shè)計基礎(chǔ)教程4.2.3 演練輸入用戶名和密碼,然后單擊“登錄”按鈕,當(dāng)用戶名為“Admin”,密碼為“123456”時,彈出“登錄成功”提示對話框,如圖4-9所示;否則彈出“用戶名或密碼不正確!請核對后重新登錄!”提示對話框,如圖4-10所示。單擊“取消”按鈕時,程序結(jié)束。C#程序設(shè)計基礎(chǔ)教程4.2.3 演練C#程序設(shè)計基礎(chǔ)教程4.2.4 自測1選擇題(1)已知a、b、c的值分別是4、5、6,執(zhí)行下面的程序段后,變量n的值為 。if (c b) n = a + b + c;else n = a
20、+ b;A3 B3 C9 D15C#程序設(shè)計基礎(chǔ)教程4.2.4 自測(2)執(zhí)行下面的程序段后,變量a、b的值分別為 。int x = 1, a = 0, b = 0;switch (x) case 0: b+; break; case 1: a+; break;C#程序設(shè)計基礎(chǔ)教程4.2.4 自測 case 2: a+; b+; break; A2,1 B1,1 C1,0 D2,2C#程序設(shè)計基礎(chǔ)教程4.2.4 自測2填空題(1)執(zhí)行以下程序段后,變量x的值為 ,變量y的值為 。int x = 10, y = 20;if (x = 10) x+; y += 10; else x; y;C#程序
21、設(shè)計基礎(chǔ)教程4.2.4 自測(2)執(zhí)行以下程序段后,變量c的值為 。int a = 2, b = 1, c = 3;if (a 0) c = 0; else c += 1;else c = a + b;C#程序設(shè)計基礎(chǔ)教程4.2.4 自測3編程題(1)編寫一個應(yīng)用程序,輸入圓錐體的半徑和高度,計算圓錐體的體積。(2)編寫一個應(yīng)用程序,輸入3個整數(shù)值,輸出其中的最大值。C#程序設(shè)計基礎(chǔ)教程 4.3 基礎(chǔ)知識2:循環(huán)結(jié)構(gòu)4.3.1 for語句4.3.2 break語句4.3.3 foreach語句4.3.4 演練4.3.5 自測C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句for語句是C#語言中使用最
22、廣泛、最靈活的一種循環(huán)控制語句。for語句的語法形式為for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 循環(huán)體for后面括號內(nèi)的3個表達(dá)式之間用“;”隔開。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句表達(dá)式1:一般為賦值表達(dá)式,為循環(huán)控制變量賦初值。表達(dá)式2:一般為關(guān)系表達(dá)式或邏輯表達(dá)式,作為控制循環(huán)體是否繼續(xù)執(zhí)行的條件。當(dāng)表達(dá)式的值為“真”時,循環(huán)體繼續(xù)執(zhí)行;當(dāng)表達(dá)式的值為“假”時,循環(huán)結(jié)束。表達(dá)式3:一般為賦值表達(dá)式,為循環(huán)控制變量增量或減量。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句例如:int i, sum = 0;for (i = 1; i = 5; i+) sum = sum + i;
23、表達(dá)式1:i = 1設(shè)置循環(huán)變量i的初始值為1。 表達(dá)式2:i = 5是循環(huán)條件,當(dāng)i 5時,時,循環(huán)結(jié)束。如果沒有循環(huán)結(jié)束。如果沒有“i+;”這一語句,這一語句,i的值始終不變,的值始終不變,循環(huán)將無限進(jìn)行,即為死循環(huán)。循環(huán)將無限進(jìn)行,即為死循環(huán)。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句例如: for (j = 0; j 10; i+) sum = sum + j;在這一程序代碼中,沒有任何一條語句可使循環(huán)趨向結(jié)束,循環(huán)將無限地進(jìn)行下去。C#程序設(shè)計基礎(chǔ)教程【例4-4】 計算累加和。運(yùn)行結(jié)果如下圖所示。4.3.1 for語句C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句(1)設(shè)計窗體界面。從工
24、具箱中拖曳6個Label控件、2個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如下表所示。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句控控 件件 類類 型型Name屬性值屬性值Text屬性值屬性值注注 釋釋Label初始值:Label結(jié)束值:Label累加和:Label最小值為1Label最大值為100000LabellabelSum(表示空)用于顯示累加和TextBoxtextBoxInitialValue用于輸入初始值TextBoxtextBoxEndValue用于輸入結(jié)束值ButtonbuttonCalculateSum計算累加和Form計算累加和C#程
25、序設(shè)計基礎(chǔ)教程4.3.1 for語句(2)編寫程序代碼。雙擊“buttonCalculateSum”按鈕,在系統(tǒng)自動生成的“buttonCalculate Sum_Click”事件委托函數(shù)中輸入以下代碼,完成計算累加和的功能。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句private void buttonCalculateSum_Click(object sender, EventArgs e) int initialValue, endValue, sum; initialValue = Convert.ToInt32 (textBoxInitialValue.Text); endValue
26、 = Convert.ToInt32 (textBoxEndValue.Text); sum = 0; for (int i = initialValue; i = endValue; i+) sum = sum + i; labelSum.Text = sum.ToString();C#程序設(shè)計基礎(chǔ)教程【例4-5】 計算數(shù)組所有元素的和。運(yùn)行結(jié)果如下圖所示。4.3.1 for語句C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句(1)設(shè)計窗體界面。從工具箱中拖曳1個GroupBox控件、7個Label控件、5個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如表4-5
27、所示。C#程序設(shè)計基礎(chǔ)教程控控 件件 類類 型型Name屬性值屬性值Text屬性值屬性值注注 釋釋GroupBox整型數(shù)組Label第1個元素的值:Label第2個元素的值:Label第3個元素的值:Label第4個元素的值:Label第5個元素的值:Label數(shù)組元素的和:LabellabelSum(表示空)用于顯示數(shù)組元素的和TextBoxtextBoxValue1用于輸入數(shù)組第1個元素的值TextBoxtextBoxValue2用于輸入數(shù)組第2個元素的值TextBoxtextBoxValue3用于輸入數(shù)組第3個元素的值TextBoxtextBoxValue4用于輸入數(shù)組第4個元素的值Te
28、xtBoxtextBoxValue5用于輸入數(shù)組第5個元素的值ButtonbuttonCalculateSum計算數(shù)組元素的和Form計算數(shù)組元素的和C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句(2)編寫程序代碼。 定義整型數(shù)組array。Int array = new int5; 雙擊“buttonCalculateSum”按鈕,在系統(tǒng)自動生成的“buttonCalculateSum_Click”事件委托函數(shù)中輸入以下代碼,完成計算數(shù)組元素的和的功能。C#程序設(shè)計基礎(chǔ)教程4.3.1 for語句private void buttonCalculateSum_Click(object sender
29、, EventArgs e) int sum = 0; array0 = Convert.ToInt32 (textBoxValue1.Text); array1 = Convert.ToInt32 (textBoxValue2.Text); array2 = Convert.ToInt32 (textBoxValue3.Text); array3 = Convert.ToInt32 (textBoxValue4.Text); array4 = Convert.ToInt32 (textBoxValue5.Text); for (int i = 0; i 5; i+) sum = sum +
30、arrayi; labelSum.Text = sum.ToString();C#程序設(shè)計基礎(chǔ)教程4.3.2 break語句前面介紹的循環(huán)結(jié)構(gòu),只有當(dāng)循環(huán)條件不成立時才結(jié)束。但有時希望在循環(huán)條件成立的情況下提前跳出循環(huán),這就需要用到break語句了。C#程序設(shè)計基礎(chǔ)教程【例4-6】 計算1到n(1n100)的和。運(yùn)行結(jié)果如圖所示。4.3.2 break語句C#程序設(shè)計基礎(chǔ)教程4.3.2 break語句(1)設(shè)計窗體界面。從工具箱中拖曳5個Label控件、1個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如下表所示。C#程序設(shè)計基礎(chǔ)教程控控 件件 類類 型型Na
31、me屬性值屬性值Text屬性值屬性值注注 釋釋Label請輸入n的值:Label1n100Label1到n的值為:LabellabelPromptInfo(表示空)用于顯示提示信息LabellabelSum(表示空)用于顯示和TextBoxtextBoxValueN用于輸入n的值ButtonbuttonCalculate計算Form計算1到n的和C#程序設(shè)計基礎(chǔ)教程4.3.2 break語句(2)編寫程序代碼。雙擊“buttonCalculate”按鈕,在系統(tǒng)自動生成的“buttonCalculate_ Click”事件委托函數(shù)中輸入以下代碼,完成計算1到n的和的功能。private void
32、 buttonCalculate_Click(object sender, EventArgs e) int n, sum; n = Convert.ToInt32 (textBoxValueN.Text); sum = 0;C#程序設(shè)計基礎(chǔ)教程4.3.2 break語句 labelPromptInfo.Text = ; for (int i = 1; i 100) labelPromptInfo.Text=n的值超出上限,加到100后不再繼續(xù)累加!; break; sum = sum + i; labelSum.Text = sum.ToString();C#程序設(shè)計基礎(chǔ)教程4.3.3 fo
33、reach語句foreach循環(huán)語句可以遍歷集合中的元素。foreach語句的語法格式如下。foreach (類型 變量 in 表達(dá)式) 循環(huán)執(zhí)行語句塊類型:變量的類型變量:能被集合元素賦值的循環(huán)變量,是一個只讀的局部變量。表達(dá)式:對象集合或數(shù)組表達(dá)式。集合元素的類型必須可以顯式轉(zhuǎn)換為變量類型。C#程序設(shè)計基礎(chǔ)教程4.3.3 foreach語句將例4-5“buttonCalculateSum_Click”事件委托函數(shù)中的for語句改用foreach語句編寫,程序代碼如下。C#程序設(shè)計基礎(chǔ)教程4.3.3 foreach語句private void buttonCalculateSum_Click
34、(object sender, EventArgs e) int sum = 0; array0 = Convert.ToInt32 (textBoxValue1.Text); array1 = Convert.ToInt32 (textBoxValue2.Text); array2 = Convert.ToInt32 (textBoxValue3.Text); array3 = Convert.ToInt32 (textBoxValue4.Text); array4 = Convert.ToInt32 (textBoxValue5.Text); foreach (int num in arr
35、ay) sum = sum + num; labelSum.Text = sum.ToString();C#程序設(shè)計基礎(chǔ)教程4.3.4 演練1實驗題目:判斷素數(shù)2實驗?zāi)康模?)理解循環(huán)結(jié)構(gòu)在程序設(shè)計中的作用。(2)掌握for語句的執(zhí)行過程。(3)理解break語句在循環(huán)結(jié)構(gòu)中的作用。(4)綜合應(yīng)用if語句與for語句,編寫較為復(fù)雜的應(yīng)用程序。C#程序設(shè)計基礎(chǔ)教程3實驗內(nèi)容設(shè)計一個判斷素數(shù)的窗體,如下圖所示。4.3.4 演練素數(shù)又稱素數(shù)又稱為為質(zhì)數(shù)質(zhì)數(shù),是,是指一個在大于指一個在大于1的自然數(shù)中,除了的自然數(shù)中,除了1和此數(shù)自身外,不能和此數(shù)自身外,不能被其他自然數(shù)整除的數(shù)。被其他自然數(shù)整除的數(shù)
36、。C#程序設(shè)計基礎(chǔ)教程運(yùn)行程序時,用戶在文本框中輸入要判斷的數(shù)字,然后單擊“確定”按鈕,下面的Label中即可顯示出該數(shù)字是否是一個素數(shù),運(yùn)行結(jié)果下4-15所示。4.3.4 演練C#程序設(shè)計基礎(chǔ)教程4.3.5 自測1選擇題(1)有如下程序段:int i, sum;sum = 0;for (i = 1; i = 3; sum+) sum += i;該程序段的執(zhí)行結(jié)果是 。Asum = 6 Bsum = 3 C死循環(huán) Dsum = 0C#程序設(shè)計基礎(chǔ)教程4.3.5 自測(2)執(zhí)行以下程序段后,變量x的值為 。int x, y;for (x = 2, y = 1; y = 10) break; x
37、+= 5;A2 B7 C12 D15C#程序設(shè)計基礎(chǔ)教程4.3.5 自測2編程題(1)編寫程序,使用for循環(huán)實現(xiàn)如下功能:用戶輸入一個整數(shù)n,若n為奇數(shù),程序計算出數(shù)列1 + 3 + 5 + + n的和;若為偶數(shù),程序計算出數(shù)列2 + 4 + 6 + + n的和。C#程序設(shè)計基礎(chǔ)教程4.3.5 自測(2)編寫程序,打印出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153是一個“水仙花數(shù)”,因為153=13+53+33。C#程序設(shè)計基礎(chǔ)教程4.4 基礎(chǔ)知識3:異常處理編寫的程序再好,在運(yùn)行時也會出現(xiàn)這樣或那樣的錯誤,如一個數(shù)被0除,無效的數(shù)據(jù)類型轉(zhuǎn)
38、換等。程序在執(zhí)行期間遇到的任何錯誤和意外行為稱為異常。C#為用戶提供了一種良好的處理異常的機(jī)制,即使用異常類System.Exception為每種錯誤情況提供了定制的處理方式,并且把標(biāo)識錯誤的代碼與處理錯誤的代碼分離開來。C#程序設(shè)計基礎(chǔ)教程【例4-7】 執(zhí)行2個整數(shù)的整除運(yùn)算,如有異常,則顯示異常信息。運(yùn)行結(jié)果如圖下所示。4.4 基礎(chǔ)知識3:異常處理C#程序設(shè)計基礎(chǔ)教程4.4 基礎(chǔ)知識3:異常處理(1)設(shè)計窗體界面。從工具箱中拖曳3個Label控件、2個TextBox控件和1個Button控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如下表所示。C#程序設(shè)計基礎(chǔ)教程控控 件件 類類 型型Nam
39、e屬性值屬性值Text屬性值屬性值注注 釋釋Label/Label=LabellabelResult(表示空)用于顯示整除結(jié)果TextBoxtextBoxDividend用于輸入被除數(shù)TextBoxtextBoxDivisor用于輸入除數(shù)ButtonbuttonCalculate計算Form整除運(yùn)算C#程序設(shè)計基礎(chǔ)教程4.4 基礎(chǔ)知識3:異常處理(2)編寫程序代碼。雙擊“buttonCalculate”按鈕,在系統(tǒng)自動生成的“buttonCalculate_ Click”事件委托函數(shù)中輸入以下代碼,完成整除運(yùn)算的功能。C#程序設(shè)計基礎(chǔ)教程4.4 基礎(chǔ)知識3:異常處理private void b
40、uttonCalculate_Click(object sender, EventArgs e) int dividend, divisor, result; try dividend = Convert.ToInt32 (textBoxDividend.Text); divisor = Convert.ToInt32 (textBoxDivisor.Text); result = dividend / divisor; labelResult.Text = result.ToString(); catch (Exception ex) MessageBox.Show(ex.Message,
41、異常信息); C#程序設(shè)計基礎(chǔ)教程4.4 基礎(chǔ)知識3:異常處理從上例中可以看出,正常情況下,程序流進(jìn)入try控制塊,如果沒有錯誤發(fā)生,就會正常操作;如果執(zhí)行try時發(fā)生錯誤,程序流就會跳轉(zhuǎn)到catch語句塊。C#程序設(shè)計基礎(chǔ)教程4.5 決策與計劃:分析發(fā)票金額計算在商品采購管理系統(tǒng)中,需要計算出每種商品的金額以及所有商品的總金額(即發(fā)票金額)。由于還沒有學(xué)習(xí)DataGridView的相關(guān)知識,所以目前只能在窗體上模擬一張發(fā)票,將每種商品的數(shù)量、單價、金額等信息分別存放在數(shù)組quantity、unitPrice、price中,并按照窗體上事先設(shè)置的內(nèi)容為quantity數(shù)組、unitPrice數(shù)
42、組進(jìn)行初始化,price數(shù)組的值由quantity數(shù)組及unitPrice數(shù)組的值計算得到。C#程序設(shè)計基礎(chǔ)教程由下圖可知,本例假定有3種商品,每種商品的數(shù)量和單價都已確定,需要計算出每種商品的金額,以及所有商品的總金額。計算的過程是:先計算出這3種商品各自的金額,再計算所有商品的總金額。如果在計算所有商品的總金額之前,沒有計算完這3種商品各自的金額,就會彈出如圖4-4所示的提示信息對話框。4.5 決策與計劃:分析發(fā)票金額計算C#程序設(shè)計基礎(chǔ)教程4.5 決策與計劃:分析發(fā)票金額計算計算公式:商品金額=商品數(shù)量商品單價 發(fā)票金額=商品1金額+商品2金額+商品3金額由于商品1的數(shù)量存放在quant
43、ity0中,商品1的單價存放在unitPrice0中,商品1的金額計算后要存放在price0中,所以price0 = quantity0unitPrice0,依此類推。發(fā)票金額的值就為price0 + price1 + price2。C#程序設(shè)計基礎(chǔ)教程4.6 實施:實現(xiàn)發(fā)票金額計算(1)設(shè)計窗體界面。從工具箱中拖曳若干控件放到窗體上,設(shè)置這些控件和窗體的屬性值,如下表所示。C#程序設(shè)計基礎(chǔ)教程控控 件件 類類 型型Name屬性值屬性值Text屬性值屬性值注注 釋釋GroupBox發(fā)票信息用于分組LabellabelSum1(表示空)用于顯示第1種商品的金額LabellabelSum2(表示空
44、)用于顯示第2種商品的金額LabellabelSum3(表示空)用于顯示第3種商品的金額LabellabelSum0.00用于顯示總金額ButtonbuttonCalculate1計算ButtonbuttonCalculate2計算ButtonbuttonCalculate3計算ButtonbuttonCalculate計算總金額Form發(fā)票金額統(tǒng)計C#程序設(shè)計基礎(chǔ)教程4.6 實施:實現(xiàn)發(fā)票金額計算窗體中其他Label控件的Text屬性值設(shè)置參考圖4-1。(2)編寫程序代碼。 定義3個數(shù)組quantity、unitPrice、price,分別表示每種商品的數(shù)量、單價、金額的信息,對quanti
45、ty數(shù)組、unitPrice數(shù)組進(jìn)行初始化。C#程序設(shè)計基礎(chǔ)教程4.6 實施:實現(xiàn)發(fā)票金額計算/定義表示每種商品數(shù)量的數(shù)組,初始化后,3種商品的數(shù)量分別為:30、20、50int quantity = new int3 30, 20, 50 ;/定義表示每種商品單價的數(shù)組,初始化后,3種商品的單價分別為:15.00、25.00、2.50double unitPrice = new double3 15.00, 25.00, 2.50 ;/定義表示每種商品金額的數(shù)組double price = new double3;C#程序設(shè)計基礎(chǔ)教程4.6 實施:實現(xiàn)發(fā)票金額計算 分別雙擊“buttonCalculate1”、“buttonCalculate2”、“buttonCalculate3”按鈕,在系統(tǒng)自動生成的“buttonCalculate1_Click”、“buttonCalculate2_Click”、“buttonCalculate3_Click”事件委托函數(shù)中分別輸入以下代
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作宣傳海報合同范本
- 2014網(wǎng)簽合同范本
- 勞務(wù)合同范例重寫
- 2025年度客運(yùn)站旅客信息服務(wù)系統(tǒng)升級合同
- 保證合同范例 博客
- 農(nóng)村保姆協(xié)議合同范本
- 深化教育改革與人才培養(yǎng)質(zhì)量提升并行
- 分公司 保證合同范例
- 村計生專干申請書
- otc藥品銷售合同范本
- 阿特拉斯擰緊工具維修培訓(xùn)課件
- 密封條模板大全
- 頁眉和頁腳基本知識課件
- 《賣火柴的小女孩》的語文說課課件
- ST語言編程手冊
- 經(jīng)濟(jì)數(shù)學(xué)基礎(chǔ)(高職)全套教學(xué)課件
- 世界教育思想文庫:我們?nèi)绾螌W(xué)習(xí):全視角學(xué)習(xí)理論
- 《數(shù)字經(jīng)濟(jì)學(xué)》 課件 賈利軍 專題3:數(shù)字時代下社會總資本再生產(chǎn)研究;專題4:數(shù)字貨幣與數(shù)字金融研究
- 中小學(xué)音樂課上的合唱訓(xùn)練
- 《國有企業(yè)采購操作規(guī)范》【2023修訂版】
- 基于大單元的小學(xué)數(shù)學(xué)“教學(xué)評”一體化內(nèi)涵及實踐
評論
0/150
提交評論