1、JAVA洗衣机仿真程序实验报告及代码1实验题目: 用java编写洗衣机仿真程序2实验目的:1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程. 2.学会软件工程设计中的一系列分析研究,对需求分析,可行性研究,软件 模型等有一定的了解,为以后的软件设计工作打下良好的基础。3.通过的洗衣机仿真系统的编写与学习,加深了对Java这门语言的了解, 对其中的类的设计,类之间的关系,界面的设计(按钮及布局的设计)有了 更深的了解与体会,为Java的学习做好准备工作。3实验要求: 了解全自动洗衣机的简单工作过程及实现。其中包括,洗衣的方式(标准或是柔和)、洗衣中的水位选择(高水位洗衣、低水位洗衣等)等方面需
2、要在人们将衣服放入洗衣机洗衣服之后手动来选择;并且是必须选择的洗衣参数。当选择了一种洗衣参数后,按下启动按钮,洗衣机就会自动完成洗衣服的整个过程。在满足基本功能以外,还需要尽量考虑外观、造型、节水等方面的设计,符合人机界面的基本要求。 4实验分析:1.洗衣机需求分析:标准清洗:浸泡/清洗/甩干 快速清洗:清洗/甩干 大件衣物(冬衣,牛仔类):浸泡(温水,延长浸泡/清洗(延长筒转时间)/甩干 床单,窗帘类:浸泡(温水)/清洗 根据衣物的不同用按钮选择上述洗衣模式即可.其中甩干可选可不选.尽量设计了一个节水功能,可以实现水回收.在无需甩干时水不流走,余下的水可做其他用途,实现节水.2.主要的类实现
3、 (1).继承类(2).包括进水,排水,洗涤,漂洗,甩干等成员函数(3).水位的选择通过参数传递决定进水函数(4).其余通过调用筒的转动函数(run)并通过一定的参数控制实现3.程序设计步骤选择水温放入衣物选择洗衣模式脱水排水烘干关闭5设计与实现过程: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; pu
4、blic 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 JB
5、utton(排水); 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(
6、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); /没用?/调整这个组件,所以它具有
7、宽的宽度和高度高度。 /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.
8、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(); ); j
9、b3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) Tuoshui tuo=new Tuoshui(); ); jb6.addActionListener(new ActionListener() /ActionListener接收动作事件的监听器接口。在处理动作事件感兴趣的类实现这个接口,这个类创建的对象注册一个组件,使用组件的addActionListener方法。动作事件发生时,该对象的actionPerformed方法被调用。 public void actionPe
10、rformed(ActionEvent ae) System.exit(0); ); jf.setSize(700,150); jf.setVisible(true); /显示或隐藏这个窗口根据参数b值。 2,.按钮界面的实现: 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=n
11、ew 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)
12、; 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.a
13、dd(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(); ); jb4.addActionListener(new ActionList
14、ener() 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 ActionL
15、istener() public void actionPerformed(ActionEvent ae) Tuoshui tuo=new Tuoshui(); ); jb6.addActionListener(new ActionListener() /ActionListener接收动作事件的监听器接口。在处理动作事件感兴趣的类实现这个接口,这个类创建的对象注册一个组件,使用组件的addActionListener方法。动作事件发生时,该对象的actionPerformed方法被调用。 public void actionPerformed(ActionEvent ae) System.e
16、xit(0); ); jf.setSize(620,160); jf.setVisible(true); /显示或隐藏这个窗口根据参数b值。 6、实验过程【截图】【1】.功能菜单:【2】.选择温度【3】.加衣【4】.泡洗【5】脱水【6】.出水【6】.烘干七、技巧与体会 本次对洗衣机仿真系统的实现对于基础较为薄弱的自己是一次不小的任务,从中学会了很多东西,对软件工程导论这么课关于需求,关于可行性,关于模型的建立,对Java这门语言的基本语法和运用技巧和界面设计有了一定的了解。另外、由于以前写程序参照的居多,第一次知道要做此程序设计的时候心理很是没底,不知从何下手.本想按要求用C+,后来同学们都说
17、java的界面比较好做,于是决定用java,虽然java还没有学完,但和学过的某些语言相通的地方还是不少的,做起来也没有感到很大的困难,就是在如何把界面和类的运行联系起来上纠结了好几天,最终程序只是能运行简单的功能,并没有达到预期的效果.以后我会继续努力的!8、代码:1./import java.awt.BorderLayout;/import java.awt.Color;/import java.awt.Container;/import java.awt.Dimension;import java.awt.*;/import java.awt.event.ActionEvent;/imp
18、ort java.awt.event.ActionListener;import java.awt.event.*;/import javax.swing.JButton;/import javax.swing.JFrame;/import javax.swing.JLabel;/import javax.swing.JPanel;/import javax.swing.JProgressBar;/import javax.swing.Timer;import javax.swing.*;/import javax.swing.event.ChangeEvent;/import javax.s
19、wing.event.ChangeListener;import javax.swing.event.*;public class Chushui implements ActionListener,ChangeListener JFrame frame=null; JProgressBar progressbar; JLabel label; Timer timer; JButton b; public Chushui() frame=new JFrame(出水); frame.setBounds(400, 200, 300, 500); / frame.setDefaultCloseOpe
20、ration(JFrame.EXIT_ON_CLOSE); /控制窗口关闭 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); progressbar.setOrientation(JProgressBar.VERTICAL); /进度条方向 progressbar.setMinimum(0); progressbar.setMaximum(100); progressbar.setValue(100); /起始值 p
21、rogressbar.setStringPainted(true); progressbar.addChangeListener(this); progressbar.setPreferredSize(new Dimension(300,20); progressbar.setBorderPainted(true); /progressbar.setBackground(Color.pink); progressbar.setForeground(Color.GRAY); /进度条颜色 JPanel panel=new JPanel(); b=new JButton(出水); b.setFor
22、eground(Color.blue); /按钮颜色 b.addActionListener(this); panel.add(b); timer=new Timer(100,this); contentPanel.add(panel,BorderLayout.NORTH); contentPanel.add(progressbar,BorderLayout.CENTER); contentPanel.add(label,BorderLayout.SOUTH); /frame.pack(); frame.setVisible(true); public void actionPerformed
23、(ActionEvent e) if(e.getSource()=b) timer.start(); if(e.getSource()=timer) int value=progressbar.getValue(); if(value0) progressbar.setValue(-value); else timer.stop(); /frame.dispose(); public void stateChanged(ChangeEvent e1) int value=progressbar.getValue(); if(e1.getSource()=progressbar) label.s
24、etText(目前剩余:+Integer.toString(value)+%); label.setForeground(Color.blue); public static void main(String args) Chushui Chu=new Chushui(); 2、import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Honggan implements ActionListener,ChangeListener JFrame f
25、rame=null; JProgressBar progressbar; JLabel label; Timer timer; JButton b; public Honggan() frame=new JFrame(烘干); frame.setBounds(400, 400, 400, 200); / frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /控制窗口关闭 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); prog
26、ressbar = new JProgressBar(); /progressbar.setOrientation(JProgressBar.VERTICAL); /进度条方向 progressbar.setMinimum(0); progressbar.setMaximum(100); progressbar.setValue(0); progressbar.setStringPainted(true); progressbar.addChangeListener(this); progressbar.setPreferredSize(new Dimension(300,20); progr
27、essbar.setBorderPainted(true); /progressbar.setBackground(Color.pink); JPanel panel=new JPanel(); b=new JButton(开始); b.setForeground(Color.blue); /按钮颜色 b.addActionListener(this); panel.add(b); timer=new Timer(100,this); contentPanel.add(panel,BorderLayout.NORTH); contentPanel.add(progressbar,BorderL
28、ayout.CENTER); contentPanel.add(label,BorderLayout.SOUTH); /frame.pack(); frame.setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=b) timer.start(); if(e.getSource()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /frame.dispose(); public void stateChanged(ChangeEvent e1) public static void main(String args) Honggan Hong=new Honggan(); 3、import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Paoxi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1