JAVA洗衣机仿真程序实验报告及代码.docx
《JAVA洗衣机仿真程序实验报告及代码.docx》由会员分享,可在线阅读,更多相关《JAVA洗衣机仿真程序实验报告及代码.docx(36页珍藏版)》请在冰点文库上搜索。
JAVA洗衣机仿真程序实验报告及代码
1.实验题目:
用java编写洗衣机仿真程序
2.实验目得:
1、熟悉并掌握洗衣机(全自动)得工作原理与运行过程、
2、学会软件工程设计中得一系列分析研究,对需求分析,可行性研究,软件ﻩ模型等有一定得了解,为以后得软件设计工作打下良好得基础。
3、通过得洗衣机仿真系统得编写与学习,加深了对Java这门语言得了解,对其中得类得设计,类之间得关系,界面得设计(按钮及布局得设计)有了更深得了解与体会,为Java得学习做好准备工作。
3.实验要求:
了解全自动洗衣机得简单工作过程及实现。
其中包括,洗衣得方式(标准或就是柔与)、洗衣中得水位选择(高水位洗衣、低水位洗衣等)等方面需要在人们将衣服放入洗衣机洗衣服之后手动来选择;并且就是必须选择得洗衣参数。
当选择了一种洗衣参数后,按下启动按钮,洗衣机就会自动完成洗衣服得整个过程.在满足基本功能以外,还需要尽量考虑外观、造型、节水等方面得设计,符合人机界面得基本要求。
4.实验分析:
1.洗衣机需求分析:
标准清洗:
浸泡/清洗/甩干
快速清洗:
清洗/甩干
ﻩ大件衣物(冬衣,牛仔类):
浸泡(温水,延长浸泡/清洗(延长筒转时间)/甩干
床单,窗帘类:
浸泡(温水)/清洗
根据衣物得不同用按钮选择上述洗衣模式即可、其中甩干可选可不选、
尽量设计了一个节水功能,可以实现水回收、在无需甩干时水不流走,余下得水可做其她用途,实现节水、
2、主要得类实现
(1)、继承类
(2)、包括进水,排水,洗涤,漂洗,甩干等成员函数
(3)、水位得选择通过参数传递决定进水函数
(4)、其余通过调用筒得转动函数(run)并通过一定得参数控制实现
3、程序设计步骤
≡≥选择水温
≡≥放入衣物
≡≥选择洗衣模式
≡≥脱水
≡≥排水
≡≥烘干
≡≥关闭
5.设计与实现过程:
1、洗衣机类得部分实现:
importjavax、swing、*;
importjava、awt、*;
importjava、awt、event、*;
public classWashing extendsJApplet{
ﻩprivateJFramejf;
privateJButtonjb1,jb2,jb3,jb4,jb5,jb6;
ﻩpublicstaticvoidmain(String[]args){
Washing flowTest=newWashing();
ﻩflowTest、setSize(270,160);
ﻩflowTest、go();
ﻩ//flowTest、show(true);
}
ﻩpublicvoidgo(){
ﻩﻩjf=newJFrame("洗衣机功能模拟器");
ﻩContainercp=jf、getContentPane();
ﻩcp、setLayout(null);
jb1=newJButton(”入水”);
jb2=newJButton("加衣”);
ﻩﻩjb3=newJButton("脱水");
ﻩjb4=newJButton(”排水");
ﻩﻩ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(newActionListener(){
ﻩﻩpublicvoidactionPerformed(ActionEventae){
ﻩﻩﻩﻩShuiwen wen=newShuiwen();
ﻩﻩ}
});
ﻩﻩjb2、addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventae){
ﻩﻩYiwuyi=new Yiwu();
ﻩﻩyi、go();
ﻩﻩﻩ//flowTest、go();
ﻩﻩ}
ﻩﻩ});
ﻩjb4、addActionListener(newActionListener(){
ﻩpublic voidactionPerformed(ActionEvent ae){
ﻩﻩﻩChushuiChu=new Chushui();
ﻩ}
ﻩ});
jb5、addActionListener(newActionListener(){
ﻩpublicvoidactionPerformed(ActionEvent ae){
ﻩ//Piaoxipiao=newPiaoxi();
ﻩﻩﻩHongganhong=newHonggan();
ﻩﻩ//Thread t=new Thread(hong);
ﻩ // t、start();
ﻩﻩ}
ﻩﻩ});
ﻩjb3、addActionListener(newActionListener(){
ﻩﻩpublicvoidactionPerformed(ActionEventae){
ﻩﻩTuoshuituo=newTuoshui();
ﻩﻩ}
ﻩﻩ});
ﻩﻩjb6、addActionListener(newActionListener(){ﻩ//ActionListener接收动作事件得监听器接口。
在处理动作事件感兴趣得类实现这个接口,这个类创建得对象注册一个组件,使用组件得addActionListener方法。
动作事件发生时,该对象得actionPerformed方法被调用。
ﻩﻩpublicvoidactionPerformed(ActionEventae){
ﻩﻩSystem、exit(0);
ﻩﻩ}
ﻩ});
jf、setSize(700,150);
ﻩjf、setVisible(true);//显示或隐藏这个窗口根据参数b值。
}
}
2,、按钮界面得实现:
ﻩpublic voidgo(){
ﻩﻩjf=newJFrame(”洗衣机功能模拟器");
ﻩContainer cp=jf、getContentPane();
ﻩcp、setLayout(null);
jb1=newJButton("入水");
ﻩjb2=newJButton("加衣”);
ﻩjb3=newJButton("脱水");
ﻩjb4=new JButton(”排水");
jb5=newJButton("烘干");
jb6=newJButton(”关闭”);
ﻩ//Container cp=jf、getContentPane();
//ﻩcp、setLayout(newBorderLayout());
ﻩﻩ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(){
ﻩpublicvoid actionPerformed(ActionEvent ae){
ﻩﻩﻩﻩShuiwenwen=newShuiwen();
ﻩ}
});
ﻩﻩjb2、addActionListener(new ActionListener(){
publicvoidactionPerformed(ActionEventae){
ﻩﻩﻩYiwu yi=newYiwu();
ﻩyi、go();
ﻩ}
});
ﻩjb4、addActionListener(newActionListener(){
ﻩﻩﻩpublicvoid actionPerformed(ActionEventae){
ﻩﻩChushuiChu=new Chushui();
ﻩ}
ﻩ});
ﻩﻩjb5、addActionListener(newActionListener(){
ﻩﻩpublicvoid actionPerformed(ActionEventae){
ﻩﻩﻩ//Piaoxipiao=new Piaoxi();
ﻩHongganhong=newHonggan();
ﻩﻩ//Threadt=new Thread(hong);
ﻩﻩ //t、start();
ﻩﻩ}
});
jb3、addActionListener(new ActionListener(){
ﻩﻩﻩpublicvoid actionPerformed(ActionEventae){
ﻩTuoshui tuo=newTuoshui();
ﻩ}
});
ﻩﻩjb6、addActionListener(newActionListener(){ﻩﻩﻩ//ActionListener接收动作事件得监听器接口。
在处理动作事件感兴趣得类实现这个接口,这个类创建得对象注册一个组件,使用组件得addActionListener方法。
动作事件发生时,该对象得actionPerformed方法被调用。
ﻩpublic voidactionPerformed(ActionEvent ae){
ﻩSystem、exit(0);
ﻩ}
ﻩﻩ});
ﻩﻩjf、setSize(620,160);
ﻩjf、setVisible(true);ﻩ//显示或隐藏这个窗口根据参数b值.
ﻩ}
6、实验过程【截图】
【1】、功能菜单:
【2】、选择温度
【3】、加衣
【4】、泡洗
【5】脱水
【6】、出水
【6】、烘干
七、技巧与体会
本次对洗衣机仿真系统得实现对于基础较为薄弱得自己就是一次不小得任务,从中学会了很多东西,对软件工程导论这么课关于需求,关于可行性,关于模型得建立,对Java这门语言得基本语法与运用技巧与界面设计有了一定得了解。
另外、由于以前写程序参照得居多,第一次知道要做此程序设计得时候心理很就是没底,不知从何下手、本想按要求用C++,后来同学们都说java得界面比较好做,于就是决定用java,虽然java还没有学完,但与学过得某些语言相通得地方还就是不少得,做起来也没有感到很大得困难,就就是在如何把界面与类得运行联系起来上纠结了好几天,最终程序只就是能运行简单得功能,并没有达到预期得效果、以后我会继续努力得!
8、代码:
1、
//importjava、awt、BorderLayout;
//importjava、awt、Color;
//importjava、awt、Container;
//importjava、awt、Dimension;
import java、awt、*;
//importjava、awt、event、ActionEvent;
//importjava、awt、event、ActionListener;
importjava、awt、event、*;
//importjavax、swing、JButton;
//importjavax、swing、JFrame;
//importjavax、swing、JLabel;
//importjavax、swing、JPanel;
//importjavax、swing、JProgressBar;
//import javax、swing、Timer;
importjavax、swing、*;
//import javax、swing、event、ChangeEvent;
//importjavax、swing、event、ChangeListener;
importjavax、swing、event、*;
publicclassChushui implementsActionListener,ChangeListener{
ﻩJFrameframe=null;
ﻩJProgressBarprogressbar;
ﻩJLabellabel;
Timer timer;
JButton b;
publicChushui(){
ﻩframe=newJFrame(”出水");
frame、setBounds(400,200,300, 500);
// frame、setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);ﻩﻩ//控制窗口关闭
ﻩContainercontentPanel=frame、getContentPane();
ﻩlabel=newJLabel(”",JLabel、CENTER);
progressbar=newJProgressBar();
progressbar、setOrientation(JProgressBar、VERTICAL);ﻩ//进度条方向
progressbar、setMinimum(0);
progressbar、setMaximum(100);
ﻩprogressbar、setValue(100);ﻩﻩ//起始值
progressbar、setStringPainted(true);
ﻩprogressbar、addChangeListener(this);
progressbar、setPreferredSize(newDimension(300,20));
progressbar、setBorderPainted(true);
ﻩ//progressbar、setBackground(Color、pink);
ﻩ progressbar、setForeground(Color、GRAY);ﻩ//进度条颜色
ﻩJPanelpanel=newJPanel();
b=newJButton("出水");
ﻩ b、setForeground(Color、blue);ﻩ//按钮颜色
b、addActionListener(this);
panel、add(b);
timer=newTimer(100,this);
contentPanel、add(panel,BorderLayout、NORTH);
ﻩ contentPanel、add(progressbar,BorderLayout、CENTER);
contentPanel、add(label,BorderLayout、SOUTH);
ﻩ //frame、pack();
ﻩ frame、setVisible(true);
}
ﻩpublicvoidactionPerformed(ActionEvente){
if(e、getSource()==b){
ﻩ timer、start();
ﻩ }
if(e、getSource()==timer){
ﻩintvalue=progressbar、getValue();
if(value>0)
ﻩ progressbar、setValue(-—value);
ﻩ else{
timer、stop();
ﻩ//frame、dispose();
ﻩ }
}
}
ﻩpublicvoid stateChanged(ChangeEvente1){
intvalue=progressbar、getValue();
if(e1、getSource()==progressbar){
ﻩ label、setText("目前剩余:
"+Integer、toString(value)+"%");
label、setForeground(Color、blue);
ﻩ }
}
ﻩpublicstaticvoidmain(String[] args) {
ﻩChushuiChu=newChushui();
ﻩ}
}
2、importjava、awt、*;
importjava、awt、event、*;
importjavax、swing、*;
importjavax、swing、event、*;
publicclassHongganimplementsActionListener,ChangeListener {
ﻩJFrame frame=null;
JProgressBarprogressbar;
ﻩJLabellabel;
ﻩTimertimer;
ﻩJButtonb;
ﻩpublicHonggan(){
ﻩ frame=new JFrame(”烘干");
ﻩframe、setBounds(400,400, 400, 200);
//frame、setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);ﻩﻩﻩ//控制窗口关闭
ﻩContainer contentPanel=frame、getContentPane();
ﻩ label=newJLabel("",JLabel、CENTER);
ﻩprogressbar= 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));
progressbar、setBorderPainted(true);
//progressbar、setBackground(Color、pink);
JPanelpanel=newJPanel();
b=new JButton(”开始");
b、setForeground(Color、blue);ﻩﻩﻩ//按钮颜色
b、addActionListener(this);
ﻩ panel、add(b);
ﻩtimer=newTimer(100,this);
contentPanel、add(panel,BorderLayout、NORTH);
contentPanel、add(progressbar,BorderLayout、CENTER);
contentPanel、add(label,BorderLayout、SOUTH);
ﻩ //frame、pack();
ﻩ frame、setVisible(true);
ﻩ}
ﻩpublicvoidactionPerformed(ActionEvent e){
ﻩif(e、getSource()==b){
timer、start();
ﻩ}
ﻩif(e、getSource()==timer){
ﻩﻩ intvalue=progressbar、getValue();
ﻩﻩif(value〈100)
ﻩﻩ progressbar、setValue(++value);
ﻩ else{
ﻩ timer、stop();
//frame、dispose();
ﻩ }
}
}
publicvoidstateChanged(ChangeEvente1) {}
publicstaticvoid main(String[] args){
ﻩﻩHongganHong=newHonggan();
}
}
3、
import java、awt、*;
importjava、awt、event、*;
importjavax、swing、*;
import javax、swing、event、*;
publicclass PaoxiimplementsActionListener,