版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 實驗題目: 用java編寫洗衣機仿真程序2 實驗?zāi)康模?.熟悉并掌握洗衣機(全自動)的工作原理和運行過程. 2.學(xué)會軟件工程設(shè)計中的一系列分析研究,對需求分析,可行性研究,軟件模型等有一定的了解,為以后的軟件設(shè)計工作打下良好的基礎(chǔ)。3.通過的洗衣機仿真系統(tǒng)的編寫與學(xué)習(xí),加深了對Java這門語言的了解,對其中的類的設(shè)計,類之間的關(guān)系,界面的設(shè)計(按鈕及布局的設(shè)計)有了更深的了解與體會,為Java的學(xué)習(xí)做好準(zhǔn)備工作。3 實驗要求: 了解全自動洗衣機的簡單工作過程及實現(xiàn)。其中包括,洗衣的方式(標(biāo)準(zhǔn)或是柔和)、洗衣中的水位選擇(高水位洗衣、低水位洗衣等)等方面需要在人們將衣服放入洗衣機洗衣服之后手
2、動來選擇;并且是必須選擇的洗衣參數(shù)。當(dāng)選擇了一種洗衣參數(shù)后,按下啟動按鈕,洗衣機就會自動完成洗衣服的整個過程。在滿足基本功能以外,還需要盡量考慮外觀、造型、節(jié)水等方面的設(shè)計,符合人機界面的基本要求。 4 實驗分析:1. 洗衣機需求分析:標(biāo)準(zhǔn)清洗:浸泡/清洗/甩干快速清洗:清洗/甩干大件衣物(冬衣,牛仔類):浸泡(溫水,延長浸泡/清洗(延長筒轉(zhuǎn)時間)/甩干床單,窗簾類:浸泡(溫水)/清洗根據(jù)衣物的不同用按鈕選擇上述洗衣模式即可.其中甩干可選可不選.盡量設(shè)計了一個節(jié)水功能,可以實現(xiàn)水回收.在無需甩干時水不流走,余下的水可做其他用途,實現(xiàn)節(jié)水.2.主要的類實現(xiàn) (1).繼承類(2).包括進(jìn)水,排水,
3、洗滌,漂洗,甩干等成員函數(shù)(3).水位的選擇通過參數(shù)傳遞決定進(jìn)水函數(shù)(4).其余通過調(diào)用筒的轉(zhuǎn)動函數(shù)(run)并通過一定的參數(shù)控制實現(xiàn)3.程序設(shè)計步驟選擇水溫放入衣物選擇洗衣模式脫水排水烘干關(guān)閉5 設(shè)計與實現(xiàn)過程:1.洗衣機類的部分實現(xiàn):import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Washing extends JAppletprivate JFrame jf;private JButton jb1,jb2,jb3,jb4,jb5,jb6;public static void main(
4、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=
5、new JButton(關(guān)閉);/Container cp=jf.getContentPane();/cp.setLayout(new BorderLayout();jb1.setBounds(10, 10, 80, 80);cp.add(jb1);/指定組件追加到這個容器的末尾。這是一個方便的方法為addImpl。/注意:如果一個組件已被添加到一個已顯示的容器,驗證必須在該容器調(diào)用,以顯示新的組件。如果正在添加多個組件,你可以通過調(diào)用驗證只有一次,已添加的所有組件后提高效率。jb2.setBounds(110, 10, 80, 80);cp.add(jb2);jb3.setBounds(21
6、0, 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);/沒用?/調(diào)整這個組件,所以它具有寬的寬度和高度高度。/cp.add(BorderLayout.SOUTH,jb7);jb1.addActionList
7、ener(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(Actio
8、nEvent 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
9、ae)Tuoshui tuo=new Tuoshui(););jb6.addActionListener(new ActionListener()/ActionListener接收動作事件的監(jiān)聽器接口。在處理動作事件感興趣的類實現(xiàn)這個接口,這個類創(chuàng)建的對象注冊一個組件,使用組件的addActionListener方法。動作事件發(fā)生時,該對象的actionPerformed方法被調(diào)用。public void actionPerformed(ActionEvent ae)System.exit(0););jf.setSize(700,150);jf.setVisible(true);/顯示或隱藏這
10、個窗口根據(jù)參數(shù)b值。2,.按鈕界面的實現(xiàn):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(關(guān)閉);/Container cp=jf.getContentPane();/cp.setLayout(new BorderLayout();
11、jb1.setBounds(10, 10, 80, 80);cp.add(jb1);/指定組件追加到這個容器的末尾。這是一個方便的方法為addImpl。/注意:如果一個組件已被添加到一個已顯示的容器,驗證必須在該容器調(diào)用,以顯示新的組件。如果正在添加多個組件,你可以通過調(diào)用驗證只有一次,已添加的所有組件后提高效率。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
12、(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);/沒用?/調(diào)整這個組件,所以它具有寬的寬度和高度高度。/cp.add(BorderLayout.SOUTH,jb7);jb1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)Shuiwen wen=new
13、 Shuiwen(););jb2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)Yiwu yi=new Yiwu();yi.go(););jb4.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)Chushui Chu=new Chushui(););jb5.addActionListener(new ActionListener()public void action
14、Performed(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接收動作事件的監(jiān)聽器
15、接口。在處理動作事件感興趣的類實現(xiàn)這個接口,這個類創(chuàng)建的對象注冊一個組件,使用組件的addActionListener方法。動作事件發(fā)生時,該對象的actionPerformed方法被調(diào)用。public void actionPerformed(ActionEvent ae)System.exit(0););jf.setSize(620,160);jf.setVisible(true);/顯示或隱藏這個窗口根據(jù)參數(shù)b值。6、 實驗過程【截圖】【1】.功能菜單:【2】.選擇溫度【3】.加衣【4】.泡洗【5】脫水【6】.出水【6】.烘干七、技巧與體會 本次對洗衣機仿真系統(tǒng)的實現(xiàn)對于基礎(chǔ)較為薄弱的自
16、己是一次不小的任務(wù),從中學(xué)會了很多東西,對軟件工程導(dǎo)論這么課關(guān)于需求,關(guān)于可行性,關(guān)于模型的建立,對Java這門語言的基本語法和運用技巧和界面設(shè)計有了一定的了解。另外、由于以前寫程序參照的居多,第一次知道要做此程序設(shè)計的時候心理很是沒底,不知從何下手.本想按要求用C+,后來同學(xué)們都說java的界面比較好做,于是決定用java,雖然java還沒有學(xué)完,但和學(xué)過的某些語言相通的地方還是不少的,做起來也沒有感到很大的困難,就是在如何把界面和類的運行聯(lián)系起來上糾結(jié)了好幾天,最終程序只是能運行簡單的功能,并沒有達(dá)到預(yù)期的效果.以后我會繼續(xù)努力的!8、 代碼:1./import java.awt.Bord
17、erLayout;/import java.awt.Color;/import java.awt.Container;/import java.awt.Dimension;import java.awt.*;/import java.awt.event.ActionEvent;/import java.awt.event.ActionListener;import java.awt.event.*;/import javax.swing.JButton;/import javax.swing.JFrame;/import javax.swing.JLabel;/import javax.swi
18、ng.JPanel;/import javax.swing.JProgressBar;/import javax.swing.Timer;import javax.swing.*;/import javax.swing.event.ChangeEvent;/import javax.swing.event.ChangeListener;import javax.swing.event.*;public class Chushui implements ActionListener,ChangeListener JFrame frame=null;JProgressBar progressbar
19、;JLabel label;Timer timer;JButton b;public Chushui() frame=new JFrame(出水); frame.setBounds(400, 200, 300, 500); / frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/控制窗口關(guān)閉 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); progressba
20、r.setOrientation(JProgressBar.VERTICAL);/進(jìn)度條方向 progressbar.setMinimum(0); progressbar.setMaximum(100); progressbar.setValue(100);/起始值 progressbar.setStringPainted(true); progressbar.addChangeListener(this); progressbar.setPreferredSize(new Dimension(300,20); progressbar.setBorderPainted(true); /prog
21、ressbar.setBackground(Color.pink); progressbar.setForeground(Color.GRAY);/進(jìn)度條顏色 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
22、,BorderLayout.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(value0) progressbar.setValue(-value); else timer.stop();
23、 /frame.dispose(); public void stateChanged(ChangeEvent e1) int value=progressbar.getValue(); if(e1.getSource()=progressbar) label.setText(目前剩余:+Integer.toString(value)+%); label.setForeground(Color.blue); public static void main(String args) Chushui Chu=new Chushui();2、import java.awt.*;import java
24、.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Honggan implements ActionListener,ChangeListener JFrame frame=null;JProgressBar progressbar;JLabel label;Timer timer;JButton b;public Honggan() frame=new JFrame(烘干); frame.setBounds(400, 400, 400, 200); / frame.setDefaultClose
25、Operation(JFrame.EXIT_ON_CLOSE);/控制窗口關(guān)閉 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); /progressbar.setOrientation(JProgressBar.VERTICAL);/進(jìn)度條方向 progressbar.setMinimum(0); progressbar.setMaximum(100); progressbar.setValue(0); progre
26、ssbar.setStringPainted(true); progressbar.addChangeListener(this); progressbar.setPreferredSize(new Dimension(300,20); progressbar.setBorderPainted(true); /progressbar.setBackground(Color.pink); JPanel panel=new JPanel(); b=new JButton(開始); b.setForeground(Color.blue);/按鈕顏色 b.addActionListener(this)
27、; 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(ActionEvent e) if(e.getSource()=b) timer.start(); if
28、(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.sw
29、ing.*;import javax.swing.event.*;public class Paoxi implements ActionListener,ChangeListener JFrame frame=null;JProgressBar progressbar;JLabel label;Timer timer;JButton a,b,c;public Paoxi() frame=new JFrame(泡洗); frame.setBounds(400, 400, 400, 200); / frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLO
30、SE);/控制窗口關(guān)閉 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); /progressbar.setOrientation();/進(jìn)度條方向 progressbar.setMinimum(0); progressbar.setMaximum(100); progressbar.setValue(0); progressbar.setStringPainted(true); progressbar.addChan
31、geListener(this); progressbar.setPreferredSize(new Dimension(300,20); progressbar.setBorderPainted(true); /progressbar.setBackground(Color.pink); JPanel panel=new JPanel(); a=new JButton(標(biāo)準(zhǔn)); a.setForeground(Color.blue);/按鈕顏色 a.addActionListener(this); panel.add(a); timer=new Timer(100,this); conten
32、tPanel.add(panel,BorderLayout.NORTH); contentPanel.add(progressbar,BorderLayout.CENTER); contentPanel.add(label,BorderLayout.SOUTH); /frame.pack(); frame.setVisible(true); JPanel panel2=new JPanel(); b=new JButton(快洗); b.setForeground(Color.blue);/按鈕顏色 b.addActionListener(this); panel.add(b); timer=
33、new Timer(100,this); contentPanel.add(panel,BorderLayout.NORTH); contentPanel.add(progressbar,BorderLayout.CENTER); contentPanel.add(label,BorderLayout.SOUTH); /frame.pack(); frame.setVisible(true); JPanel panel3=new JPanel(); c=new JButton(強洗); c.setForeground(Color.blue);/按鈕顏色 c.addActionListener(
34、this); panel.add(c); 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(ActionEvent e) if(e.getSource()=a) timer.start(
35、); if(e.getSource()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /frame.dispose(); if(e.getSource()=b) timer.start(); if(e.getSource()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /fra
36、me.dispose(); if(e.getSource()=c) 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) Paoxi pao=new Paoxi();4、import java
37、.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Shuiwen implements ActionListener,ChangeListener JFrame frame=null;JProgressBar progressbar;JLabel label;Timer timer;JButton a,b,c;public Shuiwen() frame=new JFrame(溫度); frame.setBounds(400, 100, 400, 600); /
38、 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/控制窗口關(guān)閉 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); progressbar.setOrientation(JProgressBar.VERTICAL); /progressbar.setOrientation();/進(jìn)度條方向 progressbar.setMinimum(0); progress
39、bar.setMaximum(100); progressbar.setValue(0); progressbar.setStringPainted(true); progressbar.addChangeListener(this); progressbar.setPreferredSize(new Dimension(300,20); progressbar.setBorderPainted(true); /progressbar.setBackground(Color.pink); JPanel panel=new JPanel(); a=new JButton(30-50); a.se
40、tForeground(Color.blue);/按鈕顏色 a.addActionListener(this); panel.add(a); 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); JPanel panel2=new JPanel
41、(); b=new JButton(50-70); b.setForeground(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(t
42、rue); JPanel panel3=new JPanel(); c=new JButton(70-90); c.setForeground(Color.blue);/按鈕顏色 c.addActionListener(this); panel.add(c); timer=new Timer(100,this); contentPanel.add(panel,BorderLayout.NORTH); contentPanel.add(progressbar,BorderLayout.CENTER); contentPanel.add(label,BorderLayout.SOUTH); /fr
43、ame.pack(); frame.setVisible(true);public void actionPerformed(ActionEvent e) if(e.getSource()=a) timer.start(); if(e.getSource()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /frame.dispose(); if(e.getSource()=b) timer.start(); if(e.getSource
44、()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /frame.dispose(); if(e.getSource()=c) timer.start(); if(e.getSource()=timer) int value=progressbar.getValue(); if(value100) progressbar.setValue(+value); else timer.stop(); /frame.dispose(); pub
45、lic void stateChanged(ChangeEvent e1) public static void main(String args) Shuiwen wen=new Shuiwen();5、import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Tuoshui implements ActionListener,ChangeListener JFrame frame=null;JProgressBar progressbar;JL
46、abel label;Timer timer;JButton b;public Tuoshui() frame=new JFrame(脫水); frame.setBounds(400, 400, 400, 200); / frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/控制窗口關(guān)閉 Container contentPanel=frame.getContentPane(); label=new JLabel(,JLabel.CENTER); progressbar = new JProgressBar(); /progressbar.
47、setOrientation(JProgressBar.VERTICAL);/進(jìn)度條方向 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); 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,BorderLayout.CENTER); contentPanel
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智慧小區(qū)物業(yè)承包與社區(qū)服務(wù)協(xié)議3篇
- 員工通訊補貼協(xié)議書
- 2025版?zhèn)€人二手房交易合同附房屋驗收標(biāo)準(zhǔn)
- 2025年度個人與藝術(shù)品鑒定機構(gòu)居間服務(wù)合同4篇
- 2025年度新能源儲能技術(shù)研發(fā)個人工程居間合同范本下載
- 2025-2030全球3D打印鞋模機行業(yè)調(diào)研及趨勢分析報告
- 2025版協(xié)議離婚賠償及子女撫養(yǎng)權(quán)界定范本3篇
- 2024年煤礦安全生產(chǎn)知識競賽題庫及答案(共130題)
- 2025年度個人醫(yī)療短期借款合同范本(健康保障貸款)
- 二零二五年度綠色能源合作協(xié)議范本(2024版)3篇
- 2025民政局離婚協(xié)議書范本(民政局官方)4篇
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計研究
- 潤滑油知識-液壓油
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 天津市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟學(xué)的思維方式(第13版)
評論
0/150
提交評論