Java課程設(shè)計(jì)畫(huà)隨機(jī)圓_第1頁(yè)
Java課程設(shè)計(jì)畫(huà)隨機(jī)圓_第2頁(yè)
Java課程設(shè)計(jì)畫(huà)隨機(jī)圓_第3頁(yè)
Java課程設(shè)計(jì)畫(huà)隨機(jī)圓_第4頁(yè)
Java課程設(shè)計(jì)畫(huà)隨機(jī)圓_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

滁州學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:Java面向?qū)ο蟪绦蛟O(shè)計(jì)設(shè)計(jì)題目:畫(huà)隨機(jī)圓系別:計(jì)算機(jī)信息與工程學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)組別:第五小組起止日期:2023年12月20日~2023年指導(dǎo)教師:馬駿高超計(jì)算機(jī)與信息工程學(xué)院二○一一年制課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)題目畫(huà)隨機(jī)圓組長(zhǎng)張俠學(xué)號(hào)2023220239班級(jí)11計(jì)專1班系別計(jì)算機(jī)與信息工程學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)組員余靜盛榮春汪道明張娟指導(dǎo)教師馬駿高超課程設(shè)計(jì)目的進(jìn)一步加深對(duì)Java語(yǔ)言的理解和掌握提供一個(gè)獨(dú)立實(shí)踐的時(shí)機(jī)培養(yǎng)我們?cè)诠こ涕_(kāi)發(fā)中的團(tuán)隊(duì)合作精神和創(chuàng)新意識(shí)及實(shí)踐編程能力課程設(shè)計(jì)所需環(huán)境JCreatorproJdk1.6工具包課程設(shè)計(jì)任務(wù)要求功能要求:實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)具體要求:自動(dòng)出現(xiàn)由小到大變換的圓,位置與顏色隨機(jī),變到150直徑時(shí)擦除,重新再出現(xiàn)圓;變換速度由HTML文件傳入的參數(shù)控制〔控制sleep時(shí)間〕界面要求:用JavaApplet實(shí)現(xiàn)課程設(shè)計(jì)工作進(jìn)度方案序號(hào)起止日期工作內(nèi)容分工情況012011-收集資料組員共同完成022011-編寫(xiě)代碼組員共同完成032011-修改補(bǔ)充代碼組員共同完成042012-編寫(xiě)課程設(shè)計(jì)報(bào)告組員共同完成052012-設(shè)計(jì)報(bào)告的完成組員共同完成教研室審核意見(jiàn):教研室主任簽字:年月日目錄TOC\o"1-2"\h\z\u一.引言1二.使用工具說(shuō)明12.1.總體目標(biāo)12.2.Applet的工作原理12.3.Applet的工作原理圖如圖2-112.4.多線程機(jī)制22.5.多線程的優(yōu)勢(shì)2三.分析與設(shè)計(jì)33.1.題目及使用環(huán)境33.2.功能概述33.3.要實(shí)現(xiàn)的功能33.4.實(shí)現(xiàn)方式33.5.需用到的類和方法3四.代碼實(shí)現(xiàn)4五.調(diào)試與操作說(shuō)明6六.課程設(shè)計(jì)總結(jié)與體會(huì)6七.致謝6八.參考文獻(xiàn)6一.引言Applet是基于HTML的小程序。瀏覽器將其暫時(shí)下載到用戶的硬盤(pán)上,并在Web頁(yè)翻開(kāi)時(shí)在本地運(yùn)行。一般的Applet只能通過(guò)appletviewer或者瀏覽器來(lái)運(yùn)行,Java程序通過(guò)繼承Applet類也可以嵌入網(wǎng)頁(yè)運(yùn)行。在JavaApplet中,可以實(shí)現(xiàn)圖形繪制,字體和顏色控制,動(dòng)畫(huà)和聲音的插入,人機(jī)交互及網(wǎng)絡(luò)交流等功能。Applet還提供了名為抽象窗口工具箱〔AbstractWindowToolkit,AWT〕的窗口環(huán)境開(kāi)發(fā)工具。AWT利用用戶計(jì)算機(jī)的GUI元素,可以建立標(biāo)準(zhǔn)的圖形用戶界面,如窗口、按鈕、滾動(dòng)條等等。目前,在網(wǎng)絡(luò)上有非常多的Applet范例來(lái)生動(dòng)地展現(xiàn)這些功能。多線程的目的是為了最大限度的利用CPU資源,以前所編寫(xiě)的程序,每個(gè)程序都有一個(gè)入口、一個(gè)出口以及一個(gè)順序執(zhí)行的序列,在程序執(zhí)行過(guò)程中的任何指定時(shí)刻,都只有一個(gè)單獨(dú)的執(zhí)行點(diǎn)。事實(shí)上,在單個(gè)程序內(nèi)部是可以在同一時(shí)刻進(jìn)行多種運(yùn)算的,這就是所謂的多線程。一個(gè)單獨(dú)的線程和順序程序相似,從概念上說(shuō),一個(gè)線程是一個(gè)程序內(nèi)部的一個(gè)順序控制流。線程并不是程序,它自己本身并不能運(yùn)行,必須在程序中運(yùn)行。在一個(gè)程序中可以實(shí)現(xiàn)多個(gè)線程,這些線程同時(shí)運(yùn)行,完成不同的功能。二.使用工具說(shuō)明2.1.總體目標(biāo)設(shè)計(jì)一個(gè)自動(dòng)出現(xiàn)由小到大變換的圓,位置與顏色隨機(jī),變到150直徑時(shí)擦除,重新再出現(xiàn)圓;變換速度由HTML文件傳入的參數(shù)控制。實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)功能。2.2.Applet的工作原理含有Applet的網(wǎng)頁(yè)的HTML文件代碼中部帶有<applet>和</applet>這樣一對(duì)標(biāo)記,當(dāng)支持Java的網(wǎng)絡(luò)瀏覽器遇到這對(duì)標(biāo)記時(shí),就將下載相應(yīng)的小應(yīng)用程序代碼并在本地計(jì)算機(jī)上執(zhí)行該Applet。JavaApplet是用Java語(yǔ)言編寫(xiě)的一些小應(yīng)用程序,這些程序是直接嵌入到頁(yè)面中,由支持Java的瀏覽器(IE或遨游)解釋執(zhí)行能夠產(chǎn)生特殊效果的程序。它可以大大提高Web頁(yè)面的交互能力和動(dòng)態(tài)執(zhí)行能力。包含Applet的網(wǎng)頁(yè)被稱為Java-powered頁(yè),可以稱其為Java支持的網(wǎng)頁(yè)。當(dāng)用戶訪問(wèn)這樣的網(wǎng)頁(yè)時(shí),Applet被下載到用戶的計(jì)算機(jī)上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)絡(luò)瀏覽器。由于Applet是在用戶的計(jì)算機(jī)上執(zhí)行的,所以它的執(zhí)行速度不受網(wǎng)絡(luò)帶寬或者M(jìn)odem存取速度的限制,用戶可以更好地欣賞網(wǎng)頁(yè)上Applet產(chǎn)生的多媒體效果。含有。

一個(gè)HTML文件增加Applet有關(guān)的內(nèi)容只是使網(wǎng)頁(yè)更加富有生氣,如添加聲音、動(dòng)畫(huà)等這些吸引人的特征,它并不會(huì)改變HTML文件中與Applet無(wú)關(guān)的元素。2.3.Applet的工作原理圖如圖2-1圖2-1Applet的工作原理2.4.多線程機(jī)制在Java中,多線程的實(shí)現(xiàn)有兩種方式:擴(kuò)展類實(shí)現(xiàn)接口每個(gè)線程都有一個(gè)優(yōu)先級(jí),高優(yōu)先級(jí)線程的執(zhí)行優(yōu)先于低優(yōu)先級(jí)線程。每個(gè)線程都可以或不可以標(biāo)記為一個(gè)守護(hù)程序。當(dāng)某個(gè)線程中運(yùn)行的代碼創(chuàng)立一個(gè)新Thread對(duì)象時(shí),該新線程的初始優(yōu)先級(jí)被設(shè)定為創(chuàng)立線程的優(yōu)先級(jí),并且當(dāng)且僅當(dāng)創(chuàng)立線程是守護(hù)線程時(shí),新線程才是守護(hù)程序。當(dāng)Java虛擬機(jī)啟動(dòng)時(shí),通常都會(huì)有單個(gè)非守護(hù)線程〔它通常會(huì)調(diào)用某個(gè)指定類的main方法〕。Java虛擬時(shí)機(jī)繼續(xù)執(zhí)行線程,直到以下任意一個(gè)情況出現(xiàn)時(shí)為止:因此,不管是擴(kuò)展Thread類還是實(shí)現(xiàn)Runnable接口來(lái)實(shí)現(xiàn)多線程,最終還是通過(guò)Thread的對(duì)象的API來(lái)控制線程的如圖2-1,熟悉Thread類的API是進(jìn)行多線程編程的根底。新建狀態(tài)〔New〕:新創(chuàng)立了一個(gè)線程對(duì)象。就緒狀態(tài)〔Runnable〕:線程對(duì)象創(chuàng)立后,其他線程調(diào)用了該對(duì)象的start()方法。該狀態(tài)的線程位于可運(yùn)行線程池中,變得可運(yùn)行,等待獲取CPU的使用權(quán)。注意:start()方法的調(diào)用后并不是立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榭蛇\(yùn)行態(tài)〔Runnable〕什么時(shí)候運(yùn)行是由操作系統(tǒng)決定的。從程序運(yùn)行的結(jié)果可以發(fā)現(xiàn),多線程程序是亂序執(zhí)行。因此,只有亂序執(zhí)行的代碼才有必要設(shè)計(jì)為多線程。Thread.sleep()方法調(diào)用目的是不讓當(dāng)前線程單獨(dú)霸占該進(jìn)程所獲取的CPU資源,以留出一定時(shí)間給其他線程執(zhí)行的時(shí)機(jī)。實(shí)際上所有的多線程代碼執(zhí)行順序都是不確定的,每次執(zhí)行的結(jié)果都是隨機(jī)的。圖2-1線程的狀態(tài)與周期2.5.多線程的優(yōu)勢(shì)=1\*GB2⑴減輕編寫(xiě)交互頻繁、涉及面多的程序的困難,如監(jiān)聽(tīng)網(wǎng)絡(luò)端口。=2\*GB2⑵程序的吞吐量會(huì)得到改善,同時(shí)可以監(jiān)聽(tīng)多種設(shè)備,如網(wǎng)絡(luò)端口、串口、并口以及其他外設(shè)。=3\*GB2⑶有多個(gè)處理器的系統(tǒng),可以并發(fā)運(yùn)行不同的線程,否那么,任何時(shí)刻只有一個(gè)線程在運(yùn)行。Thread類本身只是線程的虛擬CPU,線程所執(zhí)行的代碼〔或者說(shuō)線程所要完成的功能〕是通過(guò)方法run()包含在一個(gè)特定的對(duì)象中來(lái)完成的,方法run()稱為線程體。實(shí)現(xiàn)線程體的特定對(duì)象是在初始化線程時(shí)傳遞給線程的。在一個(gè)線程被建立并初始化以后,Java的運(yùn)行時(shí)系統(tǒng)就自動(dòng)調(diào)用run()方法,正是通過(guò)run()方法才使得建立線程的目的得以實(shí)現(xiàn)。=4\*GB2⑷線程睡眠:Thread.sleep(longmillis)方法,使線程轉(zhuǎn)到阻塞狀態(tài)。millis參數(shù)設(shè)定睡眠的時(shí)間,以毫秒為單位。當(dāng)睡眠結(jié)束后,就轉(zhuǎn)為就緒Runnable狀態(tài)。sleep()平臺(tái)移植性好。三.分析與設(shè)計(jì)3.1.題目及使用環(huán)境課程設(shè)計(jì)題目:畫(huà)隨機(jī)圓開(kāi)發(fā)環(huán)境:JCreatorproJdk1.6工具包編程語(yǔ)言:JavaHtml界面要求:用JavaApplet實(shí)現(xiàn)運(yùn)行環(huán)境:Windows操作系統(tǒng)3.2.功能概述運(yùn)行瀏覽器之后,會(huì)自動(dòng)出現(xiàn)由小到大變換的圓,圓的位置與顏色隨機(jī),大小變到150直徑時(shí)擦除,重新再出現(xiàn)圓,圓變換速度通過(guò)HTML文件傳入的參數(shù)控制,實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)3.3.要實(shí)現(xiàn)的功能=1\*GB2⑴此程序?yàn)閷?shí)現(xiàn)這些功能模塊,必須首先定義畫(huà)圖的對(duì)象,對(duì)所要畫(huà)的圓的顏色及其位置進(jìn)行設(shè)置。=2\*GB2⑵此程序?yàn)閷?shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)功能,必會(huì)使用到Therad線程機(jī)制。因此會(huì)用到實(shí)現(xiàn)接口Runable中的run()方法,及通過(guò)調(diào)用sleep()來(lái)顯示圓的變化速度。=3\*GB2⑶此程序中,必須用到的包如下:java.applet.Applet;java.awt.Color;java.awt.Graphics;java.util.*;3.4.實(shí)現(xiàn)方式在Circ.java中首先調(diào)用init〔〕方法對(duì)線程和畫(huà)圖進(jìn)行初始化并各自創(chuàng)立一個(gè)對(duì)象。Circ類通過(guò)實(shí)現(xiàn)Runnable接口,使得該類有了多線程類的特征run〔〕方法是多線程程序的一個(gè)約定。所有的多線程代碼都在run方法里面。Thread類實(shí)際上也是實(shí)現(xiàn)了Runnable接口的類。在啟動(dòng)的多線程的時(shí)候,需要先通過(guò)Thread類的構(gòu)造方法Thread(Runnabletarget)構(gòu)造出對(duì)象,然后調(diào)用Thread對(duì)象的start()方法來(lái)運(yùn)行多線程代碼。實(shí)際上所有的多線程代碼都是通過(guò)運(yùn)行Thread的start()方法來(lái)運(yùn)行的。3.5.需用到的類和方法classCirc此類用于定義一個(gè)線程和Graphics對(duì)象,并且使用init()方法將他們分別初使化,以方便在下面的程序中使用它們。run()方法此方法用于實(shí)現(xiàn)這個(gè)程序的大局部功能,在這個(gè)方法中定義一些根本變量以及畫(huà)一個(gè)填充圓,還對(duì)圓的半徑進(jìn)行了設(shè)置,當(dāng)線程啟動(dòng)后,java類的run()方法就開(kāi)始執(zhí)行init()方法此方法對(duì)線程和Graphics對(duì)象進(jìn)行初始化以及啟動(dòng)線程paint()方法此方法實(shí)現(xiàn)的是將所畫(huà)的圓顯示在applet窗口的面板上四.代碼實(shí)現(xiàn)Circ.javaimportjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;importjava.util.*;importjavax.swing.JFrame;publicclassCircextendsAppletimplementsRunnable{Threadcircle=null;//聲明一個(gè)線程對(duì)象Graphicsg;//聲明一個(gè)Graphics對(duì)象publicvoidinit(){//applet初始化circle=newThread(this);g=getGraphics();circle.start();//啟動(dòng)線程}publicvoidrun(){//實(shí)現(xiàn)接口Runnable接口中的run()方法 inti=1,t,m,n,R,G,B; Randomr1=newRandom(); while(true){if(i<=75){m=(int)(Math.random()*700);//定義一個(gè)在700之內(nèi)的下標(biāo) n=(int)(Math.random()*700); R=r1.nextInt(255);//定義R值的參數(shù)G=r1.nextInt(255);//定義G值的參數(shù) B=r1.nextInt(255);//定義B值的參數(shù) newColor(R,G,B); g.drawOval(m,n,i,i);//畫(huà)圓的邊框 g.fillOval(m,n,i,i);//填充圓g.setColor(newColor(R,G,B));//重新設(shè)置畫(huà)筆的顏色i=i+10;}elsei=0;try{t=Integer.parseInt(getParameter("s"));//獲得從HTML中傳遞的sleep參數(shù)circle.sleep(t);}catch(InterruptedExceptione){System.out.print(e.getMessage());//輸出異常}repaint();//重畫(huà)}} publicvoidpaint(Graphicsg) { } publicstaticvoidmain(String[]args){ Circc=newCirc(); }}Circle.html<appletCode="Circ.class"height="700"width="700"><paramname=svalue="1000">//sleep參數(shù)值的傳遞</applet>運(yùn)行結(jié)果顯示如圖4-1,4-2,4-3所示圖4-1隨機(jī)產(chǎn)生的圓1位置,顏色隨機(jī)圖4-2隨機(jī)產(chǎn)生的圓2位置,顏色隨機(jī)圖4-3隨機(jī)產(chǎn)生的圓3位置,顏色隨機(jī)五.調(diào)試與操作說(shuō)明這個(gè)小程序操作簡(jiǎn)單、通俗易懂,是一個(gè)Applet程序,把它嵌入在Html文件中并依賴瀏覽器來(lái)運(yùn)行,把a(bǔ)pplet程序編譯好,然后運(yùn)行Html文件即可。html文件和applet的字節(jié)碼文件需放在同一目錄下。六.課程設(shè)計(jì)總結(jié)與體會(huì)此次課程設(shè)計(jì)采用applet和線程的處理機(jī)制,畫(huà)一個(gè)隨機(jī)圓,產(chǎn)生一個(gè)簡(jiǎn)單的動(dòng)畫(huà),設(shè)計(jì)的過(guò)程中不可防止地遇到一些代碼運(yùn)行錯(cuò)誤的問(wèn)題,深深感到代碼的嚴(yán)謹(jǐn)是多么的重要,在

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論