JAVA课程设计 闹钟的设计与实现项目报告 附源代码
JAVA课程设计 闹钟的设计与实现项目报告 附源代码
![JAVA课程设计 闹钟的设计与实现项目报告 附源代码](https://img.taocdn.com/s3/m/506b92b3aa00b52acec7ca1d.png)
Java 设计报告书课程名称:JAVA语言程序设计设计题目:闹钟的设计与实现院系:计算机科学与信息工程系学生姓名:学号:专业班级:指导教师:许研2010 年12 月28 日目录一、题目描述 (1)二、设计思路 (1)三、运行结果 (5)四、源代码 (6)五、总结 (10)六、参考文献 (10)闹钟的设计与实现一、题目描述:结合JAVA图形界面的知识设计一个闹钟二、设计思路1、设计要求:编写闹钟钟程序,要求画出时钟面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。
2、算法基本描述:本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。
3、设计思想与内容1、画出类的UML简图Clock类:Clock类中的变量ri, shi, fen, miao, dangqian, guanji: JLabe lqueding, 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()2、各方法功能描述列表Clock类方法功能Main()执行main函数Clock()Clock类的构造函数,用于对时钟界面的初始化Run()用于对时钟的动态显示的执行,并判断是否设定了闹钟时间,若当前时间与设定的时间相等则播放选定的音乐3、主要模块算法描述(1)当前动态时间的显示的设计与实现。
电子时钟工具的程序设计及代码示例
![电子时钟工具的程序设计及代码示例](https://img.taocdn.com/s3/m/7da3312da55177232f60ddccda38376baf1fe09d.png)
电子时钟工具的程序设计及代码示例为满足现代生活的需求,电子时钟成为人们生活中的常见工具。
除了具备实时显示时间的功能外,电子时钟还可以根据用户需求进行各种定制,如显示日期、倒计时、闹钟等功能。
本文将探讨电子时钟的程序设计方法,并提供一个简单的代码示例。
一、程序设计方法在进行电子时钟的程序设计前,我们需要确定以下几个关键因素:1. 使用的编程语言:根据实际情况选择合适的编程语言,如C++、Java、Python等。
2. GUI框架:确定使用什么图形界面框架,如Qt、Tkinter等。
3. 实时更新:确定时间的实时更新方式,可以利用计时器、循环等方式进行时间更新。
4. 用户交互:考虑用户是否需要与电子时钟进行交互,如设置闹钟、选择日期等。
二、代码示例以下是一个基于Python和Tkinter的电子时钟代码示例,代码注释中详细说明了每个函数的功能和实现方法:```pythonimport tkinter as tkfrom datetime import datetimedef update_time():# 获取当前时间current_time = datetime.now().strftime("%H:%M:%S")# 更新时间标签time_label.config(text=current_time)# 每隔1秒更新一次时间time_label.after(1000, update_time)# 创建窗口window = ()window.title("电子时钟")# 创建时间标签time_label = bel(window, font=("Arial", 100), bg="white") time_label.pack(pady=50)# 更新时间update_time()# 运行窗口主循环window.mainloop()```以上代码创建了一个简单的窗口,使用标签实时显示当前时间。
Java模拟时钟制作案例
![Java模拟时钟制作案例](https://img.taocdn.com/s3/m/a161f21203d8ce2f006623fd.png)
美化指针
调用AffineTransform
public AffineTransform sc =new AffineTransform(); sc.setToRotation(Math.PI/30f*(s1-15),125,125); g2.fill(tick_s.createTransformedShape(sc));
程序代码
主类
程序代码
程序代码
运行效果
运行效果
面板刻度
绘制刻度
l1=new Line2D.Double[60]; for(int i=0 ;i<l1.length;i++) { double b[]=new double[4]; int j; if(i%5==0){ if(i%15==0){ j=50; }else { j=60; }
运行效果程序代码程序代码程序代码程序代码程序代码代码优化与改进以上的代码已经能基本完成时钟的功能
Java模拟时钟制 作案例
Java开发实例
需求分析
模拟时钟,把它放在程序中可以给人一种清 新的感觉。比起数字时钟来说,有一定的真 实感怀旧情结。看到秒针一下一下的转动, 时时提醒,时间在不断流逝,要我们珍惜时 间。 子在川上曰:逝者如斯夫。
坐标的转换,使用方法
调用方法:
p0=xy(125,125,75,s1*6); s.x1=p0.getX(); s.y1=p0.getY(); p0=xy(125,125,65,m1*6); m.x1=p0.getX(); m.y1=p0.getY(); p0=xy(125,125,55,(h1*30+m1/2f)); h.x1=p0.getX(); h.y1=p0.getX();
java时钟小程序课程设计
![java时钟小程序课程设计](https://img.taocdn.com/s3/m/b4e7064a6d175f0e7cd184254b35eefdc8d31594.png)
java时钟小程序课程设计一、课程目标知识目标:1. 理解Java编程语言中时间处理的基本概念;2. 掌握使用Java语言实现时钟小程序的核心语法,如线程控制、事件处理等;3. 学习Java中日期时间API的使用,如java.util.Calendar和java.time包;4. 了解界面设计中布局管理器的应用。
技能目标:1. 能够编写Java程序,实现一个具有基本计时功能的时钟小程序;2. 能够运用所学知识,对时钟小程序进行界面设计和优化;3. 学会使用调试工具,进行程序错误排查和修正;4. 培养问题解决和编程实践能力,能够独立完成时钟小程序的开发。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发创造力和探究精神;2. 增强学生的团队合作意识,培养在项目开发中相互协作的能力;3. 强化学生的程序逻辑思维,提高分析问题和解决问题的能力;4. 培养学生严谨的科学态度和良好的编程习惯。
本课程设计针对高年级学生,他们在前期课程中已具备Java语言基础,能够适应本课程的知识深度。
课程性质为实践性、综合性课程,要求学生将理论知识与实际操作相结合,通过完成时钟小程序的设计与实现,达到巩固知识、提升技能、培养情感态度价值观的目标。
通过具体学习成果的分解,教师可进行有针对性的教学设计和评估,确保课程目标的实现。
二、教学内容1. Java基本语法复习:变量声明与使用、数据类型、运算符、控制流程(条件语句、循环语句);2. 线程概念与使用:线程的创建、启动、同步,以及线程的生命周期;- 教材章节:第8章“多线程编程”;3. Java时间处理API介绍:java.util.Calendar类的使用,java.time包中LocalTime、LocalDate、LocalDateTime类的使用;- 教材章节:第11章“日期和时间处理”;4. 界面设计基础:Swing图形用户界面设计,布局管理器介绍及应用;- 教材章节:第14章“Swing用户界面设计”;5. 时钟小程序实现:设计并实现一个简单时钟界面,完成计时功能;- 结合教材实例,进行拓展教学;6. 程序调试与优化:使用调试工具进行程序错误查找,优化程序性能;- 教材章节:第16章“程序调试与优化”;7. 项目实践:小组合作,完成一个具有附加功能(如闹钟、计时器等)的时钟小程序开发。
Java课程设计报告(LED时钟)
![Java课程设计报告(LED时钟)](https://img.taocdn.com/s3/m/f6a30681cc22bcd126ff0c52.png)
攀枝花学院学生课程设计(论文)题目: LED时钟学生姓名:张奕学号: 201210802028 所在院(系):数学与计算机学院专业:信息与计算科学班级: 2012级信息与计算科学1班指导教师:吴建兵职称:讲师二O一四年六月十六日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目时钟(LED方式)1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)编写一个时钟(LED方式)程序,要求:(1)在屏幕上用文字显示日期(年、月、日、星期)与时间。
(2)时间显示要求能动态显示时、分、秒。
3、主要参考文献[1]朱福喜.《Java语言程序设计》(第二版).科学出版社[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社[3] Deitel.《Java大学基础教程》(第六版).电子工业出版社[4] MaryCampione.《Java语言导学》(第四版).机械工业出版社[5] Y.Daniel Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社[6] Kathy Sierra.《Head First Java》(第二版).东南大学出版社4、课程设计工作进度计划1、设计动员,布置任务,选题(1天)2、查阅资料,分析、讨论与设计(1天)3、编写程序,进行调试(4天)4、完成模块联调,进行测试(2天)5、成果验收,完成设计报告(2天)指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表题目名称时钟(LED方式)评分项目分值得分评价内涵工作表现20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02 科学实践、调研7 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
java课程设计
![java课程设计](https://img.taocdn.com/s3/m/4d25bb6258fafab069dc0242.png)
面向对象的程序设计课程设计报告题目:音乐时钟闹铃专业计算机科学与技术班级1120701姓名肖建峰学号 201120070117指导教师桂颖完成日期 2013.6.27目录1、需求分析2、实现目标3、相关技术4、系统设计5、系统框架6、系统实现7、系统维护与实现8、心得体会一、需求分析1.任务描述:用java语言实现时钟闹钟的设计,设计的时钟闹铃能够完成以下功能:正确的指针位置、日期、时间的数字显示;在设定的时间用铃声提醒,若当前时间为设置的时间时,会伴随着铃声,时间持续约1分钟。
若关闭闹铃,则铃声停止。
2.需求分析:(1)该闹铃系统可用于到时响铃功能(可设置多组闹铃);(2)该闹铃系统只需要用户给其设置闹铃时间;(3)该闹铃系统与用户的交互完全靠按键实现;(4)该闹铃系统界面在外观上要求美观。
其中最重要的是闹铃的可操作性强,能够完成必要的功能;(5)该闹铃系统的相应时间0.1秒左右。
(6)该闹铃系统出现故障时,重启系统即可。
二、实现目标1.实验目的:通过时钟闹铃的设计和实现,充分掌握java语言,提高对图形界面及小程序的设计和编程能力。
学会时钟的制作方法;能够采用布局管理器来安排动态文字的位置;能够随机获取变动的系统时间等等。
2.实现功能:(1)正确的指针位置;(2)正确的日期、时间的数字显示;(3)在设定的时间用铃声提醒,若当前时间为设置的时间时,会伴随着铃声,无控制的情况下,时间持续约1min,若关闭闹铃功能,则闹铃停止。
(4)动态时钟画面准确的显示当前时间。
3.主要用途及性能要求:时钟闹铃在设置时间后能够及时准确的提醒时间,例如:设置起床闹铃,设置开会、面试等重要事件的时间,这样可以提醒你避免忘记。
对于性能要求动态时钟画面准确的显示当前时间,面板上也能够显示当前的日期时间。
时钟闹铃能够精确的显示系统时间,时间指针也能够精确的指向时间刻度。
设置闹铃后能够及时的完成闹铃功能,而且在无控制的情况下,时间持续约1min。
java小闹钟
![java小闹钟](https://img.taocdn.com/s3/m/581aa77bdd88d0d232d46ae4.png)
课程设计(综合实验)报告( 2011 -- 20112 年度第 1 学期)名称:课程或实验名称题目:迷你闹钟的设计与实现院系:经济与管理学院班级:信管1001班学号:1101300107学生姓名:李小鹏指导教师:梁春燕设计周数:一周成绩:日期:2012 年01 月06 日一、课程设计(综合实验)的目的与要求➢设计目的:通过迷你闹钟的设计和实现,考察学生对JA V A语言的掌握情况,并提高学生对图形用户界面的设计和编程能力。
➢设计要求:1.显示时间功能:迷你闹钟可以即时显示当前时间。
2.闹钟功能:能够根据用户设置的时间来提醒用户,可以用声音或者文字进行提醒。
3.时间设置功能:提供菜单来设置时钟的当前时间,和闹钟的提醒时间。
4.界面设计:可模拟真实钟表界面,也可以用数字界面显示。
要求美观、实用和个性化。
二、设计(实验)正文1.设计迷你闹钟的方法1.1利用CardLayout布局实现时间界面和设置闹钟界面的转换1.2在时间界面设置label1和label2实现当前时间的数字化显示,并利用Date类和SimpleDateFormate类实现界面显示“上午好”或“下午好”。
在label1上绘制模拟钟表实现模拟钟表的界面。
1.3在闹钟设置面板上添加当前时间,通过文本框和标签设置需要设置的闹钟的时、分、秒。
设置列表框提供闹钟的音乐以供选择。
设置开关按钮决定闹钟的开始和结束2.遇到问题2. 1 设置迷你闹钟的界面化时遇到问题通过参考已有的程序加以解决2. 2 设置“闹铃时间”、“开关按钮”、“背景音乐列表框”时,事件的触发和监控遇到问题,经过反复修改调试得到解决。
2. 3 闹铃背景音乐格式设置遇到问题,经过调试和格式转换解决3.待解决问题闹钟的思想是“北京时间”,所以背景音乐中有《天涯共此时》音乐,界面上有北京时间等标识本来想在界面上添加一幅具有北京特色的图片做背景,但反复尝试,遗憾的是均未能成功,添加的背景图片总被上层面板遮挡,希望老师给以指导。
JAVA线程程序设计(小时钟)实验报告(附完整代码)
![JAVA线程程序设计(小时钟)实验报告(附完整代码)](https://img.taocdn.com/s3/m/828a8407360cba1aa911dacb.png)
JAVA线程程序设计(小时钟)实验报告(附完整代码)一、课题内容和要求内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。
要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。
二、设计思路分析class Clock:一个指针式时钟的主类class Layout: 添加窗口和时钟组件class ClockPaint:定义时钟组件三、概要设计 public class Clock extends JFrame {public static void main(String[] s);}class Layout extends JFrame {public Layout();}class ClockPaint extends JPanel implements Runnable {int x, y, r; int h, m, s; double rad = Math、PI /180; public ClockPaint(int x, int y, int r);public voidpaint(Graphics g);public void run();}时钟的绘制:运行时钟:四、详细设计 import java、awt、*;import javax、swing、*;import java、util、*;public class Clock extends JFrame {public static void main(String[] s){new Layout();}}class Layout extends JFrame {// 添加窗口和时钟组件public Layout(){ClockPaint cp = newClockPaint(20,20,70);add(cp);setBounds(260,120,200,200);s etResizable(false);this、setTitle("指针式时钟");this、setVisible(true);}}class ClockPaint extends JPanel implements Runnable {// 定义时钟组件int x, y, r;// 时钟的位置坐标和半径int h, m, s;// 小时,分钟,秒double rad = Math、PI /180;// 定义弧度public ClockPaint(int x, int y, int r){// 构造函数this、x = x;this、y = y;this、r =r;Calendar now = Calendar、getInstance();// 初始化日历对象s = now、get(Calendar、SECOND)*6;// 获得初始秒转换成度数m = now、get(Calendar、MINUTE)*6;// 获得初始分钟转换成度数h = (now、get(Calendar、HOUR_OF_DAY)2)* Math、sin(rad * d));y1 = (int)((r1, x + r14)* Math、sin(rad * d));y1 = (int)((r4, x + r6)* Math、sin(rad * d));y1 = (int)((r2)* Math、sin(rad * d));y2 = (int)((r y2, x + r + x1, y + r y1);g、setColor(Color、BLUE);// 按时间画分针x1 = (int)((0、6 * r)* Math、sin(rad * m));y1 = (int)((0、6 * r)* Math、cos(rad * m));g、drawLine(x + r, y + r, x + r + x1, y + r y1);g、setColor(Color、GREEN);// 显示时间Calendar now1 = Calendar、getInstance();g、drawString(now1、get(Calendar、HOUR_OF_DAY)+ ":"+ now1、get(Calendar、MINUTE)+ ":"+ now1、get(Calendar、SECOND), 0,10);}public void run(){// 运行时钟while (true){try {Thread、sleep(1000);// 中断一秒后重新运行} catch (Exception ex){System、out、println(ex);}s +=6;// 秒针走6度if(s >=360){// 秒针走完一分钟后重置s = 0;m +=6;if (m ==72 || m ==144 || m ==216 || m ==288){// 分针走完5分钟后重置h +=6;}if (m >=360){// 分针走完一小时后重置m = 0;h +=6;}if (h >=360){// 时针走完12小时后重置h = 0;}}this、repaint();// 重新绘制时钟}}}五、测试数据及其结果分析1时钟界面:2结果:输出正常。
JAVA课程设计报告电子钟
![JAVA课程设计报告电子钟](https://img.taocdn.com/s3/m/bd22a08971fe910ef12df850.png)
课程设计报告( 2012-- 2013年度第2学期)日历记事本专业 计算机科学与技术学生姓名 董文龙 班级 计算机116 学号1110704603 指导教师 徐秀芳 完成日期2013.7目录目录 (2)1 概述 (4)1.1课程设计目的 (4)1.2课程设计内容和要求 (4)2 系统需求分析 (5)2.1系统目标 (5)2.2主体功能 (5)2.3开发环境 (5)3 系统总体设计 (5)3.1系统的功能模块划分 (5)3.2系统流程图 (6)4系统详细设计 (6)4.1主窗口模块设计 (6)4.1.1 效果图 (6)4.1.2 类的主要成员变量和方法 (7)4.1.3 主要程序代码 (8)4.2日期模块设计 (19)4.2.1 效果图 (19)4.2.2 类的主要成员变量和方法 (19)4.2.3 主要程序代码 (20)4.3日历模块设计 (21)4.3.1 效果图 (21)4.3.2 类的主要成员变量和方法 (22)4.3.3 主要程序代码 (22)4.4记事本模块设计 (24)4.4.1 效果图 (24)4.4.2 类的主要成员变量和方法 (24)4.4.3 主要程序代码 (25)4.5图像模块设计 (34)4.5.1 效果图 (34)4.5.2 类的主要成员变量和方法 (34)4.5.3 主要程序代码 (35)4.6时钟模块设计 (36)4.6.1效果图 (36)4.6.2 类的主要成员变量和方法 (36)4.6.3主要程序代码 (37)5 代码调试 (41)6 软件发布 (42)7 小结 (42)参考文献 (44)日历记事本日历记事本1 概述1.1 课程设计目的(1)加深对《Java语言与面向对象技术》课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤;(2)进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力;(3)课程设计将课本上的理论知识和实际应用相结合,锻炼学生发现问题、分析问题和解决问题的能力。
可编程逻辑设计课程设计报告书-电子闹钟设计
![可编程逻辑设计课程设计报告书-电子闹钟设计](https://img.taocdn.com/s3/m/0cf5a4bbf71fb7360b4c2e3f5727a5e9856a27d0.png)
可编程逻辑设计课程设计报告书课题名称电子闹钟设计姓名1姓名2姓名3专业日期1.设计的主要内容及目的要求利用Verilog HDL 设计一个可以显示时分秒的电子数字时钟。
基本功能:•数字时钟,具有时、分、秒显示;•具有时间校准及闹钟功能;•具有时钟复位功能;•采用数码管显示时钟值(仿真中看不出数码管显示效果);2.整体设计方案及方法图1:流程图实验整体流程图如上图,此后为具体解释。
a)时、分、秒计时功能:i.产生以1000 ns 即1ps 为周期方波时钟信号ii.采用cnt 计数的方式检测方波时钟信号的上升沿iii.500 个上升沿即为1ms 1000个1ms 为1s,依次类推到小时图2:ModelSim仿真- 秒计数实现b)时钟复位功能i.在所有检测信号的技术模块内添加检测复位信号的条件。
ii.在处理内部首先判断信号值,当信号为0,清空计数。
图3:源代码- 复位功能代码展示c)闹钟功能i.在每个周期内检测时、分对应变量的值ii.如果对应数值与预设值相同且闹钟开启则对应变量输出值0图4:源代码- 设置闹钟开启图5:源代码- 检测闹钟是否开启d)数码管显示i.根据时分秒的值对应控制七段数码管的高低电平即可ii.具体实现见附件源代码。
3. Verilog HDL 硬件代码及注释完整代码以及注释见附件src.zip,以下为简要解释。
•文件结构:TOP.v 顶层文件time_control.v 数字钟实现模块display_ctrl.v 数码管驱动模块tb_TOP.v 测试文件•TOP.va)定义所有输入,输出变量,包括时钟的时、分、秒,闹钟的时、分、秒、数码管的输出等。
b)实例化 time_control 和 display_ctrl。
•time_control.va)从ps 到ms 到 s 到 min 到 h 的cnt 计数实现。
b)闹钟与时钟数值对比的实现•display_ctrl.va)根据段选和位选信号实现数码管的动态刷新。
JAVA实验报告一(运用JavaFx画时钟)
![JAVA实验报告一(运用JavaFx画时钟)](https://img.taocdn.com/s3/m/f5c1ef180b4e767f5acfce9e.png)
JA V A实验报告实验一运用JavaFx画时钟班级:计算机科学与技术1306 学号:***********名:***指导教师:***2014 年12 月 1 日目录一.概述 (3)二.总体方案设计 (4)三.详细设计 (4)四.程序的调试与运行结果说明 (5)五.课程设计总结 (6)六.后记 (6)七.附录 (6)参考文献 (11)一概述1.课程设计的目的1、设计一个带有指针、数字时钟,能方便我们的使用和操作,为我们以后的使用创造一个良好的平台。
了解和掌握JavaFx基本概念和用法。
2、把自己所学的理论知识运用到实际操作中去,以此来发现自己的不足,及时的改正。
在实际的操作中学习及运用还没有学过的知识。
最后在调试与测试的过程还可以提升自己的改错能力也是自己经验的积累。
2.课程设计的要求编写一个模拟时钟程序,此程序在屏幕左方有一指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。
用菜单选项或按钮设置时间和秒表。
时间不必与机器系统时间相同,只要可任意设置即可。
在设计的过程中,需要用到awt组件和Swing容器与组件,布局管理器,事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。
还有自己还没有掌握的2D绘制图形,以及绘制各指针及之间的关系。
为了完成自己的设计,必须API、教材以及相关的资料来解决这些尚未掌握的问题。
老师的要求就是尽量实现设计的功能,尽可能的锻炼自己的动手能力,提高自己的基础知识。
3.课程设计的主要设计思想先是利用构造函数创建一个长为500,宽为200的窗体,颜色设置为black,并把窗体设计为固定大小,并且创建一个监听事件进行监听。
随即创建一个时间计数器,最后实现ActionListener接口的实现方法。
利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个数字刻度,然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。
Java时钟小程序课课程设计
![Java时钟小程序课课程设计](https://img.taocdn.com/s3/m/b32ba2707275a417866fb84ae45c3b3567ecdd2b.png)
Java时钟小程序课课程设计一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:使学生掌握Java编程语言的基本语法和操作,了解面向对象编程的基本概念,掌握使用Java编写简单的时钟小程序的方法。
2.技能目标:培养学生运用Java编程语言解决实际问题的能力,提高学生的编程思维和动手实践能力,使学生能够独立编写并调试简单的Java程序。
3.情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强学生自信心,培养学生的团队协作精神和自主学习能力。
通过对课程性质、学生特点和教学要求的分析,明确课程目标,将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java编程语言基本语法和操作:数据类型、变量、运算符、控制结构等。
2.面向对象编程概念:类、对象、封装、继承、多态等。
3.Java时钟小程序的编写:使用Java Swing或JavaFX库实现一个简单的图形界面时钟,通过编程实现时钟的运行和显示。
教学内容的选择和要确保科学性和系统性,制定详细的教学大纲,明确教学内容的安排和进度,指出教材的章节和列举内容。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用以下几种教学方法:1.讲授法:讲解Java编程语言的基本语法和操作,面向对象编程概念等理论知识。
2.案例分析法:分析典型的Java程序案例,使学生更好地理解编程原理和方法。
3.实验法:引导学生动手实践,编写并调试Java时钟小程序,提高学生的编程能力。
通过多样化的教学方法,使学生在理论知识和实践操作中掌握Java编程技能。
四、教学资源本节课的教学资源包括以下几个方面:1.教材:选用权威、实用的Java编程教材,为学生提供系统的学习资料。
2.参考书:提供相关的Java编程参考书籍,丰富学生的知识储备。
3.多媒体资料:制作精美的PPT课件,直观地展示教学内容。
4.实验设备:为学生提供充足的计算机设备,确保每个学生都能动手实践。
Java课程设计报告(LED时钟)
![Java课程设计报告(LED时钟)](https://img.taocdn.com/s3/m/f6a30681cc22bcd126ff0c52.png)
攀枝花学院学生课程设计(论文)题目: LED时钟学生姓名:张奕学号: 201210802028 所在院(系):数学与计算机学院专业:信息与计算科学班级: 2012级信息与计算科学1班指导教师:吴建兵职称:讲师二O一四年六月十六日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目时钟(LED方式)1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)编写一个时钟(LED方式)程序,要求:(1)在屏幕上用文字显示日期(年、月、日、星期)与时间。
(2)时间显示要求能动态显示时、分、秒。
3、主要参考文献[1]朱福喜.《Java语言程序设计》(第二版).科学出版社[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社[3] Deitel.《Java大学基础教程》(第六版).电子工业出版社[4] MaryCampione.《Java语言导学》(第四版).机械工业出版社[5] Y.Daniel Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社[6] Kathy Sierra.《Head First Java》(第二版).东南大学出版社4、课程设计工作进度计划1、设计动员,布置任务,选题(1天)2、查阅资料,分析、讨论与设计(1天)3、编写程序,进行调试(4天)4、完成模块联调,进行测试(2天)5、成果验收,完成设计报告(2天)指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表题目名称时钟(LED方式)评分项目分值得分评价内涵工作表现20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02 科学实践、调研7 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
闹钟提醒的程序设计及代码示例
![闹钟提醒的程序设计及代码示例](https://img.taocdn.com/s3/m/d8dd967d366baf1ffc4ffe4733687e21af45ff07.png)
闹钟提醒的程序设计及代码示例闹钟提醒是人们日常生活中常用的功能之一,它可以帮助我们准时起床、提醒重要事件等。
在计算机编程中,我们可以通过程序设计实现一个闹钟提醒系统。
下面,将介绍闹钟提醒程序的设计原理、流程以及代码示例。
一、程序设计原理闹钟提醒程序的设计原理主要包括以下几个步骤:1. 用户输入设定的闹钟时间;2. 程序获取当前时间;3. 比较当前时间和设定的闹钟时间;4. 如果当前时间等于设定的闹钟时间,则触发提醒;5. 如果当前时间不等于设定的闹钟时间,则等待一段时间后重新执行第2步。
二、程序设计流程根据上述原理,我们可以设计出如下的闹钟提醒程序流程:1. 用户输入设定的闹钟时间,并保存到变量alarm_time中;2. 进入循环,不断执行以下步骤:1) 获取当前时间,并保存到变量current_time中;2) 比较current_time和alarm_time;3) 如果current_time等于alarm_time,则触发提醒,提示用户;4) 如果current_time不等于alarm_time,则等待一段时间后再次执行循环。
三、代码示例下面是一个使用Python语言编写的闹钟提醒程序代码示例:```pythonimport datetimeimport timedef alarm_clock(alarm_time):while True:current_time = datetime.datetime.now().strftime("%H:%M")if current_time == alarm_time:print("时间到了!该起床啦!")breakelse:print("当前时间:", current_time, "闹钟时间:", alarm_time)time.sleep(60) # 每隔60秒检查一次alarm_time = input("请输入设定的闹钟时间(如08:00):")alarm_clock(alarm_time)```在这个示例代码中,我们使用了Python内置的`datetime`和`time`模块来获取当前时间和控制程序等待的时间。
java闹钟程序设计
![java闹钟程序设计](https://img.taocdn.com/s3/m/6b1a0c881711cc7931b716f8.png)
j a v a闹钟程序设计------------------------------------------作者xxxx------------------------------------------日期xxxx《JAVA程序设计》课程设计报告班级软件1301班姓名徐畅学号13号电子邮件849286847@指导教师张暑军时间2014/2015学年第一学期第20周承德石油高等专科学校计算机与信息工程系二零一五年一月十二日目录一系统需求描述 (4)二设计思路 (4)三实现描述 (6)四常见问题及解决方法 (8)五总结 (8)一系统需求描述1.任务描述:我国现在在各个方面发展迅猛,民众的生活质量得到极大的提高。
与此同时,根据时代的要求,人们的生活节奏也随之加快。
人们都要求自己在很短的时间尽量做到最多的事。
所以开发一款能让人们能将其所有的事有序地组织起来,同时又能提醒在什么时间该做什么事的软件是很有必要的。
虽然目前这样软件很多功能虽强大,但是用起来都很复杂,有些功能并不实用,操作也太麻烦。
该课题的终极目标是开发一个实用,操作便捷的桌面闹钟应用程序,达到在日常生活工作中可以合理利用时间从而大大地提高人们的工作效率。
用java 语言实现时钟闹钟的设计,设计的时钟闹铃能够完成以下功能:正确的指针位置、日期、时间的数字显示;在设定的时间用铃声提醒,若当前时间为设置的时间时,会伴随着铃声,时间持续约1分钟。
若关闭闹铃,则铃声停止。
2.需求分析:(1)该闹铃系统可用于到时响铃功能(可设置多组闹铃);(2)该闹铃系统只需要用户给其设置闹铃时间;(3)该闹铃系统与用户的交互完全靠按键实现;(4)该闹铃系统界面在外观上要求美观。
其中最重要的是闹铃的可操作性强,能够完成必要的功能;(5)该闹铃系统的相应时间0.1秒左右。
(6)该闹铃系统出现故障时,重启系统即可。
二设计思路1.实验目的:通过时钟闹铃的设计和实现,充分掌握java语言,提高对图形界面及小程序的设计和编程能力。
JAVA数字时钟源程序代码
![JAVA数字时钟源程序代码](https://img.taocdn.com/s3/m/eff6b667f5335a8102d220df.png)
import java.awt.*;import java.util.*;import javax.swing.*;//数字时钟public class ClockDemo extends JFrame implements Runnable{Thread clock;public ClockDemo(){super("数字时钟"); //调用父类构造函数setFont(new Font("Times New Roman",Font.BOLD,60)); //设置时钟的显示字体start(); //开始进程setSize(280,100); //设置窗口尺寸setVisible(true); //窗口可视this.setLocation(440,330);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序}public void start(){ //开始进程if (clock==null){ //如果进程为空值clock=new Thread(this); //实例化进程clock.start(); //开始进程}}public void run(){ //运行进程while (clock!=null){repaint(); //调用paint方法重绘界面try{Thread.sleep(1000); //线程暂停一秒(1000毫秒)}catch (InterruptedException ex){ex.printStackTrace(); //输出出错信息}}}public void stop(){ //停止进程clock=null;}public void paint(Graphics g){ //重载组件的paint方法Graphics2D g2=(Graphics2D)g; //得到Graphics2D对象Calendar now=new GregorianCalendar(); //实例化日历对象String timeInfo=""; //输出信息int hour=now.get(Calendar.HOUR_OF_DAY); //得到小时数int minute=now.get(Calendar.MINUTE); //得到分数int second=now.get(Calendar.SECOND); //得到秒数if (hour<=9)timeInfo+="0"+hour+":"; //格式化输出elsetimeInfo+=hour+":";if (minute<=9)timeInfo+="0"+minute+":";elsetimeInfo+=minute+":";if (second<=9)timeInfo+="0"+second;elsetimeInfo+=second;g.setColor(Color.orange); //设置当前颜色为白色Dimension dim=getSize(); //得到窗口尺寸g.fillRect(0,0,dim.width,dim.height); //填充背景色为白色g.setColor(Color.black); //设置当前颜色为橙色g.drawString(timeInfo,20,80); //显示时间字符串}public static void main(String[] args){new ClockDemo();}}。
JAVA课程设计-闹钟的设计与实现--11计科本01班--张慧
![JAVA课程设计-闹钟的设计与实现--11计科本01班--张慧](https://img.taocdn.com/s3/m/a5736e894693daef5ff73d56.png)
西安思源学院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简图1.3.2各方法功能描述列表二、算法描述2.1基本算法描述本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。
JAVA可视化闹钟源码
![JAVA可视化闹钟源码](https://img.taocdn.com/s3/m/0bc58de67d1cfad6195f312b3169a4517723e56c.png)
JAVA可视化闹钟源码概述⼀些同学的Java课设有这样⼀个问题,⽐较感兴趣就做了⼀下功能介绍:1、可增加闹钟2、可删除闹钟3、时间到了响铃4、关闭闹钟不会丢失闹钟(因为闹钟存储在txt⽂件中,不会因程序关闭就终⽌)缺点1、没有使⽤多线程,闹钟响起时只能等待1分钟或者关闭程序2、界⾯设计不够美观,后期有时间会进⾏修改,重新设计3、没有闹钟修改的功能,虽然可以通过增删来达到修改的⽬的,但功能仍然属于空缺范围1package Clock;23import sun.audio.AudioPlayer;4import sun.audio.AudioStream;56import javax.swing.*; //awt和swing是做界⾯⽤的类7import java.awt.*;8import java.awt.event.ActionEvent;9import java.awt.event.ActionListener;10import java.awt.event.WindowAdapter;11import java.awt.event.WindowEvent;12import java.io.*; //io流⽤于读写⽂件,包括增删闹钟、打开铃声等等13import java.util.Calendar; //⽤于获取当前时间的类14import java.util.GregorianCalendar;//标准阳历15import java.util.StringTokenizer; //读取⽂件转换成计算机语⾔⽤的类16/*171 计时器18要求1:⼀个带有可视化界⾯的钟表。
19要求2:可以添加若⼲个闹钟。
20要求3:具备持久化功能,关闭程序不能丢失闹钟。
21要求4:闹钟是可编辑,可删除的。
2223实现:先创建⼀个⾯板显⽰闹钟,⾯板内创建按钮增加闹钟,按钮查看闹钟,按钮删除闹钟24线程间隔1s读取时间和闹钟⽐较2526*/27public class ClockTry extends JFrame implements Runnable {28/* 成员变量 */29private JPanel xx; //总的⾯板30private JComboBox ho; //hour选择时间的下拉框31private JComboBox mi; //min选择分钟的下拉框32private JButton tjnz; //添加闹钟的按钮33private JButton schour; //删除闹钟的按钮34private String filename = "D://homework//java//Gui//src//Clock//0.wav"; //所有的路径改这两个地⽅就可以了35private String pathname = "D://homework//java//Gui//src//Clock//nz.txt"; // 绝对路径或相对路径都可以,写⼊⽂件时演⽰相对路径,读取以上路径的input.txt⽂件3637private int HOUR; //定义HOUR⽤于接收按钮按下从下拉框中获取的数据38private int MIN; //同上3940int x = 100, y = 100, r = 100; // (x,y)为(0,0)点,表⽰原点41int h, m, s; // 时,分,秒42double rad = Math.PI / 180; // 1°4344private String[][] str= new String[100][2]; //定义⼆维数组,⽤于存储以及对⼩时和分针的操作,暂定为100个闹钟于是定义为【100】【2】45/**46 *读取⽂件,每次的增删都需要对数据进⾏读取,将数据写在⾯板上也需要读取数据47*/48public void readFile() {49try (FileReader reader = new FileReader(pathname); //创建⼀个FilReader对象,将⽂件读出来,相当于请教⼀个当地⼈,当地⼈了解本地⽂化,但是语⾔不通听不懂50 BufferedReader br = new BufferedReader(reader) // 建⽴⼀个对象,它把⽂件内容转成计算机能读懂的语⾔,相当于请⼀个翻译,把当地⼈读取的东西转换成计算机能懂的东西51 ) {52 String line;5354int i =0;55while ((line = br.readLine()) != null) { //翻译理解的东西存到line⾥⾯56int j =0;57 StringTokenizer st = new StringTokenizer(line, ":"); //重点:由于存储数据时都是时间,道理来说都是数字,⽆法区分⼩时部分和分钟部分58while (st.hasMoreTokens()){ //每读取⼀次读到的内容 //所以这⾥⽤分割符“:”来分割,相应的,后⾯的写⼊⽂件也应该已“:”分割进⾏写⼊59 str[i][j]=st.nextToken(); //把读到的内容存储在数组⾥⾯便于后⾯的操做——增删60 j++; //包括上⾯的j=0,是将for循环拆分放进while循环中,要不然循环写起来也很⿇烦61 }62//System.out.print(str[i][0]+":"+str[i][1]); 写的时候⽤来在控制台打印查看效果63//System.out.println();64 i++;65 j = 0;66 }67 } catch (IOException e) {68 e.printStackTrace(); //try……catch抛出异常69 }70 }717273/**74 * 写⼊TXT⽂件75*/76public void writeFile() {77 HOUR = Integer.valueOf(ho.getSelectedIndex()); //获取下拉框中的值,存储到HOUR中78 MIN = Integer.valueOf(mi.getSelectedIndex());79 String x = HOUR + ":" + MIN;80try (FileWriter writer = new FileWriter(pathname,true); //同上⾯的读取,本地⼈写⼊,注意:后⾯的append:true是表⽰不是重新写,⽽是在后⾯追加81 BufferedWriter out = new BufferedWriter(writer) //翻译⼀下再写⼊82 ) {8384 out.write(HOUR + ":" + MIN + "\r\n"); //这⾥写⼊的时候把:写进去了!85 out.flush(); // 把缓存区内容压⼊⽂件,计算机的存储过程,存在缓存区再写⼊⽂件86 JOptionPane.showMessageDialog(null,"闹钟添加成功!","添加闹钟提醒",RMATION_MESSAGE); //提⽰框:添加闹钟成功87 } catch (IOException e) {88 e.printStackTrace();8990 }9192 }939495/**96 * 删除闹钟,实际上是先将要删除的数据找到移除数组,再将数组重新写⼊,所以要先读取⽂件,再重新写⼊97*/98public void shanchuFile() {99 HOUR = Integer.valueOf(ho.getSelectedIndex());100 MIN = Integer.valueOf(mi.getSelectedIndex());101try (FileWriter writer = new FileWriter(pathname); //没有append:true,表⽰重新写!102 BufferedWriter out = new BufferedWriter(writer)103 ) {104 readFile();105for (int i = 0; i < 100; i++) {106if (Integer.valueOf(str[i][0])==HOUR && Integer.valueOf(str[i][1])==MIN){107continue;108 }109else{110 out.write(str[i][0]+":"+str[i][1]+"\r\n"); // \r\n即为换⾏111 }112 }113114//out.write("1"+"1"+"\r\n"); // \r\n即为换⾏115 out.flush(); // 把缓存区内容压⼊⽂件116 } catch (IOException e) {117 e.printStackTrace();118 }catch (NumberFormatException e){119 System.out.println("this isn't exist!");120 JOptionPane.showMessageDialog(null,"该闹钟已删除!","删除闹钟提醒",RMATION_MESSAGE); //弹窗提⽰121 }122 }123124/* 初始化函数 */125public void init() {126127 Calendar now = new GregorianCalendar(); //获取当前时间128/*129 * GregorianCalendar(标准阳历)130 * 是Calendar(⽇历)【国际环境下都能运⾏的程序】131 * 的⼦类132*/133 s = now.get(Calendar.SECOND) * 6; // 秒针转换成⾓度:1秒,秒针动⼀次,转动6°134 m = now.get(Calendar.MINUTE) * 6; // 分针转换为⾓度:1分,分针动⼀次,转动6°135 h = now.get(Calendar.HOUR) * 30 + now.get(Calendar.MINUTE) / 12 * 6; // 先把分化为⼩时,再乘以6°,因为分针转12°,时针才会转1°,⼀⼩时中间有5格,数学问题136/*137 * Calendar.HOUR 显⽰范围:1-12(⽆论AM还是PM) Calendar.HOUR_OF_DAY 显⽰范围:1-24(包括PM138*/139140 Thread t = new Thread(this); //添加线程,线程⽬标是整个程序,this141 t.start(); //线程就绪142 }143144public void paint(Graphics g) { //awt中的⽅法,因为要时时显⽰闹钟,所以不得不使⽤绘画的⽅式,不断重绘145super.paint(g);146/*147 * paint(g)函数会重绘图像,要加上super.paint(g),表⽰在原来图像的基础上,再画图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 设计报告书课程名称:JA V A语言程序设计设计题目:闹钟的设计与实现院系:计算机科学与信息工程系学生姓名:学号:专业班级:指导教师:**2010 年12 月28 日目录一、题目描述 (1)二、设计思路 (1)三、运行结果 (5)四、源代码 (6)五、总结 (10)六、参考文献 (10)闹钟的设计与实现一、题目描述:结合JA V A图形界面的知识设计一个闹钟二、设计思路1、设计要求:编写闹钟钟程序,要求画出时钟面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。
2、算法基本描述:本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。
3、设计思想与内容1、画出类的UML简图Clock类:23(1)当前动态时间的显示的设计与实现。
功能:可以实时的更新显示系统完整的时间算法:引入java.util.Date用while循环更新时间代码如下:public void run() {while (true) {Date now = new Date();//设置一个新的当前时间对象。
dangqian.setText("当前时间: " + now.toString());//显示当前的时间…}(2)音乐文件的选择。
功能:用打开按钮实现对本地音乐文件的选择算法:引入java.io.File和.MalformedURLException 来实现对音乐本地音乐文件的选择。
代码如下: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)";}});(3)闹铃功能的实现功能:到达设定闹钟时间,会有输出文字及产生音乐。
算法:读入Clock类中的时间,并设置一个Timer,每隔0.1秒进行比对,如果字符串之间匹配就显示,简化代码如下示意: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.*;public class clock extends JFrame implements Runnable { JLabel 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));} elser = Integer.parseInt(RI.getText());fo = true;} elseJOptionPane.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) {}}五、总结经过这次短短的一个礼拜的课程设计,发现自己的整体面向对象的编程能力大大提高,虽然相对于以前的实验更复杂,不过加强了对GUI、线程的等程序的练习。