日日夜夜撸啊撸,欧美韩国日本,日本人配种xxxx视频,在线免播放器高清观看

Java在程序設(shè)計(jì)語(yǔ)言課程中應(yīng)用

時(shí)間:2022-10-17 10:08:06

緒論:寫作既是個(gè)人情感的抒發(fā),也是對(duì)學(xué)術(shù)真理的探索,歡迎閱讀由發(fā)表云整理的1篇Java在程序設(shè)計(jì)語(yǔ)言課程中應(yīng)用范文,希望它們能為您的寫作提供參考和啟發(fā)。

Java在程序設(shè)計(jì)語(yǔ)言課程中應(yīng)用

摘要:文章給出了java語(yǔ)言在程序設(shè)計(jì)語(yǔ)言課程中的一些具體應(yīng)用,如計(jì)算器系統(tǒng)、學(xué)生信息系統(tǒng)、學(xué)生成績(jī)排名查詢系統(tǒng)、學(xué)生成績(jī)排序系統(tǒng)、迷宮尋路游戲系統(tǒng)等系統(tǒng)的設(shè)計(jì)方法,這些系統(tǒng)以工程中常用的算法為核心,通過(guò)Java語(yǔ)言實(shí)現(xiàn)功能,在文章中給出了部分設(shè)計(jì)的Java源代碼。文章的程序設(shè)計(jì)依托工程實(shí)際,日常應(yīng)用較廣,提供的例子由淺入深,可以為日后更加復(fù)雜的工程設(shè)計(jì)打下堅(jiān)實(shí)的基礎(chǔ)。

關(guān)鍵詞:Java;程序設(shè)計(jì)語(yǔ)言課程;計(jì)算機(jī)編程

程序設(shè)計(jì)語(yǔ)言課程是屬于技術(shù)應(yīng)用類課程。本課程的課程目標(biāo)是使學(xué)生掌握編寫程序的基礎(chǔ)能力,并能夠獨(dú)立完成程序重要環(huán)節(jié)的設(shè)計(jì)及獨(dú)立調(diào)試代碼的方法。程序設(shè)計(jì)語(yǔ)言課程是重要的專業(yè)課,電子信息類、軟件工程類專業(yè)的學(xué)生都需要進(jìn)行相關(guān)知識(shí)的學(xué)習(xí)。在程序設(shè)計(jì)語(yǔ)言的實(shí)驗(yàn)過(guò)程中,學(xué)生能夠初步掌握使用集成開發(fā)環(huán)境進(jìn)行程序的設(shè)計(jì)改造、產(chǎn)品的開發(fā)及維護(hù),為以后從事計(jì)算機(jī)類相關(guān)工作奠定基礎(chǔ),實(shí)現(xiàn)幫助學(xué)生擁有解決復(fù)雜問(wèn)題的能力。通過(guò)程序設(shè)計(jì)課的訓(xùn)練,學(xué)生能夠了解Java語(yǔ)言的基本特點(diǎn)及發(fā)展背景,對(duì)Java語(yǔ)言的功能和語(yǔ)法有一定掌握。掌握基本語(yǔ)句;掌握基本語(yǔ)法;掌握類的定義;掌握調(diào)用方法;掌握方法的重載。使學(xué)生具備Java語(yǔ)言應(yīng)用的基本能力,使學(xué)生能在實(shí)際工程問(wèn)題中綜合利用Java基礎(chǔ)知識(shí)和技能來(lái)分析和解決。具體目標(biāo)如下:本文將給出幾個(gè)貼合實(shí)際的程序設(shè)計(jì),通過(guò)獨(dú)立完成這些實(shí)驗(yàn)案例的設(shè)計(jì),使學(xué)生對(duì)Java語(yǔ)言的開發(fā)環(huán)境有一定理解并能掌握基礎(chǔ)的程序設(shè)計(jì)。能很好地掌握J(rèn)ava的基本語(yǔ)法、定義類和定義方法、循環(huán)語(yǔ)句的基礎(chǔ)應(yīng)用、數(shù)組的在實(shí)際中的應(yīng)用及數(shù)組中的一些常見算法,如:冒泡排序法、快速排序法、二分法等,同時(shí)能掌握一些基礎(chǔ)程序設(shè)計(jì)的思想,學(xué)生的這些經(jīng)驗(yàn)積累對(duì)以后不論是更深層次的研究還是工作都會(huì)收益頗豐。

1計(jì)算器系統(tǒng)設(shè)計(jì)

計(jì)算器系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)具體要求用Java語(yǔ)言實(shí)現(xiàn)兩個(gè)整數(shù)的加減乘除,并得出結(jié)果。計(jì)算器系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)我們需要明確設(shè)計(jì)的思路,即需要定義兩個(gè)類,第一個(gè)類中定義int型的數(shù)字和方法,第二個(gè)類是測(cè)試類,可以調(diào)用數(shù)字和方法進(jìn)行計(jì)算并打印計(jì)算結(jié)果。定義一個(gè)類,在該類中首先定義兩個(gè)整數(shù)類型的變量num1、num2和四個(gè)方法add、sub、mul、div,對(duì)這四個(gè)方法分別定義其運(yùn)算規(guī)則,賦予加減乘除四個(gè)方法。然后再定義一個(gè)測(cè)試類,在測(cè)試類中可以調(diào)用這兩個(gè)數(shù)字和這四個(gè)方法。使該程序能夠進(jìn)行兩個(gè)整數(shù)的加減乘除,可以使程序正常運(yùn)行并將運(yùn)算結(jié)果打印輸出。該實(shí)驗(yàn)要求在集成開發(fā)環(huán)境中編寫代碼,并在集成開發(fā)環(huán)境中運(yùn)行。檢驗(yàn)結(jié)果是否正確。程序及其運(yùn)行結(jié)果見圖1、2。

2學(xué)生信息系統(tǒng)設(shè)計(jì)

學(xué)生信息系統(tǒng)的設(shè)計(jì)實(shí)驗(yàn)具體要求用Java語(yǔ)言實(shí)現(xiàn)對(duì)學(xué)生信息的查詢。學(xué)生信息系統(tǒng)的設(shè)計(jì)需要使用重載在構(gòu)造方法中的特性,一個(gè)類中的構(gòu)造方法可以定義多個(gè),但是需要注意的有兩點(diǎn),一是構(gòu)造方法中的參數(shù)類型和參數(shù)個(gè)數(shù)不能相同。二是不能出現(xiàn)參數(shù)的個(gè)數(shù)和類型相同,返回值類型不同的情況。展示學(xué)生信息時(shí),根據(jù)所需信息的不同調(diào)用不同的構(gòu)造方法。即可展示出所需要的學(xué)生信息。該實(shí)驗(yàn)要求在集成開發(fā)環(huán)境中編寫代碼,并在集成開發(fā)環(huán)境中運(yùn)行。檢驗(yàn)結(jié)果是否正確。程序及其運(yùn)行結(jié)果見圖3、4。

3學(xué)生成績(jī)排名查詢系統(tǒng)設(shè)計(jì)

學(xué)生成績(jī)排名查詢系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)具體要求用Java語(yǔ)言實(shí)現(xiàn)在有序數(shù)組中快速查找目標(biāo)的要求。普通的按順序依次查找效率低、耗時(shí)長(zhǎng),不符合程序系統(tǒng)中的實(shí)際應(yīng)用。因此在有序數(shù)組的查詢類問(wèn)題中多使用二分查找的算法提高查找效率,減少運(yùn)算時(shí)間。二分查找法,可以實(shí)現(xiàn)快速在有序數(shù)組中查詢所需結(jié)果的效果。二分查找算法的重點(diǎn)是判斷目標(biāo)所在的區(qū)間并不斷的將該區(qū)間的大小減半,從而用更短的時(shí)間,更少的操作找到所需要的目標(biāo)。首先我們需要定義清楚區(qū)間的概念,在二分查找過(guò)程中,我們要始終保持區(qū)間的一邊不變,另一邊根據(jù)目標(biāo)數(shù)的實(shí)際位置進(jìn)行定義,在二分查找的過(guò)程中始終堅(jiān)持根據(jù)查找區(qū)間的定義來(lái)做邊界處理,這樣才能使二分查找的正確性得到保障。在給出的例子中,若存在查找目標(biāo)則輸出目標(biāo)數(shù),若不存在目標(biāo)則輸出-1。學(xué)生成績(jī)排名查詢系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)要求在集成開發(fā)環(huán)境中編寫出代碼,并在集成開發(fā)環(huán)境中運(yùn)行。檢驗(yàn)是非達(dá)到要求效果。學(xué)生成績(jī)表見表1。

4學(xué)生成績(jī)排序系統(tǒng)設(shè)計(jì)

學(xué)生成績(jī)排序系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)具體要求用Java語(yǔ)言實(shí)現(xiàn)在數(shù)組中快速排序的效果。傳統(tǒng)的依次比較費(fèi)時(shí)費(fèi)力,效率不高。以下介紹兩種工程中常用的算法可以快速實(shí)現(xiàn)此功能。學(xué)生成績(jī)排序系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)要求在集成開發(fā)環(huán)境中編寫出代碼,并在集成開發(fā)環(huán)境中運(yùn)行,檢驗(yàn)試驗(yàn)效果。(1)冒泡排序法冒泡排序法可以實(shí)現(xiàn)快速在數(shù)組中進(jìn)行數(shù)據(jù)排序的效果。冒泡排序法的編寫重點(diǎn)是根據(jù)排序要求依次比較相鄰兩個(gè)數(shù)的大小并進(jìn)行順序的變換,若升序則是將相鄰兩數(shù)中大的數(shù)交換至左邊,若為降序則將相鄰兩數(shù)中小的數(shù)交換至右邊。按以上操作,最終可以實(shí)現(xiàn)數(shù)組中最后一個(gè)數(shù)是本組數(shù)中最大或最小的要求。因?yàn)槟┪矓?shù)總是數(shù)組中的最大或最小數(shù),不用參加下一趟排序,這樣每進(jìn)行一趟排序就會(huì)少比較一次,效率更高,用時(shí)更短。冒泡排序法需要用到雙循環(huán)控制,在外層循環(huán)中,我們可以控制本次程序運(yùn)行進(jìn)行多少趟排序,在內(nèi)層循環(huán)中,我們可以控制每一趟排序的循環(huán)次數(shù)。在給出的例子中我們用指針i控制外層循環(huán),指針j控制內(nèi)層循環(huán)。在每一趟排序運(yùn)行結(jié)束后執(zhí)行i++,就可以進(jìn)入下一步。在每一趟排序運(yùn)行中,當(dāng)j和j+1完成比較并判定是否交換位置后,執(zhí)行j++,進(jìn)行該趟排序的下一組數(shù)據(jù)的比較。在第一趟排序中,i指向0,即i=0,j指向0,即j=0。內(nèi)層循環(huán)中,通過(guò)指針j和j+1比較相鄰兩數(shù)的大小,并根據(jù)要求保持或交換其數(shù)值,該趟排序后使數(shù)組尾數(shù)為該數(shù)組中最大或最小數(shù)。在第二趟排序中,i=1,j=0。內(nèi)層循環(huán)中,運(yùn)用intj=0;j<arr.length-i-1;j++語(yǔ)句,使每一次內(nèi)層循環(huán)都不會(huì)將上一趟排序后的數(shù)組尾數(shù)加入到本次內(nèi)層循環(huán)中。繼續(xù)通過(guò)指針j和j+1進(jìn)行相鄰兩數(shù)的比較,執(zhí)行第一趟排序的要求。后續(xù)重復(fù)以上操作即可。學(xué)生成績(jī)表見表2,程序運(yùn)行結(jié)果見圖6。(2)快速排序法快速排序法可以概括為挖坑填數(shù)和分而治之兩個(gè)基本步驟。首先我們需要在所需排序的成績(jī)中找出一個(gè)“標(biāo)桿”,在第一次排序中使得"標(biāo)桿"左邊的數(shù)據(jù)都比它小,“標(biāo)桿”右邊的數(shù)據(jù)都比它大。然后再在左右兩部分?jǐn)?shù)據(jù)中重復(fù)以上操作,最后就能實(shí)現(xiàn)學(xué)生成績(jī)排序的效果。如表中所示此時(shí)指針x指向A,x此時(shí)為0,指針y指向I,y此時(shí)為8。即指針x和y分別指向數(shù)組的頭和尾。若“標(biāo)桿”取A的成績(jī),即index=array[i]=array[0]=23。此時(shí),y指針開始向左尋找比“基準(zhǔn)數(shù)”小的數(shù),當(dāng)y=7時(shí),符合要求,即將array[7]的值填入array[0],然后將指針x向右移動(dòng)一個(gè)位置。此時(shí)array[7]中無(wú)數(shù)值,所以我們需要從x向右找比“標(biāo)桿”大的數(shù)填入array[7],即將array[2]中的數(shù)填入array[7],此時(shí)指針y向左移動(dòng)一個(gè)位置。后續(xù)重復(fù)以上操作即可。學(xué)生成績(jī)表見表2,程序代碼如下:publicclassQuickSort{publicstaticvoidmain(String[]args){intmark[]={23,15,37,89,2,21,43,9,56};System.out.println("排序前成績(jī)順序");for(intn:mark){System.out.print(n+"");}intlow=0;inthigh=mark.length-1;quickSort(mark,low,high);System.out.println("\n排序后成績(jī)順序:");for(intn:mark){System.out.print(n+"");}}privatestaticvoidquickSort(int[]mark,intlow,inthigh){if(low>=high){return;}intx=low,y=high,index=mark[x];//取數(shù)組最左邊的數(shù)作為“標(biāo)桿”while(x<y){while(x<y&&mark[y]>=index){y--;}if(x<y){mark[x++]=mark[y];}while(x<y&&mark[x]<index){x++;}if(x<y){mark[y--]=mark[x];}}mark[x]=index;//將“標(biāo)桿”填入最后的空位quickSort(mark,low,x-1);quickSort(mark,x+1,high);}

5迷宮尋路游戲系統(tǒng)設(shè)計(jì)

迷宮尋路游戲系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)具體要求用Java語(yǔ)言實(shí)現(xiàn)小球在迷宮中尋找出口的效果。在該實(shí)驗(yàn)中我們需要使用遞歸的思想來(lái)實(shí)現(xiàn)尋找出口的目標(biāo)。遞歸的思路就是讓方法不斷的自己調(diào)用自己,只不過(guò)每個(gè)人調(diào)用時(shí)候傳入的變量都有所不同,這樣就可以處理重復(fù)問(wèn)題的同時(shí)還可以保證代碼的簡(jiǎn)潔。如圖7所示,在迷宮尋路游戲中我們需要根據(jù)迷宮的邊界將其切割為若干部分,并將其應(yīng)用到二維數(shù)組的方法進(jìn)行編號(hào),并進(jìn)行賦值。定義當(dāng)map[x][y]為0表示該點(diǎn)沒(méi)有走過(guò);map[x][y]為1表示該點(diǎn)是墻;map[x][y]為2表示該點(diǎn)為通路,小球可以走;map[x][y]為3表示該點(diǎn)是已經(jīng)走過(guò),但是走不通的點(diǎn)。首先我們先將迷宮的墻和阻擋設(shè)置為1,當(dāng)小球走到標(biāo)示為0的位置時(shí),需要制定一個(gè)路徑規(guī)劃,當(dāng)小球的位置標(biāo)示為0時(shí),我們?cè)O(shè)置的是小球按下右上左的順序找路,找到通路則繼續(xù)按這個(gè)邏輯進(jìn)行,不成功則返回重新尋找。然后我們?cè)僭O(shè)置小球按上右下左的順序找路,看看路徑是否有變化。迷宮尋路游戲系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)要求在集成開發(fā)環(huán)境中編寫出代碼,并在集成開發(fā)環(huán)境中運(yùn)行,檢驗(yàn)試驗(yàn)效果。迷宮結(jié)構(gòu)見圖7。程序代碼如下:publicclassMaze{publicstaticvoidmain(String[]args){in[][]M=newint[8][8];for(inty=0;y<8;y++){M[0][y]=1;M[7][y]=1;}for(intx=0;x<8;x++){M[x][0]=1;M[x][7]=1;}M[3][1]=1;M[3][2]=1;M[3][3]=1;System.out.println("迷宮情況");for(intx=0;x<8;x++){for(inty=0;y<8;y++){System.out.print(M[x][y]+"");}System.out.println();}findPath(M,1,1);findPath2(M,1,1);System.out.println("小球路線");for(intx=0;x<8;x++){for(inty=0;y<8;y++){Sys-tem.out.print(M[x][y]+"");}System.out.println();}}publicstaticbooleanfindPath(int[][]M,intx,inty){if(M[6][6]==2){returntrue;}else{if(M[x][y]==0){M[x][y]=2;if(findPath(M,x+1,y)){returntrue;}elseif(findPath(M,x,y+1)){returntrue;}elseif(findPath(M,x-1,y)){returntrue;}elseif(findPath(M,x,y-1)){returntrue;}else{M[x][y]=3;returnfalse;}}else{returnfalse;}}}publicstaticbooleanfin-dPath2(int[][]M,intx,inty){if(M[6][6]==2){returntrue;}else{if(M[x][y]==0){M[x][y]=2;if(findPath2(M,x-1,y)){returntrue;}elseif(fin-dPath2(M,x,y+1)){returntrue;}elseif(findPath2(M,x+1,y)){re-turntrue;}elseif(findPath2(M,x,y-1)){returntrue;}else{M[x][y]=3;returnfalse;}}else{returnfalse;}}}}

6結(jié)語(yǔ)

Java的程序設(shè)計(jì)語(yǔ)言課程實(shí)驗(yàn)是一門包含設(shè)計(jì)性的實(shí)驗(yàn)與實(shí)踐課程,它歸屬于工程類專業(yè)課程。該課程通過(guò)指導(dǎo)學(xué)生獨(dú)立完成程序系統(tǒng)綜合設(shè)計(jì)使學(xué)生能夠?qū)ava語(yǔ)言的基礎(chǔ)語(yǔ)法、面向?qū)ο蟮奶匦浴⒀h(huán)語(yǔ)句的特點(diǎn)、程序應(yīng)用算法的設(shè)計(jì)有更深刻的理解。由淺入深的實(shí)驗(yàn)案例設(shè)計(jì)可以達(dá)到使學(xué)生實(shí)際掌握關(guān)于算法的實(shí)際運(yùn)用、數(shù)組的使用、雙指針的使用等關(guān)鍵知識(shí)點(diǎn)和掌握遞歸思想的目標(biāo)。這門課程的學(xué)習(xí)培養(yǎng)了學(xué)生的創(chuàng)新精神和動(dòng)手能力,使學(xué)生能成為真正理解和掌握程序設(shè)計(jì)和軟件開發(fā)技術(shù)的人才。由于Java語(yǔ)言是直接面向?qū)ο蟮木幊陶Z(yǔ)言,它拋棄了傳統(tǒng)C++編程語(yǔ)言中不易掌握的多繼承、指針等基本概念,而成為了靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,從而實(shí)現(xiàn)了面向?qū)ο罄碚摗?jù)此,本文重點(diǎn)研究了Java語(yǔ)言在程序設(shè)計(jì)實(shí)驗(yàn)課程中的應(yīng)用,為了初學(xué)者的方便,詳細(xì)的給出了計(jì)算器系統(tǒng)、學(xué)生信息系統(tǒng)、學(xué)生成績(jī)排名查詢系統(tǒng)、學(xué)生成績(jī)排序系統(tǒng)、迷宮尋路游戲系統(tǒng)等系統(tǒng)設(shè)計(jì),在每一個(gè)系統(tǒng)設(shè)計(jì)中給出了Java語(yǔ)言的源程序,并在程序中對(duì)難以理解的部分進(jìn)行了注解,這些實(shí)驗(yàn)案例都來(lái)自工程設(shè)計(jì)中的一部分,滿足工程生產(chǎn)中的實(shí)際要求,對(duì)學(xué)生的培養(yǎng)不拘泥于課本,為學(xué)生今后的發(fā)展提供幫助。

參考文獻(xiàn):

[1]李梓.Java程序設(shè)計(jì)實(shí)驗(yàn)教程[M].黑龍江:黑龍江大學(xué)出版社,2016.

[2]李馳.快速排序算法優(yōu)化策略[J].電腦科學(xué)與技術(shù),2021,17(1):226-228

[3]吳軍.計(jì)算之魂[M].北京:人民郵電出版社,2021.

[4]孫秀洋.代碼隨想錄——跟著Carl學(xué)算法[M].北京:電子工業(yè)出版社,2021.

[5]付東來(lái).labuladong的算法小抄[M].北京:電子工業(yè)出版社,2020.

作者:李璋 趙鴻皓 黃震 陳逸凡 楊洲 單位:湖北大學(xué)計(jì)算機(jī)與電子信息工程學(xué)院

友情鏈接
主站蜘蛛池模板: 常熟市| 湘乡市| 哈巴河县| 沾化县| 中宁县| 深水埗区| 沧州市| 吉安市| 长垣县| 逊克县| 洪湖市| 温宿县| 蓝山县| 甘洛县| 陆川县| 陕西省| 衡东县| 平谷区| 伊通| 衡南县| 洛南县| 迭部县| 安庆市| 石门县| 呼玛县| 烟台市| 武强县| 红安县| 全州县| 勃利县| 象州县| 肇东市| 东阳市| 象山县| 友谊县| 依安县| 青冈县| 定陶县| 清水县| 天等县| 姜堰市|