《C#語(yǔ)言程序設(shè)計(jì)項(xiàng)目教程》第6章 數(shù)組與集合寫(xiě)字字帖_第1頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)項(xiàng)目教程》第6章 數(shù)組與集合寫(xiě)字字帖_第2頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)項(xiàng)目教程》第6章 數(shù)組與集合寫(xiě)字字帖_第3頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)項(xiàng)目教程》第6章 數(shù)組與集合寫(xiě)字字帖_第4頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)項(xiàng)目教程》第6章 數(shù)組與集合寫(xiě)字字帖_第5頁(yè)
已閱讀5頁(yè),還剩67頁(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)介

第6章數(shù)組與集合本章導(dǎo)讀:本章的主要內(nèi)容是一維數(shù)組、二維數(shù)組和ArrayList集合類(lèi)的使用。然后通過(guò)項(xiàng)目“學(xué)生成績(jī)單”為導(dǎo)向,三個(gè)任務(wù)(打印學(xué)生成績(jī)單、打印多名學(xué)生的成績(jī)單、學(xué)生選課)為驅(qū)動(dòng),學(xué)習(xí)有關(guān)數(shù)組與集合的知識(shí),包括一維數(shù)組、二維數(shù)組、ArrayList集合類(lèi)等,本項(xiàng)目的使得學(xué)習(xí)者對(duì)構(gòu)造類(lèi)型數(shù)據(jù)有一定認(rèn)識(shí)。第6章數(shù)組和集合

——任務(wù)一打印學(xué)生成績(jī)單

一、任務(wù)描述:編制一個(gè)C#控制臺(tái)應(yīng)用程序:從鍵盤(pán)依次輸入學(xué)生的4門(mén)課成績(jī),計(jì)算出學(xué)生的總分和平均分,并根據(jù)規(guī)則判斷該學(xué)生所得獎(jiǎng)學(xué)金等級(jí),項(xiàng)目運(yùn)行效果如下圖所示:二、知識(shí)準(zhǔn)備:1一維數(shù)組的聲明和使用2數(shù)組的常見(jiàn)屬性及方法二、知識(shí)準(zhǔn)備:1、一維數(shù)組的聲明和使用(1)一維數(shù)組的聲明通過(guò)前面的學(xué)習(xí)大家已經(jīng)知道,變量在使用前必須聲明,一維數(shù)組也是一種變量,所以在使用一維數(shù)組之前也先聲明。聲明一維數(shù)組的格式為:數(shù)組類(lèi)型[]數(shù)組名;例如:float[]scores;//定義float型的一維數(shù)組用于存放1個(gè)學(xué)生的成績(jī)int[]nums;//定義int型的一維數(shù)組存放學(xué)生學(xué)號(hào)string[]names;//定義string型的一維數(shù)組用于存放所有學(xué)生的姓名二、知識(shí)準(zhǔn)備:1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化在C#中有下面三種方法對(duì)數(shù)組進(jìn)行實(shí)始化:1)聲明數(shù)組的同時(shí)給出一組用“,”分隔開(kāi)的元素列表,并用{}括起來(lái)。例如:張三成績(jī)一維數(shù)組定義為:float[]scores={85.5,90,72.5,83,0,0};該代碼定義了一個(gè)float類(lèi)型的一維數(shù)組,數(shù)組名為scores,里面存放了6個(gè)實(shí)型數(shù),依次為85.5,90,72.5,83,0,0,因?yàn)榭偡趾推骄诌€未計(jì)算,所以暫時(shí)賦值為0。二、知識(shí)準(zhǔn)備:數(shù)組的這種初始化方式必須與聲明數(shù)組同時(shí)進(jìn)行,如上面的代碼不能分開(kāi),寫(xiě)成下面兩句話就會(huì)報(bào)錯(cuò):float[]scoresscores={85.5,90,72.5,83,0,0};1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識(shí)準(zhǔn)備:2)使用new關(guān)鍵字顯示初始化數(shù)組,只確定數(shù)組的長(zhǎng)度,即數(shù)組元素的個(gè)數(shù),格式為:數(shù)組名=new數(shù)組類(lèi)型[數(shù)組長(zhǎng)度];例如:float[]scores=newfloat[6];或者float[]scores;scores=newfloat[6];1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識(shí)準(zhǔn)備:3)使用new關(guān)鍵字顯示初始化數(shù)組,不僅確定數(shù)組的長(zhǎng)度,而且為所有的數(shù)組元素賦了初始值,如:float[]scores=newfloat[6]{85.5,90,72.5,83,0,0};或者

float[]scores;scores=newfloat[6]{85.5,90,72.5,83,0,0};注意:數(shù)組的這種初始化方式要求給出的數(shù)組長(zhǎng)度值必須與[]內(nèi)的初始值個(gè)數(shù)一致。1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識(shí)準(zhǔn)備:數(shù)組初始化后就可以通過(guò)下標(biāo)訪問(wèn)其中的所有元素了,其使用格式為:數(shù)組名[下標(biāo)]“下標(biāo)”:就是數(shù)組中元素的順序號(hào),從0開(kāi)始,到數(shù)組的長(zhǎng)度減1為止(數(shù)組的長(zhǎng)度就是數(shù)組中元素的個(gè)數(shù))。通常使用for語(yǔ)句或foreach語(yǔ)句通過(guò)一維數(shù)組的下標(biāo)訪問(wèn)數(shù)組元素,下面的任務(wù)中通過(guò)for語(yǔ)句對(duì)數(shù)組元素進(jìn)行輸入,通過(guò)foreach對(duì)數(shù)組元素進(jìn)行輸出。1、一維數(shù)組的聲明和使用(3)一維數(shù)組的元素的引用,輸入及輸出二、知識(shí)準(zhǔn)備:2、數(shù)組的常見(jiàn)屬性及方法C#自帶了數(shù)組的一些屬性和方法,在程序設(shè)計(jì)中,如果知道數(shù)組的這些屬性和方法,往往可以簡(jiǎn)化程序的設(shè)計(jì),提高開(kāi)發(fā)效率。(1)數(shù)組的常見(jiàn)屬性Length屬性:表示數(shù)組所有維數(shù)中元素的總數(shù),即數(shù)組的長(zhǎng)度。float[]scores=newfloat[6];則scores.Length的值為6,表示數(shù)組scores的長(zhǎng)度為6,可以存放6個(gè)元素。二、知識(shí)準(zhǔn)備:(1)數(shù)組的常見(jiàn)屬性Rank屬性:表示數(shù)組的維數(shù)。例1:float[]scores=newfloat[6];則scores.Rank的值為1,表示數(shù)組scores的維數(shù)為1,scores是一維數(shù)組。例2:string[,]names=newstrng[3,5];則names.Rank的值為2,表示數(shù)組names的維數(shù)為2,names是二維數(shù)組2、數(shù)組的常見(jiàn)屬性及方法C#自帶了數(shù)組的一些屬性和方法,在程序設(shè)計(jì)中,如果知道數(shù)組的這些屬性和方法,往往可以簡(jiǎn)化程序的設(shè)計(jì),提高開(kāi)發(fā)效率。二、知識(shí)準(zhǔn)備:2、數(shù)組的常見(jiàn)屬性及方法(2)數(shù)組的常見(jiàn)方法1)Sort方法:對(duì)一維數(shù)組排序。它是Array類(lèi)的靜態(tài)方法,使用格式為:Array.Sort(數(shù)組名);二、知識(shí)準(zhǔn)備:例6.1將常見(jiàn)的中國(guó)百家姓升序排列后輸出:staticvoidMain(string[]args){string[]nameFirst={"li","zhou","zhang","wang","xia","liu"};Array.Sort(nameFirst);foreach(stringninnameFirst) { Console.WriteLine(n); }Console.ReadLine();}思考:去掉語(yǔ)句“Array.Sort(nameFirst);”后,數(shù)組中的元素順序如何,程序輸出什么樣的結(jié)果?二、知識(shí)準(zhǔn)備:Array.Reverse(數(shù)組名);2、數(shù)組的常見(jiàn)屬性及方法(2)數(shù)組的常見(jiàn)方法2)Reverse方法:反轉(zhuǎn)一維數(shù)組,即第一個(gè)元素變?yōu)樽詈笠粋€(gè)元素,最后一個(gè)元素變?yōu)榈谝粋€(gè)元素。它是Array類(lèi)的靜態(tài)方法,使用格式為:二、知識(shí)準(zhǔn)備:例6.2:staticvoidMain(string[]args){int[]num={10,20,30,40,50,60,70,80,90,100};Array.Reverse(num);foreach(intninnum) { Console.WriteLine(n); }Console.ReadLine();}思考:有了語(yǔ)句“Array.Reverse(num);”后,數(shù)組的元素存放順序是怎樣的?如果刪除該句,程序輸出什么樣的結(jié)果?二、知識(shí)準(zhǔn)備:數(shù)組名.GetLowerBound(維度)

數(shù)組名.GetUpperBound(維度)2、數(shù)組的常見(jiàn)屬性及方法(2)數(shù)組的常見(jiàn)方法3)GetLowerBound與GetUpperBound方法:獲取數(shù)組指定維度的下限與上限,使用格式為:二、知識(shí)準(zhǔn)備:例6.3:staticvoidMain(string[]args){int[]num={10,20,30,40,50,60,70,80,90,100};intlowerBound=num.GetLowerBound(0);intupperBound=num.GetUpperBound(0);Console.WriteLine("數(shù)組num的下界為:"+lowerBound+"\n上界為:"+upperBound);Console.ReadLine();}二、知識(shí)準(zhǔn)備:

Array.IndexOf(數(shù)組名,元素值)2、數(shù)組的常見(jiàn)屬性及方法(2)數(shù)組的常見(jiàn)方法4)IndexOf方法:在數(shù)組中根據(jù)元素值獲取該元素的第一個(gè)索引號(hào),如果數(shù)組中不存在該元素值,則返回-1。它是Array類(lèi)的靜態(tài)方法,使用格式為:二、知識(shí)準(zhǔn)備:例6.4:staticvoidMain(string[]args){int[]num={10,20,30,40,50,30,70,80,90,100};intindexNo=Array.IndexOf(num,30);Console.WriteLine("數(shù)組num中最后一個(gè)值為30的個(gè)元素的索引號(hào)為:"+indexNo);Console.ReadLine();}這段代碼中,一維數(shù)組num中有兩個(gè)值為30的元素,但程序運(yùn)行后輸出第一個(gè)30的索引號(hào),即2,而不是5。二、知識(shí)準(zhǔn)備:2、數(shù)組的常見(jiàn)屬性及方法(2)數(shù)組的常見(jiàn)方法5)LastIndexOf方法:在數(shù)組中根據(jù)元素值獲取該元素的最后一個(gè)索引號(hào),如果數(shù)組中不存在該元素值,則返回-1。它是Array類(lèi)的靜態(tài)方法,使用格式為:

Array.LastIndexOf(數(shù)組名,元素值)特別提示:數(shù)組的這些屬性和方法對(duì)多維數(shù)組也同樣適用,所以后面將不再單獨(dú)講述二維數(shù)組的屬性和方法。二、知識(shí)準(zhǔn)備:例6.5:staticvoidMain(string[]args){int[]num={10,20,30,40,50,30,70,80,30,100};intindexNo=Array.LastIndexOf(num,30);Console.WriteLine("數(shù)組num中最后一個(gè)值為30的個(gè)元素的索引號(hào)為:"+indexNo);Console.ReadLine();}這段代碼中,一維數(shù)組num中有三個(gè)值為30的元素,但程序運(yùn)行后輸出最后一個(gè)30的索引號(hào),即8,而不是2或5。三、任務(wù)分析:1、分析輸出學(xué)生成績(jī)需要以下變量,如下表所示:變量聲明說(shuō)明表2、對(duì)學(xué)生的四門(mén)課成績(jī)利用for循環(huán)通過(guò)數(shù)組索引(索引號(hào)0~3)進(jìn)行輸入,索引為4的數(shù)組元素用于存放總分,索引為5的數(shù)組元素用于存放平均分,步驟如下。序號(hào)變量名稱(chēng)變量類(lèi)型變量作用1scoresfloat一維數(shù)組,用于存放各門(mén)課成績(jī)、總分和平均分2iint循環(huán)變量,同時(shí)代表數(shù)組索引3scorefloatforeach循環(huán)變量輸入四門(mén)課成績(jī)計(jì)算總分和平均分輸出成績(jī)判斷并輸出獎(jiǎng)學(xué)金等級(jí)四、任務(wù)實(shí)施:1、啟動(dòng)VisualStudio2010,建立名為“stuscore”的控制臺(tái)應(yīng)用程序。2、在Program.cs文件中輸入如下代碼:首先是變量的定義:float[]scores=newfloat[6];一維數(shù)組部分元素的初始化。因?yàn)閟cores[4]和scores[5]元素存放的是學(xué)生的總分和平均分,所以需要對(duì)其進(jìn)行初始化,便于計(jì)算:scores[4]=scores[5]=0;四、任務(wù)實(shí)施:1)輸入四門(mén)課成績(jī)Console.WriteLine("請(qǐng)依次輸入學(xué)生的英語(yǔ)、C#、數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)成績(jī):");for(inti=0;i<4;i++){scores[i]=Convert.ToSingle(Console.ReadLine());//強(qiáng)制轉(zhuǎn)換為float型}四、任務(wù)實(shí)施:2)計(jì)算總分和平均分計(jì)算總分的過(guò)程可以在輸入成績(jī)的時(shí)候同時(shí)進(jìn)行,在①中循環(huán)體最后加入1句代碼:scores[4]+=scores[i];計(jì)算平均分必須在總分計(jì)算完成之后,所以在循環(huán)體外后面加入代碼:scores[5]=scores[4]/4;四、任務(wù)實(shí)施:3)利用foreach語(yǔ)句輸出成績(jī)foreach(floatscoreinscores){Console.Write(score+"\t");}也可以同樣利用for語(yǔ)句輸出數(shù)組元素for(i=0;i<scores.Length;i++){Console.Write(scores[i]+"\t");}四、任務(wù)實(shí)施:4)判斷并輸出等級(jí)if(scores[5]>=90){Console.WriteLine("一等獎(jiǎng)學(xué)金");}elseif(scores[5]>=80&&scores[5]<=90){Console.WriteLine("二等獎(jiǎng)學(xué)金");}elseif(scores[5]>=70&&scores[5]<=80){Console.WriteLine("三等獎(jiǎng)學(xué)金");}else{Console.WriteLine("無(wú)獎(jiǎng)學(xué)金");}3、運(yùn)行程序。1、對(duì)使用Console.ReadLine()輸入的字符串要經(jīng)過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換才能賦值給數(shù)組元素:scores[i]=Convert.ToSingle(Console.ReadLine())2、通常通過(guò)for和foreach語(yǔ)句來(lái)對(duì)數(shù)組元素進(jìn)行輸入和輸出,使用時(shí)要注意兩種方式的區(qū)別。3、數(shù)組的Length屬性表示取數(shù)組的長(zhǎng)度。五、任務(wù)小結(jié):第6章數(shù)組與集合

——任務(wù)二打印多名學(xué)生的成績(jī)單

一、任務(wù)描述:編制一個(gè)C#控制臺(tái)應(yīng)用程序:從鍵盤(pán)依次輸入3名學(xué)生的姓名和學(xué)號(hào),然后輸入學(xué)生的4門(mén)課成績(jī),計(jì)算出每名學(xué)生的總分和平均分,并根據(jù)規(guī)則判斷該學(xué)生所得獎(jiǎng)學(xué)金等級(jí),最后輸出整個(gè)成績(jī)表。運(yùn)行效果如下圖所示1二、知識(shí)準(zhǔn)備:二維數(shù)組的聲明和使用二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(1)什么是二維數(shù)組C#中的數(shù)組除了一維數(shù)組外,還有二維數(shù)組、三維數(shù)組等多維數(shù)組,其中以二維數(shù)組最為常見(jiàn)。學(xué)生的成績(jī)部分就是一個(gè)二維數(shù)組結(jié)構(gòu),我們把它簡(jiǎn)化為下表:英語(yǔ)C#數(shù)學(xué)數(shù)據(jù)結(jié)構(gòu)總分平均分85.59072.583.5331.582.8757869.586.57731177.7589.5958790361.590.375二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(1)什么是二維數(shù)組它可以用一個(gè)二維數(shù)組來(lái)表示,有3行6列,一共18個(gè)元素。二維數(shù)組可以看成是一個(gè)特殊的一維數(shù)組,該一維數(shù)組的每個(gè)元素又是一個(gè)一維數(shù)組。如上面的成績(jī)表可以看成是長(zhǎng)度為3的一維數(shù)組:第一個(gè)元素是1個(gè)一維數(shù)組(85.5,90,72.5,83.5,331.5,82.875)第二個(gè)元素是1個(gè)一維數(shù)組(78,69.9,86.5,77,311,77.75)第三個(gè)元素是1個(gè)一維數(shù)組(89.5,95,87,90,361.5,90,375)二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(2)二維數(shù)組的定義同一維數(shù)組一樣,在使用二維數(shù)組前必須定義,格式為:數(shù)組類(lèi)型[,]數(shù)組名;其中“數(shù)組類(lèi)型”為該數(shù)組中元素的數(shù)據(jù)類(lèi)型。如果我們要定義一個(gè)二維數(shù)組來(lái)裝下上表中3個(gè)學(xué)生的成績(jī),可以做如下定義:

flaot[,]scores;二、知識(shí)準(zhǔn)備:如果我們要定義一個(gè)字符串類(lèi)型的二維數(shù)組,可以做如下定義:

string[,]str;上式中定義了一個(gè)字符串類(lèi)型的二維數(shù)組str。如果要定義三維數(shù)組,則格式為:數(shù)組類(lèi)型[,,]數(shù)組名;例如:int[,,]x;1、二維數(shù)組的聲明和使用(2)二維數(shù)組的定義特別提醒二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化跟一維數(shù)組相同,二維數(shù)組在聲明之后必須為其分配內(nèi)存空間,即必須對(duì)二維數(shù)組進(jìn)行初始化。1)聲明二維數(shù)組的同時(shí)進(jìn)行初始化。即將二維數(shù)組所有元素用一個(gè)“{}”括起來(lái),該花括號(hào)里面是用逗號(hào)“,”隔開(kāi)的多個(gè)“{}”。例如:上面的行列式的初始化float[,]scores={{85.5,90,72.5,83.5,331.5,82.875},{78,69.9,86.5,77,311,77.75},{89.5,95,87,90,361.5,90,375}};

二、知識(shí)準(zhǔn)備:例如,下表是某學(xué)校課程授課信息:為存放這些數(shù)據(jù),可以這樣聲明一個(gè)3行3列的sting型二維數(shù)組:課程名稱(chēng)授課教師授課班級(jí)《C語(yǔ)言程序設(shè)計(jì)》劉小華13軟件1班《C++程序設(shè)計(jì)》張小友12軟件2班《C#程序設(shè)計(jì)》郭小城11軟件3班string[,]teach={

{"《C語(yǔ)言程序設(shè)計(jì)》","劉小華","13軟件1班"},

{"《C++程序設(shè)計(jì)》","張小友","12軟件2班"},

{"《C#程序設(shè)計(jì)》","郭小城","11軟件3班"}};1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化二、知識(shí)準(zhǔn)備:

數(shù)組的這種初始化方式必須與聲明數(shù)組同時(shí)進(jìn)行,不能分開(kāi),下面的初始化方式是錯(cuò)誤的:string[,]teach;teach={{"《C語(yǔ)言程序設(shè)計(jì)》","劉小華","13軟件1班"},{"《C++程序設(shè)計(jì)》","張小友","12軟件2班"},{"《C#程序設(shè)計(jì)》","郭小城","11軟件3班"}};1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化錯(cuò)誤的初始化方式二、知識(shí)準(zhǔn)備:2)使用new關(guān)鍵字顯示初始化數(shù)組,只確定數(shù)組的長(zhǎng)度,即數(shù)組元素的個(gè)數(shù),格式為:數(shù)組名=new數(shù)組類(lèi)型[第一維長(zhǎng)度,第二維長(zhǎng)度];例如:int[,]datas=newint[3,5];或者:int[,]datas;datas=newint[3,5];1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化3)使用new關(guān)鍵字顯示初始化數(shù)組,不僅確定數(shù)組的長(zhǎng)度,而且為所有的數(shù)組元素賦了初始值,如:int[,]datas=newint[3,5]{{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};int[,]datas;

datas=newint[3,5]{{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}

};或者數(shù)組的這種初始化方式要求給出的數(shù)組長(zhǎng)度值必須與{}內(nèi)的初始值個(gè)數(shù)一致二、知識(shí)準(zhǔn)備:1、二維數(shù)組的聲明和使用(4)二維數(shù)組的元素的引用,輸入及輸出二維數(shù)組初始化后就可以通過(guò)下標(biāo)訪問(wèn)其中的所有元素了,跟一維數(shù)組不同,一維數(shù)組的下標(biāo)只有一個(gè)整數(shù),而二維數(shù)組的下標(biāo)為兩個(gè)整數(shù),其使用格式為:數(shù)組名[行下標(biāo),列下標(biāo)]“行下標(biāo)”:就是二維數(shù)組中元素所在的行序號(hào),從0開(kāi)始,到數(shù)組的第一維的長(zhǎng)度減1為止,即總行數(shù)減1為止?!傲邢聵?biāo)”:就是二維數(shù)組中元素所在的列序號(hào),從0開(kāi)始,到數(shù)組的第二維的長(zhǎng)度減1為止,即總列數(shù)減1為止。三、任務(wù)分析:1、分析輸出多個(gè)學(xué)生成績(jī)單需要以下變量,如下表所示:序號(hào)變量名稱(chēng)變量類(lèi)型變量作用1scoresfloat二維數(shù)組,用于存放3個(gè)學(xué)生4門(mén)課成績(jī)、總分和平均分2namesstring一維數(shù)組,用于存放3個(gè)學(xué)生的姓名3no2string一維數(shù)組,用于存放3個(gè)學(xué)生的學(xué)號(hào)4iint循環(huán)變量,同時(shí)代表二維數(shù)組行索引5iint循環(huán)變量,同時(shí)代表二維數(shù)組列索引三、任務(wù)分析:2、利用雙重for循環(huán)通過(guò)二維數(shù)組索引(行索引號(hào)0~3,列索引好0~3)進(jìn)行輸入,列索引為4的數(shù)組元素用于存放總分,列索引為5的數(shù)組元素用于存放平均分,步驟如下:分別輸入3個(gè)人的姓名、學(xué)號(hào)和四門(mén)課成績(jī),同時(shí)計(jì)算3個(gè)人的總分和平均分分別輸出3個(gè)人的成績(jī)?cè)谳敵龀煽?jī)的同時(shí),判斷并輸出獎(jiǎng)學(xué)金等級(jí)四、任務(wù)實(shí)施:1.啟動(dòng)VisualStudio2012,建立名為“newstuscore”的控制臺(tái)應(yīng)用程序。2.在Program.cs文件中輸入如下代碼:首先是變量的定義:inti,j;string[]names=newstring[3];string[]nos=newstring[3];float[,]scores=newfloat[3,6];四、任務(wù)實(shí)施:二維數(shù)組中scores[i][4]和scores[i][5]元素存放的是學(xué)生的總分和平均分,所以需要對(duì)其進(jìn)行初始化,便于計(jì)算:for(i=0;i<3;i++){scores[i,4]=scores[i,5]=0;}四、任務(wù)實(shí)施:(1)分別輸入3個(gè)人的姓名、學(xué)號(hào)和四門(mén)課成績(jī),同時(shí)計(jì)算總分和平均分for(i=0;i<3;i++){

Console.WriteLine("請(qǐng)輸入第"+(i+1).ToString()+"名學(xué)生的姓名和學(xué)號(hào):");names[i]=Console.ReadLine();nos[i]=Console.ReadLine();Console.WriteLine("第"+(i+1).ToString()+"名學(xué)生成績(jī)輸入:");Console.WriteLine("請(qǐng)依次輸入英語(yǔ)、C#、數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)的成績(jī):");for(j=0;j<4;j++){scores[i,j]=Convert.ToSingle(Console.ReadLine());scores[i,4]+=scores[i,j];}scores[i,5]=scores[i,4]/4;}輸入成績(jī)并計(jì)算總分計(jì)算平均分四、任務(wù)實(shí)施:(2)利用雙重for語(yǔ)句輸出完整成績(jī)表Console.WriteLine("學(xué)生成績(jī)?yōu)椋?);Console.WriteLine("姓名\t學(xué)號(hào)\t英語(yǔ)\tC#\t數(shù)學(xué)\t數(shù)據(jù)結(jié)構(gòu)總分\t平均分\t獎(jiǎng)學(xué)金");

for(i=0;i<3;i++){Console.Write(names[i].ToString()+"\t");Console.Write(nos[i].ToString()+"\t");for(j=0;j<6;j++){Console.Write(scores[i,j].ToString()+"\t");}

if(scores[i,5]>=90){Console.WriteLine("一等獎(jiǎng)學(xué)金");}四、任務(wù)實(shí)施:3.運(yùn)行程序。elseif(scores[i,5]>=80&&scores[i,5]<=90){Console.WriteLine("二等獎(jiǎng)學(xué)金");}elseif(scores[i,5]>=70&&scores[i,5]<=80){Console.WriteLine("三等獎(jiǎng)學(xué)金");}else{Console.WriteLine("無(wú)獎(jiǎng)學(xué)金");}Console.WriteLine();}五、任務(wù)小結(jié):1、對(duì)二維數(shù)組元素的輸入和輸出,通常通過(guò)雙重for循環(huán)來(lái)實(shí)現(xiàn)。2、對(duì)單純二維數(shù)組元素的輸出也可以采用foreach語(yǔ)句,但在本任務(wù)中,因?yàn)橐袛嗒?jiǎng)學(xué)金等級(jí)并輸出,同時(shí)對(duì)輸出的格式不好控制,采取了雙重for語(yǔ)句。intcount=0;foreach(floatscoreinscores){Console.Write(score.ToString()+"\t");count++;if(count%6==0)Console.WriteLine();}二維數(shù)組的輸出第6章數(shù)組與集合

——任務(wù)三學(xué)生選課

一、任務(wù)描述:創(chuàng)建一個(gè)窗體應(yīng)用程序,可以實(shí)現(xiàn)學(xué)生的選課,程序運(yùn)行效果如下圖所示:一、任務(wù)描述:當(dāng)單擊【初始化課程】按鈕時(shí),文本框內(nèi)顯示初始化課程,如下圖所示;一、任務(wù)描述:當(dāng)單擊【全部清除】按鈕時(shí),文本框內(nèi)所有課程被清空;當(dāng)單擊【添加課程】按鈕時(shí),單擊對(duì)話框中的【確定】按鈕,文本框內(nèi)新增加其后文本框中輸入的課程,如下圖所示;一、任務(wù)描述:當(dāng)單擊【刪除課程】按鈕時(shí),單擊對(duì)話框中的【確定】按鈕,文本框內(nèi)刪除其后文本框中輸入的課程,如圖所示;刪除“音樂(lè)鑒賞”二、任務(wù)準(zhǔn)備:1、ArrayList類(lèi)AaaryList類(lèi)位于System.Collections命名空間下,可以動(dòng)態(tài)的添加和刪除元素。AaaryList類(lèi)相當(dāng)于高級(jí)的動(dòng)態(tài)數(shù)組,是Aaary類(lèi)的升級(jí)版本,可以將AaaryList類(lèi)看做是擴(kuò)充了功能的數(shù)組,但不等同于數(shù)組。與普通數(shù)組相比,AaaryList類(lèi)具有下列功能:AaaryList的容量可以根據(jù)需要自動(dòng)增加,而數(shù)組的容量是固定的。AaaryList提供添加、刪除和插入某一范圍元素的方法,而數(shù)組沒(méi)有。AaaryList提供將只讀和固定大小包裝返回到集合的方法,而數(shù)組沒(méi)有。AaaryList只能是一維形式,而數(shù)組可以為多維。二、任務(wù)準(zhǔn)備:1、ArrayList類(lèi)AaaryList的三種聲明方式(1)默認(rèn)構(gòu)造器。以默認(rèn)16的大小來(lái)初始化數(shù)組,語(yǔ)法格式如下:ArrayListlist=newArrayList();//list是對(duì)象名(2)用指定大小初始化內(nèi)部數(shù)組。語(yǔ)法格式如下:ArrayListlist=newArrayList(n);//list是對(duì)象名,n為空間大小注意:使用ArrayList類(lèi)時(shí)必須要引用System.Collections命名空間。二、任務(wù)準(zhǔn)備:1、ArrayList類(lèi)(3)用一個(gè)ICollection對(duì)象來(lái)構(gòu)造,并將該集合的元素添加到ArrayList中。語(yǔ)法格式如下:ArrayListlist=newArrayList(arryname);//list是對(duì)象名,arryname為數(shù)組名創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,聲明一個(gè)ArrayList對(duì)象和一個(gè)整型一維數(shù)組,將語(yǔ)句聲明的一維數(shù)組中的元素添加到ArrayList對(duì)象中。例:int[]array=newint[]{1,2,3,4,5,6,7,8,9,10};ArrayListlist=newArrayList(array);二、任務(wù)準(zhǔn)備:2、ArrayList類(lèi)的常用屬性ArrayList類(lèi)的常用屬性及說(shuō)明如下表所示,最常用的是前3種屬性:編號(hào)屬

性說(shuō)明1CapacityArrayList可以存儲(chǔ)的元素個(gè)數(shù)2CountArrayList實(shí)際包含的元素個(gè)數(shù)3Item獲取或設(shè)置指定索引處的元素4IsFixdSize獲取一個(gè)值,表明ArrayList是否具有固定大小5IsReadOnly獲取一個(gè)值,表明ArrayList是否為只讀6IsSynchronized獲取一個(gè)值,表明是否同步對(duì)ArrayList的訪問(wèn)7SyncRoot獲取可以用于同步ArrayList訪問(wèn)的對(duì)象二、任務(wù)準(zhǔn)備:3、ArrayList類(lèi)的常用方法如果存在如下定義:int[]array=newint[]{1,2,3,4,5};ArrayListlist=newArrayList(array);(1)Add(Object):將參數(shù)Object添加到ArrayList的末尾處,該方法返回值為添加的Object的索引。list.Add(6);執(zhí)行完上面代碼后,ArrayList元素為:1,2,3,4,5,6。二、任務(wù)準(zhǔn)備:list.Insert(2,100);(2)Insert(index,value):在ArrayList中將value指定的Object插入到index指定的索引處。list.Remove(4);執(zhí)行完上面代碼后,ArrayList元素為:1,2,100,3,4,5。(3)Remove(value):從ArrayList種移除value指定的對(duì)象的第一個(gè)匹配項(xiàng)。執(zhí)行完上面代碼后,ArrayList元素為:1,2,3,5。3、ArrayList類(lèi)的常用方法二、任務(wù)準(zhǔn)備:list.RemoveAt(0);(4)RemoveAt(index):從ArrayList種移除index指定索引處的元素。list.RemoveRange(0,2);執(zhí)行完上面代碼后,ArrayList元素為:2,3,4,5。(5)RemoveRange(index,count):從ArrayList種移除從index指定索引處開(kāi)始的count個(gè)元素。執(zhí)行完上面代碼后,ArrayList元素為:3,4,5。3、ArrayList類(lèi)的常用方法二、任務(wù)準(zhǔn)備:list.Clear();(6)Clear:從ArrayList種移除所有元素。執(zhí)行完上面代碼后,ArrayList里沒(méi)有任何元素。ArrayList類(lèi)的方法還有很多,這里只列處理常用的,有興趣的同學(xué)可以參閱其他資料。3、ArrayList類(lèi)的常用方法三、任務(wù)分析:1、本任務(wù)需要以下變量,如下表所示:2、窗體上主要控件的屬性及功能如下表所示:序號(hào)對(duì)象名稱(chēng)類(lèi)對(duì)象作用1listArrayListArrayList對(duì)象對(duì)象屬性設(shè)置功能TextBox1Name:tb_allAcceptsReturn=TrueAcceptsTab=True

溫馨提示

  • 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)論