Java课程设计画随机圆.docx
- 文档编号:29027195
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:14
- 大小:40.21KB
Java课程设计画随机圆.docx
《Java课程设计画随机圆.docx》由会员分享,可在线阅读,更多相关《Java课程设计画随机圆.docx(14页珍藏版)》请在冰豆网上搜索。
Java课程设计画随机圆
滁州学院
课程设计报告
课程名称:
Java面向对象程序设计
设计题目:
画随机圆
系别:
计算机信息与工程学院
专业:
计算机科学与技术
组别:
第五小组
起止日期:
2011年12月20日~2012年1月4日
指导教师:
马骏高超
计算机与信息工程学院二。
一一年制
课程设计任务书
课程设计题目
画随机圆
组长
张侠
学号
2011220129
班级11计专1班
系别
计算机与信息工程学院
专业
计算机科学与技术
组员
余静盛荣春汪道明张娟
指导教师
马骏高超
课程设计目的
进一步加深对Java语言的理解和掌握提供一个独立实践的机会培养我们在项目开发中的团队合作精神和创新意识及实践编程能力
课程设计所需环境
JCreatorproJdk1.6工具包
课程设计任务要求
功能要求:
实现简单的动画
具体要求:
自动出现由小到大变换的圆,位置与颜色随机,变到150
直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制(控制sleep时间)
界面要求:
用JavaApplet实现
课程设计工作进度计划
序号
起止日期
工作内容
分工情况
01
2011-12-20~2011-12-23
收集资料
组员共同完成
02
2011-12-24~2011-12-27
编写代码
组员共同完成
03
2011-12-28~2011-12-28
修改补充代码
组员共同完成
04
2012-1-1~2011-1-2
编写课程设计报告
组员共同完成
05
2012-1-3~2012-12-22
设计报告的完成
组员共同完成
教研室审核意见:
教研室主任签字:
年月日
一.引言1
二•使用工具说明1
2.1.总体目标1
2.2.Applet的工作原理1
2.3.Applet的工作原理图如图2-11
2.4.多线程机制2
2.5.多线程的优势2
三•分析与设计3
3.1.题目及使用环境3
3.2.功能概述3
3.3.要实现的功能3
3.4.实现方式3
3.5.需用到的类和方法3
四•代码实现4
五•调试与操作说明6
六•课程设计总结与体会6
七•致谢6
八.参考文献6
Applet是基于HTML的小程序。
浏览器将其暂时下载到用户的硬盘上,并在Web页
打开时在本地运行。
一般的Applet只能通过appletviewer或者浏览器来运行,Java程序通过继承Applet类也可以嵌入网页运行。
在JavaApplet中,可以实现图形绘制,字体和颜色控
制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱
(AbstractWindowToolkit,AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元
素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
目前,在网络上有非常多的Applet范例来生动地展现这些功能。
多线程的目的是为了最大限度的利用CPU资源,以前所编写的程序,每个程序都有一
个入口、一个出口以及一个顺序执行的序列,在程序执行过程中的任何指定时刻,都只有一
个单独的执行点。
事实上,在单个程序内部是可以在同一时刻进行多种运算的,这就是所谓
的多线程。
一个单独的线程和顺序程序相似,从概念上说,一个线程是一个程序内部的一个
顺序控制流。
线程并不是程序,它自己本身并不能运行,必须在程序中运行。
在一个程序中
可以实现多个线程,这些线程同时运行,完成不同的功能。
二.使用工具说明
2.1.总体目标
设计一个自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再
出现圆;变换速度由HTML文件传入的参数控制。
实现简单的动画功能。
2.2.Applet的工作原理
含有Applet的网页的HTML文件代码中部带有<applet>和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该AppletoJavaApplet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或遨游)解释执行能够产生特殊效果的程序。
它可以大
大提高Web页面的交互能力和动态执行能力。
包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。
当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的
网络浏览器。
由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。
含有。
一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。
2.3.Applet的工作原理图如图2-1
www服务器
下载字节码文件
www浏览器
浏览网页
内嵌Applet*
执行字节码文件
Java解释器
图2-1Applet的工作原理
24多线程机制
在Java中,多线程的实现有两种方式:
扩展java.Iang.Thread类
实现java.lang.Runnable接口
每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。
每个线程都可以
或不可以标记为一个守护程序。
当某个线程中运行的代码创建一个新Thread对象时,该新
线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线
程才是守护程序。
当Java虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个
指定类的main方法)。
Java虚拟机会继续执行线程,直到下列任意一个情况出现时为止:
因此,不管是扩展Thread类还是实现Runnable接口来实现多线程,最终还是通过Thread
的对象的API来控制线程的如图2-1,熟悉Thread类的API是进行多线程编程的基础。
新建状态(New):
新创建了一个线程对象。
就绪状态(Runnable):
线程对象创建后,其他线
程调用了该对象的start()方法。
该状态的线程位于可运行线程池中,变得可运行,等待获取
CPU的使用权。
注意:
start()方法的调用后并不是立即执行多线程代码,而是使得该线程变为可运行态(Runnable)什么时候运行是由操作系统决定的。
从程序运行的结果可以发现,多线程程序是乱序执行。
因此,只有乱序执行的代码才有必要设计为多线程。
Thread.sleep()
方法调用目的是不让当前线程独自霸占该进程所获取的CPU资源,以留出一定时间给其他
线程执行的机会。
实际上所有的多线程代码执行顺序都是不确定的,每次执行的结果都是随
机的。
new
start()
sleep()结束join()中断IO完成
Sleep()join()
IF
Running
ru或f行退结束Dead
yield()
获取CPURunnable__.__/
同步锁被释放
图2-1线程的状态与周期
2.5.多线程的优势
⑴减轻编写交互频繁、涉及面多的程序的困难,如监听网络端口。
⑵程序的吞吐量会得到改善,同时可以监听多种设备,如网络端口、串口、并口以及其他外设。
⑶有多个处理器的系统,可以并发运行不同的线程,否则,任何时刻只有一个线程在运
行。
Thread类本身只是线程的虚拟CPU,线程所执行的代码(或者说线程所要完成的功能)是通过方法run()包含在一个特定的对象中来完成的,方法run()称为线程体。
实现线程体的
特定对象是在初始化线程时传递给线程的。
在一个线程被建立并初始化以后,Java的运行时
系统就自动调用run()方法,正是通过run()方法才使得建立线程的目的得以实现。
⑷线程睡眠:
Thread.sleep(longmillis)方法,使线程转到阻塞状态。
millis参数设定睡眠
的时间,以毫秒为单位。
当睡眠结束后,就转为就绪Runnable状态。
sleep()平台移植性好。
三•分析与设计
3.1.题目及使用环境
课程设计题目:
画随机圆
开发环境:
JCreatorproJdk1.6工具包
编程语言:
JavaHtml
界面要求:
用JavaApplet实现运行环境:
Windows操作系统
3.2.功能概述
运行浏览器之后,会自动出现由小到大变换的圆,圆的位置与颜色随机,大小变到150
直径时擦除,重新再出现圆,圆变换速度通过HTML文件传入的参数控制,实现简单的动
画
3.3.要实现的功能
⑴此程序为实现这些功能模块,必须首先定义画图的对象,对所要画的圆的颜色及其位置进行设置。
⑵此程序为实现简单的动画功能,必会使用到Therad线程机制。
因此会用到实现接口
Runable中的run()方法,及通过调用sleep()来显示圆的变化速度。
⑶此程序中,必须用到的包如下:
java.applet.Applet;java.awt.Color;
java.awt.Graphics;
java.util.*;
3.4.实现方式
在Circ.java中首先调用init()方法对线程和画图进行初始化并各自创建一个对象。
Circ
类通过实现Runnable接口,使得该类有了多线程类的特征run()方法是多线程程序的一个
约定。
所有的多线程代码都在run方法里面。
Thread类实际上也是实现了Runnable接口的
类。
在启动的多线程的时候,需要先通过Thread类的构造方法Thread(Runnabletarget)构造出对象,然后调用Thread对象的start()方法来运行多线程代码。
实际上所有的多线程代码都
是通过运行Thread的start()方法来运行的。
3.5.需用到的类和方法
classCirc
此类用于定义一个线程和Graphics对象,并且使用init()方法将他们分别初使化,以方
便在下面的程序中使用它们。
run()方法
此方法用于实现这个程序的大部分功能,在这个方法中定义一些基本变量以及画一个填
充圆,还对圆的半径进行了设置,当线程启动后,java类的run()方法就开始执行
init()方法
此方法对线程和Graphics对象进行初始化以及启动线程
paint()方法
此方法实现的是将所画的圆显示在applet窗口的面板上
四•代码实现
Circ.java
importjava.applet.Applet;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.util.*;
importjavax.swing.JFrame;
publicclassCircextendsAppletimplementsRunnable{Threadcircle=null;〃声明一个线程对象
Graphicsg;//声明一个Graphics对象
publicvoidinit(){//applet初始化
circle=newThread(this);
//启动线程
//实现接口Runnable接口中的run()方法
g=getGraphics();
circle.start();
}
publicvoidrun(){
inti=1,t,m,n,R,G,B;
Randomr1=newRandom();while(true){
//定义一个在700之内的下标
//定义R值的参数
//定义G值的参数
//定义B值的参数
if(i<=75){m=(int)(Math.random()*700);n=(int)(Math.random()*700);R=r1.nextlnt(255);
G=r1.nextlnt(255);
B=r1.nextlnt(255);
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;
else
i=0;
try{
t=Integer.parselnt(getParameter("s"));circle.sleep(t);
}catch(InterruptedExceptione){System.out.print(e.getMessage());
}repaint();
//获得从HTML中传递的sleep参数
//输出异常
//重画
}}
publicvoidpaingraphicsg)
{
}
publicstaticvoidmain(String[]args){Circc=newCirc();
}
}
Circle.html
//sleep参数值的传递
T■'■□■raairn'i■amri*it*M、计仇卫L■叭.“mhinU■■rraairTIlanmiii!
Fa^laani
运行结果显示如图4-1,4-2,4-3所示
»>ZiFUjZJ31F
OQJJ&A**晦色二.回二一乌
setP:
.IQiiM"■
.审d如•
d
JWTO
图4-1随机产生的圆1位置,颜色随机
■and5iiciHfH.EI>Ari4lHhial-■■rrw^fiiMvraacExplaan
-芒;”"…p•八{•Qt4
g和鬲匚■JhT-.la亠右l■■吟^l^j■■3[T■■ii,■mil:
止Z.F曰林•*
图4-2随机产生的圆2位置,颜色随机
C:
IPecMEiFn■JitcancikU'Itn.SIll-'iAri'AriJHRvCi].hml”■irrtrHiiMiFisacEqiiaaH
q.£
jW-rS.
图4-3随机产生的圆3位置,颜色随机
五•调试与操作说明
这个小程序操作简单、通俗易懂,是一个Applet程序,把它嵌入在Html文件中并依赖浏览器来运行,把applet程序编译好,然后运行Html文件即可。
html文件和applet的字节码文件需放在同一目录下。
六.课程设计总结与体会
此次课程设计采用applet和线程的处理机制,画一个随机圆,产生一个简单的动画,设计的过程中不可避免地遇到一些代码运行错误的问题,深深感到代码的严谨是多么的重要,在开发这个小程序的过程中,我是一边学习一边开发的,学习在实战中成长,不但巩固了自
己的Java语言基础知识,也进一步加深了对Java语言的理解和掌握,以及团队合作精神和
创新意识,收获也颇多,才知道光掌握课本上的知识是远远不够的,我们要不停的汲取一些
先进的更深层次的知识,才能使自己全面发展,对我们以后的发展也会有很大的帮助。
七•致谢
感谢我的同学和老师给与的关心和帮助,从中我们还有一些开发一个小程序所应必备的能力,谢谢你
2版)[M].北京:
中国水利水电出版社,2010年
北京:
冶金工业出版社,2007年
北京:
清华大学出版社,2003年
在设计研究和设计报告撰写过程中,学会了很多,不但是专业课的基础知识,们。
八.参考文献
主要参考文献是:
[1].赵生慧.Java面向对象程序设计(第
[2].毕广吉.Java程序设计实例教程[M].
[3].王保罗.Java面向对象程序设计[M].
[4].BruceEckel.《ThinkinginJava4》American:
PrenticeHallPTR
⑸.O'Reilly&Associates,Inc《JavaCookbook》intheUnitedStatesorCanada
[6].林邦杰,彻底研究java[J].北京:
电子工业出版社,2002年
指导教师评语:
指导教师签名:
年月日
成绩
教研室审核意见:
教研室主任签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 随机