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

    JAVA课程设计-闹钟的设计与实现--11计科本01班--张慧.doc

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

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

    JAVA课程设计-闹钟的设计与实现--11计科本01班--张慧.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJAVA课程设计-闹钟的设计与实现-11计科本01班-张慧JAVA课程设计-闹钟的设计与实现-11计科本01班-张慧 西 安 思 源 学 院 Java 课程设计报告 课程名称: JAVA语言程序设计 设计题目: 简单小闹钟的设计与实现 学 院: 电子信息工程学院 专业班级: 计算机科学与技术统本01班学 号 : 111102020103 姓 名: 张慧 小组成员 : 谢莉萍 时 间 : 2013年6月29日 目 录一、项目设计 1.1设计题目2 1.2设计思路2 1.3设计内容 2 1.3.1 Clock类的UML简图2 1.3.2 各方法功能描述列表 2二、 算法描述 2.1 基本算法描述 3 2.2 主要模块算法描述 3 2.2.1当前动态时间的显示的设计与实现4 2.2.2闹钟功能的实现 4 2.2.3闹铃功能的实现 5 三、程序源代码6四、运行结果截图9五、总结10闹钟的设计与实现一、项目设计 1.1题目描述:结合JAVA图形界面的知识设计一个简单的小闹钟 1.2设计思路百度下载的闹钟程序设计,参考别人的程序,通过改编,并添加一些自己的程序,最终实现小闹钟的运行.本次设计要求画出时钟的面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能,可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。 1.3设计内容 1.3.1画出Clock类的UML简图Clock类中的变量ri, shi, fen, miao, dangqian, guanji: JLabelqueding, dakai : JButtonmusic, RI, SHI, FEN, MIAO : JTextFieldh = 0, f = 0, m = 0, r = 0 : intFo, foo : booleansoumd1 : public AudioClipClock类中的函数public clock()public static void main(String agrs)public void run() 1.3.2各方法功能描述列表Clock类方法功能Main()执行main函数Clock()Clock类的构造函数,用于对时钟界面的初始化Run()用于对时钟的动态显示的执行,并判断是否设定了闹钟时间,若当前时间与设定的时间相等则播放选定的音乐二、算法描述 2.1基本算法描述 本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。 2.2主要模块算法描述2.2.1当前动态时间的显示的设计与实现。 (1)功能:可以实时的更新显示系统完整的时间 (2)算法:引入java.util.Date用while循环更新时间 (3)代码:public void run() while (true) Date now = new Date();/设置一个新的当前时间对象。 dangqian.setText("当前时间: " + now.toString();/显示当前的时间 .2.2.2音乐文件的选择。 (1)功能:用打开按钮实现对本地音乐文件的选择(2)算法:引入java.io.File和.MalformedURLException来实现对音乐本地音乐文件的选择。 (3)代码: dakai.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setCurrentDirectory(new File("."); / 设置文件选择器当前目录 fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() public boolean accept(File file) / 可接受的文件类型 String name = file.getName().toLowerCase(); return name.endsWith(".wav") | name.endsWith(".au") | file.isDirectory(); public String getDescription() return "音乐文件(*.wav,*.au)" );2.2.3闹铃功能的实现(1)功能:到达设定闹钟时间,会有输出文字及产生音乐。(2)算法:读入Clock类中的时间,并设置一个Timer,每隔0.1秒进行比对,如果字符串之间匹配就显示(3)代码: public void run() if (fo) foo = true; RI.setEditable(false); SHI.setEditable(false); FEN.setEditable(false); MIAO.setEditable(false); queding.setText("关闭"); /关闭闹钟设定 SimpleDateFormat ri = new SimpleDateFormat("dd"); SimpleDateFormat shi = new SimpleDateFormat("HH"); SimpleDateFormat fen = new SimpleDateFormat("mm"); SimpleDateFormat miao = new SimpleDateFormat("ss"); riqi = Integer.parseInt(ri.format(now); shizhong = Integer.parseInt(shi.format(now); fenzhong = Integer.parseInt(fen.format(now); miaozhong = Integer.parseInt(miao.format(now); if (riqi = r && shizhong = h && fenzhong = f && miaozhong = m) try soumd1 = Applet.newAudioClip(new File(music.getText() .toURL(); / 播放音乐 soumd1.loop(); fo = false; foo = false; catch (MalformedURLException e) e.printStackTrace(); try Thread.sleep(1000); catch (InterruptedException ie) 三、程序源代码import java.applet.Applet;import java.applet.AudioClip;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.io.File;import .MalformedURLException;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.*;class clock extends JFrame implements RunnableJLabel ri, shi, fen, miao, dangqian, guanji;JButton queding, dakai;JTextField music, RI, SHI, FEN, MIAO;int h = 0, f = 0, m = 0, r = 0;boolean fo = false, foo = false;public AudioClip soumd1;int riqi, shizhong, fenzhong, miaozhong;public clock() Container c = getContentPane(); c.setLayout(new GridLayout(4, 1); JPanel jp = new JPanel(); dangqian = new JLabel(); jp.add(dangqian); c.add(jp); JPanel jp3 = new JPanel(); guanji = new JLabel("离闹铃时间:0日0时0分0秒"); jp3.add(guanji); c.add(jp3); JPanel jp1 = new JPanel(); music = new JTextField(20); dakai = new JButton("选择闹铃音乐"); jp1.add(music); jp1.add(dakai); c.add(jp1); ri = new JLabel("日"); RI = new JTextField(4); shi = new JLabel("时"); SHI = new JTextField(4); fen = new JLabel("分"); FEN = new JTextField(4); miao = new JLabel("秒"); MIAO = new JTextField(4); JPanel jp2 = new JPanel(); jp2.add(ri); jp2.add(RI); jp2.add(shi); jp2.add(SHI); jp2.add(fen); jp2.add(FEN); jp2.add(miao); jp2.add(MIAO); queding = new JButton("确定"); jp2.add(queding); c.add(jp2); setSize(400, 160); setVisible(true); dakai.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setCurrentDirectory(new File("."); / 设置文件选择器当前目录 fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() public boolean accept(File file) String name = file.getName().toLowerCase(); return name.endsWith(".wav") | name.endsWith(".au") | file.isDirectory(); public String getDescription() return "音乐文件(*.wav,*.au)" ); if (fileChooser.showOpenDialog(clock.this) = JFileChooser.APPROVE_OPTION) String fileName = fileChooser.getSelectedFile() .getAbsolutePath(); music.setText(fileName); ); queding.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) if (queding.getText().equals("确定") try h = Integer.parseInt(SHI.getText(); f = Integer.parseInt(FEN.getText(); m = Integer.parseInt(MIAO.getText(); if (1 <= h && h <= 31 && 0 <= h && h <= 23 && 0 <= f && f <= 59 && 0 <= m && m <= 59) Date now = new Date(); SimpleDateFormat ri = new SimpleDateFormat("dd"); if (RI.getText() = null | RI.getText().equals("") r = Integer.parseInt(ri.format(now); RI.setText(ri.format(now); else r = Integer.parseInt(RI.getText(); fo = true; else JOptionPane.showMessageDialog(null, "输入时间错误"); catch (Exception e) JOptionPane.showMessageDialog(null, "请输入正确的时间"); else try fo = false; RI.setEditable(true); SHI.setEditable(true); FEN.setEditable(true); MIAO.setEditable(true); queding.setText("确定"); soumd1.stop(); catch(Exception E) System.out.println("关闭"); );public static void main(String agrs) clock s = new clock(); Thread t1 = new Thread(s); t1.start(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void run() while (true) Date now = new Date(); dangqian.setText("当前时间: " + now.toString(); if (foo) if (h = 0|h - shizhong<0) h += 24; r = r - 1; if (f = 0|f - fenzhong<0) f += 60; h -= 1; if (m = 0|m - miaozhong<0) m += 60; f -= 1; guanji.setText("离闹铃时间: " + (r - riqi) + "日" + (h - shizhong) + "时" + (f - fenzhong) + "分" + (m - miaozhong-1) + "秒"); if(r<riqi) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); else if(r<=riqi&&h<shizhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); else if(r<=riqi&&h<=shizhong&&f<fenzhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); else if(r<=riqi&&h<=shizhong&&f<=fenzhong&&m<miaozhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); if (fo) foo = true; RI.setEditable(false); SHI.setEditable(false); FEN.setEditable(false); MIAO.setEditable(false); queding.setText("关闭"); SimpleDateFormat ri = new SimpleDateFormat("dd"); SimpleDateFormat shi = new SimpleDateFormat("HH"); SimpleDateFormat fen = new SimpleDateFormat("mm"); SimpleDateFormat miao = new SimpleDateFormat("ss"); riqi = Integer.parseInt(ri.format(now); shizhong = Integer.parseInt(shi.format(now); fenzhong = Integer.parseInt(fen.format(now); miaozhong = Integer.parseInt(miao.format(now); if (riqi = r && shizhong = h && fenzhong = f && miaozhong = m) try soumd1 = Applet.newAudioClip(new File(music.getText() .toURL(); / 播放音乐 soumd1.loop(); fo = false; foo = false; catch (MalformedURLException e) e.printStackTrace(); try Thread.sleep(1000); catch (InterruptedException ie) 四、运行结果截图打开文件添加音乐闹钟设置完成五、 总结本次JAVA课程设计是我和谢莉萍合作完成的,从网上下载了一个简单的小闹钟的开发程序,参照该程序代码,改编并添加一些自己的程序,在当前时间上加入了年月的显示,并在闹钟的时间设置上加入日的时间显示,最终实现小闹钟的运行.此小闹钟功能比较少,主要为能动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能,可以自己从本地文件中选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能,比较简单.该课程设计在修改运行过程中遇见很多问题,例如:添加日期时,显示一直不对,选择音乐时,音乐会出现播放不了的情况等等,但是,在两个人的努力下,经过修改,最终实现了小闹钟的运行.当然,由于是参照了别人的程序,依旧有好多程序语言不是很理解.经过这次的课程设计,也有了很多收获,发现自己的整体面向对象的编程能力大大提高,虽然相对于以前的实验更复杂,不过加强了对GUI、线程等的程序的练习。由于这次课程设计安排的时间不是很足够,这个小闹钟软件比较简单,很多功能不是很完善,在很多功能上还需加强。虽然在设计的时候有遇到过很多困难和错误,但我觉得能够完成这次的课程设计,确实有了很大的进步与收获。-

    注意事项

    本文(JAVA课程设计-闹钟的设计与实现--11计科本01班--张慧.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




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

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

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

    收起
    展开