設(shè)計模式十七_(dá)第1頁
設(shè)計模式十七_(dá)第2頁
設(shè)計模式十七_(dá)第3頁
設(shè)計模式十七_(dá)第4頁
設(shè)計模式十七_(dá)第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、高級語言程序設(shè)計實驗指導(dǎo)書一實驗?zāi)康?. 熟悉UML統(tǒng)一建模語言;2. 回顧熟悉迭代器模式、中介者模式、備忘錄模式;3. 熟悉XML文件的操作;4. 熟悉java的反射機制。二實驗內(nèi)容(1)某教務(wù)管理系統(tǒng)中一個班級(Class)包含多個學(xué)生(Student),使用Java內(nèi)置迭代器實現(xiàn)對學(xué)生信息的遍歷,要求按學(xué)生年齡由大到小的次序輸出學(xué)生信息。用Java實現(xiàn)該過程。(2)使用中介者模式來說明聯(lián)合國的作用,要求繪制相應(yīng)的類圖并分析每個類的作用(注:可以將聯(lián)合國定義為抽象中介者類,聯(lián)合國下屬機構(gòu)如WTO、WFC、WHO等作為具體中介者類,國家可以作為抽象同事類,而將中國、美國、日本、英國等國家作為

2、具體同事類)。(3)改進“用戶信息操作撤銷”實例,使得系統(tǒng)可以實現(xiàn)多次撤銷操作(可以使用集合對象如HashMap、ArrayList等來實現(xiàn))。三實驗環(huán)境PC微機;Windows 操作系統(tǒng);Visual Studio 程序集成環(huán)境。4 實驗內(nèi)容(1)某教務(wù)管理系統(tǒng)中一個班級(Class)包含多個學(xué)生(Student),使用Java內(nèi)置迭代器實現(xiàn)對學(xué)生信息的遍歷,要求按學(xué)生年齡由大到小的次序輸出學(xué)生信息。用Java實現(xiàn)該過程。Student.javapackage 設(shè)計模式實驗十七周_1;public class Student implements Comparable<Student&

3、gt; private String no; private String name; private int age; private String zy; public Student(String no, String name, int age, String zy) super(); this.no = no; = name; this.age = age; this.zy = zy; / 三個返回結(jié)果都要寫出來 public int compareTo(Student o) if(this.age > o.age) return -1; else if(t

4、his.age < o.age) return 1; else return 0; Override public String toString() return "姓名: " + + ". 編號: " + this.no + ". 年齡: " + this.age + ". 專業(yè): " + this.zy; Client.javapackage 設(shè)計模式實驗十七周_1;import java.util.ArrayList;import java.util.Collections;imp

5、ort java.util.List;public class Client public static void main(String args) Student s1 = new Student("291", "張一", 20, "音樂專業(yè)"); Student s2 = new Student("423", "李紅", 21, "計算機專業(yè)"); Student s3 = new Student("211", "王文", 22,

6、 "機械專業(yè)"); Student s4 = new Student("445", "高龍", 19, "國貿(mào)專業(yè)"); List<Student> list = new ArrayList<Student>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); Collections.sort(list); System.out.println("按照年齡進行排序輸出: "); for(Student st

7、u : list) System.out.println(stu.toString(); UML.java 運行結(jié)果:(2)使用中介者模式來說明聯(lián)合國的作用,要求繪制相應(yīng)的類圖并分析每個類的作用(注:可以將聯(lián)合國定義為抽象中介者類,聯(lián)合國下屬機構(gòu)如WTO、WFC、WHO等作為具體中介者類,國家可以作為抽象同事類,而將中國、美國、日本、英國等國家作為具體同事類)。UN.javapackage 設(shè)計模式實驗十七周_2;import java.util.Hashtable;public abstract class UN protected String name;protected Hashtab

8、le<String, Country> country;public String getName() return name;public void setName(String name) = name;public UN() this.country = new Hashtable<String, Country>();public void AddCountry(Country co) if (country = null)return;country.put(co.getName(), co);public void DelCountry(

9、String co) if (country = null)return;country.remove(co);public void DelCountry(Country co) if (country = null)return;country.remove(co.getName();protected void SendMessage(String from, String to, String msg) Country co = country.get(to);if (co != null)co.ReceiveMessage(from, msg);elseSystem.out.prin

10、tln("對不起!“" + from + "”不存在,可能還未加入UN!");public void ReceiveMessage(String from, String to, String msg) SendMessage(from, to, msg);Country.javapackage 設(shè)計模式實驗十七周_2;public abstract class Country protected String name;protected UN wto, who, wfc;public UN getWto() return wto;public voi

11、d setWto(UN wto) this.wto = wto;public UN getWho() return who;public void setWho(UN who) this.who = who;public UN getWfc() return wfc;public void setWfc(UN wfc) this.wfc = wfc;public String getName() return name;public void setName(String name) = name;public abstract void SendMessageByWTO(

12、String cou, String msg);public void SendMessageByWHO(String cou, String msg) who.SendMessage(, cou, msg);public void SendMessageByWFC(String cou, String msg) wfc.SendMessage(, cou, msg);public void ReceiveMessage(String cou, String msg) System.out.println(name + "收到來自" +

13、cou + "的消息:“" + msg + "”");Overridepublic boolean equals(Object co) Country c = (Country) co;if (co = null | = null | c.getName() = null)return false;return name.equals(c.getName();WHO.javapackage 設(shè)計模式實驗十七周_2;public class WHO extends UN public WHO()super();=new

14、 String("WHO");WFC.javapackage 設(shè)計模式實驗十七周_2;public class WFC extends UN public WFC() super(); = new String("WFC");WTO.javapackage 設(shè)計模式實驗十七周_2;public class WTO extends UN public WTO() super(); = new String("WTO");America.javapackage 設(shè)計模式實驗十七周_2;public cl

15、ass America extends Country public America()=new String ("America");Overridepublic void SendMessageByWTO(String cou, String msg) wto.SendMessage(, cou, msg);China.javapackage 設(shè)計模式實驗十七周_2;public class China extends Country public China()=new String("China&quo

16、t;);Overridepublic void SendMessageByWTO(String cou, String msg) wto.SendMessage(, cou, msg);Japan.javapackage 設(shè)計模式實驗十七周_2;public class Japan extends Country public Japan()=new String ("Japan");Overridepublic void SendMessageByWTO(String cou, String msg) wto.SendMessage(t

17、, cou, msg);Client.javapackage 設(shè)計模式實驗十七周_2;public class Client public static void main(String args) UN un=new UN3;/UN wto,who,wfc;un0=new WTO();un1=new WHO();un2=new WFC();Country cou=new Country3;cou0=new China();cou1=new Japan();cou2=new America();for(int i=0;i<un.length;i+)for(int j=0;

18、j<cou.length;j+)uni.AddCountry(couj);for(int i=0;i<cou.length;i+)coui.setWfc(un2);coui.setWho(un1);coui.setWto(un0);cou0.SendMessageByWTO("America", "中方堅決反對美方干涉臺灣問題");cou1.SendMessageByWHO("China","通過WHO.");cou2.SendMessageByWFC("China", "

19、通過WFC.");UML.java運行結(jié)果:(3)改進“用戶信息操作撤銷”實例,使得系統(tǒng)可以實現(xiàn)多次撤銷操作(可以使用集合對象如HashMap、ArrayList等來實現(xiàn))。UserInfoDTO.javapackage 設(shè)計模式實驗十七周_3;public class UserInfoDTO private String account; private String password; private String telNo; public String getAccount() return account; public void setAccount(String acc

20、ount) this.account=account; public String getPassword() return password; public void setPassword(String password) this.password=password; public String getTelNo() return telNo; public void setTelNo(String telNo) this.telNo=telNo; public Memento saveMemento() return new Memento(account,password,telNo

21、); public void restoreMemento(Memento memento) this.account=memento.getAccount(); this.password=memento.getPassword(); this.telNo=memento.getTelNo(); public void show() System.out.println("Account:" + this.account); System.out.println("Password:" + this.password); System.out.prin

22、tln("TelNo:" + this.telNo); Caretaker.javapackage 設(shè)計模式實驗十七周_3;public class Caretaker private Memento memento; public Memento getMemento() return memento; public void setMemento(Memento memento) this.memento=memento; Memento.javapackage 設(shè)計模式實驗十七周_3;class Memento private String account; priv

23、ate String password; private String telNo; public Memento(String account,String password,String telNo) this.account=account; this.password=password; this.telNo=telNo; public String getAccount() return account; public void setAccount(String account) this.account=account; public String getPassword() r

24、eturn password; public void setPassword(String password) this.password=password; public String getTelNo() return telNo; public void setTelNo(String telNo) this.telNo=telNo; Client.javapackage 設(shè)計模式實驗十七周_3;import 設(shè)計模式實驗十七周_3.UserInfoDTO;import 設(shè)計模式實驗十七周_3.Caretaker;public class Client public static void main(String a) UserInfoDTO user=new UserInfoDTO(); Caretaker c=new Caretaker(); Caretaker d=new Caretaker(); user.setAccount("zhangsan"); user.setPassword("123456

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論