




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
滁州学院课程设计报告课程名称: Java 面向对象程序设计 设计题目: 画随机圆 系 别: 计算机信息与工程学院 专 业: 计算机科学与技术 组 别: 第五小组 起止日期: 2011年 12月20日 2012年1月 4日 指导教师: 马骏 高超 计算机与信息工程学院二一 一年制课程设计任务书课程设计题目画随机圆组长张侠学号2011220129班级11计专1班系别计算机与信息工程学院专业 计算机科学与技术组员余静 盛荣春 汪道明 张娟指导教师 马骏 高超课程设计目的进一步加深对Java语言的理解和掌握提供一个独立实践的机会培养我们在项目开发中的团队合作精神和创新意识及实践编程能力课程设计所需环境JCreator pro Jdk1.6工具包课程设计任务要求功能要求:实现简单的动画具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制(控制sleep时间)界面要求:用Java Applet实现课程设计工作进度计划序号起止日期工 作 内 容分工情况012011-12-202011-12-23收集资料组员共同完成022011-12-242011-12-27编写代码组员共同完成032011-12-282011-12-28修改补充代码组员共同完成042012-1-12011-1-2编写课程设计报告组员共同完成052012-1-32012-12-22设计报告的完成组员共同完成教研室审核意见:教研室主任签字: 年 月 日 目录一引 言1二使用工具说明12.1.总体目标12.2.Applet的工作原理12.3. Applet的工作原理图如图2-112.4.多线程机制22.5.多线程的优势2三分析与设计33.1.题目及使用环境33.2.功能概述33.3.要实现的功能33.4.实现方式33.5.需用到的类和方法3四代码实现4五调试与操作说明6六课程设计总结与体会6七致谢6八参考文献6一引 言Applet是基于HTML的小程序。浏览器将其暂时下载到用户的硬盘上,并在Web页打开时在本地运行。一般的Applet只能通过appletviewer或者浏览器来运行,Java程序通过继承Applet类也可以嵌入网页运行。在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。目前,在网络上有非常多的Applet范例来生动地展现这些功能。多线程的目的是为了最大限度的利用CPU资源,以前所编写的程序,每个程序都有一个入口、一个出口以及一个顺序执行的序列,在程序执行过程中的任何指定时刻,都只有一个单独的执行点。事实上,在单个程序内部是可以在同一时刻进行多种运算的,这就是所谓的多线程。一个单独的线程和顺序程序相似,从概念上说,一个线程是一个程序内部的一个顺序控制流。线程并不是程序,它自己本身并不能运行,必须在程序中运行。在一个程序中可以实现多个线程,这些线程同时运行,完成不同的功能。二使用工具说明2.1.总体目标设计一个自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制。实现简单的动画功能。2.2.Applet的工作原理含有Applet的网页的HTML文件代码中部带有 和这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。Java Applet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 遨游)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java- powered页,可以称其为Java支持的网页。当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持 Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。含有。一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。2.3. Applet的工作原理图如图2-1图2-1Applet的工作原理2.4.多线程机制在Java中,多线程的实现有两种方式:扩展java.lang.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资源,以留出一定时间给其他线程执行的机会。实际上所有的多线程代码执行顺序都是不确定的,每次执行的结果都是随机的。图2-1线程的状态与周期2.5.多线程的优势 减轻编写交互频繁、涉及面多的程序的困难,如监听网络端口。 程序的吞吐量会得到改善,同时可以监听多种设备,如网络端口、串口、并口以及其他外设。 有多个处理器的系统,可以并发运行不同的线程,否则,任何时刻只有一个线程在运行。Thread类本身只是线程的虚拟CPU,线程所执行的代码(或者说线程所要完成的功能)是通过方法run()包含在一个特定的对象中来完成的,方法run()称为线程体。实现线程体的特定对象是在初始化线程时传递给线程的。在一个线程被建立并初始化以后,Java的运行时系统就自动调用run( )方法,正是通过run( )方法才使得建立线程的目的得以实现。 线程睡眠:Thread.sleep(long millis)方法,使线程转到阻塞状态。millis参数设定睡眠的时间,以毫秒为单位。当睡眠结束后,就转为就绪Runnable状态。sleep()平台移植性好。三分析与设计3.1.题目及使用环境课程设计题目:画随机圆开发环境:JCreator pro Jdk 1.6工具包 编程语言:Java Html界面要求:用Java Applet实现运行环境: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(Runnable target) 构造出对象,然后调用Thread对象的start()方法来运行多线程代码。实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。3.5.需用到的类和方法class Circ此类用于定义一个线程和Graphics对象,并且使用init()方法将他们分别初使化,以方便在下面的程序中使用它们。run()方法此方法用于实现这个程序的大部分功能,在这个方法中定义一些基本变量以及画一个填充圆,还对圆的半径进行了设置,当线程启动后,java类的run()方法就开始执行init()方法此方法对线程和Graphics对象进行初始化以及启动线程paint()方法此方法实现的是将所画的圆显示在applet窗口的面板上四代码实现Circ.javaimport java.applet.Applet;import java.awt.Color;import java.awt.Graphics;import java.util.*; import javax.swing.JFrame;public class Circ extends Applet implements Runnable Thread circle=null; /声明一个线程对象 Graphics g; /声明一个Graphics对象 public void init() /applet初始化 circle = new Thread(this); g = getGraphics(); circle.start(); / 启动线程 public void run() / 实现接口Runnable接口中的run()方法 int i=1,t,m,n,R,G,B; Random r1=new Random(); while(true) if(i=75)m=(int)(Math.random()*700); /定义一个在700之内的下标 n=(int)(Math.random()*700); R=r1.nextInt(255); /定义R值的参数 G=r1.nextInt(255); /定义G值的参数 B=r1.nextInt(255); /定义B值的参数 new Color(R,G,B); g.drawOval(m,n,i,i); /画圆的边框 g.fillOval(m,n,i,i); /填充圆 g.setColor(new Color(R,G,B); /重新设置画笔的颜色 i=i+10; else i=0; try t=Integer.parseInt(getParameter(s); /获得从HTML中传递的sleep参数 circle.sleep(t); catch(InterruptedException e) System.out.print(e.getMessage(); /输出异常 repaint(); /重画 public void paint(Graphics g) public static void main(String args) Circ c=new Circ(); Circle.html /sleep参数值的传递运行结果显示如图4-1,4-2,4-3所示图4-1随机产生的圆1位置,颜色随机图4-2随机产生的圆2位置,颜色随机图4-3随机产生的圆3位置,颜色随机五调试与操作说明这个小程序操作简单、通俗易懂,是一个Applet程序,把它嵌入在Html文件中并依赖浏览器来运行,把applet程序编译好,然后运行Html文件即可。html文件和applet的字节码文件需放在同一目录下。六课程设计总结与体会此次课程设计采用applet和线程的处理机制,画一个随机圆,产生一个简单的动画,设计的过程中不可避免地遇到一些代码运行错误的问题,深深感到代码的严谨是多么的重要,在开发这个小程序的过程中,我是一边学习一边开发的,学习在实战中成长,不但巩固了自己的Java语言基础知识,也进一步加深了对Java语言的理解和掌握,以及团队合作精神和创新意识,收获也颇多,才知道光掌握课本上的知识是远远不够的,我们要不停的汲取一些先进的更深层次的知识,才能使自己全面发展,对我们以后的发展也会有很大的帮助。七致谢在设计研究和设计报告撰写过程中,感谢我的同学和老师给与的关心和帮助,从中我们学会了很多,不但是专业课的基础知识,还有一些开发一个小程序所应必备的能力,谢谢你们。八参考文献主要参考文献是:1.赵生慧.Java面向对象程序设计(第2版)M. 北京:中国水利水电出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车美容店跨界合作与联名活动协议范本
- 个人创业投资连带责任担保合同
- 2025至2030中国流变改性剂市场运营规划及前景趋势洞察报告
- 上学的出血病人护理要点
- 口服靶向药物皮疹的护理
- 2025至2030中国鼓式融化机行业产业运行态势及投资规划深度研究报告
- 认识东西南北教学课件
- 颅内积气护理查房
- 夫妻离异后子女抚养权人寿保险保障服务协议
- 二手房买卖合同签订中的合同签订与房屋质量保证
- 2022年新高考I卷读后续写David's run公开课课件-高三英语一轮复习
- 蓄水模块专项监理实施细则
- 创业小白实操手册 第2版 课件 6 做原型小验证-课件标准版
- 《全面质量管理》习题集(含答案)
- 数学游戏(单元复习课件)人教版一年级数学上册
- 北师大版小学数学四年级上册第3单元 乘法《卫星运行时间》教学课件
- 新学期幼儿园小班新生家长会课件
- DL∕T 2559-2022 灯泡贯流式水轮机状态检修评估技术导则
- 热固复合聚苯乙烯防火保温板应用技术规程(征求意见稿)
- 法院书记员考试试题
- 计算机系统原理13015习题答案
评论
0/150
提交评论