程式設計 貓老鼠主人

2021-09-30 07:11:39 字數 1349 閱讀 6243

問題:貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。

分析:從這句話,我們可以獲得兩個資訊:

1)涉及到三個角色,貓,老鼠和主人。因此,顯然要定義三個類

cat,

mouse

和master

。至於這三個類之間的關係,看你如何選擇實現的方式;

2)當貓發出乙個動作時,老鼠和主人都會做出自己的反應。因此,第乙個能夠想到的實現方式是事件委託方式。但是設計模式中,有乙個觀察者模式,也能夠達到這個要求。

解決:這樣,或是用事件委託方式,或是用觀察者模式。

方案一:觀察者模式。

using system;

using system.collections;

public inte***ce observer

public inte***ce subject

public class cat : subject

set

}public cat()

public void aimat(observer ob)

public void cryed()

}}public class mouse : observer

set

}public mouse(string name, subject su)

public void response()

}public class master : observer

public void response()

}class program

}

說明:……

方案二:事件委託。

using system;

public delegate void subeventhandler();

public abstract class subject

}}public class cat : subject

}public abstract class observer

public abstract void response();

}public class mouse : observer

set

}public mouse(string name, subject su)

: base(su)

public override void response()

}public class master : observer

public override void response()

}class program

}

說明:……

貓 老鼠 主人聯動問題

程式設計 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒 要求 1.要有聯動性,老鼠和主人的行為是被動的。2.考慮可擴充套件性,貓的叫聲可能引起其他聯動效應。整個思路是採用訂閱者設計模式 觀察者模式 具體怎麼叫就隨大家想法。我採用windows的應用程式講解下面是發布者抽象模組using system...

貓吃老鼠問題

今天在看雪看到這個 貓吃老鼠問題 的帖子,和當初學程式設計時的乙個叫做 約瑟夫環問題 類似。自己按照數學的方法分析了一下,得到乙個數學演算法。問題描述 現有n個老鼠圍成一圓圈,有乙隻貓從任意位置開始吃老鼠,每次都隔乙個老鼠吃,請給出最後乙個老鼠的編號?題目要求是任給老鼠數n,輸出貓最後吃的老鼠的編號...

貓吃老鼠演算法

曾經一道面試題,大概意思是 有乙隻很強大的貓咪,喜歡把抓來的n只老鼠們排成乙個佇列,然後設乙個步長值k,先吃掉第一隻後,再每隔k只再吃,吃完一輪後再按上面規則重新開始下一輪,直到剩下最後乙隻老鼠為止,貓咪為了保持生態平衡就放了這只老鼠 有只老鼠很聰明,他能很準確的計算出最後放生的位置,請用程式寫出來...