<dfn id="a4kkq"></dfn>
<ul id="a4kkq"></ul>
    • Java在程序設(shè)計語言課程中應(yīng)用

      時間:2022-10-17 10:08:06

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

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

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

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

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

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

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

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

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

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

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

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

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

      迷宮尋路游戲系統(tǒng)設(shè)計實驗具體要求用Java語言實現(xiàn)小球在迷宮中尋找出口的效果。在該實驗中我們需要使用遞歸的思想來實現(xiàn)尋找出口的目標(biāo)。遞歸的思路就是讓方法不斷的自己調(diào)用自己,只不過每個人調(diào)用時候傳入的變量都有所不同,這樣就可以處理重復(fù)問題的同時還可以保證代碼的簡潔。如圖7所示,在迷宮尋路游戲中我們需要根據(jù)迷宮的邊界將其切割為若干部分,并將其應(yīng)用到二維數(shù)組的方法進(jìn)行編號,并進(jìn)行賦值。定義當(dāng)map[x][y]為0表示該點沒有走過;map[x][y]為1表示該點是墻;map[x][y]為2表示該點為通路,小球可以走;map[x][y]為3表示該點是已經(jīng)走過,但是走不通的點。首先我們先將迷宮的墻和阻擋設(shè)置為1,當(dāng)小球走到標(biāo)示為0的位置時,需要制定一個路徑規(guī)劃,當(dāng)小球的位置標(biāo)示為0時,我們設(shè)置的是小球按下右上左的順序找路,找到通路則繼續(xù)按這個邏輯進(jìn)行,不成功則返回重新尋找。然后我們再設(shè)置小球按上右下左的順序找路,看看路徑是否有變化。迷宮尋路游戲系統(tǒng)設(shè)計實驗要求在集成開發(fā)環(huán)境中編寫出代碼,并在集成開發(fā)環(huá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é)語

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

      參考文獻(xiàn):

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

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

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

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

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

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

      友情鏈接
      主站蜘蛛池模板: 真实国产乱子伦精品免费| 国产精品成人观看视频| 桃花岛精品亚洲国产成人| 免费精品国自产拍在线播放| 国产精品高清视亚洲精品| 亚洲国产精品综合久久一线 | 国产精品午夜免费观看网站| 精品无码国产自产拍在线观看| 久久精品亚洲精品国产欧美| 奇米精品一区二区三区在线观看| 亚洲国产另类久久久精品| 国产91精品黄网在线观看| 97久久精品人妻人人搡人人玩| 亚洲电影日韩精品 | 亚洲精品亚洲人成在线观看下载 | 国产精品美女久久久免费| 国产92成人精品视频免费| 亚洲精品乱码久久久久久按摩 | 日韩精品一区二区三区影院| 国产精品99久久久久久宅男| 国内精品一级毛片免费看| 精品一区二区三区在线成人| 亚洲AV午夜福利精品一区二区| 免费人成在线观看欧美精品 | 99精品免费视品| 精品久久久久久中文字幕| 久久亚洲精品人成综合网| 91精品国产自产在线观看永久| 久久夜色撩人精品国产小说| 国产精品∧v在线观看| 国产精品精品自在线拍| 91视频精品全国免费观看| 久久久久久无码国产精品中文字幕 | 欧美精品亚洲精品日韩1818| 久久精品成人| 久久99精品久久久久婷婷| 国产精品视频免费一区二区| 青青草精品视频| 69SEX久久精品国产麻豆| 久久久久人妻精品一区| 老司机67194精品线观看|