C#面向組件的架構(gòu)_第1頁(yè)
C#面向組件的架構(gòu)_第2頁(yè)
C#面向組件的架構(gòu)_第3頁(yè)
C#面向組件的架構(gòu)_第4頁(yè)
C#面向組件的架構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1c#程序基礎(chǔ)程序基礎(chǔ)本文檔僅用于學(xué)習(xí)交流,嚴(yán)禁用于商業(yè)目的,版權(quán)所有2本章教學(xué)目標(biāo)本章教學(xué)目標(biāo)n掌握賦值語(yǔ)句、輸入輸出語(yǔ)句和輸出格式控制方法n掌握利用if和switch實(shí)現(xiàn)分支結(jié)構(gòu)的方法,熟練掌握條件表達(dá)式構(gòu)建方法n理解循環(huán)語(yǔ)句的結(jié)構(gòu)特點(diǎn)和語(yǔ)法規(guī)則,熟練掌握運(yùn)用循環(huán)語(yǔ)句求解有規(guī)律重復(fù)運(yùn)算問(wèn)題的方法3程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)n3.1 順序結(jié)構(gòu)n3.2 選擇結(jié)構(gòu)n3.3 循環(huán)結(jié)構(gòu) 43.1 順序結(jié)構(gòu)順序結(jié)構(gòu) n結(jié)構(gòu)順序,就是各語(yǔ)句按出現(xiàn)的先后順序依次執(zhí)行 n賦值語(yǔ)句 n輸入/輸出語(yǔ)句控制臺(tái)輸入輸出語(yǔ)句 描述輸出信息格式的Format函數(shù) n消息框(MessageBox) 53.1.1 賦值語(yǔ)

2、句賦值語(yǔ)句(1)“=”左邊只能是變量名,不允許出現(xiàn)常量或表達(dá)式(2)不要將賦值運(yùn)算與代數(shù)方程的概念相混淆 (3)可以在同一個(gè)賦值語(yǔ)句中為多個(gè)變量賦值例如, int x, y; x = y = 5;變量x和y都賦值為5。6復(fù)合賦值語(yǔ)句復(fù)合賦值語(yǔ)句73.1.2 控制臺(tái)輸入輸出語(yǔ)句控制臺(tái)輸入輸出語(yǔ)句 nConsole.Read()方法方法 nConsole.ReadLine()方法方法 nConsole.Write()方法方法nConsole.WriteLine()方法方法 8實(shí)例實(shí)例3.2例3.2 通過(guò)控制臺(tái)接收用戶輸入的一個(gè)字符串,并通過(guò)控制臺(tái)輸出這個(gè)字符串的內(nèi)容。using System;cl

3、ass Program static void Main() string s; Console.Write(請(qǐng)通過(guò)鍵盤輸入一個(gè)字符串:); s = Console.ReadLine();/等待用戶鍵盤輸入字符串 Console.Write(剛才輸入的字符串是:); Console.WriteLine(s); 9實(shí)例實(shí)例3.3例3.3 計(jì)算圓的面積 using System;class circle static void Main() double r, pi, area; string s; Console.Write(“請(qǐng)通過(guò)鍵盤輸入一個(gè)半徑的值:); s = Console.ReadL

4、ine(); r = double.Parse(s); area = 3.14159 * r * r; Console.WriteLine(半徑為0的圓面積 = 1, r,area); 103.1.3 輸出格式控制輸出格式控制 在控制臺(tái)應(yīng)用程序的Write()和WriteLine()方法中,可以用格式控制字符串來(lái)修飾數(shù)據(jù)輸出格式,調(diào)用形式如下: Console.WriteLine(格式控制字符串, 輸出數(shù)據(jù)項(xiàng)列表); 在Windows窗體應(yīng)用程序中,可以通過(guò)String類的靜態(tài)方法String.Format()實(shí)現(xiàn)輸出格式控制,調(diào)用形式如下:String.Format(格式控制字符串, 輸出數(shù)

5、據(jù)項(xiàng)列表);11表表3-2 格式控制字符的意義及應(yīng)用舉例格式控制字符的意義及應(yīng)用舉例123.1.4 消息框(消息框(MessageBox)消息框是Windows窗體應(yīng)用程序中經(jīng)常用于人機(jī)交互操作的對(duì)象之一,用來(lái)顯示簡(jiǎn)短的提示信息和幾個(gè)按鈕。顯示消息框之后,程序處于等待狀態(tài),用戶必須單擊消息框中的某個(gè)按鈕之后,程序才會(huì)繼續(xù)運(yùn)行。13無(wú)返回值的消息框無(wú)返回值的消息框MessageBox.Show(text,title,buttons,icon);ntext 提示信息提示信息ntitle 標(biāo)題欄上的提示信息標(biāo)題欄上的提示信息nbuttons 按鈕的組合樣式按鈕的組合樣式nicon 圖標(biāo)樣式圖標(biāo)樣式1

6、4有返回值的消息框有返回值的消息框 DialogResult var = MessageBox.Show(text,Text, buttons,icon);15例例3.6 顯示消息框中被選擇按鈕返回值顯示消息框中被選擇按鈕返回值private void button1_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(“是否保存已修改過(guò)的內(nèi) 容?, 保存文件, MessageBoxButtons.YesNoCancel); label1.Text = 您剛才選擇的按鈕是: + result; 16Me

7、ssageBoxButtons集合的枚舉選項(xiàng)集合的枚舉選項(xiàng) 17MessageBoxIcon集合的枚舉選項(xiàng)集合的枚舉選項(xiàng) 18DialogResult的枚舉常量的枚舉常量 193.2 分支結(jié)構(gòu)分支結(jié)構(gòu)3.2.1條件語(yǔ)句條件語(yǔ)句(If) 1If ( )單分支結(jié)構(gòu)單分支結(jié)構(gòu)2If( ) Else( )語(yǔ)句(雙分支結(jié)構(gòu))語(yǔ)句(雙分支結(jié)構(gòu)) 20實(shí)例實(shí)例3.7例例3.7 在一個(gè)擁有“是”、“否”按鈕組的消息框中,根據(jù)用戶單擊的按鈕來(lái)決定是否結(jié)束程序運(yùn)行。private void Form1_Click(object sender, EventArgs e) DialogResult r1; r1 =

8、MessageBox.Show(處理完成,結(jié)束程序運(yùn)行嗎?, 結(jié)束,MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (r1 = DialogResult.Yes) this.Close(); label1.Text = 程序繼續(xù)運(yùn)行; 21實(shí)例實(shí)例3.8例3.8 判斷學(xué)生的成績(jī)是否及格private void button1_Click(object sender, EventArgs e) double score = 0; score = double.Parse(textBox1.Text); if (score = 60) l

9、abel2.Text = 學(xué)生成績(jī)?yōu)榧案? else label2.Text = 學(xué)生成績(jī)?yōu)椴患案?223.2.2 switch語(yǔ)句語(yǔ)句switch(表達(dá)式) case 常量1:語(yǔ)句塊1;break;case 常量2:語(yǔ)句塊2;break;default:語(yǔ)句塊 n+1;break;適用于分支較多的情況適用于分支較多的情況23switch語(yǔ)句的執(zhí)行流程語(yǔ)句的執(zhí)行流程n先計(jì)算switch后面的表達(dá)式n然后將結(jié)果值與case后面的常量依次進(jìn)行比較n如果找到匹配的case子句,就執(zhí)行該分支的語(yǔ)句塊,直到break語(yǔ)句為止n如果所有case都不匹配,則執(zhí)行default的語(yǔ)句塊n如果省略了defaul

10、t子句,則跳過(guò)整個(gè)switch結(jié)構(gòu),執(zhí)行后續(xù)語(yǔ)句。24使用使用switch語(yǔ)句注意的問(wèn)題語(yǔ)句注意的問(wèn)題(1)switch后面的表達(dá)式必須是整數(shù)類型;(2)case常量?jī)H限于離散的值,不能指定取值范圍,不得重復(fù),而且必須與表達(dá)式類型相兼容;(3)執(zhí)行了一個(gè)case分支的語(yǔ)句塊之后,必須退出整個(gè)switch結(jié)構(gòu),不允許再執(zhí)行另一個(gè)case分支的語(yǔ)句塊,所以每個(gè)分支的語(yǔ)句塊都必須以break作為結(jié)尾;(4)允許多個(gè)case指向相同的語(yǔ)句塊。25例例3.11n根據(jù)在文本框內(nèi)輸入的百分制成績(jī)score,利用switch語(yǔ)句轉(zhuǎn)換成優(yōu)、良、中、及格、不及格等五個(gè)等級(jí),并在窗體上的標(biāo)簽內(nèi)顯示 26例例3.11

11、代碼代碼 private void button1_Click(object sender, EventArgs e) string grade; int score = int.Parse(textBox1.Text); switch (score / 10) case 10: case 9: grade = 優(yōu)秀; break; case 8: grade = 良好; break; case 7: grade = 中等; break; case 6: grade = 及格; break; default: grade = 不及格; break; label2.Text = 學(xué)生成績(jī)?yōu)?+

12、grade; 27例例3.12n從窗體上的文本框內(nèi)輸入一個(gè)17的整數(shù),或者從“一”到“日”的漢字,在窗體上的標(biāo)簽內(nèi)顯示用英文表示的星期幾(Sunday與數(shù)字7相對(duì)應(yīng)) 28例例3.12代碼代碼 private void button1_Click(object sender, EventArgs e) char today = char.Parse(textBox1.Text); switch(today) case 一: case 1: label2.Text = Monday; break; case 二: case 2: label2.Text = Tuesday; break; cas

13、e 三: case 3: label2.Text = Wednesday; break; case 四: case 4: label2.Text = Thursday; break; case 五: case 5: label2.Text = Friday; break; case 六: case 6: label2.Text = Saturday; break; case 日: case 7: label2.Text = Sunday; break; default: label2.Text = Not a valid number!; break; 293.2.3 條件運(yùn)算符條件運(yùn)算符 n

14、result = 條件表達(dá)式 ? op1 : op2;條件表達(dá)式為條件表達(dá)式為true時(shí)的返回值時(shí)的返回值條件表達(dá)式為條件表達(dá)式為false時(shí)的返回值時(shí)的返回值30例3.9 百分制成績(jī)轉(zhuǎn)換成優(yōu)、良、中、及格、不及格等五個(gè)等級(jí) private void button1_Click(object sender, EventArgs e) double score = 0; string grade; score = double.Parse(textBox1.Text); if (score = 90) grade = 優(yōu)秀; else if (score = 80) grade = 良好; el

15、se if (score = 70) grade = 中等; else if (score = 60) grade = 及格; else grade = 不及格; label2.Text = 學(xué)生成績(jī)?yōu)?+ grade; 實(shí)例實(shí)例3.931例例3.10(1)例例3.103.10判斷最大值的位置判斷最大值的位置private void button1_Click(object sender, EventArgs e) int a, b, c; string result=最大值的位置在最大值的位置在; a = int.Parse(textBox1.Text); b = int.Parse(tex

16、tBox2.Text); c = int.Parse(textBox3.Text);32例例3.10(2) if (a b) if (a c) result += 左邊左邊; else result += 右邊右邊; else if (b c) result += 中間中間; else result += 右邊右邊; label1.Text = result; 333.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu):通過(guò)有限次數(shù)地重復(fù)執(zhí)行同一段代碼,完成運(yùn)算 34哪些問(wèn)題需要通過(guò)循環(huán)來(lái)求解?哪些問(wèn)題需要通過(guò)循環(huán)來(lái)求解?n數(shù)據(jù)統(tǒng)計(jì)(求累加和、找最大值)n排序n資料檢索(在成組數(shù)據(jù)中逐個(gè)比較查找)35循環(huán)語(yǔ)句的類

17、型循環(huán)語(yǔ)句的類型nwhilendowhilenfor363.3.1 while語(yǔ)句語(yǔ)句n語(yǔ)句格式while(條件表達(dá)式)循環(huán)體;n先判斷后執(zhí)行n循環(huán)體必須能夠影響條件37實(shí)例實(shí)例3.15例3.15 已知銀行一年期整存整取的儲(chǔ)蓄年利率為4.14%,在利率保持不變的情況下,經(jīng)過(guò)多少年后,1000元存款能增值到2000元以上?分析:在每年都將利息與本金一起繼續(xù)存入的情況下,1年后的存款總數(shù)為 1000(1+0.0414)2年后的存款總數(shù)為 1000(1+0.0414)(1+0.0414)3年后的存款總數(shù)為 1000(1+0.0414)(1+0.0414)(1+0.0414)ndepositmoney

18、)0414. 01 ( 38程序代碼程序代碼 private void Form1_Click(object sender, EventArgs e) double deposit = 1000; int i=0; while (deposit = 2000) deposit *= 1.0414; i+; label1.Text = 經(jīng)過(guò) + i + 年后,存款總數(shù)達(dá)到 + deposit + 元; 判斷條判斷條件件393.3.2 do-while語(yǔ)句語(yǔ)句n語(yǔ)句格式 do 循環(huán)體; while(條件表達(dá)式);n先執(zhí)行后判斷n循環(huán)體必須能夠影響條件40實(shí)例實(shí)例3.16例3.16 若全世界人口的年

19、平均增長(zhǎng)率保持在0.8%,計(jì)算全世界人口從50億增加到60億需要多少年?private void Form1_Click(object sender, EventArgs e) double human=50, year=0; do human *= 1.008; year+; while (human 60); label1.Text = 經(jīng)過(guò) + year + 年后,世界人口達(dá)到 + human + 億;判斷條件判斷條件413.3.3 for語(yǔ)句語(yǔ)句for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語(yǔ)句塊;n表達(dá)式表達(dá)式1 完成循環(huán)變量的初始化完成循環(huán)變量的初始化n表達(dá)式表達(dá)式2 判斷循環(huán)是否

20、繼續(xù)執(zhí)行判斷循環(huán)是否繼續(xù)執(zhí)行n表達(dá)式表達(dá)式3 修改循環(huán)變量的值,控制循環(huán)條件修改循環(huán)變量的值,控制循環(huán)條件42實(shí)例實(shí)例3.17例3.17 編程計(jì)算100以內(nèi)自然數(shù)的累加和private void Form1_Click(object sender, EventArgs e) int s = 0; for (int i = 1; i = 100; i+) s += i; label3.Text = 1100的累加和= + s; 保存累加和的變量保存累加和的變量43例例3.18例3.18 編程計(jì)算任意正整數(shù)n的階乘。 private void Form1_Click(object sender,

21、EventArgs e) int f = 1, n = 8; /變量f用來(lái)保存計(jì)算階乘的結(jié)果,初值應(yīng)為1 for (int i = 1; i = n; i+) f *= i;/計(jì)算階乘 label1.Text = n.ToString() + != + f.ToString();44實(shí)例實(shí)例3.19例3.19 編程判斷x是否為素?cái)?shù)(第一種寫法)private void Form1_Click(object sender, EventArgs e) double x; int n; bool t; x = double.Parse(textBox1.Text); n = (int)Math.Sq

22、rt(x); t = true; for (int i = 2; i = n; i+) if (x % i = 0) t = false; if (t = true) label2.Text = textBox1.Text + 是一個(gè)素?cái)?shù); else label2.Text = textBox1.Text + 不是素?cái)?shù); 計(jì)算計(jì)算x的平方根的平方根45實(shí)例實(shí)例3.19例3.19 編程判斷x是否為素?cái)?shù)(第二種寫法)private void Form1_Click(object sender, EventArgs e) double x; int n; bool t = true; x = dou

23、ble.Parse(textBox1.Text); n = (int)Math.Sqrt(x); for (int i = 2; i = n; i+) if (x % i = 0) t = false; label2.Text = (t = true) ? 是一個(gè)素?cái)?shù)是一個(gè)素?cái)?shù) : 不是素?cái)?shù)不是素?cái)?shù); 463.3.4 循環(huán)的嵌套循環(huán)的嵌套n嵌套的原則是:內(nèi)層循環(huán)必須完整地包含在外層循環(huán)之內(nèi),循環(huán)體之間不得交叉。47例例3.21 在窗體上輸出九九乘法表在窗體上輸出九九乘法表 private void Form1_Click(object sender, EventArgs e) for(int

24、i=1;i=9;i+) for (int j = 1; j = i; j+) label1.Text += i + * + j + = + i * j + ; label1.Text += n; 48思考思考n怎樣才能使輸出結(jié)果排列得更整齊一些?49排列得更整齊一些排列得更整齊一些 private void Form1_Click(object sender, EventArgs e) for (int i = 1; i = 9; i+) for (int j = 1; j = i; j+) int mult = i * j; if (mult 10) label1.Text += i + *

25、 + j + = + mult + ; else label1.Text += i + * + j + = + mult + ; label1.Text += n; 50思考思考計(jì)算100到300之間的所有素?cái)?shù) 核心程序:判斷一個(gè)任意數(shù)是否為素?cái)?shù)核心程序:判斷一個(gè)任意數(shù)是否為素?cái)?shù) private void Form1_Click(object sender, EventArgs e) double x = double.Parse(textBox1.Text); int n = (int)Math.Sqrt(x); bool t = true; for (int i = 2; i = n; i

26、+) if (x % i = 0) t = false; label1.Text = (t = true) ? 是一個(gè)素?cái)?shù) : 不是素?cái)?shù); 51代碼代碼計(jì)算100到300之間的所有素?cái)?shù) private void Form1_Click(object sender, EventArgs e) for (double x = 101; x = 300; x+) int n = (int)Math.Sqrt(x); bool t = true; for (int i = 2; i = n; i+) if (x % i = 0) t = false; if(t=true) label1.Text +=

27、 x + n ; 52思考思考計(jì)算100到300之間的所有素?cái)?shù)素?cái)?shù)的個(gè)數(shù)較多,無(wú)法在label上顯示成一列,怎么辦?解決的辦法:每一行上顯示多個(gè)素?cái)?shù)533.3.5 循環(huán)的退出和跳過(guò)循環(huán)的退出和跳過(guò) n循環(huán)語(yǔ)句是整個(gè)程序中最耗費(fèi)時(shí)間的部分,在運(yùn)算目標(biāo)已經(jīng)實(shí)現(xiàn)的情況下,提前結(jié)束整個(gè)循環(huán),或提前結(jié)束本次循環(huán),會(huì)顯著節(jié)省程序的運(yùn)行時(shí)間。541循環(huán)的退出循環(huán)的退出n如果預(yù)設(shè)的循環(huán)次數(shù)尚未執(zhí)行完,或者測(cè)試條件尚未滿足,就已經(jīng)得到了所需的計(jì)算結(jié)果。這時(shí),就沒(méi)有必要讓循環(huán)再繼續(xù)執(zhí)行下去了。n當(dāng)執(zhí)行到循環(huán)體內(nèi)的break語(yǔ)句,則退出當(dāng)前循環(huán),執(zhí)行后續(xù)語(yǔ)句。 55例 3.22n例例 3.22 同一籠中有雞和兔共3

28、6只,已知它們有100只腳,問(wèn)雞和兔各有多少只?n分析:運(yùn)用二元一次方程,可以很快地求解這個(gè)問(wèn)題。但對(duì)于本例來(lái)說(shuō),由于計(jì)算的次數(shù)不多,不妨采用窮舉法,通過(guò)有限次數(shù)的試探得到答案。 56例 3.22代碼private void Form1_Click(object sender, EventArgs e) int rabbit, chick,feet; for (chick = 1; chick = 36; chick+)/從雞1,兔36-1開(kāi)始試探 feet = chick * 2 + (36 - chick) * 4; if (feet = 100)/達(dá)到計(jì)算目標(biāo)時(shí),退出循環(huán) break;

29、rabbit = 36 - chick; label1.Text = 雞有 + chick + 只n; label1.Text += 兔有 + rabbit + 只;572.循環(huán)的跳過(guò)循環(huán)的跳過(guò)n在一次循環(huán)的執(zhí)行中,執(zhí)行完循環(huán)體內(nèi)的部分語(yǔ)句之后,就發(fā)現(xiàn)剩余的語(yǔ)句已經(jīng)沒(méi)有必要繼續(xù)執(zhí)行,可以利用continue語(yǔ)句跳過(guò)剩余的語(yǔ)句,提前結(jié)束本次循環(huán)。 58例3.23n例例3.23 編寫Windows窗體應(yīng)用程序,計(jì)算并在窗體上輸出100以內(nèi)的所有素?cái)?shù) 59例3.23代碼private void Form1_Click(object sender, EventArgs e) for (int i = 2; i 2 & i % 2 = 0)/確認(rèn)當(dāng)前的i不是素?cái)?shù),提前結(jié)束本次循環(huán) continue; bool b = true; for (int j = 2; j = Math.Sqrt(i); j+) if (i % j = 0) b = fal

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論