版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
滁州學院課程設計報告課程名稱:Java面向?qū)ο蟪绦蛟O計設計題目:畫隨機圓系別:計算機信息與工程學院專業(yè):計算機科學與技術組別:第五小組起止日期:2023年12月20日~2023年指導教師:馬駿高超計算機與信息工程學院二○一一年制課程設計任務書課程設計題目畫隨機圓組長張俠學號2023220239班級11計專1班系別計算機與信息工程學院專業(yè)計算機科學與技術組員余靜盛榮春汪道明張娟指導教師馬駿高超課程設計目的進一步加深對Java語言的理解和掌握提供一個獨立實踐的時機培養(yǎng)我們在工程開發(fā)中的團隊合作精神和創(chuàng)新意識及實踐編程能力課程設計所需環(huán)境JCreatorproJdk1.6工具包課程設計任務要求功能要求:實現(xiàn)簡單的動畫具體要求:自動出現(xiàn)由小到大變換的圓,位置與顏色隨機,變到150直徑時擦除,重新再出現(xiàn)圓;變換速度由HTML文件傳入的參數(shù)控制〔控制sleep時間〕界面要求:用JavaApplet實現(xiàn)課程設計工作進度方案序號起止日期工作內(nèi)容分工情況012011-收集資料組員共同完成022011-編寫代碼組員共同完成032011-修改補充代碼組員共同完成042012-編寫課程設計報告組員共同完成052012-設計報告的完成組員共同完成教研室審核意見:教研室主任簽字:年月日目錄TOC\o"1-2"\h\z\u一.引言1二.使用工具說明12.1.總體目標12.2.Applet的工作原理12.3.Applet的工作原理圖如圖2-112.4.多線程機制22.5.多線程的優(yōu)勢2三.分析與設計33.1.題目及使用環(huán)境33.2.功能概述33.3.要實現(xiàn)的功能33.4.實現(xiàn)方式33.5.需用到的類和方法3四.代碼實現(xiàn)4五.調(diào)試與操作說明6六.課程設計總結與體會6七.致謝6八.參考文獻6一.引言Applet是基于HTML的小程序。瀏覽器將其暫時下載到用戶的硬盤上,并在Web頁翻開時在本地運行。一般的Applet只能通過appletviewer或者瀏覽器來運行,Java程序通過繼承Applet類也可以嵌入網(wǎng)頁運行。在JavaApplet中,可以實現(xiàn)圖形繪制,字體和顏色控制,動畫和聲音的插入,人機交互及網(wǎng)絡交流等功能。Applet還提供了名為抽象窗口工具箱〔AbstractWindowToolkit,AWT〕的窗口環(huán)境開發(fā)工具。AWT利用用戶計算機的GUI元素,可以建立標準的圖形用戶界面,如窗口、按鈕、滾動條等等。目前,在網(wǎng)絡上有非常多的Applet范例來生動地展現(xiàn)這些功能。多線程的目的是為了最大限度的利用CPU資源,以前所編寫的程序,每個程序都有一個入口、一個出口以及一個順序執(zhí)行的序列,在程序執(zhí)行過程中的任何指定時刻,都只有一個單獨的執(zhí)行點。事實上,在單個程序內(nèi)部是可以在同一時刻進行多種運算的,這就是所謂的多線程。一個單獨的線程和順序程序相似,從概念上說,一個線程是一個程序內(nèi)部的一個順序控制流。線程并不是程序,它自己本身并不能運行,必須在程序中運行。在一個程序中可以實現(xiàn)多個線程,這些線程同時運行,完成不同的功能。二.使用工具說明2.1.總體目標設計一個自動出現(xiàn)由小到大變換的圓,位置與顏色隨機,變到150直徑時擦除,重新再出現(xiàn)圓;變換速度由HTML文件傳入的參數(shù)控制。實現(xiàn)簡單的動畫功能。2.2.Applet的工作原理含有Applet的網(wǎng)頁的HTML文件代碼中部帶有<applet>和</applet>這樣一對標記,當支持Java的網(wǎng)絡瀏覽器遇到這對標記時,就將下載相應的小應用程序代碼并在本地計算機上執(zhí)行該Applet。JavaApplet是用Java語言編寫的一些小應用程序,這些程序是直接嵌入到頁面中,由支持Java的瀏覽器(IE或遨游)解釋執(zhí)行能夠產(chǎn)生特殊效果的程序。它可以大大提高Web頁面的交互能力和動態(tài)執(zhí)行能力。包含Applet的網(wǎng)頁被稱為Java-powered頁,可以稱其為Java支持的網(wǎng)頁。當用戶訪問這樣的網(wǎng)頁時,Applet被下載到用戶的計算機上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)絡瀏覽器。由于Applet是在用戶的計算機上執(zhí)行的,所以它的執(zhí)行速度不受網(wǎng)絡帶寬或者Modem存取速度的限制,用戶可以更好地欣賞網(wǎng)頁上Applet產(chǎn)生的多媒體效果。含有。
一個HTML文件增加Applet有關的內(nèi)容只是使網(wǎng)頁更加富有生氣,如添加聲音、動畫等這些吸引人的特征,它并不會改變HTML文件中與Applet無關的元素。2.3.Applet的工作原理圖如圖2-1圖2-1Applet的工作原理2.4.多線程機制在Java中,多線程的實現(xiàn)有兩種方式:擴展類實現(xiàn)接口每個線程都有一個優(yōu)先級,高優(yōu)先級線程的執(zhí)行優(yōu)先于低優(yōu)先級線程。每個線程都可以或不可以標記為一個守護程序。當某個線程中運行的代碼創(chuàng)立一個新Thread對象時,該新線程的初始優(yōu)先級被設定為創(chuàng)立線程的優(yōu)先級,并且當且僅當創(chuàng)立線程是守護線程時,新線程才是守護程序。當Java虛擬機啟動時,通常都會有單個非守護線程〔它通常會調(diào)用某個指定類的main方法〕。Java虛擬時機繼續(xù)執(zhí)行線程,直到以下任意一個情況出現(xiàn)時為止:因此,不管是擴展Thread類還是實現(xiàn)Runnable接口來實現(xiàn)多線程,最終還是通過Thread的對象的API來控制線程的如圖2-1,熟悉Thread類的API是進行多線程編程的根底。新建狀態(tài)〔New〕:新創(chuàng)立了一個線程對象。就緒狀態(tài)〔Runnable〕:線程對象創(chuàng)立后,其他線程調(diào)用了該對象的start()方法。該狀態(tài)的線程位于可運行線程池中,變得可運行,等待獲取CPU的使用權。注意:start()方法的調(diào)用后并不是立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榭蛇\行態(tài)〔Runnable〕什么時候運行是由操作系統(tǒng)決定的。從程序運行的結果可以發(fā)現(xiàn),多線程程序是亂序執(zhí)行。因此,只有亂序執(zhí)行的代碼才有必要設計為多線程。Thread.sleep()方法調(diào)用目的是不讓當前線程單獨霸占該進程所獲取的CPU資源,以留出一定時間給其他線程執(zhí)行的時機。實際上所有的多線程代碼執(zhí)行順序都是不確定的,每次執(zhí)行的結果都是隨機的。圖2-1線程的狀態(tài)與周期2.5.多線程的優(yōu)勢=1\*GB2⑴減輕編寫交互頻繁、涉及面多的程序的困難,如監(jiān)聽網(wǎng)絡端口。=2\*GB2⑵程序的吞吐量會得到改善,同時可以監(jiān)聽多種設備,如網(wǎng)絡端口、串口、并口以及其他外設。=3\*GB2⑶有多個處理器的系統(tǒng),可以并發(fā)運行不同的線程,否那么,任何時刻只有一個線程在運行。Thread類本身只是線程的虛擬CPU,線程所執(zhí)行的代碼〔或者說線程所要完成的功能〕是通過方法run()包含在一個特定的對象中來完成的,方法run()稱為線程體。實現(xiàn)線程體的特定對象是在初始化線程時傳遞給線程的。在一個線程被建立并初始化以后,Java的運行時系統(tǒng)就自動調(diào)用run()方法,正是通過run()方法才使得建立線程的目的得以實現(xiàn)。=4\*GB2⑷線程睡眠:Thread.sleep(longmillis)方法,使線程轉到阻塞狀態(tài)。millis參數(shù)設定睡眠的時間,以毫秒為單位。當睡眠結束后,就轉為就緒Runnable狀態(tài)。sleep()平臺移植性好。三.分析與設計3.1.題目及使用環(huán)境課程設計題目:畫隨機圓開發(fā)環(huán)境:JCreatorproJdk1.6工具包編程語言:JavaHtml界面要求:用JavaApplet實現(xiàn)運行環(huán)境:Windows操作系統(tǒng)3.2.功能概述運行瀏覽器之后,會自動出現(xiàn)由小到大變換的圓,圓的位置與顏色隨機,大小變到150直徑時擦除,重新再出現(xiàn)圓,圓變換速度通過HTML文件傳入的參數(shù)控制,實現(xiàn)簡單的動畫3.3.要實現(xiàn)的功能=1\*GB2⑴此程序為實現(xiàn)這些功能模塊,必須首先定義畫圖的對象,對所要畫的圓的顏色及其位置進行設置。=2\*GB2⑵此程序為實現(xiàn)簡單的動畫功能,必會使用到Therad線程機制。因此會用到實現(xiàn)接口Runable中的run()方法,及通過調(diào)用sleep()來顯示圓的變化速度。=3\*GB2⑶此程序中,必須用到的包如下:java.applet.Applet;java.awt.Color;java.awt.Graphics;java.util.*;3.4.實現(xiàn)方式在Circ.java中首先調(diào)用init〔〕方法對線程和畫圖進行初始化并各自創(chuàng)立一個對象。Circ類通過實現(xiàn)Runnable接口,使得該類有了多線程類的特征run〔〕方法是多線程程序的一個約定。所有的多線程代碼都在run方法里面。Thread類實際上也是實現(xiàn)了Runnable接口的類。在啟動的多線程的時候,需要先通過Thread類的構造方法Thread(Runnabletarget)構造出對象,然后調(diào)用Thread對象的start()方法來運行多線程代碼。實際上所有的多線程代碼都是通過運行Thread的start()方法來運行的。3.5.需用到的類和方法classCirc此類用于定義一個線程和Graphics對象,并且使用init()方法將他們分別初使化,以方便在下面的程序中使用它們。run()方法此方法用于實現(xiàn)這個程序的大局部功能,在這個方法中定義一些根本變量以及畫一個填充圓,還對圓的半徑進行了設置,當線程啟動后,java類的run()方法就開始執(zhí)行init()方法此方法對線程和Graphics對象進行初始化以及啟動線程paint()方法此方法實現(xiàn)的是將所畫的圓顯示在applet窗口的面板上四.代碼實現(xiàn)Circ.javaimportjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;importjava.util.*;importjavax.swing.JFrame;publicclassCircextendsAppletimplementsRunnable{Threadcircle=null;//聲明一個線程對象Graphicsg;//聲明一個Graphics對象publicvoidinit(){//applet初始化circle=newThread(this);g=getGraphics();circle.start();//啟動線程}publicvoidrun(){//實現(xiàn)接口Runnable接口中的run()方法 inti=1,t,m,n,R,G,B; Randomr1=newRandom(); while(true){if(i<=75){m=(int)(Math.random()*700);//定義一個在700之內(nèi)的下標 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);//畫圓的邊框 g.fillOval(m,n,i,i);//填充圓g.setColor(newColor(R,G,B));//重新設置畫筆的顏色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();//重畫}} publicvoidpaint(Graphicsg) { } publicstaticvoidmain(String[]args){ Circc=newCirc(); }}Circle.html<appletCode="Circ.class"height="700"width="700"><paramname=svalue="1000">//sleep參數(shù)值的傳遞</applet>運行結果顯示如圖4-1,4-2,4-3所示圖4-1隨機產(chǎn)生的圓1位置,顏色隨機圖4-2隨機產(chǎn)生的圓2位置,顏色隨機圖4-3隨機產(chǎn)生的圓3位置,顏色隨機五.調(diào)試與操作說明這個小程序操作簡單、通俗易懂,是一個Applet程序,把它嵌入在Html文件中并依賴瀏覽器來運行,把applet程序編譯好,然后運行Html文件即可。html文件和applet的字節(jié)碼文件需放在同一目錄下。六.課程設計總結與體會此次課程設計采用applet和線程的處理機制,畫一個隨機圓,產(chǎn)生一個簡單的動畫,設計的過程中不可防止地遇到一些代碼運行錯誤的問題,深深感到代碼的嚴謹是多么的重要,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024五人入股成立教育科技有限公司合作協(xié)議書3篇
- 2025年南昌從業(yè)資格證考試答案貨運
- 2025年吉林貨運駕駛員從業(yè)資格題庫
- 2025年郴州貨運資格證考試真題
- 2024年版:高清影視制作與后期服務合同
- 2025年江西貨運從業(yè)資格證考試一共多少題
- 2025年海西貨運從業(yè)資格證怎么考
- 2024年煤炭貨場運營許可合同
- 2024年度互聯(lián)網(wǎng)+教育平臺委托經(jīng)營授權書3篇
- 2024年版權許可使用合同(電子書)
- 材料力學智慧樹知到答案章節(jié)測試2023年山東科技大學
- 安全管理年終工作總結PPT模板下載
- 2022-2023學年湖南省醴陵市小學語文六年級下冊期末高分通關題
- 2023學年完整公開課版firstaidsforburns
- 新聞編輯(修改版)馬工程課件 第六章
- 2023年遼寧石化職業(yè)技術學院高職單招(英語)試題庫含答案解析
- GB/T 34960.5-2018信息技術服務治理第5部分:數(shù)據(jù)治理規(guī)范
- 2023年上海英語高考卷及答案完整版
- 2023年復旦大學博士研究生入學考試專家推薦信模板
- 危險源風險告知及控制措施(維修電工)
- 自動控制理論的早期發(fā)展歷史課件
評論
0/150
提交評論