Visual-C#-程序設(shè)計項目1任務(wù)3課件_第1頁
Visual-C#-程序設(shè)計項目1任務(wù)3課件_第2頁
Visual-C#-程序設(shè)計項目1任務(wù)3課件_第3頁
Visual-C#-程序設(shè)計項目1任務(wù)3課件_第4頁
Visual-C#-程序設(shè)計項目1任務(wù)3課件_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VisualC#程序設(shè)計項目1任務(wù)3軟件學院.Net教學團隊VisualC#程序設(shè)計軟件學院.Net教學團隊1

在數(shù)字競猜界面中,單擊“成績統(tǒng)計”按鈕,進入成績統(tǒng)計界面。該界面能夠顯示每局游戲中隨機產(chǎn)生的待競猜數(shù)字、競猜次數(shù)與競猜時間。界面有個按鈕,一個用于查看競猜的平均時間、最大耗時與最小耗時,另外一個按鈕用于返回到數(shù)字競猜界面,如下圖所示:

1.任務(wù)要求與目的1)任務(wù)要求2)目的任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

練習使用數(shù)組掌握循環(huán)語句掌握ListBox控件的使用

掌握冒泡算法能夠把文本輸入值轉(zhuǎn)換成數(shù)值在數(shù)字競猜界面中,單擊“成績統(tǒng)計”按鈕,進入成績統(tǒng)計21)成績分析窗體規(guī)劃2.操作步驟(詳見教材P79--P86)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

規(guī)劃窗體草圖

規(guī)劃對象和屬性

規(guī)劃事件與處理方法2)成績統(tǒng)計窗體設(shè)計與實現(xiàn)根據(jù)規(guī)劃草圖拖放控件并擺放在適當位置

根據(jù)規(guī)劃的對象屬性表設(shè)置窗體與控件的屬性編寫代碼啟動調(diào)試1)成績分析窗體規(guī)劃2.操作步驟(詳見教材P79--P86)3

類的成員訪問修飾符見下表:

3.相關(guān)知識(學中做)1)類成員的訪問修飾符任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)類成員的訪問修飾符號可以省略,類的字段成員如果省略了訪問修飾符,默認為private,若類的方法訪問修飾符省略,則默認為public。3.相關(guān)知識(學中做)1)類成員的訪問修飾符任務(wù)3成績統(tǒng)計4classClassA{publicinta;//定義了一個公有的整形字段成員a

privateintb;//定義了一個私有的整形字段b

protectedintc;//定義了一個保護的整形字段c

publicvoidSetA()//定義了一個公有的方法SetA()

{a=1;//正確,允許訪問類自身公有成員

b=2;//正確,允許訪問類自身私有成員

c=3;//正確,允許訪問類自身保護成員

}}classClassB:ClassA//定義一個類ClassB繼承了類ClassA,其中:是繼承符

{publicvoidSetB()//定義了一個公有的方法成員SetB()

{ClassABaseA=newClassA();//創(chuàng)建一個類ClassA的對象,名為BaseABaseA.a=5;//正確,允許訪問基類公有成員

BaseA.b=23;//錯誤,不允許訪問基類私有成員

BaseA.c=68;//正確,允許訪問基類保護成員

}}3.相關(guān)知識(學中做)1)類成員的訪問修飾符(續(xù))任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)classClassC//定義一個類ClassC{publicvoidSetB(){ClassABaseA=newClassA();//創(chuàng)建一個類ClassA的對象,名為BaseABaseA.a=5;//正確,允許訪問類的其他公有成員

BaseA.b=23;//錯誤,不允許訪問類的其他私有成員

BaseA.c=68;//錯誤,不允許訪問類的其他保護成員

}}classClassA3.相關(guān)知識(學中做)1)類成員的訪5①類的靜態(tài)成員若將類中的某個成員聲明為static,則該成員稱為靜態(tài)成員。②類的非靜態(tài)成員類的靜態(tài)成員屬于類所有,為這個類的所有實例所共享。無論這個類創(chuàng)建了多少個對象(實例),一個靜態(tài)成員在內(nèi)存中只占有一塊區(qū)域。3.相關(guān)知識(學中做)2)類的靜態(tài)成員任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3.相關(guān)知識(學中做)2)類的靜態(tài)成員任務(wù)3成績統(tǒng)計窗體的6

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

程序設(shè)計中的循環(huán)結(jié)構(gòu),是指在程序設(shè)計中,從某處開始有規(guī)律地反復執(zhí)行某一操作塊(或程序塊)的現(xiàn)象,并稱重復執(zhí)行的該操作塊(或程序塊)為它的循環(huán)體。循環(huán)結(jié)構(gòu)是一種常見的基本結(jié)構(gòu)。循環(huán)結(jié)構(gòu)按其循環(huán)體是否嵌套從屬的子循環(huán)結(jié)構(gòu),可分為單循環(huán)結(jié)構(gòu)和多重循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)有兩種情況,第一中情況是先進行條件判斷、再執(zhí)行;第二種情況是先執(zhí)行、再進行條件判斷,其流程圖分別見下兩圖。C#語句有以下四種循環(huán)語句:while語句do-while語句for語句foreach語句3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)7

①while語句while語句的一般語法格式為:

while(條件表達式){循環(huán)體}

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如求1-500的整數(shù)和代碼:

int

i=1;

int

total=0;

while(i<500)

{

total+=1;i++;}while循環(huán)執(zhí)行過程如下:首先判斷條件表達式的值。如果while后面括號中的條件表達式的值為true,即執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完畢然后回到while語句的開始處,再判斷while括號中的條件表達式的值是否為true,只要表達式一直為true,那么就重復執(zhí)行循環(huán)體,一直到while后面括號中的條件表達式的值為false時,才退出循環(huán),并執(zhí)行下一條語句。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)8

①while語句(續(xù))試一試求兩個整數(shù)的最大公約數(shù)當輸入兩個整數(shù)number1、number2,程序能夠計算出它們的最大公約數(shù)。算法如下:先計算number1/number2,如果余數(shù)為0,則number2就是最多公約數(shù),否則把number2賦值給number1,把余數(shù)賦值給number2,再計算number1/number2,直到余數(shù)為0。

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

窗體布局圖

程序運行窗體圖3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)9②do-while語句do…while語句的語法格式如下:

do{ 循環(huán)體;}

while(條件表達式);

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如求1-500的整數(shù)和代碼:

int

i=1;

int

total=0;

do

{

total+=1;i++;}

while(i<500);

do…while循環(huán)執(zhí)行過程如下:首先執(zhí)行循環(huán)體語句,執(zhí)行完循環(huán)體語句后,再對while語句括號中的條件表達式進行測試,若表達式的值為true,則轉(zhuǎn)向do語句繼續(xù)執(zhí)行循體語句;若表達式的值為false,則退出循環(huán),執(zhí)行程序的下一條語句。注意:do-while循環(huán)不論條件表達式的值是什么,do…while循環(huán)都至少要執(zhí)行一次。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計10②do-while語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)試一試猴子吃桃一只猴子,摘了一籃子桃子,每天吃的桃子是剩余桃子的一半,覺得還不過癮,再多吃一個。第十天就剩下一個桃子,計算猴子一共摘了多少桃子?

猴子吃桃窗體布局圖猴子吃桃計算結(jié)果3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計11for語句語法格式

for(表達式1;表達式2;表達式3){循環(huán)體;}

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如用for語句實現(xiàn)求1-500的整數(shù)和:

inti=1;

inttotal=0;

for(i=1;i<=500;i++){

total+=i;}for語句的執(zhí)行過程為:

首先計算表達式1的值。然后判斷表達式2的值是true還是false,若表達式2的值為

false,則轉(zhuǎn)而執(zhí)行步驟d;若表達式2的值是true,則執(zhí)行

循環(huán)體中的語句,然后求表達式3的值。

轉(zhuǎn)回步驟b。

結(jié)束循環(huán),執(zhí)行程序的下一條語句。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計12for語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)試一試尋找閏年設(shè)計一windows應(yīng)用程序,要求能夠根據(jù)輸入的起始年與截至年尋找閏年。如果該年的數(shù)值能被4整除,但是不能被100整除,或者能被400整除的年叫閏年。

尋找閏年窗體布局圖

尋找閏年運行結(jié)果3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計13for語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)for語句的3個表達式在使用時可以省略,在省略時需注意以下事項:for語句中可省略表達式1,前提條件是對循環(huán)變量在for語句前已賦初值,且要保留其后的分號,for語句可以省略表達式2,即不判斷表達式條件是否成立,循環(huán)將一直進行下去,但應(yīng)保留表達式2后面的分號,并且需要在循環(huán)體中添加跳出循環(huán)的控制語句for中可以省略表達式3。此時應(yīng)在循環(huán)體中添加改變循環(huán)變量值的語句,以結(jié)束循環(huán)3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計14循環(huán)語句的嵌套在現(xiàn)實生活中,有很多問題用單重循環(huán)是解決不了的,這個時候需要用雙重循環(huán)甚至更多重的循環(huán)才能解決問題,這就是循環(huán)的嵌套:即循環(huán)語句內(nèi)包含另外的循環(huán)。例如使用for語句的嵌套求1+2!+3?。玁!的總和,代碼如下:

intsum=0;

inttemp=1;

for(inti=1;i<=5;i++)

{

for(intk=1;k<=i;k++)

{temp*=k;

}

sum+=temp;

temp=1;

}3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計15foreach語句是C#中新增的循環(huán)語句,它對于處理數(shù)組及集合等數(shù)據(jù)類型特別簡便。語法格式為:foreach(數(shù)據(jù)類型標識符in表達式){循環(huán)體}

例如用foreach語句求數(shù)組中的最大值、最小值和平均值:

3)c#程序的循環(huán)結(jié)構(gòu)foreach3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)foreach3.相關(guān)知識(學中做)任16break語句和continue語句在循環(huán)語句中,break用作終止最近的封閉循環(huán),例如:

int

i=1;

int

total=0;

//total用來保存累加和

for

(i=1;;i++)

{

total+=i;

if(i==500)

break;}

上述代碼中的for循環(huán)在i=500時,執(zhí)行了break語句,整個循環(huán)體結(jié)束,轉(zhuǎn)向循環(huán)體后一條語句,total保存的是1+2+3+…+500的值,這就避免了產(chǎn)生死循環(huán)。3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計17break語句和continue語句

C#提供了一個continue語句,該語句的作用是忽略continue后面的語句,直接進入本循環(huán)結(jié)構(gòu)的下一次循環(huán)操作。例如求1+3!+5!+…+99!

int

sum=0;int

temp=1;for(int

i=1;i<=100;i++)

{

if(i%2==0)

{

continue;//結(jié)束本次循環(huán),進入下一次循環(huán)

}

for(int

k=1;k<=i;k++)

{

temp*=k;}sum+=temp;temp=1;}注意:continue和break的區(qū)別在于continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行;break語句則強制終止它所處的最近的循環(huán)結(jié)構(gòu)。3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計18①數(shù)組的聲明與訪問數(shù)組的聲明語法格式:數(shù)據(jù)類型[]數(shù)組名;例如:string[]stuname;//聲明了一個名為stuname的字符串數(shù)組。數(shù)組的實例化格式:與實例化格式如下:數(shù)組名

=new數(shù)據(jù)類型[size];例如:stuname=newstring[54];

//實例化stuname,使數(shù)組stuname包含54個元素

可以把數(shù)組的聲明與實例化合成一條語句。

string[]stuname=newstring[54];

數(shù)組元素的訪問格式:數(shù)組名[索引];數(shù)組中的元素用數(shù)組名加索引來表示,索引指的是數(shù)組中的特定元素的位置.stuname[0]代表數(shù)組stuname中的第1個元素,stuname[1]代表數(shù)組stuname中的第2個元素,…依此類推,stuname[53]代表數(shù)組中第54個元素。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)①數(shù)組的聲明與訪問4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做19①數(shù)組的聲明與訪問(續(xù))

數(shù)組一旦實例化,數(shù)組元素被初始化相應(yīng)的系統(tǒng)默認值: 簡單值類型(int,float,double等)初始化為0,枚舉型也初始化為0; 布爾型初始化為false; 引用類型初始化為null。數(shù)組的初始化:int[]array1=newint[3]{1,2,3};int[]array1=newint[]{1,2,3};int[]arry1={1,2,3};二維數(shù)組的初始化:int[,]score=newint[2,3]{{85,90,88},{70,89,95}};多維可變數(shù)組的初始化int[][]c=newint[3][];c[0]=newint[]{1,2,3};c[1]=newint[]{1,2,3,4,5,6};c[2]=newint[]{1,2,3,4,5,6,7,8,9};

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)①數(shù)組的聲明與訪問(續(xù))4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(20試一試字母生成器設(shè)計一個windows應(yīng)用程序,用戶可以選擇性地顯示所有的大寫字母或者是小寫字母。3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)字母生成器窗體布局圖

生成大寫字母界面

試一試字母生成器3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的21字符型數(shù)組的定義與數(shù)值型數(shù)組的定義類似,例如定義一個名為score的字符型數(shù)組用于保存學生的成績等級:

char[]score=new

char[5]{‘A’,‘B’,‘C’,‘D’,‘E’};

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)②字符型數(shù)組與字符串任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)字符串是Unicode字符的有序集合,用于表示文本。字符串可以看作是一個char數(shù)組,每一個字符在字符串中都有它的位置,這個位置叫索引。與其它數(shù)組一樣,索引從0開始。

例如:stringtest="HelloC#!";

則test[0]的值為’H’,test[1]的值為’e,依次類推。

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)②字符型數(shù)組與字22試一試

字母統(tǒng)計器用戶在文本框中輸入英文句子后,可以統(tǒng)計出每個字母在該文本中出現(xiàn)的次數(shù)。不需要考慮標點、空格、數(shù)字字符以及大小寫字母的區(qū)別,只需關(guān)注字母字符。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)②字符型數(shù)組與字符串任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)字母統(tǒng)計器窗體布局圖

字母統(tǒng)計器運行結(jié)果圖

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)②字符型數(shù)組與字23試一試簡易成績分析器設(shè)計一個簡易成績分析器,能夠?qū)σ慌瑢W的C#成績作簡單分析,求出最高分、最低分和平均分。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)簡易成績分析器窗體布局圖

簡易成績分析器的分析結(jié)果

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗24試一試具有排序功能的成績分析器

設(shè)計一個簡易成績分析器,能夠?qū)σ慌瑢W的C#成績作簡單分析,求出最高分、最低分和平均分。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)輸入9個同學成績窗體

單擊分析按鈕進行排序的效果

4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗25Array類為了簡化排序、查找等算法,減輕程序員的工作,C#提供了”System.Array”類作為所有數(shù)組的基類。Array它位于“System”命名空間下,提供數(shù)組的創(chuàng)建、搜索、排序和復制等方法。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)試一試對前面的成績分析器采用Sort方法進行成績排序4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗26本次實戰(zhàn)演練要求同學們在完成了打字游戲的主窗體設(shè)計與實現(xiàn)的基礎(chǔ)上,按照C#窗體應(yīng)用程序開發(fā)的步驟完成打字游戲的成績統(tǒng)計窗體的設(shè)計與實現(xiàn)。該窗體能夠顯示每一局打字游戲的打?qū)ψ帜笖?shù)、未打字母數(shù)和打錯字母數(shù),并且能夠根據(jù)你打?qū)Φ淖帜笖?shù)統(tǒng)計出你的最好成績和最差成績。窗體布局由同學自己設(shè)計完成,這里不提供樣圖。4.實戰(zhàn)演練任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)本次實戰(zhàn)演練要求同學們在完成了打字游戲的主窗體設(shè)計27VisualC#程序設(shè)計項目1任務(wù)3軟件學院.Net教學團隊VisualC#程序設(shè)計軟件學院.Net教學團隊28

在數(shù)字競猜界面中,單擊“成績統(tǒng)計”按鈕,進入成績統(tǒng)計界面。該界面能夠顯示每局游戲中隨機產(chǎn)生的待競猜數(shù)字、競猜次數(shù)與競猜時間。界面有個按鈕,一個用于查看競猜的平均時間、最大耗時與最小耗時,另外一個按鈕用于返回到數(shù)字競猜界面,如下圖所示:

1.任務(wù)要求與目的1)任務(wù)要求2)目的任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

練習使用數(shù)組掌握循環(huán)語句掌握ListBox控件的使用

掌握冒泡算法能夠把文本輸入值轉(zhuǎn)換成數(shù)值在數(shù)字競猜界面中,單擊“成績統(tǒng)計”按鈕,進入成績統(tǒng)計291)成績分析窗體規(guī)劃2.操作步驟(詳見教材P79--P86)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

規(guī)劃窗體草圖

規(guī)劃對象和屬性

規(guī)劃事件與處理方法2)成績統(tǒng)計窗體設(shè)計與實現(xiàn)根據(jù)規(guī)劃草圖拖放控件并擺放在適當位置

根據(jù)規(guī)劃的對象屬性表設(shè)置窗體與控件的屬性編寫代碼啟動調(diào)試1)成績分析窗體規(guī)劃2.操作步驟(詳見教材P79--P86)30

類的成員訪問修飾符見下表:

3.相關(guān)知識(學中做)1)類成員的訪問修飾符任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)類成員的訪問修飾符號可以省略,類的字段成員如果省略了訪問修飾符,默認為private,若類的方法訪問修飾符省略,則默認為public。3.相關(guān)知識(學中做)1)類成員的訪問修飾符任務(wù)3成績統(tǒng)計31classClassA{publicinta;//定義了一個公有的整形字段成員a

privateintb;//定義了一個私有的整形字段b

protectedintc;//定義了一個保護的整形字段c

publicvoidSetA()//定義了一個公有的方法SetA()

{a=1;//正確,允許訪問類自身公有成員

b=2;//正確,允許訪問類自身私有成員

c=3;//正確,允許訪問類自身保護成員

}}classClassB:ClassA//定義一個類ClassB繼承了類ClassA,其中:是繼承符

{publicvoidSetB()//定義了一個公有的方法成員SetB()

{ClassABaseA=newClassA();//創(chuàng)建一個類ClassA的對象,名為BaseABaseA.a=5;//正確,允許訪問基類公有成員

BaseA.b=23;//錯誤,不允許訪問基類私有成員

BaseA.c=68;//正確,允許訪問基類保護成員

}}3.相關(guān)知識(學中做)1)類成員的訪問修飾符(續(xù))任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)classClassC//定義一個類ClassC{publicvoidSetB(){ClassABaseA=newClassA();//創(chuàng)建一個類ClassA的對象,名為BaseABaseA.a=5;//正確,允許訪問類的其他公有成員

BaseA.b=23;//錯誤,不允許訪問類的其他私有成員

BaseA.c=68;//錯誤,不允許訪問類的其他保護成員

}}classClassA3.相關(guān)知識(學中做)1)類成員的訪32①類的靜態(tài)成員若將類中的某個成員聲明為static,則該成員稱為靜態(tài)成員。②類的非靜態(tài)成員類的靜態(tài)成員屬于類所有,為這個類的所有實例所共享。無論這個類創(chuàng)建了多少個對象(實例),一個靜態(tài)成員在內(nèi)存中只占有一塊區(qū)域。3.相關(guān)知識(學中做)2)類的靜態(tài)成員任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3.相關(guān)知識(學中做)2)類的靜態(tài)成員任務(wù)3成績統(tǒng)計窗體的33

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

程序設(shè)計中的循環(huán)結(jié)構(gòu),是指在程序設(shè)計中,從某處開始有規(guī)律地反復執(zhí)行某一操作塊(或程序塊)的現(xiàn)象,并稱重復執(zhí)行的該操作塊(或程序塊)為它的循環(huán)體。循環(huán)結(jié)構(gòu)是一種常見的基本結(jié)構(gòu)。循環(huán)結(jié)構(gòu)按其循環(huán)體是否嵌套從屬的子循環(huán)結(jié)構(gòu),可分為單循環(huán)結(jié)構(gòu)和多重循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)有兩種情況,第一中情況是先進行條件判斷、再執(zhí)行;第二種情況是先執(zhí)行、再進行條件判斷,其流程圖分別見下兩圖。C#語句有以下四種循環(huán)語句:while語句do-while語句for語句foreach語句3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)34

①while語句while語句的一般語法格式為:

while(條件表達式){循環(huán)體}

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如求1-500的整數(shù)和代碼:

int

i=1;

int

total=0;

while(i<500)

{

total+=1;i++;}while循環(huán)執(zhí)行過程如下:首先判斷條件表達式的值。如果while后面括號中的條件表達式的值為true,即執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完畢然后回到while語句的開始處,再判斷while括號中的條件表達式的值是否為true,只要表達式一直為true,那么就重復執(zhí)行循環(huán)體,一直到while后面括號中的條件表達式的值為false時,才退出循環(huán),并執(zhí)行下一條語句。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)35

①while語句(續(xù))試一試求兩個整數(shù)的最大公約數(shù)當輸入兩個整數(shù)number1、number2,程序能夠計算出它們的最大公約數(shù)。算法如下:先計算number1/number2,如果余數(shù)為0,則number2就是最多公約數(shù),否則把number2賦值給number1,把余數(shù)賦值給number2,再計算number1/number2,直到余數(shù)為0。

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)

窗體布局圖

程序運行窗體圖3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)36②do-while語句do…while語句的語法格式如下:

do{ 循環(huán)體;}

while(條件表達式);

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如求1-500的整數(shù)和代碼:

int

i=1;

int

total=0;

do

{

total+=1;i++;}

while(i<500);

do…while循環(huán)執(zhí)行過程如下:首先執(zhí)行循環(huán)體語句,執(zhí)行完循環(huán)體語句后,再對while語句括號中的條件表達式進行測試,若表達式的值為true,則轉(zhuǎn)向do語句繼續(xù)執(zhí)行循體語句;若表達式的值為false,則退出循環(huán),執(zhí)行程序的下一條語句。注意:do-while循環(huán)不論條件表達式的值是什么,do…while循環(huán)都至少要執(zhí)行一次。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計37②do-while語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)試一試猴子吃桃一只猴子,摘了一籃子桃子,每天吃的桃子是剩余桃子的一半,覺得還不過癮,再多吃一個。第十天就剩下一個桃子,計算猴子一共摘了多少桃子?

猴子吃桃窗體布局圖猴子吃桃計算結(jié)果3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計38for語句語法格式

for(表達式1;表達式2;表達式3){循環(huán)體;}

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)例如用for語句實現(xiàn)求1-500的整數(shù)和:

inti=1;

inttotal=0;

for(i=1;i<=500;i++){

total+=i;}for語句的執(zhí)行過程為:

首先計算表達式1的值。然后判斷表達式2的值是true還是false,若表達式2的值為

false,則轉(zhuǎn)而執(zhí)行步驟d;若表達式2的值是true,則執(zhí)行

循環(huán)體中的語句,然后求表達式3的值。

轉(zhuǎn)回步驟b。

結(jié)束循環(huán),執(zhí)行程序的下一條語句。3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計39for語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)試一試尋找閏年設(shè)計一windows應(yīng)用程序,要求能夠根據(jù)輸入的起始年與截至年尋找閏年。如果該年的數(shù)值能被4整除,但是不能被100整除,或者能被400整除的年叫閏年。

尋找閏年窗體布局圖

尋找閏年運行結(jié)果3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計40for語句(續(xù))

3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)for語句的3個表達式在使用時可以省略,在省略時需注意以下事項:for語句中可省略表達式1,前提條件是對循環(huán)變量在for語句前已賦初值,且要保留其后的分號,for語句可以省略表達式2,即不判斷表達式條件是否成立,循環(huán)將一直進行下去,但應(yīng)保留表達式2后面的分號,并且需要在循環(huán)體中添加跳出循環(huán)的控制語句for中可以省略表達式3。此時應(yīng)在循環(huán)體中添加改變循環(huán)變量值的語句,以結(jié)束循環(huán)3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計41循環(huán)語句的嵌套在現(xiàn)實生活中,有很多問題用單重循環(huán)是解決不了的,這個時候需要用雙重循環(huán)甚至更多重的循環(huán)才能解決問題,這就是循環(huán)的嵌套:即循環(huán)語句內(nèi)包含另外的循環(huán)。例如使用for語句的嵌套求1+2?。??。玁!的總和,代碼如下:

intsum=0;

inttemp=1;

for(inti=1;i<=5;i++)

{

for(intk=1;k<=i;k++)

{temp*=k;

}

sum+=temp;

temp=1;

}3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3.相關(guān)知識(學中做)3)c#程序的循環(huán)結(jié)構(gòu)任務(wù)3成績統(tǒng)計42foreach語句是C#中新增的循環(huán)語句,它對于處理數(shù)組及集合等數(shù)據(jù)類型特別簡便。語法格式為:foreach(數(shù)據(jù)類型標識符in表達式){循環(huán)體}

例如用foreach語句求數(shù)組中的最大值、最小值和平均值:

3)c#程序的循環(huán)結(jié)構(gòu)foreach3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)foreach3.相關(guān)知識(學中做)任43break語句和continue語句在循環(huán)語句中,break用作終止最近的封閉循環(huán),例如:

int

i=1;

int

total=0;

//total用來保存累加和

for

(i=1;;i++)

{

total+=i;

if(i==500)

break;}

上述代碼中的for循環(huán)在i=500時,執(zhí)行了break語句,整個循環(huán)體結(jié)束,轉(zhuǎn)向循環(huán)體后一條語句,total保存的是1+2+3+…+500的值,這就避免了產(chǎn)生死循環(huán)。3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計44break語句和continue語句

C#提供了一個continue語句,該語句的作用是忽略continue后面的語句,直接進入本循環(huán)結(jié)構(gòu)的下一次循環(huán)操作。例如求1+3!+5!+…+99!

int

sum=0;int

temp=1;for(int

i=1;i<=100;i++)

{

if(i%2==0)

{

continue;//結(jié)束本次循環(huán),進入下一次循環(huán)

}

for(int

k=1;k<=i;k++)

{

temp*=k;}sum+=temp;temp=1;}注意:continue和break的區(qū)別在于continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行;break語句則強制終止它所處的最近的循環(huán)結(jié)構(gòu)。3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)3)c#程序的循環(huán)結(jié)構(gòu)3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計45①數(shù)組的聲明與訪問數(shù)組的聲明語法格式:數(shù)據(jù)類型[]數(shù)組名;例如:string[]stuname;//聲明了一個名為stuname的字符串數(shù)組。數(shù)組的實例化格式:與實例化格式如下:數(shù)組名

=new數(shù)據(jù)類型[size];例如:stuname=newstring[54];

//實例化stuname,使數(shù)組stuname包含54個元素

可以把數(shù)組的聲明與實例化合成一條語句。

string[]stuname=newstring[54];

數(shù)組元素的訪問格式:數(shù)組名[索引];數(shù)組中的元素用數(shù)組名加索引來表示,索引指的是數(shù)組中的特定元素的位置.stuname[0]代表數(shù)組stuname中的第1個元素,stuname[1]代表數(shù)組stuname中的第2個元素,…依此類推,stuname[53]代表數(shù)組中第54個元素。4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做)任務(wù)3成績統(tǒng)計窗體的設(shè)計與開發(fā)①數(shù)組的聲明與訪問4)數(shù)組的創(chuàng)建與使用3.相關(guān)知識(學中做46①數(shù)組的聲明與訪問(續(xù))

數(shù)組一旦實例化,數(shù)組元素被初始化相應(yīng)的系統(tǒng)默認值: 簡單值類型(int,float,double等)初始化為0,枚舉型也初始化為0; 布爾型初始化為false; 引用類型初始化為null。數(shù)組的初始化:int[]array1=newint[3]{1,2,3};int[]array1=newint[]{1,2,3};int[]arry1={1,2,3};二維

溫馨提示

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

評論

0/150

提交評論