JAVA洗衣机仿真程序实验报告及代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验题目:用java编写洗衣机仿真程序
二.实验目的:
1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程.
2.学会软件工程设计中的一系列分析研究,对需求分析,可行性研究,软件
模型等有一定的了解,为以后的软件设计工作打下良好的基础。
3.通过的洗衣机仿真系统的编写与学习,加深了对Java这门语言的了解,
对其中的类的设计,类之间的关系,界面的设计(按钮及布局的设计)有了更深的了解与体会,为Java的学习做好准备工作。
三.实验要求:
了解全自动洗衣机的简单工作过程及实现。其中包括,洗衣的方式(标准或是柔和)、洗衣中的水位选择(高水位洗衣、低水位洗衣等)等方面需要在人们将衣服放入洗衣机洗衣服之后手动来选择;并且是必须选择的洗衣参数。当选择了一种洗衣参数后,按下启动按钮,洗衣机就会自动完成洗衣服的整个过程。在满足基本功能以外,还需要尽量考虑外观、造型、节水等方面的设计,符合人机界面的基本要求。
四.实验分析:
1.洗衣机需求分析:
标准清洗:浸泡/清洗/甩干
快速清洗:清洗/甩干
大件衣物(冬衣,牛仔类):浸泡(温水,延长浸泡/清洗(延长筒转时间)/甩干床单,窗帘类:浸泡(温水)/清洗
根据衣物的不同用按钮选择上述洗衣模式即可.其中甩干可选可不选.
尽量设计了一个节水功能,可以实现水回收.在无需甩干时水不流走,余下的水可做其他用途,实现节水.
2.主要的类实现
(1).继承类
(2).包括进水,排水,洗涤,漂洗,甩干等成员函数
(3).水位的选择通过参数传递决定进水函数
(4).其余通过调用筒的转动函数(run)并通过一定的参数控制实现
3.程序设计步骤
≡≥选择水温
≡≥放入衣物
≡≥选择洗衣模式
≡≥脱水
≡≥排水
≡≥烘干
≡≥关闭
五.设计与实现过程:
1.洗衣机类的部分实现:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Washing extends JApplet{
private JFrame jf;
private JButton jb1,jb2,jb3,jb4,jb5,jb6;
public static void main(String[] args){
Washing flowTest=new Washing();
flowTest.setSize(270,160);
flowTest.go();
//flowTest.show(true);
}
public void go(){
jf=new JFrame("洗衣机功能模拟器");
Container cp=jf.getContentPane();
cp.setLayout(null);
jb1=new JButton("入水");
jb2=new JButton("加衣");
jb3=new JButton("脱水");
jb4=new JButton("排水");
jb5=new JButton("烘干");
jb6=new JButton("关闭");
// Container cp=jf.getContentPane();
// cp.setLayout(new BorderLayout());
jb1.setBounds(10, 10, 80, 80);
cp.add(jb1); //指定组件追加到这个容器的末尾。这是一个方便的方法为addImpl。
//注意:如果一个组件已被添加到一个已显示的容器,验证必须在该容器调用,以显示新的组件。如果正在添加多个组件,你可以通过调用验证只有一次,已添加的所有组件后提高效率。
jb2.setBounds(110, 10, 80, 80);
cp.add(jb2);
jb3.setBounds(210, 10, 80, 80);
cp.add(jb3);
jb4.setBounds(310, 10, 80, 80);
cp.add(jb4);
jb5.setBounds(410, 10, 80, 80);
cp.add(jb5);
jb6.setBounds(510, 10, 80, 80);
cp.add(jb6);
// jb7.setBounds(200, 50, 100, 20);
// cp.add(jb7);
//cp.setSize(500, 400); //没用?//调整这个组件,所以它具有宽的宽度和高度高度。
//cp.add(BorderLayout.SOUTH,jb7);
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Shuiwen wen=new Shuiwen();
}
});
jb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Yiwu yi=new Yiwu();
yi.go();
//flowTest.go();
}
});
jb4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Chushui Chu=new Chushui();
}
});
jb5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
//Piaoxi piao=new Piaoxi();
Honggan hong=new Honggan();
//Thread t=new Thread(hong);
// t.start();
}
});
jb3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Tuoshui tuo=new Tuoshui();
}
});
jb6.addActionListener(new ActionListener(){ //ActionListener接收动作事件的监听器接口。在处理动作事件感兴趣的类实现这个接口,这个类创建的对象注册一个组件,使用组件的addActionListener方法。动作事件发生时,该对象的actionPerformed方法被调用。
public void actionPerformed(ActionEvent ae){
System.exit(0);
}