一道貓和老鼠吵醒主人的筆試題(C )

2021-03-31 14:46:54 字數 1624 閱讀 4221

csdn帖子:http://***munity.csdn.***/expert/topic/3839/3839240.xml?temp=.607937

7.程式設計:貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(c#語言)

要求:1.要有聯動性,老鼠和主人的行為是被動的。

2.考慮可擴充套件性,貓的叫聲可能引起其他聯動效應

大部分答案都是使用的事件程式設計,我這裡換了一下思路,使用觀察著模式,用介面也實現了,因為考慮到第二個要求,即貓大叫也可能直接導致主人驚醒,所以man也繼承了icatcatcher介面

源**如下:

using

system;

using

system.collections;

namespace

test

public

inte***ce

icatsubject

public

inte***ce

iratsubject

public

inte***ce

iratcatcher

public

class

cat:icatsubject

private

arraylist catcherlist =

newarraylist();

public

void

regesitercatcatcher(icatcatcher catcher)

public

void

miao()

}[stathread]

public

static

void

main

()

man man =

newman(rat,cat);

cat.miao();}}

public

class

rat:icatcatcher,iratsubject

public

void

dosth()

private

arraylist ratcherlist =

newarraylist();

public

void

regesiterratcatcher(iratcatcher catcher)

public

void

run()}}

public

class

man:icatcatcher,iratcatcher

catsub.regesitercatcatcher(

this);}

public

void

dosth()

public

void

wake()}}

這裡如果除錯會出現一點點小問題,就是老鼠有很多,每個老鼠的run都會wake一下man,所以感覺是主人被多次驚醒,其實這只是因為計算機總是按照順序來執行程式的,能夠模擬到這種效果應該已經算符合題意了

這裡如果除錯會出現一點點小問題,就是老鼠有很多,每個老鼠的run都會wake一下man,所以感覺是主人被多次驚醒,其實這只是因為計算機總是按照順序來執行程式的,能夠模擬到這種效果應該已經算符合題意了

一道關於老鼠繁衍的演算法題

大海 的一座孤島,上面本來沒有老鼠。有一艘路過的船隻在附近沉沒了,船上 x 對 新出生的老鼠,順著船隻殘骸漂流到小島上。1.每兩個月一次生產,每次出生 2對 老鼠 2.老鼠的壽命是 5個月,也就是說一輩子可以生產 2次 3.這個島上,每個月因為神祕原因,假如存在 3個月大的老鼠,會死去一對 問 n個...

一道演算法題

兩個燒杯,一個放糖一個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

include using namespace std const int size 5 int max sub array const int a,int n,int m int max matrix const int a size int row,int col,int subsize int...

一道oracle試題

做不出來時感覺好難啊,思路千千萬,就是沒想到用 order by 和 rownum 題目如下 有下面三個表 商品product 商品號productid,商品名productname,單價unitprice,商品類別category,商provider 顧客customer 顧客號customeri...

一道筆試題

看到一道筆試題,跟自己想的有點出入,就跑了下,看了看原因。我稍微改了下 include int main int argc,char argv 輸出結果 c 5 d 245 press any key to continue vc6.0 debug下的彙編 5 unsigned char a 0xa...