Java微波炉倒计时软件设计报告
JAVA计时器(秒表)程序代码
Java计时器(秒表)功能:能实现计时,暂停,清零,记录功能。
如下图:程序运行状态:源代码:import javax.swing.*;import java.awt.*;import .*;public class Test {public static void main(String[] args){new window("计时器");}}class window extends JFrame{int ON=0,i=0,j=0,k=0,count=0,num=1,R=0;JButton button1,button2,button3,button4,button5; JTextField file1,file2,file3;JTextArea file;FlowLayout flow;String a,b,c;window(String name){file1=new JTextField(2);file2=new JTextField(2);file3=new JTextField(2);file1.setEditable(false);file2.setEditable(false);file3.setEditable(false);file=new JTextArea(10,8);file.setEditable(false);button1=new JButton("开始");button2=new JButton("暂停");button3=new JButton("清零");button4=new JButton("记录");button5=new JButton("清空记录");flow=new FlowLayout();flow.setAlignment(FlowLayout.LEFT); flow.setHgap(20);flow.setVgap(10);setTitle(name);setSize(210,400);setLayout(flow);add(file1);add(new JLabel(":"));add(file2);add(new JLabel(":"));add(file3);add(button1);add(button2);add(button3);add(button4);add(button5);add(file);setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); file1.setText("0");file2.setText("0");file3.setText("0");validate();button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ON=1; //开始,暂停控制开关}}); //开始按钮button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ ON=0;}}); //暂停按钮button3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ R=1; //清零控制开关}}); //清零按钮button4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){count=1; //记录控制开关a=String.valueOf(i);b=String.valueOf(j);c=String.valueOf(k);}}); //记录按钮button5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){file.setText("");num=1;}}); //清除记录按钮while(true){validate();if(ON==1) //开始或暂停判断{file1.setText(String.valueOf(i));file2.setText(String.valueOf(j));file3.setText(String.valueOf(k));if(k==99){k=-1;j++;}if(j==60){k=0;j=0;i++;}if(i==24){i=0;j=0;k=0;}try{Thread.sleep(10);}catch(Exception e){}k++;}if(count==1)//记录判断{file.append(String.valueOf(num));file.append(". ");file.append(a);file.append(":");file.append(b);file.append(":");file.append(c);file.append("\n");num++;count=0;}if(R==1)//清零判断{i=j=k=0;file1.setText(String.valueOf(i));file2.setText(String.valueOf(j));file3.setText(String.valueOf(k));R=0;}}}}。
倒计时计时器设计报告
倒计时计时器设计任务和要求:一.设计任务:1.完成电路的理论设计2.参数的计算和有关器件的选择(分定时,秒计时,译码显示)3.对电路进行仿真4.撰写设计报告书一份:A3图纸最少一张,报告书要求写下以下内容(1)总体方案的选择和设计(2)各个单元电路的选择和设计(3)仿真电路的实现二.设计要求:用三个可置数的减计数器组成三位二-十进制减计数器,用三个译码器和三个LED数码管显示器,CMOS组成秒/分选择器,另外有控制电路,控制器随着计数器的状态发生变化,计数期间,用电气开关断开,当计时完毕时,用电气开关闭合。
倒计时计时器设计报告目录一、设计任务和要求 (1)二、设计的方案的选择与论证 (2)三、电路设计计算与分析 (3)3.1 脉冲发生电路3.2 计数器电路3.3 译码显示电路3.4 控制电路四、总结心得 (4)五、附录 (5)六、参考文献 (6)总的设计电路图地址:。
该设计是本原创设计,一切本人想要的功能均已实现,还望尊重我的劳动成果,谢绝转载,多谢配合!功能的实现我是在proteus中仿真的。
一、设计的方案的选择与论证通过对设计任务和要求的分析,可以确定该系统应包括秒脉冲发生器、减法计数器、译码显示电路、控制电路和报警电路等5个部分构成。
其中,计数器和控制电路是系统的主要部分。
倒计时计数器完成秒/分计时功能,而控制电路具有直接控制计数器的启动计数、暂停、连续计数、译码显示电路的显示和灭灯功能以及工作时间的调节。
为了满足系统的设计要求,在设计控制电路时,要先分析明白各个信号之间的时序关系。
在操作直接清零开关时,要求计数器清零,数码显示器显示零。
当启动开关闭合时,控制电路应封锁时钟信号CP,通过开关使计数器完成置数功能,译码显示电路显示相应时间字样;当启动开关断开时,计数器开始计数;当按下百位调节开关时,计数器加1;当按下十位调节开关时,计数器加1;当按下个位调节开关时,计数器同样加1;当暂停、连续开关拨在暂停位置上时,计数器停止计数,处于保持状态;当暂停、连续开关拨在连续时,计数器继续递减计数。
java课程设计微波炉
java课程设计微波炉一、教学目标本章节的教学目标为:1.知识目标:使学生掌握Java编程语言的基本语法和编程技巧,了解微波炉的基本原理和工作机制。
2.技能目标:培养学生运用Java编程语言实现微波炉相关功能的能力,提高学生的编程实践能力。
3.情感态度价值观目标:培养学生对科学探究的兴趣,增强学生对编程和工程技术领域的认同感和自信心。
二、教学内容本章节的教学内容为:1.Java编程语言的基本语法和编程技巧。
2.微波炉的基本原理和工作机制。
3.使用Java编程语言实现微波炉的相关功能,如加热、解冻、烧烤等。
三、教学方法本章节的教学方法为:1.讲授法:讲解Java编程语言的基本语法和编程技巧,微波炉的基本原理和工作机制。
2.案例分析法:分析微波炉的实际案例,引导学生运用Java编程语言解决实际问题。
3.实验法:学生动手实践,编写Java程序实现微波炉的相关功能。
四、教学资源本章节的教学资源包括:1.教材:《Java编程语言基础》2.参考书:《Java编程实践》3.多媒体资料:微波炉工作原理演示视频4.实验设备:计算机、编程环境、微波炉模型五、教学评估本章节的教学评估方式包括:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。
2.作业:评估学生提交的作业质量,包括编程练习和课后思考题,占总评的30%。
3.考试:期末进行一次Java编程相关的考试,测试学生的知识掌握和技能应用能力,占总评的40%。
六、教学安排本章节的教学安排如下:1.课时:共计16课时,每课时45分钟。
2.时间:安排在每周三和周五的下午第三节课。
3.地点:计算机实验室。
七、差异化教学本章节差异化教学策略包括:1.对于编程基础较好的学生,提供进阶的编程项目和实验,挑战他们的编程能力。
2.对于编程基础薄弱的学生,提供额外的辅导和练习,帮助他们巩固基础知识。
3.鼓励学生根据自己的兴趣选择不同的编程项目,激发他们的学习热情。
java窗口倒计时课程设计
java窗口倒计时课程设计一、课程目标知识目标:1. 理解Java图形用户界面(GUI)编程的基础知识,掌握窗口(Frame)的创建和使用。
2. 学习使用Java的事件处理机制,掌握倒计时功能的设计与实现。
3. 掌握线程(Thread)的概念及运用,实现动态时间显示。
技能目标:1. 能够运用Swing组件创建一个简单的窗口程序。
2. 能够独立编写事件监听器,实现按钮等控件的交互功能。
3. 能够运用线程实现倒计时功能,并掌握线程同步和通信。
4. 能够对程序进行调试和优化,解决常见的运行错误。
情感态度价值观目标:1. 培养学生的逻辑思维能力和问题解决能力,增强对编程的兴趣和自信心。
2. 培养学生的团队协作精神,学会在项目开发中相互支持和沟通。
3. 培养学生严谨的学习态度,养成良好的编程习惯,关注程序的可读性和可维护性。
课程性质:本课程为实践性较强的课程,结合Java编程知识,培养学生的实际操作能力。
学生特点:学生已经具备基本的Java编程知识,有一定的独立编程能力,但对图形用户界面编程和线程控制尚不熟悉。
教学要求:教师需引导学生通过实践操作,掌握Java窗口倒计时编程的核心知识,注重培养学生的动手能力和实际应用能力。
在教学过程中,关注学生的个体差异,提供个性化指导,确保每位学生能够达到预定的学习目标。
通过课程学习,使学生能够将所学知识应用于实际项目中,提高解决实际问题的能力。
二、教学内容1. Java GUI编程基础:- Swing库简介- JFrame窗口的创建与设置- 常用组件的使用(如按钮、文本框、标签等)- 事件处理机制(事件、事件监听器、事件适配器)2. 倒计时功能设计:- 倒计时逻辑分析- 定时器(Timer)的使用- 时间格式化与显示- 倒计时核心代码编写与调试3. 线程控制:- 线程的概念与创建- 线程的生命周期- 线程同步与通信- 线程安全与死锁问题4. 实践项目:Java窗口倒计时程序- 项目需求分析- 界面设计与布局- 功能模块划分与编码- 程序调试与优化教学内容安排与进度:第一课时:Java GUI编程基础,介绍Swing库、JFrame窗口及常用组件的使用。
数电实验一:倒计时定时器、BCD代码转化器(设计报告)
数电实验1设计报告实验名称:倒计时定时器 实验目的:1.掌握组合逻辑与时序逻辑电路的设计方法及调试方法2.熟练掌握常用MSI 逻辑芯片的功能及使用方法3.初步掌握Verilog HDL 数字系统设计方法4.熟悉PLD 实验箱的结构和使用及Quartus II 软件的基本操作5.掌握采用Quartus II 软件和实验箱设计实现逻辑电路的基本过程设计任务及要求:一、 倒计时定时器:用适当的中小规模集成电路设计一个定时器,实现60s 以内的定时功能,可以设置60s 以内任何时间作为倒计时的起点,将设计下载到实验箱并进行硬件功能测试。
要求:用开关或按键进行定时设置倒计时计数状态用两位数码管显示计时结束时用彩灯或声响作为提电路设计过程: 1.关于74192芯片 可实现减法计数:74HC192 两位:两片74HC1922.不进行任何的反馈,预置也不起作用的一位倒计时器U174192N A 15B 1C 10D 9UP 5QA 3QB 2QC 6QD 7DOWN4~LOAD 11~BO 13~CO12CLR 14加法计数功能,UP 为加法脉冲输入端 减法计数功能,Down 为减法脉冲输入端 减法计数到0000时,借位Bo =0 加法计数到1111时进位Co =03.计到零停止计数功能,设置启动开关,启动前停在预置值5.加入译码器完成数码管显示设计原理图:数码管动态扫描原理图:分析统图:管脚分配方案:实验题目:BCD代码转换器实验目的:1、掌握组合逻辑与时序逻辑电路的设计方法及调试方法2、熟练掌握常用MSI逻辑芯片的功能及使用方法3、初步掌握Verilog HDL数字系统设计方法4、熟悉PLD试验箱的结构和使用及Quartus 2软件的基本操作5、掌握用Quartus2软件和实验箱设计实现逻辑电路的基本方法设计任务:BCD代码转换1、8421码与5421码之间的转换2、余3码与5421之间的转换3、8421码与2421码之间的转换4、5421码与2421码之间的转换用74283和其它中小规模组合电路实现代码之间的双向可控转换,完成对逻辑设计的波形仿真、下载电路设计步骤(一)、代码转换的设计:写出真值表,找出逻辑关系,利用加法器和逻辑器件,设计对应的电路原理图1、8421码与5421码8421:0000、0001、0010、0011、0100、0101、0110、0111、1000、10015421:0000、0001、0010、0011、0100、1000、1001、1010、1011、1100方法:8421到5421后五个数加00115421到8421后五个数加1101利用开关控制器:1表示8421到5421,0表示54214到84212、余3码与5421码余3码:0011、0100、0101、0110、0111、1000、1001、1010、1011、11005421码:0000、0001、0010、0011、0100、1000、1001、1010、1011、1100方法:余3码到5421:前五个数加11015421到余3码:前五个数加0011利用开关控制器:0表示余3码到5421,1表示5421到余3码3、8421吗与2421码8421:0000、0001、0010、0011、0100、0101、0110、0111、1000、10012421:0000、0001、0010、0011、0100、1011、1100、1101、1110、1111方法:8421到2421:后五个数加01102421到8421:后五个数加1010利用开关控制器:1表示8421到2421,0表示2421到84214、5421码与2421码5421码:0000、0001、0010、0011、0100、1000、1001、1010、1011、11002421码:0000、0001、0010、0011、0100、1011、1100、1101、1110、1111方法:5421到2421:后五个数加00112421到5421:后五个数加1101利用开关控制器:1表示2421到5421,0表示5421到2421原理图、下载电路及管脚分配:1、8421码与5421码之间的转换管脚分配:2、余三与5421码之间的转换管脚分配:3、8421码与2421码管脚分配:4、5421码与2421码管脚分配:。
30秒计时器设计报告资料
30秒计时器设计报告资料设计报告资料:30秒计时器【一、项目概述】本项目旨在设计一个30秒计时器,能够在用户设定的时间内精准计时,同时显示剩余的时间,并且在倒计时结束时发出提醒音。
【二、项目需求】1.设计一个可调节的计时器,用户可以通过设置按钮来调整计时时间。
2.使用LCD显示剩余时间,以便用户能够清楚地看到剩余多少时间。
3.在倒计时结束时能够发出声音提醒用户。
【三、硬件设计】1. 主控芯片:使用Arduino Uno作为主控芯片。
2.倒计时显示屏:使用16x2字符LCD显示屏,能够显示剩余时间。
3.按钮:使用两个按钮,一个用来增加时间,一个用来减少时间。
4.喇叭:使用一个喇叭用于发出提醒音。
【四、软件设计】1.初始化:设定默认的计时时间为30秒,并将剩余时间显示在LCD 上。
2. 按钮检测:使用Arduino的digitalRead(函数来检测按键是否按下。
3.按钮处理:根据按钮的不同,增加或减少计时时间,并在LCD上更新剩余时间。
4. 计时:使用Arduino的millis(函数来获取当前时间,并与设定的倒计时时间相减,得到剩余时间,并在LCD上更新。
5.提醒音:当剩余时间为0时,发出提醒音。
【五、关键技术】1. 使用Arduino Uno作为主控芯片,能够方便地编程和控制其他硬件模块。
2.使用16x2字符LCD显示屏,能够显示剩余时间,并且在计时过程中能够实时更新。
3.使用按钮进行计时时间的调节,能够方便地对计时时间进行设置。
4.使用喇叭发出提醒音,提醒用户计时结束。
【六、预期成果】通过完成本项目,可以得到一个功能完善的30秒计时器,用户可以通过按钮来调节计时时间,并能够清晰地看到剩余时间的显示。
同时,在倒计时结束时会发出提醒音,提醒用户时间到了。
【七、项目进度安排】1. 第一周:收集所需硬件和软件资料,搭建开发环境并熟悉Arduino编程技术。
2.第二周:完成硬件设计,连接主控芯片、LCD显示屏、按钮和喇叭,并进行初步调试。
Java实验报告(w3,w4)
int startPosition=0,endPosition=0;
char cStart='а',cEnd='я';
startPosition=(int)cStart; // cStart做int类型转换运算,并将结果赋值给startPosition
i=j;
}
else if(n<a[j]){
k=j;
}
j=(i+k)/2;
count++;
if(count>a.length/2)
break;
}
if(n==a[j]){
System.out.printf("%d在这个数组中",n);
}
else
System.out.printf("%d不在这个数组中",n);
}
}
后面采用count次数判断是否刚好在查找到最小数时停止,是则输出查找成功,否则没有找到。
while(n!=a[j]){
if(n>a[j]){
i=j;
}
else if(n<a[j]){
k=j;
}
j=(i+k)/2;
count++;
if(count>a.length/2+1)
break;
}
if(count>a.length/2&&a[0]!=n){
}
System.out.println(" ");
}
4、采用大一时用C语言写的算法思想,直接进行判断。
倒计时器实训报告
一、实训目的本次实训旨在使学生掌握倒计时器的基本原理、电路设计方法及制作过程,提高学生的动手能力、创新能力和团队合作精神。
通过本次实训,学生能够:1. 理解倒计时器的工作原理及电路组成;2. 掌握倒计时器电路的设计与制作方法;3. 学会使用常用电子元件及电路调试技巧;4. 培养学生的团队协作精神和创新意识。
二、实训内容1. 倒计时器原理及电路分析2. 倒计时器电路设计与制作3. 倒计时器调试与测试4. 倒计时器性能优化三、实训过程1. 倒计时器原理及电路分析倒计时器是一种计时装置,用于实现预定时间的倒计时功能。
其工作原理如下:(1)利用计数器实现倒计时功能,通常采用十进制计数器(如74LS160);(2)利用555定时器产生1Hz的方波信号,作为计数器的时钟信号;(3)通过按键输入预定时间,实现倒计时;(4)当倒计时结束时,发出报警信号。
2. 倒计时器电路设计与制作(1)电路设计根据倒计时器原理,设计如下电路:- 74LS160计数器作为核心元件,实现倒计时功能;- 555定时器产生1Hz方波信号;- 按键输入预定时间;- 报警电路实现倒计时结束报警。
(2)电路制作按照电路设计图,制作如下电路:- 将74LS160、555定时器、按键、报警电路等元件焊接在电路板上;- 连接电路板上的元件,确保连接正确;- 进行电路调试,检查电路是否正常工作。
3. 倒计时器调试与测试(1)调试- 检查电路连接是否正确,确保无短路、断路现象;- 对电路进行调试,观察倒计时功能是否正常;- 检查报警电路是否在倒计时结束时发出报警信号。
(2)测试- 测试倒计时器在不同预定时间下的倒计时功能;- 测试报警电路是否在倒计时结束时发出报警信号;- 测试电路的抗干扰性能。
4. 倒计时器性能优化根据测试结果,对倒计时器进行以下优化:- 调整电路参数,提高倒计时精度;- 优化报警电路,增强报警效果;- 改进电路设计,提高电路可靠性。
JAVA小游戏“华容道”软件设计报告讲解
命题方式:单独命题佛山科学技术学院2013—2014学年第二学期《可视化编程技术》课程期末考试试题A专业、班级:12教技2班姓名:何颖康学号:2012914209 成绩:佛山科学技术学院《可视化编程技术》课程设计报告小游戏“华容道”设计AJA V何颖康学生姓名:2012914209 号:学2年级专业:12级教育技术学班容汝佳指导老师:院:教育科学学院学广东★佛山年2014提交日期:6月1摘要:本程序根据手机游戏“智力大爆炸”为原版,加入历史元素,将娱乐、学习和思考集于一体。
程序执行后,点击相应的人物,然后按上下左右键可以移动。
点击重新开始按钮,可以将各个人物的位置重置。
如果目的地的面积能够容得下当前要移动的人物,则认为可以移动。
当曹操移动到“曹操到达该位置”的位置的时候,认为程序结束。
java小游戏,华容道,益智,历史元素,曹操移动关键字:前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。
用java写的微波炉msoft
import java.awt.BorderLayout;import java.awt.Color;import java.awt.EventQueue;import java.awt.Font;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.border.EmptyBorder;public class msoft extends JFrame {static JPanel contentPane;static JLabel lblNewLabel;JPanel panel;static JTextField jTextField1;static JTextField jTextField2;static JTextField jTextField6;DateFormat dFormat = new SimpleDateFormat("HH:mm:ss");Date time;String t;int h = 0;int m = 0;int s = 0;int t1=0;boolean powerFlag = false;boolean stratFlag = false;int s2=0;int s3=0;int y=0;int y1=0;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {msoft frame = new msoft();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public msoft() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 610, 450);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setBounds(100, 100, 500, 400);contentPane.setBackground(Color.GRAY);contentPane.setLayout(null);SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String LableString;LableString = df.format(new Date());lblNewLabel = new JLabel("");lblNewLabel.setBounds(10, -70, 150, 200);jTextField2 = new JTextField();jTextField2.setBackground(new Color(20, 0, 20));jTextField2.setFont(new Font("Arial", 3, 48));jTextField2.setBounds(0, 0, 600, 100);jTextField2.setForeground(new Color(0, 204, 0));jTextField2.setText(LableString);jTextField2.setLayout(null);panel = new JPanel();panel.setBorder(new EmptyBorder(5, 5, 5, 5));panel.setBounds(0, 100, 390, 310);panel.setLayout(null);panel.setBackground(Color.black);jTextField1 = new JTextField();jTextField1.setBackground(new Color(20, 0, 20));jTextField1.setFont(new Font("Arial", 3, 48));jTextField1.setBounds(390, 100, 200, 80);jTextField1.setForeground(new Color(0, 204, 0));jTextField1.setText("00:00:00");jTextField1.setLayout(null);jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { actionPerformed(evt);}});JButton jButton1 = new JButton("+5s");jButton1.setBounds(390, 220, 70, 30);jButton1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {jButton1ActionPerformed(evt);}});JButton jButton2 = new JButton("+1min");jButton2.setBounds(460, 220, 70, 30);jButton2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {jButton2ActionPerformed(evt);}});JButton jButton3 = new JButton("+1h");jButton3.setBounds(530, 220, 70, 30);jButton3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {jButton3ActionPerformed(evt);}});JTextField jTextField3 = new JTextField();jTextField3.setBackground(Color.DARK_GRAY);jTextField3.setBounds(450, 260, 10, 10);JTextField jTextField4 = new JTextField();jTextField4.setBackground(Color.DARK_GRAY);jTextField4.setBounds(518, 260, 10, 10);JTextField jTextField5 = new JTextField();jTextField5.setBackground(Color.DARK_GRAY);jTextField5.setBounds(585, 260, 10, 10);JButton jButton4 = new JButton("小火");jButton4.setBounds(390, 250, 60, 30);jButton4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {if(powerFlag==false)JOptionPane.showMessageDialog(null, "请先打开电源!", "提示",JOptionPane.ERROR_MESSAGE);if(s1==0&&powerFlag==true){ jTextField3.setBackground(Color.RED);jTextField4.setBackground(Color.DARK_GRAY);jTextField5.setBackground(Color.DARK_GRAY);s1=1;s2=s3=0;}else{ jTextField3.setBackground(Color.DARK_GRAY);s1=0;}}});JButton jButton5 = new JButton("中火");jButton5.setBounds(458, 250, 60, 30);jButton5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {if(powerFlag==false)JOptionPane.showMessageDialog(null, "请先打开电源!", "提示",JOptionPane.ERROR_MESSAGE);if(s2==0&&powerFlag==true){ jTextField4.setBackground(Color.RED);jTextField3.setBackground(Color.DARK_GRAY);jTextField5.setBackground(Color.DARK_GRAY);s2=1;s1=s3=0;}else{ jTextField4.setBackground(Color.DARK_GRAY);s2=0;}}});JButton jButton6 = new JButton("大火");jButton6.setBounds(525, 250, 60, 30);jButton6.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt) {if(powerFlag==false)JOptionPane.showMessageDialog(null, "请先打开电源!", "提示",JOptionPane.ERROR_MESSAGE);if(s3==0&&powerFlag==true){ jTextField5.setBackground(Color.RED);jTextField3.setBackground(Color.DARK_GRAY);jTextField4.setBackground(Color.DARK_GRAY);s3=1;s1=s2=0;}else{ jTextField5.setBackground(Color.DARK_GRAY);s3=0;}}});jTextField6 = new JTextField();jTextField6.setBackground(Color.DARK_GRAY);jTextField6.setBounds(550, 190, 20, 15);JButton jButton7 = new JButton("电源");jButton7.setBounds(450, 180, 100, 30);jButton7.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { jButton7ActionPerformed(evt);}});JButton jButton8 = new JButton("解冻");jButton8.setBounds(530, 380, 70, 30);jButton8.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { s=30;h=0;m=0;y=1;Run1Text e = new Run1Text();t3 = new Thread(e);t3.start();}});JButton jButton9 = new JButton("开始");jButton9.setBounds(460, 380, 70, 30);jButton9.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { stratFlag=true;if(t1>0){ t1=0;h = all / 3600;m = all % 3600 / 60;s = all % 60;}if(y==1){Run1Text e = new Run1Text();t3 = new Thread(e);t3.start();y=0;}else{RunText r = new RunText();t2 = new Thread(r);t2.start();}}});JButton jButton10 = new JButton("牛奶/ 咖啡");jButton10.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { m=5;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton11 = new JButton("面包/ 馒头"); jButton11.setBounds(495, 290, 105, 30);jButton11.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { s=60;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton12 = new JButton("米饭");jButton12.setBounds(390, 320, 70, 30);jButton12.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { m=10;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton13 = new JButton("蔬菜");jButton13.setBounds(460, 320, 70, 30);jButton13.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { s=30;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton14 = new JButton("烤肉");jButton14.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { m=10;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton15 = new JButton("蒸鱼");jButton15.setBounds(390, 350, 70, 26);jButton15.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { m=20;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton16 = new JButton("煮面");jButton16.setBounds(460, 350, 70, 26);jButton16.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { m=3;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton17 = new JButton("其它");jButton17.setBounds(530, 350, 70, 26);jButton17.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { s=10;RunText r = new RunText();t2 = new Thread(r);t2.start();}});JButton jButton18 = new JButton("暂停");jButton18.setBounds(390, 380, 70, 30);jButton18.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt) { t1= 10000;if(y==1){Run1Text e = new Run1Text();t3 = new Thread(e);t3.start();}else{RunText r = new RunText();t2 = new Thread(r);t2.start();}}});contentPane.add(jButton1);contentPane.add(jButton2);contentPane.add(jButton3);contentPane.add(jButton4);contentPane.add(jButton5);contentPane.add(jButton6);contentPane.add(jButton7);contentPane.add(jButton8);contentPane.add(jButton9);contentPane.add(jButton10);contentPane.add(jButton11);contentPane.add(jButton12);contentPane.add(jButton13);contentPane.add(jButton14);contentPane.add(jButton15);contentPane.add(jButton16);contentPane.add(jButton17);contentPane.add(jButton18);contentPane.add(panel);contentPane.add(jTextField1);contentPane.add(jTextField2);contentPane.add(jTextField3);contentPane.add(jTextField4);contentPane.add(jTextField5);contentPane.add(jTextField6);panel.add(lblNewLabel);setContentPane(contentPane);}int p=0;public void displayTest() {int allSeconds = h * 3600 + m * 60 + s;int h1 = allSeconds / 3600;int m1 = allSeconds % 3600 / 60;int s1 = allSeconds % 60;String timeString = h1 + ":" + m1 + ":" + s1;jTextField1.setText(timeString);p=allSeconds;}int all;public void plusTest() {int m12=0;int allSeconds = h * 3600 + m * 60 + s ;if(powerFlag==true){while(allSeconds>t1){if(p!=0){allSeconds+=p;p=0;h=m=s=0;}int h1 = allSeconds / 3600;int m1 = allSeconds % 3600 / 60;int s1 = allSeconds % 60;String gh= h1 + ":" + m1 + ":" + s1;jTextField1.setText(gh);try {Thread.sleep(1000); //程序停顿1s} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}allSeconds--;all=allSeconds;m12=1;}if(allSeconds==0&&m12==1){ jTextField1.setText("00:00:00");h=s=m=0;JOptionPane.showMessageDialog(null, "您的食物烹饪已完成!", "提示",JOptionPane.ERROR_MESSAGE);}}elseJOptionPane.showMessageDialog(null, "请先打开电源(并检查是否按下开始键)!", "提示",JOptionPane.ERROR_MESSAGE);}public void plus1Test() {int allSeconds = h * 3600 + m * 60 + s;if(powerFlag==true){while(allSeconds>t1){if(p!=0){allSeconds+=p;p=0;}int h1 = allSeconds / 3600;int m1 = allSeconds % 3600 / 60;int s1 = allSeconds % 60;String gh= h1 + ":" + m1 + ":" + s1;jTextField1.setText(gh);try {Thread.sleep(1000); //程序停顿1s} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}allSeconds--;all=allSeconds;m1=1;}if(allSeconds==0){ jTextField1.setText("00:00:00");h=m=s=0;JOptionPane.showMessageDialog(null, "您的食物已完成解冻!", "提示",JOptionPane.ERROR_MESSAGE);}}elseJOptionPane.showMessageDialog(null, "请先打开电源(并检查是否按下开始键)!", "提示",JOptionPane.ERROR_MESSAGE);}class RunText extends Thread {public void run() {// TODO Auto-generated method stubplusTest();}}class Run1Text extends Thread {public void run() {// TODO Auto-generated method stubplus1Test();}}static Thread t2;static Thread t3;private void jButton1ActionPerformed(ActionEvent evt) {if(powerFlag==true){s=5;h=0;m=0;displayTest();}elseJOptionPane.showMessageDialog(null, "请先打开电源" +"!", "提示", JOptionPane.ERROR_MESSAGE);}private void jButton2ActionPerformed(ActionEvent evt) {if(powerFlag==true){m=1;h=0;s=0;displayTest();}elseJOptionPane.showMessageDialog(null, "请先打开电源!", "提示",JOptionPane.ERROR_MESSAGE);}private void jButton3ActionPerformed(ActionEvent evt) {if(powerFlag==true){h=1;s=0;m=0;displayTest();}elseJOptionPane.showMessageDialog(null, "请先打开电源!", "提示",JOptionPane.ERROR_MESSAGE);}private void jButton7ActionPerformed(ActionEvent evt) {if(powerFlag==false){jTextField6.setBackground(Color.orange);powerFlag = true;t1=0;p=0;}else{powerFlag = stratFlag = false;jTextField6.setBackground(Color.DARK_GRAY);h = m = s=0 ;t1=10000;jTextField1.setText("00:00:00");}}}。
EDA课程设计(微波炉定时控制器)
目录一、设计题目和要求-----------------------------------------------------------------2二、设计思路--------------------------------------------------------------------------2三、单元模块设计--------------------------------------------------------------------3 --------------------------------------------------------------------------------------------83.1、FENPIN模块设计-----------------------------------------------------(3,4)3.2、FIRST模块设计------------------------------------------------------(4,5)3.3、JIANJISHU模块设计------------------------------------------------(5,6)3.4、CHOICE和VIEW模块设计------------------------------------------(7,8)四、硬件实验---------------------------------------------------------------------------8五、心得体会---------------------------------------------------------------------------9 附页:程序代码------------------------------------------------------------------------10 ---------------------------------------------------------------------------------------------17一、设计题目和要求设计题目为:微波炉定时控制器要求:1、复位开关:2、启动开关:3、烹调时间设置:4、烹调时间显示:5、七段码测试:6、启动输出:7、按TEST键可以测试七段码管,显示为“8888”;8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0时,显示烹调完成信息“CDEF”二、设计思路A.先有一个大概的模块话设计,就如下图:B:再在上面大模块的基础上进行改进增加复位端和测试端复位测试C:具体的设计过程:1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。
Java程序设计实验报告_2
Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。
二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。
三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。
3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。
4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。
这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。
对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。
五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。
数电课程设计--微波炉定时控制器的设计与制作
课程设计课程名称数字电子技术课题名称微波炉定时控制器的设计与制作专业测控技术与仪器班级测控1101学号 201101200127姓名指导教师2013年 10月 28 日——2013年11月8日课程设计任务书课程名称:数字电子技术题目:微波炉定时控制器的设计与制作——B题任务书下达日期2013年10月28日星期一设计完成日期 2013年11月8日星期五目录第一章设计总体思路,基本原理和框图(总电路图)1.1 设计要求 (8)1.2 设计总体思路 (9)1.3整体设计框图 (9)二单元电路设计(各单元电路图)2.1单元电路设计思路 (10)2.2功能的分部实现 (11)2.3总电路图 (14)三安装、调试步骤3.1安装步骤 (15)3.2调试步骤 (15)四故障分析与电路改进 (16)五总结与体会 (17)附录 (18)评分表 (19)第一章1.1 设计要求:设计制作一个微波炉定时控制器电路,具有三档微波加热功能,分别表示微波加热为烹调、烘烤、解冻,试验中用LED模拟。
具体设计要求如下:1.实现工作步骤:复位待机,设置输出功能和定时器初值,启动定时和工作开始,结束烹调、音响提示。
2.设置三个功能预置键:具有三档微波加热功能, 分别用三个按键来设置不同功能,表示微波炉工作状态为烹调、烘烤、解冻,试验时分别使用三个LED来模拟输出(三个LED不能同时亮)。
3.设置4位时间预置键:用四个消抖按键分别进行秒个位、秒十位、分个位和分十位的操作时间设置,采用十进制的递增计数方式预置定时器初值,最大预设数为99分99秒。
4.设置开启键:设定功能和时间初值后,按开启键,使计时电路以秒为单位作倒计时。
当计时到时间为0则断开微波加热器,停止计时并给出声音提示。
5.设置复位键:在工作过程中按复位键时,微波加热被随时中止,处于待机状态,三个LED均不亮(即表示控制器输出的微波功率控制信号为0),时间显示电路显示为00.00。
java实验报告实验报告java实验报告Java
java实验报告实验报告java实验报告Java一、实验目的本次实验的目的是熟悉Java语言,了解Java程序结构,掌握Java程序的开发流程,加深对Java语言特性的认识和理解。
二、实验内容本次实验内容为设计一个简单的Java程序,包括设计程序的需求分析、设计方案、编写代码、测试运行结果等环节。
三、实验分析3.1 需求分析设计一个Java程序,要求该程序能够实现以下功能:1. 用户可以输入两个数,程序可以对这两个数进行加、减、乘、除的操作,并输出运算结果。
2. 用户可以输入一个字符串,程序可以对该字符串进行反转输出。
3.2 设计方案根据需求分析,我们可以先设计一个简单的界面,包括输入框、选择运算符号的下拉框,以及一个按钮,当用户输入完毕后点击按钮即可进行相应的操作。
3.3 编写代码根据设计方案,我们先编写一个简单的界面代码:import java.awt.*;import javax.swing.*;public class Calculator extends JFrame {private JTextField text1, text2, text3;private JComboBox<String> combo;private JButton calcBtn, reverseBtn, factBtn;public Calculator() {super("Calculator");text1 = new JTextField(5);text2 = new JTextField(5);text3 = new JTextField(10);combo = new JComboBox<String>(new String[]{"+", "-", "*", "/"});calcBtn = new JButton("Calculate");reverseBtn = new JButton("Reverse");factBtn = new JButton("Factorial");JPanel panel2 = new JPanel();panel2.add(new JLabel("String:"));panel2.add(text3);panel2.add(reverseBtn);pack();setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}该界面中包含了3个面板,一个用于加减乘除,一个用于字符串反转,一个用于阶乘操作。
java实验报告5 常用类
《Java程序设计》课程实验报告(第 5 次)学院:数学与计算机学院姓名:学号:专业:软件工程班级:实验地点:分析测试中心6A-1实验时间:2019.10.22指导教师:2.将上面1中的程序按如下要求修改,并运行:(1)程序中的s6改写成String s6=new String(“1a12b”);运行时提示怎样的错误?出现数字格式转换异常(2)请用数组a的前3个单元创建一个字符串并输出该串。
String c=new String(a,0,3);System.out.println(c);(3)请给出获取path中“jsp”子字符串的代码。
String b=path.substring(8,11);System.out.println(b);(4)在程序的适当位置增加如下代码,注意输出的结果。
String str1=new String(“ABCABC”),str2=null,str3=null,str4=null;str2=str1.replaceAll(“A”,”First”);str3=str2.replaceAll(“B”,”Second”);str4=str3.replaceAll(“C”,”Third”);System.out.println(str1);System.out.println(str2);System.out.println(str3);System.out.println(str4);(5)可以使用Long类中的下列static方法得到整数各种进制的字符串表示: Public static String toBinaryString(long i)Public static String toOctalString(long i)Public static String toHexString(long i)Public static String toString(long i,int p)其中的toString(long i, int p)返回整数i的p进制表示。
Java实验报告_实验二
Java实验报告_实验⼆实验2 类和对象【实验宗旨】每天做⼀点编程练习。
【实验⽬的】1、学习和掌握Java创建对象的⽅法。
2、学习和掌握通过创建对象、使⽤类的⽅法。
3、学习和掌握Java类定义的⽅法。
4、了解类设计的⼀般原则。
【实验内容】1、(Java API类的应⽤)使⽤java.util.Random类,创建种⼦是1000的Random对象,然后使⽤nextInt(100)⽅法显⽰0到100 之间前50个随机整数。
【实验预习】创建Random对象,含有1000个种⼦,然后输出其中的前50个⽆输⼊,创建Random random = new Random(1000);利⽤for循环输出前50的随机数。
【实验过程及结果记录】import java.util.Random;public class JavaText {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}}【实验总结】练习产⽣随机数的⽅法(Random).2.(使⽤StackOfIntegers类,显⽰素数因⼦)编写⼀个程序,提⽰⽤户输⼊⼀个正整数,然后以降序显⽰它的所有最⼩因⼦。
例如:如果整数为120,那么显⽰的最⼩因⼦为5、3、2、2、2。
使⽤StackOfIntegers类存储因⼦(如:2、2、2、3、5),获取之后按倒序显⽰这些因⼦。
【实验预习】练习类的调⽤,使⽤StackOfIntegers类【实验过程及结果记录】import java.util.*;import java.awt.*;import javax.swing.*;public class zhiyinshu{public static void main (String[] args) {StackOfIntegers h1 =new StackOfIntegers(); StackOfIntegers h2 =new StackOfIntegers();String str=JOptionPane.showInputDialog(null,"请输⼊⼀个正整数","分解质因数",JOptionPane.QUESTION_MESSAGE); int yuanshu = Integer.parseInt(str);int i=2;int b=0;int c=0;do{i=2;b=0;do{if(yuanshu%i==0){yuanshu=yuanshu/i;h1.jilu(i);b=1;}i++;}while(b==0&&i}while(ih1.jilu(yuanshu);c=h1.getsize();for(int v=0;vh2.jilu(h1.esc());for(int v=0;vSystem.out.print(""+h2.esc()+"\n"); }}class StackOfIntegers {private int size;private int[] zhan;public static final int a=16;public StackOfIntegers(){this(a);}public StackOfIntegers(int n){zhan = new int[n];}public void jilu(int up) {if(size>=zhan.length){int[] temp = new int[zhan.length * 2];System.arraycopy(zhan,0,temp,0,zhan.length);zhan=temp;}zhan[size++]=up;}public int esc(){return zhan[--size];}public int getsize(){return size;}}【实验总结】练习了创建随机数的⽅法以及Java的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。
EDA课程设计(微波炉定时控制器)
目录一、设计题目和要求-----------------------------------------------------------------2二、设计思路--------------------------------------------------------------------------2三、单元模块设计--------------------------------------------------------------------3 --------------------------------------------------------------------------------------------83.1、FENPIN模块设计-----------------------------------------------------(3,4)3.2、FIRST模块设计------------------------------------------------------(4,5)3.3、JIANJISHU模块设计------------------------------------------------(5,6)3.4、CHOICE和VIEW模块设计------------------------------------------(7,8)四、硬件实验---------------------------------------------------------------------------8五、心得体会---------------------------------------------------------------------------9 附页:程序代码------------------------------------------------------------------------10 ---------------------------------------------------------------------------------------------17一、设计题目和要求设计题目为:微波炉定时控制器要求:1、复位开关:2、启动开关:3、烹调时间设置:4、烹调时间显示:5、七段码测试:6、启动输出:7、按TEST键可以测试七段码管,显示为“8888”;8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0时,显示烹调完成信息“CDEF”二、设计思路A.先有一个大概的模块话设计,就如下图:B:再在上面大模块的基础上进行改进增加复位端和测试端复位测试C:具体的设计过程:1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。
java窗口倒计时课程设计
java窗口倒计时课程设计一、教学目标本节课的教学目标是使学生掌握Java窗口倒计时功能的基本实现方法。
知识目标要求学生了解Java图形用户界面(GUI)编程的基本概念,理解窗口(JFrame)、按钮(JButton)和计时器(Timer)等组件的使用方法。
技能目标则要求学生能够独立设计并实现一个简单的窗口倒计时程序。
情感态度价值观目标在于培养学生的编程兴趣,提高他们解决实际问题的能力,并培养他们耐心和细心的学习态度。
二、教学内容本节课的教学内容主要包括Java GUI编程基础、窗口组件的使用、事件处理以及计时器的应用。
首先,将介绍Java GUI编程的基本概念,引导学生理解图形用户界面的构成和重要性。
接着,详细讲解如何使用窗口组件JFrame创建一个窗口,并引入按钮JButton的基本用法,让学生能够通过按钮激发特定事件。
随后,将教授如何使用Java的计时器(Timer)来实现倒计时功能,强调定时器的重要性和基本配置。
最后,通过实例演示和练习,让学生动手实践,编写并测试自己的窗口倒计时程序。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用讲授法、案例分析法和实验法等多种教学方法。
讲授法用于向学生传授Java GUI编程的基础知识和窗口组件的使用方法。
案例分析法将通过分析示例代码和实际案例,帮助学生理解窗口倒计时程序的设计思路。
实验法则是通过编程实践,让学生在动手操作中学习和掌握Java编程技巧。
在教学过程中,将鼓励学生提问和讨论,促进师生互动,确保学生能够充分理解并熟练应用所学知识。
四、教学资源本节课的教学资源包括教材、多媒体教学演示、在线编程环境和实验设备。
教材将提供Java GUI编程的基础知识和窗口组件的详细用法。
多媒体教学演示将通过图解和视频形式,生动展示窗口倒计时程序的实现过程。
在线编程环境将允许学生在课堂上实时编写和测试代码。
实验设备如计算机和编程软件,则是学生进行实验和练习的必要工具。
java倒计时实验报告_单片机倒计时实验报告.docx
java倒计时实验报告_单⽚机倒计时实验报告.docx单⽚机倒计时实验报告 《单⽚机原理及应⽤》 课程设计报告 专业电⼦信息⼯程班级XX01姓名黄升平指导⽼师周莹莲、廖亦凡 ⼆0⼀⼆年⼗⼆⽉⼆⼗五⽇ 课程设计任务书 ⼀、设计题⽬:答辩倒计时器⼆、设计要求 设计⼀个答辩倒计时器,⽤2位数码管显⽰剩余分钟,2位数码管显⽰剩余秒,复位后显⽰表⽰设定10分钟,并可加减修改,按开始/取消按钮开始倒计时,再次按开始/取消按钮则复位,时间到则蜂鸣⾳提⽰。
总体要求如下:1、⽅案论证,确定总体电路原理图。
2、元器件选择,设计PCB图。
3、绘制程序流程图,编写汇编语⾔源程序。
4、安装调试,实现倒计时器的基本功能。
三、设计报告内容 1、写出设计⽅案,给出完整的电路原理图和设计程序流程图。
2、对所设计⽅案的实现进⾏全⾯分析。
3、编程调试⽅法和程序清单。
4、安装调试过程,出现的各种现象,总结经验和体会。
5、进⼀步完善的设想。
⽬录 ⼀、课程设计⽬的....................................................................................1⼆、课程设计题⽬描述和要求................................................................1三、课程设计报告内容............................................................................1 硬件电路.........................................................................................................................2复位电路.......................................................(转载于:写论⽂⽹:单⽚机倒计时实验报告)...........................................................3晶振电路..................................................................................................................3单⽚机最⼩系统....................................................................................................4硬件流程图 (4)源程序设计...................................................................................................................5程序清单..................................................................................................................5程序流程图..............................................................................................................6 四、设计过程.. (7)实践步骤.........................................................................................................................7实践标准.........................................................................................................................7系统调试...................................。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
佛山科学技术学院《可视化编程技术》课程设计报告微波炉烹调倒计时设计学生姓名:叶惠东学号:2011914205年级专业:11级教育技术学2班指导老师:容汝佳学院:教育科学学院广东★佛山提交日期:2013年6月目录1. 前言 (2)2.概要设计 (3)2.1 开发环境 (3)2.2 模拟微波炉烹调食物倒计时过程的功能 (3)2.3 界面设计 (3)2.4 类的框架结构图 (4)3. 详细设计 (4)3.1 使用的JAVA类的说明 (4)3.2 类的主要方法 (5)3.2.1按钮运作处理 (5)3.2.2时间运作处理 (6)3.2.3外观处理 (6)3.2.5 程序流程图 (8)4. 运行过程 (8)5. 源程序 (9)参考文献 (27)设计总结 (27)摘要:该程序是一个图形界面的简单的java模拟微波炉烹调食物倒计时,具有良好的界面,使用人员能快捷简单地进行操作。
其操作方法简便易学,让大众都能容易接受。
时间的选择从时精确到秒,让烹饪者可以有很好的选择,精确到秒,让食物的美味做到极致。
只需通过调节时间,当食物烹饪时间到了,就会有灯光与音乐的提醒,让烹饪者在期间安心去烹调其它的食物。
关键字:java程序,微波炉,倒计时,事件,方法1 前言随着科学技术的不断发展,传统的烹饪的方法已经远远不能满足我们的需要了。
所以我编写一个与日常生活相关的微波炉烹调食物倒计时,这是一个实用简单的烹调食物倒计时,以满足在现代烹饪的需求。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。
还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。
Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。
作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。
Java 语言去掉了C++语言的一些容易引起错误的特性。
Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。
2 概要设计2.1开发环境开发平台:Microsoft Windows XP Professional Service Pack 2开发工具:JBuilder 2007 + JDK 1.6.0_022.2计算器功能功能1:平日显示器显示的是一个笑脸及欢迎使用微波炉的文字。
功能2:按下数字键,时间框上就会显示将要烹饪的时间,从小时到分再到秒。
功能3:当按下“开始”键,微波炉就会开始运作,指示灯显示正在烹饪的黄色。
功能4:当按下“停止”键,微波炉就会停止运作,指示灯显示不在烹饪状态的灰色。
功能5:当按上“清零”键,微波炉就会把先前调好的时间全部会清除,烹饪的时间可以重新调节。
功能5:当烹饪时间到了,指示灯就会显示不在烹饪状态的灰色,同时放出提示音乐。
2.3界面设计微波炉烹饪食物倒计时面板2.4类的框架结构图3详细设计3.1模拟微波炉烹调食物倒计时设计使用的Java类的说明类名:public A()作用: 构造函数类名:public void init()作用: 该方法用于初始化成员变量及添加各组件类名: public void run()作用: 实现接口接口Runnable的方法类名: public void setEnabled(boolean bool)作用: 设置组件的使用状态,true:可以使用,false:禁止使用类名:public void setNum()作用: 设置定时器和计时器类名: public void paint(Graphics h)作用: 设定欢迎语和笑脸类名:pub public void setColor(Color c)作用: 设置组件的“指示灯”标签的边框及前景色类名: public void actionPerformed(ActionEvent ae)作用: 事件处理3.2类的事件处理3.2.1按钮运作处理public void actionPerformed(ActionEvent ae){//当用户点击“开始”按钮时if(ae.getActionCommand ().equals ("开始")){//当所预定的时间不为“0”时才可响应“开始”按钮事件if(!tf.getText ().equals ("00:00")){t = new Thread(this); //创建一个线程类对象t.start (); //启动线程烹调开始setColor(Color.YELLOW); //烹调开始设置指示灯颜色为“YELLOW”黄色setEnabled(false); //禁用按钮功能b[11].setText ("停止"); //设置按钮文本为"停止"}}//当用户点击“停止”按钮时else if(ae.getActionCommand ().equals ("停止")){t.stop (); //终止线程烹调结束setEnabled(true); //启用按钮功能setColor(Color.GRAY); //烹调结束设置指示灯颜色为“GRAY”灰色setNum(); //计时清零b[11].setText ("开始"); //设置按钮文本为"开始"}//当用户点击“清零”按钮”时else if(ae.getActionCommand ().equals ("清零")){setNum(); //计时清零}//当用户点击数字按钮时else{String s = ae.getActionCommand (); //相当于按钮上的文本内容int i = Integer.parseInt (s); //类型转换:String--int//num[0]~num[3]分别是分钟第一,二个数和秒钟第一,二个数if(num[0]==-1){ //==1 表示还没有设置分钟第一个数if(i<6){ //分钟不能超过59,所以第一个数字不能大于6tf.setText(i+"0:00"); //比如"30:00"num[0] = i; //存储分钟第一个数"3"}}else if(num[1]==-1){//同上// 分钟第二个数从0~9没限制tf.setText(num[0]+""+i+":00");num[1] = i;}else if(num[2]==-1){//...if(i<6){tf.setText(num[0]+""+num[1]+":"+i+"0");num[2] = i;}}else if(num[3]==-1){tf.setText(num[0]+""+num[1]+":"+num[2]+""+i);num[3] = i;}}}3.2.2时间运作处理public void run(){for(int i=0;i<4;i++){//因为初始化是-1,当用户没有全部重置计时器的四个数时,将-1设为0if(num[i]==-1)num[i] = 0;}while(true){try{Thread.sleep (1000); //休眠一秒}catch(InterruptedException ie){ie.printStackTrace ();}if(num[3]!=0){ //秒钟第二个数不为"0"num[3]--;System.out .println("正在加热中!");}else{ //为"0"num[3] = 9; //重置为"9"if(num[2]!=0){ //秒钟第一个数不为"0"num[2]--;System.out .println("正在加热中!");}else{ //为"0"num[2] = 5; //重置为"5"if(num[1]!=0){ //分钟第二个数不为"0"num[1]--;System.out .println("正在加热中!");}else{ //为"0"num[1] = 9; //重置为"9"if(num[0]!=0){ //分钟第一个数不为"0"num[0]--;System.out .println("正在加热中!");}else{ //都为"0"时,烹调结束setColor(Color.GRAY);setEnabled(true);b[11].setText ("开始");System.out .println("加热完成!");setNum();break;}}}}String time = num[0]+""+num[1]+":"+num[2]+""+num[3];tf.setText (time); //刷新定时器System.out.println("surplus time is: "+time);}}3.2.3外观处理p public void init(){l1 = new JLabel("美的微波炉");l2 = new JLabel("指示灯");tf = new JTextField(4);tf = new JTextField(3);l2.setFont (new Font(Font.SERIF,Font.BOLD,35)); //设置字体属性,指示灯tf.setFont (new Font(Font.SERIF,Font.BOLD,35));//显时器tf.setFont (new Font(Font.SERIF,Font.BOLD,50));//显时器tf.setBackground (Color.black); //设置背景色tf.setBackground (Color.GRAY); //设置背景色tf.setEditable (false); //设置不可编辑tf.setHorizontalAlignment (SwingConstants.CENTER); //文本内容居中显示tf.setBorder (BorderFactory.createLoweredBevelBorder ());//设置边框属性p1 = new JPanel(new FlowLayout(FlowLayout.CENTER,25,50));//上的大小p2 = new JPanel(new GridLayout(4,3,5,5));p1.add(l1);p1.add(tf);p1.add(l2);for(int i=0;i<12;i++){b[i] = new JButton(s[i]);p2.add(b[i]);b[i].addActionListener (this);}b[9].setForeground (Color.blue); //设置前景色,停止b[11].setForeground (Color.RED);//开始setColor(Color.GRAY); //方法调用设置颜色,指示灯setNum(); //方法调用设置定时器p2.setBorder (BorderFactory.createEtchedBorder ());//p3.setBorder (BorderFactory.createEtchedBorder ());add(p1,BorderLayout.NORTH);//上add(p2,BorderLayout.CENTER);//下//add(p3,BorderLayout.SOUTH);//上}3.2.4设计的总体认识●JA V A设计的摘要●JA V A设计的目录结构●JA V A设计的概要和详细设计●JA V A设计的版权意识●JA V A设计需要编译的环境●JA V A设计的实用性3.2.5程序流程图图3绘制模拟微波炉烹调食物倒计时设计的PAD图4运行过程图4微波炉烹饪食物倒计时过程显示5 程序清单://package 模拟微波炉烹调食物倒计时过程;import java.applet.*;import java.awt.*;import java.awt.event.*;import java.io.IOException;import javax.sound.sampled.AudioInputStream;import javax.swing.*;import org.omg.CORBA.portable.InputStream;public class A extends JFrame implements ActionListener,Runnable{ private static final String AudioPlayer = null;AudioClip ac;JLabel l2,l3;//布局JTextField tf;//接口JPanel p1,p2;//面板容器JButton[] b = new JButton[13];//按钮组件String[] s = {"7","8","9","4","5","6","1","2","3","清零","0","开始"};int[] num = new int[4]; //储存分钟和秒钟的四个数字Thread t; //声明一个线程private JLabel l1;private Label L1;private Panel P1;public A(){ //构造函数init();this.setTitle ("微波炉烹调食物控制器");this.pack(); //设置默认大小位置this.setLocationRelativeTo (null); //窗口居中this.setVisible(true);//this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);}//该方法用于初始化成员变量及添加各组件public void init(){l1 = new JLabel("美的微波炉");l2 = new JLabel("指示灯");tf = new JTextField(4);tf = new JTextField(3);l2.setFont (new Font(Font.SERIF,Font.BOLD,35)); //设置字体属性,指示灯tf.setFont (new Font(Font.SERIF,Font.BOLD,35));//显时器tf.setFont (new Font(Font.SERIF,Font.BOLD,50));//显时器tf.setBackground (Color.black); //设置背景色tf.setBackground (Color.GRAY); //设置背景色tf.setEditable (false); //设置不可编辑tf.setHorizontalAlignment (SwingConstants.CENTER); //文本内容居中显示tf.setBorder (BorderFactory.createLoweredBevelBorder ());//设置边框属性p1 = new JPanel(new FlowLayout(FlowLayout.CENTER,25,50));//上的大小p2 = new JPanel(new GridLayout(4,3,5,5));p1.add(l1);p1.add(tf);p1.add(l2);for(int i=0;i<12;i++){b[i] = new JButton(s[i]);p2.add(b[i]);b[i].addActionListener (this);}b[9].setForeground (Color.blue); //设置前景色,停止b[11].setForeground (Color.RED);//开始setColor(Color.GRAY); //方法调用设置颜色,指示灯setNum(); //方法调用设置定时器p2.setBorder (BorderFactory.createEtchedBorder ());//p3.setBorder (BorderFactory.createEtchedBorder ());add(p1,BorderLayout.NORTH);//上add(p2,BorderLayout.CENTER);//下//add(p3,BorderLayout.SOUTH);//上}//实现接口接口Runnable的方法public void run(){for(int i=0;i<4;i++){//因为初始化是-1,当用户没有全部重置计时器的四个数时,将-1设为0if(num[i]==-1)num[i] = 0;}while(true){try{Thread.sleep (1000); //休眠一秒}catch(InterruptedException ie){ie.printStackTrace ();}if(num[3]!=0){ //秒钟第二个数不为"0"num[3]--;System.out .println("正在加热中!");}else{ //为"0"num[3] = 9; //重置为"9"if(num[2]!=0){ //秒钟第一个数不为"0"num[2]--;System.out .println("正在加热中!");}else{ //为"0"num[2] = 5; //重置为"5"if(num[1]!=0){ //分钟第二个数不为"0"num[1]--;System.out .println("正在加热中!");}else{ //为"0"num[1] = 9; //重置为"9"if(num[0]!=0){ //分钟第一个数不为"0"num[0]--;System.out .println("正在加热中!");}else{ //都为"0"时,烹调结束setColor(Color.GRAY);setEnabled(true);b[11].setText ("开始");System.out .println("加热完成!");setNum();break;}}}}String time = num[0]+""+num[1]+":"+num[2]+""+num[3];tf.setText (time); //刷新定时器System.out.println("surplus time is: "+time);}}//设置组件的使用状态,true:可以使用,false:禁止使用public void setEnabled(boolean bool){for(int i=0;i<11;i++){b[i].setEnabled (bool);}}//设置定时器和计时器public void setNum(){tf.setText("00:00");for(int i=0;i<4;i++){num[i] = -1;}}//public void paint(Graphics h){h.drawOval(40,40, 150, 150);h.fillOval(60, 90, 30, 10);h.fillOval(140, 90, 30, 10);h.drawLine(115, 105, 115, 120);h.drawArc(70, 80, 95, 95, 0, -180);String str="欢迎您使用模拟微波炉" +"烹调食物倒计时!";Font f=new Font("楷体",Font.PLAIN,24);h.setFont(f);FontMetrics fm=getFontMetrics(f);int x=200;int y=70;h.drawString(str, x, y);}//设置组件的“指示灯”标签的边框及前景色public void setColor(Color c){l2.setBorder (BorderFactory.createLineBorder (c));l2.setForeground (c);}//public void init1(){ac=getAudioClip(getCodeBase(),"sound.wav");}private AudioClip getAudioClip(Object codeBase, String string) { // TODO Auto-generated method stubreturn null;}private Object getCodeBase() {// TODO Auto-generated method stubreturn null;}public void start(){ac.loop();}public void stop(){ac.stop();}//事件处理public void actionPerformed(ActionEvent ae){//当用户点击“开始”按钮时if(ae.getActionCommand ().equals ("开始")){//当所预定的时间不为“0”时才可响应“开始”按钮事件if(!tf.getText ().equals ("00:00")){t = new Thread(this); //创建一个线程类对象t.start (); //启动线程烹调开始setColor(Color.YELLOW); //烹调开始设置指示灯颜色为“YELLOW”黄色setEnabled(false); //禁用按钮功能b[11].setText ("停止"); //设置按钮文本为"停止"}}//当用户点击“停止”按钮时else if(ae.getActionCommand ().equals ("停止")){t.stop (); //终止线程烹调结束setEnabled(true); //启用按钮功能setColor(Color.GRAY); //烹调结束设置指示灯颜色为“GRAY”灰色setNum(); //计时清零b[11].setText ("开始"); //设置按钮文本为"开始"play("sound.wav");}//当用户点击“清零”按钮”时else if(ae.getActionCommand ().equals ("清零")){setNum(); //计时清零}//当用户点击数字按钮时else{String s = ae.getActionCommand (); //相当于按钮上的文本内容int i = Integer.parseInt (s); //类型转换:String--int//num[0]~num[3]分别是分钟第一,二个数和秒钟第一,二个数if(num[0]==-1){ //==1 表示还没有设置分钟第一个数if(i<6){ //分钟不能超过59,所以第一个数字不能大于6tf.setText(i+"0:00"); //比如"30:00"num[0] = i; //存储分钟第一个数"3"}}else if(num[1]==-1){//同上// 分钟第二个数从0~9没限制tf.setText(num[0]+""+i+":00");num[1] = i;}else if(num[2]==-1){//...if(i<6){tf.setText(num[0]+""+num[1]+":"+i+"0");num[2] = i;}}else if(num[3]==-1){tf.setText(num[0]+""+num[1]+":"+num[2]+""+i);num[3] = i;}}}//主程序public static void main(String[] args){new A();}}参考文献丁振凡薛清华《java语言程序设计》清华大学出版社设计总结(自己所做的主要工作与体会)学了JA V A一个学期,总感觉自己对JA V A的认识还是在很浅,在很多方面都还是不怎么清楚地认识。