微波炉仿真实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电学院
软件工程实验报告
——微波炉控制仿真
系部名称:
学生姓名:
专业名称:
班级:
一、实验目的
1、了解程序仿真的基本步骤
2、掌握需求分析的描述,并复习java 面向对象的程序设计方法
3、应用学到的软件设计方法
二、开发平台
本次实验老师要求用面向对象的编程语言,所以我选择了java ,在eclipse 底下进行编写
三、应用程序需求分析
1、微波炉原理
微波炉就是用微波来煮饭烧菜的。微波是一种电磁波。这种电磁波的能量不仅比通常的无线电波大得多,而且还很有“个性” :微波一碰到金属就发生反射,金属根本没有办法吸收或传导它;微波可以穿过玻璃、陶瓷、塑料等绝缘材料,但不会消耗能量;而含有水分的食物,微波不但不能透过,其能量反而会被吸收。微波炉里的磁控管的电子管是个微波发生器,它能产生每秒钟振动频率为24.5亿次的微波。这种肉眼看不见的微波,能穿透食物达5cm 深,并使食物中的水分子也随之运动,剧烈的运动产生了大量的热能,于是食物"煮"熟了。(参考百度)
2、需求分析
以前没有用过微波炉,不知道到底是如何工作的,就在网上看了些微波炉的使用,联想现实生活中用到的微波炉应有的功能,将它的工作原理用和主要功能用程序来模拟实现。
刚开始我想的这个微波炉应该简单易用,适用于各类人群。首先要安全。所以,做饭期间不能打开炉门,饭熟了或者炉内温度过高都应有警报提示,最好能有多种警报方式,并自动达到安全电压。其次,微波炉应提供多种做饭方式和方便简单的操作,方便大多数用户的需求。再者,做饭期间应该显示微波炉的工作状态及时长,并可以调节微波炉的工率,还应该能定时自动做饭,做饭前可以检测炉内是否放有食物寄托盘是否放好。主要功能就是以上所述,还有其他一些功能需求,就不在赘述。
3、功能、执行模块
功能模块
微波炉
煮饭 炒饭
调节功率 警报提示
执行模块
微波炉
4、软件截图
四、程序设计
本程序共分为五部分,主要代码如下
1)、application ()主窗口
public class Application {
private static JFrame frame = new JFrame("微波炉仿真程序");
private static FoodNotMatureWindow foodNotMaWin = new FoodNotMatureWindow(frame);
通电
参数设置 取出食物
加热完毕 显示时间 安全监测 加热
private static FoodMatureWindow foodMaWin = new FoodMatureWindow(frame); public Application(){
frame.setSize(500, 400);
frame.setVisible(true);
rame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setResizable(false);
publicInterFace.setWindowCentre(frame);
MainWindow mainwindow = new
MainWindow();frame.setContentPane(mainwindow);
}
public static void main(String[] args){
new Application();
}
public static void foodMatureDialog(){
foodMaWin.setVisible(true);
}
2)、FoodMatureWindow()食物熟
public class FoodMatureWindow extends JDialog {
private JLabel label = new JLabel("食物成熟,请取出食物");
public FoodMatureWindow(JFrame parent) {
super(parent,"提示",true);
setResizable(false);
PublicInterFace.setWindowCentre(this);
setLayout(new BorderLayout());
setSize(300,100);
label.setFont(new Font("Serif", Font.BOLD, 18));
add(label,BorderLayout.CENTER);
}
}
3)、FoodNotMatureWindow()食物未熟
public class FoodNotMatureWindow extends JDialog {
private JPanel panel = new JPanel();
private JPanel panelCenter = new JPanel();
private JLabel label = new JLabel("食物尚未成熟,确定要取出"); private JButton buttonCertain = new JButton("确定");
private JButton buttonCancel = new JButton("取消");
private boolean isCertain = false;
public FoodNotMatureWindow(JFrame parent) {
super(parent,"警告",true);
setResizable(false);
PublicInterFace.setWindowCentre(this);
setSize(300,100);
label.setFont(new Font("Serif", Font.BOLD, 18)); buttonCertain.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
isCertain = true;
setNotVisi();
}
});
buttonCancel.addActionListener(new ActionListener(){
public void actionPerformed(AcionEvent arg0) {
isCertain = false;
setNotVisi(); }
});
panel.add(buttonCertain);
panel.add(buttonCancel);
panelCenter.add(label);
panelCenter.setLayout(new FlowLayout());
setLayout(new BorderLayout());
add(panel,BorderLayout.SOUTH);
add(panelCenter,BorderLayout.CENTER);
}
public void setNotVisi(){
this.setVisible(false);
}
public boolean isCertain() {
return isCertain;
}