欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新JAVA模拟时钟集中上机报告.doc

    • 资源ID:33839634       资源大小:188.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新JAVA模拟时钟集中上机报告.doc

    精品资料JAVA模拟时钟集中上机报告. JAVA集中上机报告模拟时钟 学 院: 计算机学院 班 级: 0410703 姓 名: XX 合 作 者: 无 指导教师: 2009 年 6 月 1 日目 录一 概述1. 课程设计的目的1、 设计一个带有指针、数字时钟,并且具有秒表功能,能方便我们的使用和操作,为我们以后的使用创造一个良好的平台。2、 把自己所学的理论知识运用到实际操作中去,以此来发现自己的不足,及时的改正。在实际的操作中学习及运用还没有学过的知识。最后在调试与测试的过程还可以提升自己的改错能力也是自己经验的积累!2. 课程设计的要求编写一个模拟时钟程序,此程序在屏幕左方有一指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间不必与机器系统时间相同,只要可任意设置即可。在设计的过程中,需要用到awt组件和Swing容器与组件,布局管理器,事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。还有自己还没有掌握的2D绘制图形,以及绘制各指针及之间的关系。为了完成自己的设计,必须API、教材以及相关的资料来解决这些尚未掌握的问题。老师的要求就是尽量实现设计的功能,尽可能的锻炼自己的动手能力,提高自己的基础知识。3. 课程设计的主要设计思想先是利用构造函数创建一个长为500,宽为200的窗体,颜色设置为black,并把窗体设计为固定大小,并且创建一个监听事件进行监听。随即创建一个时间计数器,最后实现ActionListener接口的实现方法。利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个汉字,然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。在利用drawString在窗体的右上方画出一个小的框并在里面现在和时钟相对数字时间;然后根据相同的方法在数字时间下面显示秒表功能。二 总体方案设计1、 编写一个模拟时钟程序,此程序在屏幕左方有一指针式钟面。2、 右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致。3、 在数字时间下方的矩形框作为秒表4、 用菜单选项或按钮设置时间和秒表,时间不必与机器系统时间相同,只要可任意设置即可开始整体框图运行程序显示时间运行秒表暂停重置重置时间三 详细设计1、 先是利用构造函数创建一个长为500,宽为200的窗体,颜色设置为black,并把窗体设计为固定大小,并且创建一个监听事件进行监听。随即创建一个时间计数器,最后实现ActionListener接口的实现方法。2、 利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个汉字,然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。3、 在利用drawString在窗体的右上方画出一个小的框并在里面现在和时钟相对数字时间;然后根据相同的方法在数字时间下面显示秒表功能。4、 在编写主函数,在运行程序所完成的具体功能及用到的算法(详细分析)。程序流程图主要部分的详细流程图创建一个主窗体利用drawString画一个矩形框,并在窗体上显示时间用2D绘制图形方法在窗体的左上方绘制一个圆,并好绘制时钟的12个汉字利用drawString画一个矩形框,并在窗体上显示秒表计算出时间和度数的关系绘制出各指针四 程序的调试与运行结果说明调试的方法:首先我是一个类一个类的完成,在每一个类完成后都会对它进行编译,待它能正常的编译之后在进行下面的类的编写。在编译的过程中会有一些错误,比如说语法错误,类的引用格式不正确,会产生一些异常。但是在经过慢慢的调试,这些问题逐渐得到解决。运行结果:五 课程设计总结对于课程设计,基本上实现了模拟时钟程序的要求,此程序在屏幕左方有一指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。但是还没有实现对于时间的重置。 该设计的特点是时钟上标有12个刻度,并且各指针是不同的颜色,看上去比较美观,在右上方有两个矩形框,第一个矩形框显示数字时间,这是为了能更好的看时间,第二个矩形框是显示秒表,虽然现在功能还不是很完善。我想在不断地进行对该设计的完善,不仅能为该时钟设置背景,以增加该时钟的美观效果,也可以对时钟到了一定的时间就可以报时,并且可以设置闹钟,为闹钟设置多种音乐,可供选择,这样的话就不显得单调,这样一来该时钟更方便实用。 困难及解决途径 在上机实习完成课程设计的过程中,遇到了不少的问题,一是有一些东西自己没有学过,而是在编写的过程中由于思路不清晰以及自己的粗心给自己制造了一些麻烦,还有就是会产生一些异常。但是在经过自己和老师、同学的交流,以及自己查阅资料和API文档,针对性的对不懂得问题进行查询,自己没有学过但是又要用到得逐渐的得到解决,再经过自己反复的理清思路和反复的检查由思路不清晰和粗心带来的麻烦也慢慢得到了解决。六 后记首先,java作为一种计算机语言,它具备语言的特性,就是我们在课堂上认真听取了老师的指导之后,还得自己回去认真看书写程序,并且上机实习才能发现问题及时解决问题。就像我们学习语言一样要通过和同学之间的交流才能提高我们的实际应用能力。所以,我们在自己认真刻苦学习的同时,一定要多和同学老师交流,从他们那里吸取好的思维方式、好的学习方法。在上机实习的时候,我现在回顾自己一学期的学习,觉得首先应该熟悉java的概念,明白程序开发的基本思想,熟悉开发环境之后马上进行自主学习,自己学习的步伐千万不能落于老师讲课授课的速度。如果这样的话,我们很可能处于一种被动学习的劣势,失去对java学习的热情,以至于恶性循环,到最终的无可救药。在平时的训练和刚刚结束的上机实习中我深刻的体会到了学习好java我们就要一定要掌握好java的基本语句,包括条件语句和循环语句。这些就是我们编写程序这棵大树的必要组成枝叶。建立起关键语句的之后,我们才能有更强的功能和实用性。Java作为一个面向对象的编程语言,在图像方面具有很强的实现能力。这样很能激发我们的学习兴趣。在编写程序的时候发现,虽然它是一个面向对象的编程语言,我们一定要学会如何编写多个类和方法,在不断地摸索中培养我们自身设计面向对象解决方案的能力。作为学生的我们,是一个学习的过程,我们应该学习如何写好程序。而好的程序不仅仅是一系列语句的拼凑,我们要联系自身实际,用编程语言解决问题和实施解决问题的方案。在学习java的这一段时间当中,图形激发了我学习的巨大热情。所以,我觉得我自己一定要在打好坚实的基础的情况下,对图形学进行认真学习。在学习图形和图形用户接口的时候,觉得变得吃力起来。因为随着课程的加重,发现自己动手能力越来越若,在事件处理和图形用户接口的使用中,出现了知识点模棱两可的情况。当然,任何的困难挫折在不断地努力中都会变得脆弱,只是暂时的阴影。在以后的日子里,我要不断地学习这个博大精深的语言,继续不断的深化自己的实际动手能力。七 附录import javax.swing.*;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.*;import java.util.Calendar;import java.util.GregorianCalendar;class TestClock extends JFrame implements ActionListener int x,y,x0,y0,r,h,olds_x,olds_y,oldm_x,oldm_y,oldh_x,oldh_y,ss,mm,hh,old_m,old_h,ang; final double RAD=Math.PI/180; /构造函数创建一个窗体 public TestClock() super("Java时钟"); setDefaultCloseOperation(3); setSize(500,200); setBackground(Color.BLACK); setLocation(300,150); setResizable(false); setVisible(true); int delay = 1000; /创建一个监听事件 ActionListener drawTestClock = new ActionListener() public void actionPerformed(ActionEvent evt) repaint(); ; /创建一个时间计数器 new Timer(delay,drawTestClock).start(); /实现ActionListener接口必须实现的方法 public void actionPerformed(ActionEvent e) /绘制图形 public void paint(Graphics g) Graphics2D g2D = (Graphics2D)g; Insets insets = getInsets(); int L = insets.left/2,T = insets.top/2; h = getSize().height; g.setColor(Color.white); /画圆 g2D.setStroke(new BasicStroke(4.0f); g.drawOval(L+40,T+40,h-80,h-80); r=h/2-40; x0=40+r-5+L; y0=40+r-5-T; ang=60; /绘制时钟上的12个汉字 for(int i=1;i<=12;i+) x=(int)(r+10)*Math.cos(RAD*ang)+x0); y=(int)(r+10)*Math.sin(RAD*ang)+y0); g.drawString(""+i,x,h-y); ang-=30; /获得现在时间 JButton a=new JButton("设置时间"); Calendar now= new GregorianCalendar(); int nowh= now.get(Calendar.HOUR_OF_DAY); int nowm= now.get(Calendar.MINUTE); int nows= now.get(Calendar.SECOND); int nowmi= now.get(Calendar.MILLISECOND); String st; if(nowh<10) st="0"+nowh;else st=""+nowh; if(nowm<10) st+=":0"+nowm;else st+=":"+nowm; if(nows<10) st+=":0"+nows;else st+=":"+nows; String str; if(nowh<10) str="0"+nowh;else str=""+nowh; if(nowm<10) str+=":0"+nowm;else str+=":"+nowm; if(nows<10) str=":0"+nows;else str+=":"+nows; if(nowmi<10) str+=":0"+str;else str+=":"+nowmi; /在窗体上显示时间 g.setColor(Color.pink); g.fillRect(300,50,100,30); g.setColor(Color.blue); g.drawString(st,330,70); g.setColor(Color.pink); g.fillRect(300,100,120,30); g.setColor(Color.blue); g.drawString(str,330,120); /计算时间与度数的关系 ss=90-nows*6; mm=90-nowm*6; hh=90-nowh*30-nowm/2; x0=r+40+L; y0=r+40+T; g2D.setStroke(new BasicStroke(1.2f); /擦除秒针 if(olds_x>0) g.setColor(getBackground(); g.drawLine(x0,y0,olds_x,h-olds_y); else old_m = mm; old_h = hh; /绘制秒针 x=(int)(r*0.9*Math.cos(RAD*ss)+x0; y=(int)(r*0.9*Math.sin(RAD*ss)+y0-2*T; g.setColor(Color.yellow); g.drawLine(x0,y0,x,h-y); olds_x=x; olds_y=y; g2D.setStroke(new BasicStroke(2.2f); /擦除分针 if(old_m!=mm) g.setColor(getBackground(); g.drawLine(x0,y0,oldm_x,h-oldm_y); /绘制分针 x=(int)(r*0.7*Math.cos(RAD*mm)+x0; y=(int)(r*0.7*Math.sin(RAD*mm)+y0-2*T; g.setColor(Color.green); g.drawLine(x0,y0,x,h-y); oldm_x=x; oldm_y=y; old_m=mm; g2D.setStroke(new BasicStroke(3.4f); /擦除时针 if(old_h!=hh) g.setColor(getBackground(); g.drawLine(x0,y0,oldh_x,h-oldh_y); /绘制时针 x=(int)(r*0.5*Math.cos(RAD*hh)+x0; y=(int)(r*0.5*Math.sin(RAD*hh)+y0-2*T; g.setColor(Color.red); g.drawLine(x0,y0,x,h-y); oldh_x=x; oldh_y=y; old_h=hh; public static void main(String args) new TestClock(); 参考文献1 甘玲,解析java程序设计,北京,清华大学出版社,2000年9月。

    注意事项

    本文(最新JAVA模拟时钟集中上机报告.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开