C#程序設(shè)計(jì)ppt課件(完整版)_第1頁(yè)
C#程序設(shè)計(jì)ppt課件(完整版)_第2頁(yè)
C#程序設(shè)計(jì)ppt課件(完整版)_第3頁(yè)
C#程序設(shè)計(jì)ppt課件(完整版)_第4頁(yè)
C#程序設(shè)計(jì)ppt課件(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩313頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C#程序設(shè)計(jì)第3章 C#程序控制 本章任務(wù)能夠使用if語(yǔ)句編寫(xiě)簡(jiǎn)單的選擇判斷程序;能夠使用while、dowhile語(yǔ)句編寫(xiě)循環(huán)程序;能夠使用for語(yǔ)句編寫(xiě)循環(huán)程序;能夠使用goto語(yǔ)句、continue語(yǔ)句在程序中有條件中斷重復(fù)執(zhí)行語(yǔ)句; 任務(wù)3.1 編寫(xiě)控制臺(tái)應(yīng)用程序判斷是否應(yīng)交個(gè)人所得稅1、輸入的應(yīng)發(fā)工資數(shù)和養(yǎng)老金等三金或四金數(shù),2、判斷是否應(yīng)交個(gè)人所得稅。關(guān)鍵代碼1、輸入應(yīng)發(fā)工資代碼:pay = double.Parse(Console.ReadLine();2、輸入養(yǎng)老金代碼:money = double.Parse(Console.ReadLine(); 3、判斷是否應(yīng)交個(gè)人所得稅

2、;if (income 2000) Console.WriteLine(需要交個(gè)人所得稅!); If語(yǔ)句格式如下:If語(yǔ)句流程圖如圖所示If(表達(dá)式) 語(yǔ)句塊 任務(wù)3.2 編寫(xiě)Windows窗體應(yīng)用程序判斷是否應(yīng)交個(gè)人所得稅。 1、用戶(hù)在相應(yīng)文本框中輸入的應(yīng)發(fā)工資數(shù)和養(yǎng)老金等三金或四金數(shù);2、判斷是否應(yīng)交個(gè)人所得稅。應(yīng)發(fā)工資數(shù)減去養(yǎng)老金后,數(shù)據(jù)大于2000元;則交稅,否則不交稅。關(guān)鍵代碼1、將文本框中的值賦值給兩個(gè)變量pay = double.Parse(txtPay .Text ); money = double.Parse(txtMoney .Text );2、判斷是否應(yīng)繳個(gè)人所得稅; i

3、f (income 2000) MessageBox.Show(需要交個(gè)人所得稅!); else MessageBox.Show(不需要交個(gè)人所得稅!); ifelse 語(yǔ)句If(表達(dá)式) 語(yǔ)句塊1else語(yǔ)句塊2結(jié)構(gòu)流程圖如圖所示格式如下:任務(wù)3.3 編寫(xiě)Windows窗體應(yīng)用程序計(jì)算個(gè)人所得稅和實(shí)發(fā)工資。1、要求用戶(hù)輸入的數(shù)據(jù)必須是正數(shù),否則要求用戶(hù)重新輸入;2、計(jì)算個(gè)人所得稅和實(shí)發(fā)工資。關(guān)鍵代碼1、判斷應(yīng)發(fā)工資或養(yǎng)老金等是否為負(fù) if (pay 0 | money 0 & income 500 & income = 2000) if語(yǔ)句的嵌套 格式如下:if(表達(dá)式1)if(表達(dá)式2)語(yǔ)

4、句塊1else語(yǔ)句塊2else語(yǔ)句塊3 ifelse ifelse 語(yǔ)句語(yǔ)句格式如下:if(表達(dá)式1)語(yǔ)句塊1else if(表達(dá)式2)語(yǔ)句塊2else語(yǔ)句塊n流程圖如圖所示任務(wù)3.4 簡(jiǎn)易計(jì)算器1、在相應(yīng)文本框輸入兩個(gè)操作數(shù),2、分別實(shí)現(xiàn)這兩個(gè)操作數(shù)的加、減、乘、除運(yùn)算,關(guān)鍵代碼op1 = double.Parse(txtOp1.Text);op2 = double.Parse(txtOp2.Text);1、通過(guò)double.Parse轉(zhuǎn)換后賦值給變量op1和op2, 2、組合框中選擇的運(yùn)算符賦值給字符串類(lèi)型變量op。 op = combOperation.SelectedItem.ToSt

5、ring(); 3、使用switch語(yǔ)句進(jìn)行多項(xiàng)選擇判斷 switch (op) case : case : case : default : switch語(yǔ)句switch(表達(dá)式) case 常數(shù)表達(dá)式1: 跳轉(zhuǎn)語(yǔ)句 case 常數(shù)表達(dá)式2: 跳轉(zhuǎn)語(yǔ)句 defalut: 跳轉(zhuǎn)語(yǔ)句語(yǔ)句格式如下:任務(wù)3.5 計(jì)算某人一年公積金賬戶(hù)余額1、輸入的某人工資、公積金交存比例和住房貸款月還款金額,2、計(jì)算出他一年公積金賬戶(hù)余額。關(guān)鍵代碼計(jì)算每月公積金余額并累加:分別使用while結(jié)構(gòu)、dowhile結(jié)構(gòu)以及for循環(huán)結(jié)構(gòu) sum = 0; int i = 1; while (i =12) sum +=2

6、*pay *scale/100-loan; i=i +1; sum = 0; int i = 1; do sum += 2 * pay * scale / 100 - loan; i = i + 1; while (i = 12); sum = 0; for (int i = 1; i = 12;i + ) sum += 2 * pay * scale / 100 - loan; while語(yǔ)句while (表達(dá)式)循環(huán)體流程圖如圖所示:格式如下: do while語(yǔ)句格式如下:流程圖如圖所示 do循環(huán)體while (表達(dá)式)任務(wù)3.6 設(shè)計(jì)一個(gè)計(jì)算階乘和e的指數(shù)冪的計(jì)算器。 1、單擊“n!”

7、按鈕計(jì)算出階乘值,2、單擊“e”按鈕則計(jì)算出e的指數(shù)冪,求階乘關(guān)鍵代碼 try n = int.Parse(txtResult.Text); catch (System.FormatException) 1、輸入為小數(shù)時(shí)的錯(cuò)誤異常處理 for (int t = 1; t = n; t+) m = m * t; 2、求階乘求冪關(guān)鍵代碼1、指數(shù)為小數(shù)時(shí)的錯(cuò)誤異常處理 try catch (System.FormatException) 2、溢出引發(fā)異常處理Try checked catch (System.OverflowException) for語(yǔ)句 格式如下:流程圖如圖所示for (表達(dá)式1

8、;表達(dá)式2;表達(dá)式3)循環(huán)體任務(wù)3.7 使用控制臺(tái)應(yīng)用程序計(jì)算班級(jí)的平均成績(jī)。1、輸入三個(gè)班每個(gè)班四名學(xué)生的學(xué)生分?jǐn)?shù),2、再計(jì)算每個(gè)班級(jí)的平均分。Math類(lèi)可以用來(lái)完成一些常用的數(shù)學(xué)運(yùn)算 關(guān)鍵代碼for (i = 0; i 3; i+) for (j = 0; j 4; j+) Console.Write(第0個(gè)學(xué)生的成績(jī):,j+1); score= int.Parse(Console.ReadLine(); sum = sum + score; average =(int )Math .Round( sum / 4); Console.WriteLine(第0個(gè)班的平均分為:1分,i+1,a

9、verage); 循環(huán)嵌套 格式如下: while (表達(dá)式1)while (表達(dá)式2)循環(huán)體循環(huán)嵌套還包括for循環(huán)嵌套,do while循環(huán)嵌套, for循環(huán)再套一層while循環(huán)等。跳轉(zhuǎn)語(yǔ)句 1、Break語(yǔ)句可以終止一條多選擇語(yǔ)句或迭代語(yǔ)句,使控制流程轉(zhuǎn)到 該語(yǔ)句的下一條語(yǔ)句執(zhí)行。2、goto語(yǔ)句可以實(shí)現(xiàn)無(wú)條件跳轉(zhuǎn),跳轉(zhuǎn)到標(biāo)簽所指定的代碼行執(zhí)行。3、continue語(yǔ)句可以在執(zhí)行循環(huán)體時(shí)使程序流程跳過(guò)循環(huán)體中的剩余 語(yǔ)句,繼續(xù)執(zhí)行下一循環(huán)。4、return語(yǔ)句終止方法的執(zhí)行,返回給調(diào)用方法??偨Y(jié)程序設(shè)計(jì)有哪幾大基本結(jié)構(gòu)?Break語(yǔ)句和continue語(yǔ)句有什么區(qū)別?謝 謝!C#程序設(shè)

10、計(jì)第4章數(shù)組本章任務(wù)能聲明數(shù)組、創(chuàng)建對(duì)象數(shù)組、正確引用數(shù)組元素能初始化一維數(shù)組能聲明、創(chuàng)建、初始化多維數(shù)組并正確引用數(shù)組元素能創(chuàng)建、初始化及應(yīng)用動(dòng)態(tài)數(shù)組任務(wù)4.1 求學(xué)生平均成績(jī) 一維數(shù)組及使用1、輸入10個(gè)學(xué)生的C#課程考試成績(jī)2、求出課程平均成績(jī)使用Length來(lái)測(cè)試數(shù)組長(zhǎng)度 關(guān)鍵代碼1、定義數(shù)組float C= new float 10;2、輸入成績(jī)for (int i = 0; i C.Length; i+) Ci =float.Parse(Console.ReadLine(); 3、求課程平均成績(jī)for (int i = 0; i C.Length; i+) sum=sum+Ci;

11、average=sum/C.Length; 靜態(tài)數(shù)組 1. 聲明數(shù)組語(yǔ)法格式為:類(lèi)型 數(shù)組名;例如:int num; /聲明int類(lèi)型數(shù)組float arr1; /聲明float類(lèi)型數(shù)組int arr2,arr3; /聲明兩個(gè)int數(shù)組引用2創(chuàng)建數(shù)組對(duì)象(1)其形式為: 類(lèi)型 數(shù)組名; 數(shù)組名=new類(lèi)型 數(shù)組長(zhǎng)度;(2)形式為: 類(lèi)型 數(shù)組名=new類(lèi)型數(shù)組長(zhǎng)度;(3)形式為: 數(shù)據(jù)類(lèi)型 數(shù)組名=初始值列表; 例:下標(biāo)訪問(wèn)數(shù)組各個(gè)元素,并輸出。 3數(shù)組元素的訪問(wèn)形式為:數(shù)組名下標(biāo) int arr = 1,2,3,5,6,7,8;int index;for (index = 0; index

12、arr.Length; index+)Console.WriteLine(Array0=1, index, arrindex);關(guān)鍵代碼例:要求隨機(jī)產(chǎn)生10個(gè)兩位數(shù),并按數(shù)字從小到大排序。 關(guān)鍵代碼1、生成隨機(jī)數(shù)并賦值給數(shù)組元素 Random randObj = new Random(); for (i = 0; i N; i+) ai = randObj.Next(10, 99); 2、對(duì)十個(gè)元素按從小到大進(jìn)行排序 for (i = 0; i N - 1; i+) min = ai; min_i = i; for (j = i + 1; j aj) min = aj; min_i = j;

13、if (min_i != i) t = amin_i; amin_i = ai; ai = t; 4數(shù)組元素賦值形式為:數(shù)組名下標(biāo)=值;例如:arr0=1;arr1=10;Array類(lèi)Array類(lèi)方法的使用。 關(guān)鍵代碼Console.WriteLine(值2是元素arr0的值, Array.IndexOf(arr, 2);Array.Sort(arr);Array.Reverse(arr);Array.Clear(arr, 2, 2);Array類(lèi)的屬性 名稱(chēng)說(shuō)明Length 獲得一個(gè) 32 位整數(shù),該整數(shù)表示 Array 的所有維數(shù)中元素的總數(shù)。LongLength 獲得一個(gè) 64 位整數(shù),

14、該整數(shù)表示 Array 的所有維數(shù)中元素的總數(shù)。Rank 獲取 Array 的秩(維數(shù))。Array類(lèi)的方法 名稱(chēng)說(shuō)明Clear( ) 將Array中從 index開(kāi)始的length個(gè)元素設(shè)置為零、false 等,具體取決于元素類(lèi)型。Copy()從第一個(gè)元素開(kāi)始復(fù)制sourceArray中的length個(gè)元素,將它們粘貼到destinationArray中。CopyTo()將當(dāng)前一維數(shù)組的所有元素復(fù)制到指定的一維數(shù)組Array中,位置從 index開(kāi)始。GetLongLength ()獲取一個(gè) 64 位整數(shù),該整數(shù)表示 Array 的指定維中的元素?cái)?shù)。 Array類(lèi)方法 名稱(chēng)說(shuō)明GetLowe

15、rBound() 獲取 Array 中指定維度的下限。GetUpperBound()獲取 Array 的指定維度的上限。Sort() 對(duì)一維 Array 對(duì)象中的元素進(jìn)行排序。GetLength()獲取一個(gè) 32 位整數(shù),該整數(shù)表示 Array 的指定維中的元素?cái)?shù)。dimension指的是維度。IndexOf()從Array的star index開(kāi)始,搜索count個(gè)元素,返回第一個(gè)與count匹配的數(shù)組索引。Reverse()反轉(zhuǎn)一維 Array 或部分 Array 中元素的順序。動(dòng)態(tài)數(shù)組例:創(chuàng)建、初始化ArrayList數(shù)組,并輸出數(shù)組元素的個(gè)數(shù)。 關(guān)鍵代碼System.Collectio

16、ns.ArrayList al=new System.Collections.ArrayList();al.Add(安徽);al.Add(合肥);al.Add(蕪湖);al.Add(六安);Console.WriteLine(al有0元素:, al.Count);ArrayList類(lèi)的屬性和方法 屬性說(shuō)明Count 獲取 ArrayList 中實(shí)際包含的元素個(gè)數(shù)。 方法 說(shuō)明Add將對(duì)象添加到 ArrayList 的結(jié)尾處。Clear從 ArrayList 中移除所有元素。Insert將元素插入 ArrayList 的指定索引處。Remove從 ArrayList 中移除特定對(duì)象的第一個(gè)匹配項(xiàng)

17、。Sort對(duì)整個(gè) ArrayList 中的元素進(jìn)行排序。foreach語(yǔ)句 例:應(yīng)用foreach語(yǔ)句遍歷ArrayList數(shù)組 格式:foreach(數(shù)據(jù)類(lèi)型符 變量名 in 數(shù)組或集合)循環(huán)體;關(guān)鍵代碼System.Collections.ArrayList al = new System.Collections.ArrayList();1、創(chuàng)建一個(gè)新的ArrayList對(duì)象 2、輸出myList數(shù)組元素 foreach ( Object obj in myList )Console.WriteLine( 0 , obj );字符串的處理屬性說(shuō)明Length獲取字符串中字符的個(gè)數(shù)。方法說(shuō)明

18、ToCharArray()獲得一個(gè)可寫(xiě)的char數(shù)組。trim()刪除多余空格。 ToLower()和ToUpper()把指定字符串轉(zhuǎn)換為小寫(xiě)和大寫(xiě)形式。 任務(wù)4.2 計(jì)算學(xué)生多門(mén)課程的平均成績(jī) 多維數(shù)組及使用設(shè)計(jì)一個(gè)分別求出某個(gè)班級(jí)每門(mén)課程平均成績(jī)的程序。多維數(shù)組的聲明、創(chuàng)建和初始化 關(guān)鍵代碼 double, score=new double5,475,78,90,87,68,78,80,81,68,65,71,68,72,79,76,80.5,86,84,82,90; double course = new double4; for (int i = 0; i 5; i+) for (in

19、t j = 0; j 4; j+) Console.Write(0 , scorei, j); Console.WriteLine(); 多維數(shù)組的聲明、創(chuàng)建和初始化 1.多維數(shù)組的創(chuàng)建類(lèi)型,數(shù)組名=new類(lèi)型表達(dá)式1,表達(dá)式2,或 數(shù)組名=new類(lèi)型表達(dá)式1,表達(dá)式2,2.多維數(shù)組的初始化。(2)格式如下: 數(shù)組名=new類(lèi)型,0行數(shù)值,1行數(shù)值,;(1)格式如下: 數(shù)組名=new類(lèi)型,初值表;例:求一個(gè)3行3列二維數(shù)組兩條對(duì)角線元素之和。 關(guān)鍵代碼 for (int i = 0; i 3; i+) for (int j = 0; j 3; j+) if (i = j) sum1 += ar

20、ri, j; if (i + j = 2) sum2 += arri, j; 1、創(chuàng)建數(shù)組int , arr = new int3, 310,20,30,40,50,60,70,80,90;2、分別計(jì)算兩條對(duì)角線元素之和總結(jié)一維數(shù)組的定義,初始化及其引用。多位數(shù)組的定義,初始化及其引用。謝 謝!C#程序設(shè)計(jì)第五章面向?qū)ο蟪绦蛟O(shè)計(jì) 本章任務(wù)能正確理解類(lèi)與對(duì)象的概念能使用方法能正確在方法之間傳遞信息任務(wù)5.1計(jì)算長(zhǎng)方形周長(zhǎng)和面積任務(wù)描述:輸入長(zhǎng)方形的長(zhǎng)和寬單擊“計(jì)算”按鈕,顯示長(zhǎng)方形面積和周長(zhǎng);單擊“重置”按鈕,清空文本框。處理“計(jì)算”、 “重置”按鈕的Click事件需要定義rectangle類(lèi)實(shí)

21、例化對(duì)象rec1分四步實(shí)現(xiàn)具體功能 任務(wù)5.1計(jì)算長(zhǎng)方形周長(zhǎng)和面積任務(wù)解決方案:(1)創(chuàng)建名為circumArea1的Windows應(yīng)用程序項(xiàng)目;(2)添加控件并設(shè)置屬性。(3)編寫(xiě)程序代碼 (4)測(cè)試程序 關(guān)鍵代碼回顧 /創(chuàng)建對(duì)象 rectangle rec1 = new rectangle(); /輸入長(zhǎng)存入字段中 rec1.length = double.Parse(txtLength.Text); /輸入的寬存入字段中 rec1.width = double.Parse(txtWidth.Text); /計(jì)算面積 double area = rec1.length * rec1.wid

22、th; /計(jì)算周長(zhǎng) double perimeter = 2*(rec1.length + rec1.width); 類(lèi)和對(duì)象 類(lèi):相對(duì)對(duì)象而言,類(lèi)似于藍(lán)圖包含方法和數(shù)據(jù)對(duì)象:是類(lèi)的實(shí)例使用關(guān)鍵字 new 創(chuàng)建對(duì)象具有行為對(duì)象廚房起居室浴室書(shū)房飯廳儲(chǔ)藏室門(mén)廊類(lèi)課堂討論先有對(duì)象還是先有類(lèi)?類(lèi)是對(duì)象的模板,使用對(duì)象前必須先創(chuàng)建類(lèi)定義類(lèi)訪問(wèn)修飾符 class 類(lèi)名 訪問(wèn)修飾符常量聲明; 訪問(wèn)修飾符字段聲明; 訪問(wèn)修飾符方法聲明; 訪問(wèn)修飾符屬性聲明; 訪問(wèn)修飾符構(gòu)造函數(shù)聲明; 訪問(wèn)修飾符析構(gòu)函數(shù)聲明; 說(shuō)明:使用類(lèi)聲明可以創(chuàng)建新的類(lèi)。類(lèi)聲明以一個(gè)聲明頭開(kāi)始,其組成方式如下:先是指定類(lèi)的特性或者修飾符

23、,后跟類(lèi)的名字,它由一組包含在大括號(hào)()中的成員聲明組成。 例如:定義rectangle 類(lèi): public class rectangle /定義類(lèi) public double length; /定義字段 public double width; /定義字段 類(lèi)的修飾符public(公有類(lèi)):表示外界可以不受限制地對(duì)該類(lèi)訪問(wèn);private(私有類(lèi)):表示只有本類(lèi)才能訪問(wèn);new(新建類(lèi)):表示類(lèi)由基類(lèi)中繼承而來(lái)、與基類(lèi)中同名的成員;protected(保護(hù)類(lèi)):表示只能對(duì)其所在類(lèi)和從該類(lèi)派生的子類(lèi)進(jìn)行訪問(wèn);internal(內(nèi)部類(lèi)): 表示僅能訪問(wèn)本程序;abstract(抽象類(lèi)):說(shuō)明該

24、類(lèi)可以用來(lái)做其他類(lèi)的基類(lèi),可以繼承但不能單獨(dú)使用;Scaled(密封類(lèi)):說(shuō)明該類(lèi)不能作為其他類(lèi)的基類(lèi),不能派生新的類(lèi);省略類(lèi)修飾符則表示為private 。1將類(lèi)實(shí)例化為對(duì)象對(duì)象2類(lèi)成員的訪問(wèn) = new ();例如:rectangle rec1= new rectangle();對(duì)象名.數(shù)據(jù)例如:rec1.length;總結(jié)對(duì)類(lèi)名推薦使用Pascal命名規(guī)范:每個(gè)單詞的首字母要大寫(xiě)。創(chuàng)建并初始化對(duì)象屬性 訪問(wèn)修飾符 class ; = new ();定義類(lèi)類(lèi)成員在類(lèi)的定義中,包含有各種類(lèi)成員,概括起來(lái)類(lèi)的成員有兩種:存儲(chǔ)數(shù)據(jù)的成員與操作數(shù)據(jù)的成員。存儲(chǔ)數(shù)據(jù)的成員叫“字段”,操作數(shù)據(jù)成員又有

25、很多種。 “字段”是類(lèi)定義中的數(shù)據(jù),也叫類(lèi)的變量。在C#中,字段以圖標(biāo) 表示。 “屬性”用于讀取和寫(xiě)入“字段”值。在C#中,屬性以圖標(biāo) 表示 ?!胺椒ā睂?shí)質(zhì)上就是函數(shù),通常用于對(duì)字段進(jìn)行計(jì)算和操作,即對(duì)類(lèi)中的數(shù)據(jù)進(jìn)行操作,以實(shí)現(xiàn)特定的功能。在C#中,方法以圖標(biāo)表示,事件方法以圖標(biāo) 表示?!皹?gòu)造函數(shù)”是在用類(lèi)聲明對(duì)象時(shí),完成對(duì)象字段的初始化工作。 字段為類(lèi)中的成員,是表示與對(duì)象或類(lèi)關(guān)聯(lián)的變量,字段常定義的類(lèi)型有public(公有型)、private(私有型)等。 字段例如:class triangle /定義類(lèi)public string name ; /字段成員public double sid

26、eA; /字段成員public double sideB; /字段成員public double sideC; /字段成員 加上static保留字為靜態(tài)成員,沒(méi)有這個(gè)保留字的為非靜態(tài)成員。 區(qū)別: 靜態(tài)成員屬于類(lèi)所有,非靜態(tài)成員屬于類(lèi)的對(duì)象所有,因此訪問(wèn)靜態(tài)成員只能由類(lèi)來(lái)訪問(wèn),而訪問(wèn)非靜態(tài)成員必須由對(duì)象進(jìn)行訪問(wèn)。靜態(tài)字段靜態(tài)字段的訪問(wèn)格式:類(lèi)名.靜態(tài)成員名非靜態(tài)字段的訪問(wèn)格式:對(duì)象名. 非靜態(tài)成員名class Teacher public string number=1001; /非靜態(tài)字段 public string name=張寧; /非靜態(tài)字段 public static double

27、pay=3650.5; /靜態(tài)字段static void Main(string args) Teacher t1 = new Teacher(); string str = 職工編號(hào): + t1.number + ,姓名: + + ,工資: + Teacher.pay.ToString(); Console.WriteLine(str ); 例如:number和name為非靜態(tài)字段, pay為靜態(tài)字段,因此訪問(wèn)前面兩個(gè)字段用對(duì)象調(diào)用t1.number和,訪問(wèn)最后一個(gè)字段用類(lèi)來(lái)調(diào)用Teacher.pay。 在任務(wù)5.1的基礎(chǔ)上自定義方法Area()計(jì)算長(zhǎng)方形面積 自定義方法Perimeter(

28、)計(jì)算長(zhǎng)方形周長(zhǎng) 修改“計(jì)算” 按鈕的Click事件任務(wù)5.2 定義方法計(jì)算長(zhǎng)方形周長(zhǎng)和面積代碼/自定義方法Area()、 Perimeter() public double Area() /定義計(jì)算長(zhǎng)方形面積的方法 double a = length * width; return a; public double Perimeter() /定義計(jì)算長(zhǎng)方形周長(zhǎng)的方法 double len=2*(length +width ); return len; 返回面積代碼/修改“計(jì)算”按鈕,在其Click事件處理程序 private void btnCalculate_Click(object se

29、nder, EventArgs e) /調(diào)用recArea方法計(jì)算面積 double s = rec1.Area(); /調(diào)用recPerimeter方法計(jì)算周長(zhǎng) double l=rec1 .Perimeter(); lblResult.Text = 長(zhǎng)方形面積為: + s.ToString() + 平方厘米,+周長(zhǎng)為:+l .ToString ()+厘米; 類(lèi)的方法表示一類(lèi)事物所具備的動(dòng)作,在C#中就是類(lèi)或?qū)ο鬄橥瓿梢豁?xiàng)任務(wù)而執(zhí)行的指令序列。在編寫(xiě)程序中使用方法主要是便于修改、增加可讀性,方法可以重用和封裝。方法 編寫(xiě)方法編寫(xiě)方法前的準(zhǔn)備工作:該方法主要是實(shí)現(xiàn)什么功能?根據(jù)功能起一個(gè)容易記

30、的方法名。實(shí)現(xiàn)該方法需要用戶(hù)提供什么數(shù)據(jù)?確定方法的參數(shù)。如計(jì)算n!,就需要給該方法傳入一個(gè)整數(shù)n。該方法是實(shí)現(xiàn)操作或是計(jì)算?若是操作,方法的返回類(lèi)型可以定為void若是計(jì)算,需要確定需要給調(diào)用者返回一個(gè)什么類(lèi)型的結(jié)果。如求n!需要給調(diào)用者返回一個(gè)長(zhǎng)整型的階乘值。方法的最后一個(gè)執(zhí)行語(yǔ)句應(yīng)當(dāng)是: (若是操作可以省略)return 表達(dá)式;編寫(xiě)方法編寫(xiě)方法前的準(zhǔn)備工作:該方法可以給哪些人使用:public:所有人都可以使用private:只能給本類(lèi)使用protected:可以給本類(lèi)和派生類(lèi)使用方法要寫(xiě)在類(lèi)(class)中。編寫(xiě)方法方法定義的格式方法修飾符返回值類(lèi)型方法名(形參列表)方法體方法修飾符

31、是可選的。它可以是public, private, protected 等之一。默認(rèn)為private。方法名要符合標(biāo)識(shí)符的命名規(guī)則。參數(shù)的聲明和變量一樣,即 類(lèi)型名 參數(shù)名 的格式,用于接收調(diào)用者傳過(guò)來(lái)的數(shù)值,也相當(dāng)于方法的局部變量。多個(gè)參數(shù)之間用逗號(hào)分隔。任務(wù) 5.3 根據(jù)圓的半徑計(jì)算圓面積任務(wù)描述:輸入圓半徑單擊“計(jì)算”按鈕,顯示圓面積。需要定義Circle類(lèi)自定義方法Area()需要根據(jù)參數(shù)r計(jì)算面積任務(wù) 5.3 根據(jù)圓的半徑計(jì)算圓面積代碼/定義Circle類(lèi) public class Circle public const double PI = 3.14159; public dou

32、ble r; public double Area(double r) this.r = r; /this.r表示類(lèi)的字段,r表示方法Area的形參 double s = PI * this.r * this.r; return s; 返回面積傳入半徑代碼/修改“計(jì)算”按鈕,在其Click事件處理程序 private void btnCompute_Click(object sender, EventArgs e) Circle circle1 = new Circle(); double r = double.Parse(txtR.Text ); /將實(shí)參r中的值傳遞給方法area中的形參r

33、 double s = circle1.Area(r); string res = 園半徑是: + circle1.r + 厘米,面積是: + s.ToString() + 平方厘米; txtResult.Text = res; 方法參數(shù)按值傳遞 public double Area (double r)double s = circle1.Area(r); 方法的聲明方法的調(diào)用調(diào)用者area方法11.511.5使用以下代碼,調(diào)用上述方法,結(jié)果是什么?public double Area(double r, double s) this.r = r; s = PI * this.r * thi

34、s.r; return s; double a = 0; Circle circle1 = new Circle(); double r = double.Parse(txtR.Text ); double s = circle1.Area(r, a); string res = 園半徑是: + circle1.r + 厘米,面積是: + s.ToString() + 平方厘米, + a的值是: + a; txtResult.Text = res; 方法參數(shù)按值傳遞使用以下代碼,調(diào)用上述方法,結(jié)果是什么?public double Area(double r, ref double s) th

35、is.r = r; s = PI * this.r * this.r; return s; double a = 0; Circle circle1 = new Circle(); double r = double.Parse(txtR.Text ); double s = circle1.Area(r, ref a); string res = 園半徑是: + circle1.r + 厘米,面積是: + s.ToString() + 平方厘米, + a的值是: + a; txtResult.Text = res; 通過(guò)引用傳遞參數(shù)public double area(double r, o

36、ut double s) this.r = r; s = PI * this.r * this.r; return s; Circle circle1 = new Circle(); double r = double.Parse(txtR.Text ); double s = circle1.area(r, out a); string res = 園半徑是: + circle1.r + 厘米,面積是: + s.ToString() + 平方厘米, + a的值是: + a;通過(guò)引用傳遞參數(shù)編譯器通過(guò)識(shí)別方法的簽名來(lái)區(qū)分調(diào)用哪個(gè)方法。方法的簽名包括方法名、參數(shù)的類(lèi)型、個(gè)數(shù)和順序?qū)σ韵轮剌d的方法

37、,編譯器能夠正確識(shí)別:對(duì)以下方法,編譯器無(wú)法識(shí)別,會(huì)報(bào)錯(cuò):方法的重載public void Foo(int a, float b)public void Foo(float a, int b)public void Foo(int a, int b)public void Foo(int b, int a)例如:class Compute public void print(int i) int s = i * i; Console.WriteLine(s); return; public void print(int i, int j) int s = i * j; Console.Writ

38、eLine(s ); return ; 方法的重載任務(wù) 5.4 求三角形周長(zhǎng)和面積 任務(wù)描述:輸入輸入三角形的三條邊長(zhǎng)度判斷能否構(gòu)成三角形單擊“計(jì)算”按鈕,顯示三角形 周長(zhǎng)和面積類(lèi)、成員訪問(wèn)規(guī)則:命名空間總是默認(rèn)的public類(lèi)總是默認(rèn)的public類(lèi)成員默認(rèn)為private對(duì)于一個(gè)類(lèi)成員只能使用一個(gè)訪問(wèn)修飾符。private internal盡管是兩個(gè)單詞,但它是單個(gè)訪問(wèn)修飾符。成員的作用域永遠(yuǎn)不超出包含它的類(lèi)。任務(wù) 5.4 求三角形周長(zhǎng)和面積定義Triangle 類(lèi),并且將字段成員sideA、sideB、sideC定義成私有類(lèi)型 自定義方法Setside()和Getside (),來(lái)存取字

39、段自定義方法test(),測(cè)試任意兩條邊之和是否大于第三條邊 自定義方法triCir()和triArea(),計(jì)算三角形的周長(zhǎng)和面積。任務(wù) 5.4 求三角形周長(zhǎng)和面積代碼/定義Setside()方法 public void Setside(double paraA, double paraB, double paraC) this.sideA = paraA; this.sideB = paraB; this.sideC = paraC; /定義Getside ()方法 public string Getside() string txt = 三角形三邊長(zhǎng)分別為: + sideA + 厘米、

40、+ sideB + 厘米和 + sideC + 厘米。; return txt; 無(wú)返回傳入三邊長(zhǎng)代碼/定義test ()方法測(cè)試能否構(gòu)成三角形 public bool test( ) if (sideA + sideB sideC) & (sideB + sideC sideA) & (sideA + sideC sideC) return true; else return false; 課堂討論這樣的設(shè)計(jì)對(duì)于使用者來(lái)說(shuō),不方便了。因?yàn)樗謩e記住2個(gè)方法,哪個(gè)方法是設(shè)置值的,哪個(gè)方法是獲取值的。有沒(méi)有一種途徑,它可以讓使用者像使用公共的字段一樣方便,又能讓設(shè)計(jì)者能夠進(jìn)行安全地檢查?使用屬

41、性任務(wù) 5.5 使用屬性求三角形周長(zhǎng)和面積 任務(wù)描述:輸入輸入三角形的三條邊長(zhǎng)度判斷能否構(gòu)成三角形單擊“計(jì)算”按鈕,顯示三角形 周長(zhǎng)和面積修改任務(wù)5.4定義屬性來(lái)存取字段任務(wù) 5.5 使用屬性求三角形周長(zhǎng)和面積 屬性屬性,從外部(類(lèi)的使用者)來(lái)看,類(lèi)似于類(lèi)的字段。從內(nèi)部(類(lèi)的作者)來(lái)看,類(lèi)似于類(lèi)的方法。class Triangle public double SideA /定義SideA屬性 get return sideA; set sideA = value; get訪問(wèn)器set訪問(wèn)器屬性是一種用于訪問(wèn)類(lèi)或?qū)ο笮再|(zhì)的成員,它與字段不同的是屬性不表示存儲(chǔ)位置,不直接操作類(lèi)的數(shù)據(jù)內(nèi)容,而是通過(guò)

42、訪問(wèn)器進(jìn)行訪問(wèn)。使用屬性可以像使用公共數(shù)據(jù)成員一樣,這樣既可以使類(lèi)中數(shù)據(jù)被輕松訪問(wèn),又可以避免隨意訪問(wèn)類(lèi)中公共數(shù)據(jù)而出現(xiàn)的安全性問(wèn)題,提高了程序安全可靠性,充分體現(xiàn)了對(duì)象的封裝性。屬性 如果只提供 get訪問(wèn)器, 那么這個(gè)屬性是只讀的。如果只提供 set訪問(wèn)器,那么這個(gè)屬性是只寫(xiě)的。建議:將所有字段都定義為private。如果字段需要公開(kāi),請(qǐng)使用屬性將其公開(kāi)。屬性屬性訪問(wèn)方法與類(lèi)的字段成員訪問(wèn)方法一樣,根據(jù)屬性聲明時(shí)是否為靜態(tài)有下列兩種訪問(wèn)形式。 非靜態(tài)屬性成員訪問(wèn):對(duì)象名.屬性名 靜態(tài)屬性成員訪問(wèn):類(lèi)名.屬性名屬性使用屬性使用 /創(chuàng)建對(duì)象 Triangle tri1 = new Triang

43、le(); s1 = double.Parse(txtSideA.Text); s2 = double.Parse(txtSideB.Text); s3 = double.Parse(txtSideC.Text); /使用屬性set訪問(wèn)器寫(xiě)入數(shù)據(jù) tri1.SideA = s1; tri1.SideB = s2; tri1.SideC = s3; /使用屬性get訪問(wèn)器讀取數(shù)據(jù) txtRes.Text = 三角形三邊長(zhǎng)分別為:+ tri1.SideA + 厘米、 + tri1.SideB + 厘米和+ tri1.SideC + 厘米。; 任務(wù)5.6 使用構(gòu)造函數(shù)初始化三角形邊長(zhǎng)任務(wù)描述:使用構(gòu)

44、造函數(shù)初始化三角形邊長(zhǎng)修改任務(wù)5.5中定義的Triangle類(lèi),添加構(gòu)造函數(shù)用以完成初始化 任務(wù)5.6 使用構(gòu)造函數(shù)初始化三角形邊長(zhǎng)代碼 class Triangle public Triangle() /系統(tǒng)默認(rèn)構(gòu)造函數(shù) public Triangle(double sA) /構(gòu)造函數(shù) sideA = sideB = sideC = sA; 沒(méi)有返回值與類(lèi)同名構(gòu)造函數(shù)是特殊的方法,用來(lái)實(shí)現(xiàn)對(duì)象的初始化與類(lèi)同名沒(méi)有返回值構(gòu)造函數(shù)用于,當(dāng)實(shí)例化一個(gè)對(duì)象時(shí),會(huì)對(duì)類(lèi)的成員進(jìn)行初始化。構(gòu)造函數(shù)如果我們想使對(duì)象初始化時(shí),可以按照設(shè)計(jì)者的預(yù)期來(lái)進(jìn)行,就需要自己書(shū)寫(xiě)構(gòu)造函數(shù)的代碼。若上述任務(wù)5.6中的Tri

45、angle類(lèi),我們想初始化的三邊長(zhǎng) 是0,構(gòu)造函數(shù)可以定義為: class Triangle public Triangle(double sA) /構(gòu)造函數(shù) sideA = sideB = sideC = sA; Triangle tri1 = new Triangle(0); 構(gòu)造函數(shù)的定義 class Triangle private double sideA; private double sideB; private double sideC; public Triangle() /系統(tǒng)默認(rèn)構(gòu)造函數(shù) public Triangle(double sA) /構(gòu)造函數(shù) sideA = s

46、ideB = sideC = sA; 構(gòu)造函數(shù)的重載當(dāng)沒(méi)有構(gòu)造函數(shù)時(shí),.NET會(huì)提供一個(gè)默認(rèn)空的構(gòu)造函數(shù)。如任務(wù)5.6中的Triangle類(lèi),會(huì)有一個(gè)默認(rèn)構(gòu)造函數(shù): public Triangle() /系統(tǒng)默認(rèn)構(gòu)造函數(shù) 編譯器只會(huì)當(dāng)類(lèi)中沒(méi)有構(gòu)造函數(shù)時(shí),提供一個(gè)默認(rèn)構(gòu)造函數(shù)。但是若提供了其它版本的構(gòu)造函數(shù),而沒(méi)有提供默認(rèn)構(gòu)造函數(shù),將不能調(diào)用默認(rèn)構(gòu)造函數(shù)。 構(gòu)造函數(shù)的重載例如在任務(wù)5.6中沒(méi)有定義 public Triangle() 就不能這樣去實(shí)例化對(duì)象: Triangle tri1 = new Triangle(); 構(gòu)造函數(shù)的重載析構(gòu)函數(shù)析構(gòu)函數(shù)也是類(lèi)的特殊方法,主要用于釋放類(lèi)的實(shí)例。析構(gòu)

47、函數(shù)的名字與類(lèi)名相同,但它的前面需要加一個(gè)“”符號(hào);與構(gòu)造函數(shù)不同的是析構(gòu)函數(shù)不能帶參數(shù),也沒(méi)有返回值;當(dāng)撤消對(duì)象時(shí),自動(dòng)調(diào)用析構(gòu)函數(shù);析構(gòu)函數(shù)不能被繼承,也不能被重載。 析構(gòu)函數(shù)聲明格式: 類(lèi)名稱(chēng)() 語(yǔ)句塊 例如:class Round public Round() /構(gòu)造函數(shù) public Round (int r) this.r = r; /構(gòu)造函數(shù)重載 Round() /析構(gòu)函數(shù) Console.WriteLine(Round () is release); 任務(wù)5.7 計(jì)算圓面積和周長(zhǎng)、圓柱體面積和體積 任務(wù)描述:設(shè)計(jì)計(jì)算器界面通過(guò)多級(jí)繼承,完成圓面積和周長(zhǎng)的計(jì)算、圓柱體面積和體積

48、的計(jì)算 。將圓心坐標(biāo)定義為基類(lèi),在基類(lèi)中包含坐標(biāo)X屬性和Y屬性,定義Print方法用來(lái)輸出圓心坐標(biāo)位置 繼承基類(lèi)建立圓派生類(lèi),新增圓的半徑R屬性,定義求圓面積和周長(zhǎng)的方法,并重寫(xiě)Print方法用來(lái)輸出圓心坐標(biāo)、圓面積和周長(zhǎng) 將圓作為基類(lèi)建立圓柱派生類(lèi),新增圓柱體的高度Height這一屬性,重寫(xiě)求面積方法,改為求圓柱表面積,定義求體積的方法,重寫(xiě)Print方法用來(lái)輸出圓柱體表面積和體積等 任務(wù) 5.3 根據(jù)圓的半徑計(jì)算圓面積定義基類(lèi) public class Centre protected int x,y; public Centre() public Centre(int myx,int m

49、yy) x = myx; y = myy; public virtual string Print() string str = 圓心坐標(biāo):( + X.ToString() + , + Y.ToString() + ); return str; 構(gòu)造函數(shù)虛擬方法 定義派生類(lèi) public class Round:Centre /定義派生類(lèi) private int r; public Round() public Round(int myx,int myy,int myr):base(myx ,myy ) r = myr; public override string Print() strin

50、g str = base.Print ()+rn+圓的面積:+Area ().ToString ()+rn+圓的周長(zhǎng):+Perimeter ().ToString (); return str; 方法覆蓋從派生類(lèi)中訪問(wèn)基類(lèi)的屬性和方法成員 面向?qū)ο缶幊痰闹匾匦杂校悍庋b、繼承和多態(tài)。繼承性是指在類(lèi)之間建立一種關(guān)系,即在基類(lèi)的基礎(chǔ)上建立新的類(lèi)稱(chēng)為派生類(lèi),使得新定義的派生類(lèi)可以繼承基類(lèi)的成員,還可以定義新的成員,建立起類(lèi)的新層次。多態(tài)性是指在類(lèi)中定義了功能不同但名稱(chēng)相同的方法或?qū)傩裕ㄟ^(guò)在類(lèi)中聲明虛擬方法和屬性,在派生類(lèi)中重寫(xiě)這些方法成員的實(shí)現(xiàn),使得調(diào)用名稱(chēng)相同的方法成員所執(zhí)行的操作可能不同,展示

51、出類(lèi)的多態(tài)性。繼承與多態(tài)派生類(lèi)派生類(lèi)聲明格式:Class 派生類(lèi)名:基類(lèi)名語(yǔ)句塊1派生類(lèi)與基類(lèi)派生類(lèi)是從基類(lèi)中繼承成員,并且添加新成員或重新定義成員,一般稱(chēng)被繼承的類(lèi)為基類(lèi)或父類(lèi),繼承后產(chǎn)生的新類(lèi)稱(chēng)為派生類(lèi)或子類(lèi)。基類(lèi)中構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被派生類(lèi)繼承,其它成員都能被繼承。派生類(lèi)2基類(lèi)成員修飾符基類(lèi)成員修飾符可為public、protected、private其含義如下:public:訪問(wèn)該成員不受任何限制,可以被基類(lèi)和派生類(lèi)訪問(wèn),也可以被外部代碼訪問(wèn)。protected:訪問(wèn)該成員僅限于派生類(lèi),基類(lèi)和外部代碼都不能訪問(wèn)。private:該成員僅限于包含它的類(lèi),不能被派生類(lèi)和外部代碼訪問(wèn)。派

52、生類(lèi)3Base關(guān)鍵字的作用。Base關(guān)鍵字是用于從派生類(lèi)中訪問(wèn)基類(lèi)的成員。有兩種基本用法:(1) 指定創(chuàng)建派生類(lèi)實(shí)例時(shí)應(yīng)調(diào)用的基類(lèi)構(gòu)造函數(shù),在派生類(lèi)中顯式調(diào)用直接基類(lèi)構(gòu)造函數(shù),完成對(duì)基類(lèi)成員的初始化工作;public User ( string myid,string name,string sex, string myunit,string mypurview,string mytel):base(name ,sex ) id = myid;unit= myunit; purview = mypurview; tel = mytel; 派生類(lèi)(2)在派生類(lèi)中訪問(wèn)基類(lèi)成員。 Base.方法名或

53、Base.屬性名例如:在項(xiàng)目任務(wù)5.7的User派生類(lèi)中用base調(diào)用Print方法。public new string Print() string str2 = 職工號(hào):+id+base.Print() + 所在單位: + unit + 初始密碼: + pwd+ 用戶(hù)權(quán)限: + purview+ 聯(lián)系電話: + tel; return str2; 派生類(lèi)4new修飾符的作用。 若派生類(lèi)中的成員和基類(lèi)的成員使用了相同名稱(chēng)、相同參數(shù)和類(lèi)型時(shí),系統(tǒng)編譯時(shí)會(huì)發(fā)出警告,但不會(huì)發(fā)生錯(cuò)誤。這時(shí)可以用new修飾符顯式地隱藏從基類(lèi)繼承的成員。 虛擬方法和重寫(xiě)方法1虛擬方法派生類(lèi)繼承了基類(lèi)方法,如果在派生類(lèi)中

54、需要用到與基類(lèi)相同方法名,但方法執(zhí)行的操作內(nèi)容不同時(shí),則需要“重寫(xiě)”它們,即重寫(xiě)方法成員的實(shí)現(xiàn)。在基類(lèi)中聲明方法時(shí)用virtual關(guān)鍵字來(lái)修飾,表示此方法為虛擬方法,用virtual聲明的方法可以在派生類(lèi)中重寫(xiě)。虛擬方法聲明中不能包含static、abstract、override修飾符。在聲明方法時(shí)沒(méi)有用virtual關(guān)鍵字的,該方法為非虛擬方法。非虛擬方法的執(zhí)行是不變的,不管方法在它聲明的類(lèi)的實(shí)例還是在派生類(lèi)的實(shí)例中被調(diào)用,執(zhí)行都是相同的。虛擬方法和重寫(xiě)方法2重寫(xiě)方法重寫(xiě)方法就是在派生類(lèi)中用相同的名稱(chēng)重寫(xiě)基類(lèi)繼承的虛擬方法,也就是在派生類(lèi)中重新定義此虛擬方法的實(shí)現(xiàn),在聲明方法時(shí)用overr

55、ide關(guān)鍵字來(lái)修飾,表示該方法為重寫(xiě)方法。虛擬方法的執(zhí)行可以被派生類(lèi)重寫(xiě)后改變,具體實(shí)現(xiàn)時(shí)要求重寫(xiě)方法的方法名、返回值類(lèi)型、參數(shù)表中的參數(shù)個(gè)數(shù)、類(lèi)型順序都必須與基類(lèi)中的虛擬方法完全一致。在方法聲明中不能有new、static、virtual修飾符。3多態(tài)性 抽象類(lèi)和抽象成員1抽象類(lèi)在類(lèi)聲明中用abstract關(guān)鍵字進(jìn)行修飾,表明此類(lèi)只能是其他類(lèi)的基類(lèi),稱(chēng)為抽象類(lèi)。在類(lèi)中含有一個(gè)或一個(gè)以上的抽象成員的類(lèi)必須聲明為抽象類(lèi),抽象類(lèi)也可以包含非抽象類(lèi)成員,當(dāng)類(lèi)中一個(gè)抽象類(lèi)成員都沒(méi)有的情況下,也可以將該類(lèi)聲明為抽象類(lèi)。抽象類(lèi)是為了提供一個(gè)比較合適的類(lèi),由此派生出其他的類(lèi),它不能實(shí)例化,而是在派生類(lèi)中實(shí)現(xiàn)

56、。2抽象成員抽象類(lèi)中包含的抽象成員可以是抽象屬性和抽象方法,聲明時(shí)都用abstract關(guān)鍵字進(jìn)行修飾,表示該屬性和方法未實(shí)現(xiàn),其中抽象方法沒(méi)有方法體,但必須聲明,在它的派生類(lèi)中通過(guò)重寫(xiě)提供實(shí)現(xiàn)。謝 謝!C#程序設(shè)計(jì)第六章WinForm應(yīng)用程序設(shè)計(jì)本章任務(wù)能正確使用控件設(shè)計(jì)界面能正確編寫(xiě)事件處理程序代碼能創(chuàng)建菜單、窗口和多文檔界面(MDI)任務(wù)6.1 “學(xué)生信息管理系統(tǒng)”項(xiàng)目主界面的設(shè)計(jì) 用戶(hù)可以使用菜單和工具欄分別實(shí)現(xiàn)各項(xiàng)功能任務(wù)6.1 “學(xué)生信息管理系統(tǒng)”項(xiàng)目主界面的設(shè)計(jì) 處理菜單響應(yīng)、工具欄響應(yīng)事件需要菜單欄(menuStrip)控件、工具欄(ToolStrip)控件和狀態(tài)欄(status

57、Strip)控件 分三步實(shí)現(xiàn)主界面的設(shè)計(jì) 1、設(shè)置窗體frmMain,作為系統(tǒng)的主界面 2、使用菜單欄(menuStrip)控件設(shè)計(jì)系統(tǒng)主菜單3、使用工具欄(ToolStrip)控件設(shè)計(jì)系統(tǒng)工具欄4、使用狀態(tài)欄(statusStrip)控件設(shè)計(jì)系統(tǒng)狀態(tài)欄將窗體命名為frmMain作為系統(tǒng)的主界面 屬性說(shuō)明Form1NamefrmMain Text學(xué)生信息管理系統(tǒng) Icon 添加界面圖標(biāo)Size1024, 768StartpositonCenterScreen添加菜單欄添加菜單欄(menuStrip)控件,到frmMain窗體中,命名為msMain 關(guān)鍵代碼回顧/編寫(xiě)“退出系統(tǒng)”菜單項(xiàng)Click

58、事件響應(yīng)程序代碼 private void tsmiQuit_Click(object sender, EventArgs e) Application.Exit(); 添加工具欄添加工具欄(ToolStrip)控件,到frmMain窗體中,命名為tsMain 關(guān)鍵代碼回顧/編寫(xiě)工具欄 “退出”按鈕Click事件響應(yīng)程序代碼 private void tsbntQuit_Click(object sender, EventArgs e) tsmiQuit_Click(sender, e) 添加狀態(tài)欄添加狀態(tài)欄(statusStrip) ,到frmMain窗體中,命名為ssMain menuSt

59、rip的常用屬性 屬性說(shuō)明Name 控件名稱(chēng),統(tǒng)一用ms+菜單名 Text 菜單項(xiàng)的文本標(biāo)題 ShortcutKeys 設(shè)置與菜單項(xiàng)關(guān)聯(lián)的快捷鍵 ShowShortcutKeys 顯示與菜單項(xiàng)關(guān)聯(lián)的快捷鍵 ToolStripMenuItem控件常用屬性 屬性說(shuō)明Checked表示菜單是否被選中 DropDownItems返回一個(gè)項(xiàng)集合,用于菜單項(xiàng)相關(guān)的下拉菜單CheckOnClick根據(jù)Checked屬性顯示菜單是否被選中Enabled設(shè)置菜單是否可用 ToolStripMenuItem主要事件 事件說(shuō)明Click 單擊菜單項(xiàng)引發(fā)該事件CheckedChanged 單擊帶有CheckOnCli

60、ck屬性的菜單項(xiàng)時(shí),引發(fā)這個(gè)事件 任務(wù)6.2 “學(xué)生信息管理系統(tǒng)”項(xiàng)目登陸界面的設(shè)計(jì) 檢查登陸的用戶(hù)名和密碼是否為空 如果用戶(hù)名和密碼不為空,則跳轉(zhuǎn)到“學(xué)生信息管理系統(tǒng)”主界面 任務(wù)6.2 “學(xué)生信息管理系統(tǒng)”項(xiàng)目登陸界面的設(shè)計(jì)當(dāng)用戶(hù)單擊“取消”按鈕時(shí),觸發(fā)取消按鈕的Click事件,執(zhí)行btnCancel_Click事件處理程序,調(diào)用Application.Exit()退出整個(gè)應(yīng)用程序 當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行btnLogin_Click事件處理程序,首先調(diào)用自定義方法TestInput(),當(dāng)驗(yàn)證用戶(hù)已經(jīng)輸入了用戶(hù)名和密碼信息才能調(diào)用系統(tǒng)的主界面frmMain,并關(guān)閉登陸窗口 關(guān)鍵代碼

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論