結(jié)構(gòu)化程序設(shè)計(jì)_第1頁
結(jié)構(gòu)化程序設(shè)計(jì)_第2頁
結(jié)構(gòu)化程序設(shè)計(jì)_第3頁
結(jié)構(gòu)化程序設(shè)計(jì)_第4頁
結(jié)構(gòu)化程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章結(jié)構(gòu)化程序設(shè)計(jì)1.方法的定義與調(diào)用2.

方法的定義與調(diào)用

方法用于封裝一段特定的邏輯功能,如:執(zhí)行計(jì)算或操作;方法可以在程序中反復(fù)被調(diào)用,可以減少代碼重復(fù),便于程序的維護(hù)。定義方法五個(gè)要素:修飾符、返回值類型、方法名、參數(shù)列表、方法體。Java語言中方法定義的語法格式如下:<修飾符><返回值類型><方法名>([參數(shù)類型參數(shù)名],...){

//方法體代碼}方法的定義

3.

方法的定義與調(diào)用

publicclassMethodDemo{ publicstaticvoidmain(String[]args){ }

//定義無方法返回值,無參數(shù)

voidsay(){}

//定義無返回值有參數(shù)的方法

voidprint(Stringname){}

//定義有返回值有參數(shù)的方法

intsum(intnum1,intnum2){ returnnum1+num2;

}}4.方法定義時(shí)需要注意以下語法要求:1.方法在聲明時(shí)必須指定返回值的類型。若方法不需要返回?cái)?shù)據(jù),將返回值類型聲明為void。若方法需要返回?cái)?shù)據(jù),將返回值類型聲明為特定數(shù)據(jù)類型,通過return語句結(jié)束方法且將數(shù)據(jù)返回給調(diào)用方。2.如果我們想在main方法中直接調(diào)用A方法,則A方法必須聲明為static。3.方法的參數(shù)是指:在調(diào)用時(shí)傳遞給方法,需要被方法處理的數(shù)據(jù)。

方法的定義與調(diào)用

5.

方法的定義與調(diào)用

方法的調(diào)用

程序執(zhí)行的入口是從主方法開始一行一行開始執(zhí)行,自定義的方法不會(huì)自動(dòng)執(zhí)行,需要通過主方法調(diào)用才會(huì)執(zhí)行。方法調(diào)用的語法如下:方法名([參數(shù)1],...);6.

方法的定義與調(diào)用

方法調(diào)用時(shí)需要注意以下語法現(xiàn)象:1.方法調(diào)用時(shí),傳給被調(diào)用方法的實(shí)參類型需要和方法定義的形參類型匹配。

定義方法:publicstaticintsum(intnum1,intnum2){…………}publicstaticvoidsayHi(Stringname){…………}調(diào)用方法:intresult=sum(5,6);sayHi(“張三”);2.方法調(diào)用語句所處的上下文環(huán)境要和方法定義的返回值類型匹配。3.如果在主方法中直接調(diào)用自定義方法,方法需要關(guān)鍵字static修飾7.方法的調(diào)用分析8.

方法的調(diào)用分析

publicstaticvoidmain(String[]args){inta=10,b=20;

swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}9.

方法的調(diào)用分析

主方法調(diào)用方法前的初始狀態(tài),main方法的臨時(shí)空間中存儲(chǔ)publicstaticvoidmain(String[]args){

inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}10.

方法的調(diào)用分析

主方法調(diào)用swap方法,并將實(shí)參的值傳遞給形參publicstaticvoidmain(String[]args){

inta=10,b=20;

swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}11.

方法的調(diào)用分析

swap方法中兩個(gè)形參的值交換,這種交換不會(huì)影響到main方法中的實(shí)參值publicstaticvoidmain(String[]args){inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){

inttemp=a;a=b;b=temp;}12.

方法的調(diào)用分析

swap方法調(diào)用結(jié)束,臨時(shí)存儲(chǔ)空間被釋放,程序流程回到main方法,main方法中的變量值并沒有改變publicstaticvoidmain(String[]args){inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}13.

方法的調(diào)用分析

方法調(diào)用的過程分析1.系統(tǒng)會(huì)在??臻g中為方法分配臨時(shí)存儲(chǔ)空間,并為方法的形參與局部變量分配空間。2.將實(shí)參的值傳給形參。3.程序流程跳到被調(diào)用方法中執(zhí)行。4.被調(diào)用方法執(zhí)行完成或遇到return語句,程序的流程跳回主調(diào)方法,并將return后的值帶回主調(diào)方法(如果有的話)。5.被調(diào)方法的臨時(shí)存儲(chǔ)空間釋放,程序流程從主調(diào)方法中繼續(xù)往下執(zhí)行。14.方法調(diào)用的特殊案例15.publicstaticvoidmain(String[]args){Students1=newStudent();Students2=newStudent();s1.setAge(10);s2.setAge(20);swap1(s1,s2);System.out.println(s1.getAge()+”:”+s2.getAge());swap2(s1,s2);System.out.println(s1.getAge()+”:”+s2.getAge());}publicstaticvoidswap1(Students1,Students2){Studenttemp=s1;s1=s2;s2=temp;}publicstaticvoidswap2(Students1,Students2){inttemp=s1.getAge();s1.setAge(s2.getAge());s2.setAge(temp);}s1s2Student對(duì)象2

age=20Student對(duì)象1

age=10mainswap1s1s2swap2s1s2temp=10age=20age=1016.成績(jī)統(tǒng)計(jì)程序17.

成績(jī)統(tǒng)計(jì)程序

現(xiàn)有M位學(xué)生的姓名保存在一維String數(shù)組中,有N門課程的名稱保存在一維String數(shù)組中,另有M×N的二維數(shù)組保存這M位學(xué)生的每門課程的成績(jī)數(shù)據(jù)保存結(jié)構(gòu)如下:學(xué)生名數(shù)組:{“張三豐”,”郭靖”,”喬峰”,”張無忌”,”楊過”}課程名數(shù)組:{”JAVA”,”C++”,”O(jiān)racle”,”Android”}成績(jī)數(shù)組:{

{87,76,63,98},

{67,79,83,75},

{90,76,65,60},

{84,88,63,79},

{72,66,58,77}

}案例描述18.

成績(jī)統(tǒng)計(jì)程序

編寫程序,使得用戶可以通過輸入如下控制臺(tái)命令來查詢學(xué)生的成績(jī):

AVG<課程名>:查詢某門課程的平均分。

SUM<學(xué)生名>:查詢某位學(xué)生的總分。

SORT<課程名>:按照某門課程的成績(jī)排序輸出。

GET<學(xué)生名><課程名>:查詢某位學(xué)生的某門課程的成績(jī)。案例描述19.

成績(jī)統(tǒng)計(jì)程序

該案例要求我們對(duì)多個(gè)關(guān)聯(lián)數(shù)組進(jìn)行操作,并且要求從控制臺(tái)讀入?yún)?shù)來控制程序的流程。我們可以定義以下方法來完成程序的功能:1.publicstaticdoubleavg(StringcName):該方法用來求課程平均分2.publicstaticdoublesum(StringuName):該方法用來求學(xué)員成績(jī)總分3.publicstaticvoidsort(Stringname):該方法用來對(duì)成績(jī)排序4.publicstaticdoubleget(StringuName,StringcName):該方法用來得到某位學(xué)員某門課程的成績(jī)20.酒店前臺(tái)管理程序21.

酒店前臺(tái)管理程序

某酒店有12層樓,每層樓有10個(gè)房間,要求為該酒店設(shè)計(jì)一套簡(jiǎn)單的前臺(tái)房間管理程序,該程序可以通過在命令行輸入命令來為客人辦理入住和退房手續(xù)。要求程序通過命令行輸入以下命令來進(jìn)行入住、退房及查詢的操作:SEARCH:查詢所有房間的狀態(tài)IN1202zhangsan:姓名為zhangsan的客人入住1202房間OUT1202:1202房間退房EXIT:退出程序案例描述22.

酒店前臺(tái)管理程序

該案例程序是一個(gè)簡(jiǎn)單的數(shù)組操作問題:

創(chuàng)建一個(gè)12*10的二維數(shù)組來模擬整棟大樓,數(shù)組中的每個(gè)元素就是每個(gè)房間。元素定義為String類型,若該房間有客人入住,則保存客人姓名;若該房間沒有客人入住,則保存“EMPTY”。使用while(true)循環(huán)來不停的從控制臺(tái)讀入命令,每讀到一行命令,先解析命令的格式,然后分別調(diào)用不同的方法完成不同的操作。若命令為“EXIT”,則執(zhí)行break語句,強(qiáng)制退出程序。案例分析23.計(jì)算一手撲克牌的級(jí)別24.

計(jì)算一手撲克牌的級(jí)別

砸金花游戲中一手撲克牌是3張,根據(jù)這3張牌的點(diǎn)數(shù)和花色不同,一手撲克牌分為以下6個(gè)級(jí)別:案例描述名稱編碼描述舉例三條6三張牌的點(diǎn)數(shù)相同紅桃K,梅花K,方塊K同花順5三張牌花色相同,并且點(diǎn)數(shù)連續(xù)紅桃10,紅桃J,紅桃Q同花4三張牌花色相同梅花8,梅花J,梅花K順子3三張牌點(diǎn)數(shù)連續(xù),但花色不同紅桃8,紅桃9,梅花10對(duì)子2三張牌中有兩張牌點(diǎn)數(shù)相同梅花8,紅桃8,方塊K單牌1不是以上所有情況紅桃K,梅花6,梅花525.

計(jì)算一手撲克牌的級(jí)別

要求編寫程序,對(duì)于任意給定的一手牌(3張),判斷這一手牌是以上哪個(gè)級(jí)別的牌。程序要求實(shí)現(xiàn)以下方法:publicstaticintgetLevel(int[]cards);

該方法的參數(shù)說明:int[]cards:一手牌,3張撲克牌的數(shù)組,每一張撲克牌用一個(gè)int值表示。

返回值說明:返回這一手牌的級(jí)別編碼案例描述26.

計(jì)算一手撲克牌的級(jí)別

一張撲克牌可以用一個(gè)三位整數(shù)進(jìn)行表示,百位表示撲克牌的花色,十位和個(gè)位表示撲克牌的大小(點(diǎn)數(shù))

案例分析27.

把每張撲克牌的大小和花色分開,可以利用字符串的截取方法進(jìn)行獲取,其步驟如下:1.得到每張撲克牌2.得到每張撲克牌大小3.得到每張撲克牌的花色4.對(duì)三張撲克牌大小進(jìn)行排序創(chuàng)建一個(gè)數(shù)組cards1保存三張撲克牌的大小,將這三張牌添加到數(shù)組cards1中,將數(shù)組進(jìn)行排序,得到排序后的大小。5.根據(jù)花色和排序后的撲克牌大小就可以分類判斷出撲克牌的等級(jí)。

計(jì)算一手撲克牌的級(jí)別

案例分析28.掃雷游戲的遞歸排雷程序29.

掃雷游戲的遞歸排雷程序

122-121-12-144-1233-1-13-122-15-1-1322-132-1112-130.

掃雷游戲的遞歸排雷程序

本案例要求編寫程序,根據(jù)用戶輸入的坐標(biāo)值,將該坐標(biāo)位置排開.31.

掃雷游戲的遞歸排雷程序

122-121-12-144-1233-1-13-122-15-1-1322-132-1112-1如果該位置是地雷(值為-1),則輸出排雷失敗32.

掃雷游戲的遞歸排雷程序

122-121-12-144-1233

溫馨提示

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