程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 08:19:45
程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应.

程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应.
程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言)
要求:1.要有联动性,老鼠和主人的行为是被动的.
2.考虑可扩展性,猫的叫声可能引起其他联动效应.

程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应.
using System;
namespace CatMouseMaster
{
///
/// 房屋
///
public class House
{
public Cat Cat
{
get
{
return this.cat;
}
}
public Mouse[] Mouses
{
get
{
return this.mouses;
}
}
public Master Master
{
get
{
return this.master;
}
}
public string Place
{
get
{
return this.place;
}
}
private Cat cat;
private Mouse[] mouses;
private Master master;
private string place;
public House(string place, string master, string cat, params string[] mouses)
{
this.place = place;
Console.WriteLine("在{0}旁边有一栋房子", this.Place);
this.master = new Master(master, this);
this.cat = new Cat(cat, this);
if (mouses != null)
{
this.mouses = new Mouse[mouses.Length];
for(int i = 0; i < mouses.Length; i++)
{
this.mouses[i] = new Mouse(mouses[i], this);
}
}
}
///
/// 应用程序的主入口点.
///
[STAThread]
static void Main(string[] args)
{
House house = new House("白宫", "布什", "汤姆", "杰瑞", "莱姆", "强尼", "布莱克", "劳伦斯", "杰克", "汉克斯", "巴克", "萨姆", "山姆", "克里斯", "伍德");
house.Night();
Console.ReadLine();
}
public void Night()
{
Console.WriteLine("\n一天晚上");
this.Cat.MiaoMiao();
}
}
public delegate void CatMiaomiaoEventHandler(Cat cat, EventArgs args);
public delegate void MouseRunEventHandler(Mouse mouse, EventArgs args);
public delegate void TroubleByMouseEventHandler(Master master, Mouse mouse, EventArgs args);
public delegate void MouseCatchdEventHandler(Cat cat, Mouse mouse, EventArgs args);
public class Life
{
public string Name
{
get
{
return name;
}
}
public House House
{
get
{
return this.house;
}
}
private string name;
private House house;
public Life(string name, House house)
{
this.name = name;
this.house = house;
}
}
public class Cat : Life
{
public static event CatMiaomiaoEventHandler Miao;
public Cat(string name, House house)
: base(name, house)
{
Console.WriteLine("{0}养了一只小猫,名字叫做{1}", this.House.Master.Name, this.Name);
}
public void MiaoMiao()
{
Console.WriteLine("小猫{0}大叫一声:\"喵~~~~~\"", this.Name);
if (Cat.Miao != null)
{
Cat.Miao(this, EventArgs.Empty);
}
}
public void CatchMouse(Mouse mouse)
{
Console.WriteLine("小猫{0}抓住了老鼠{1}", this.Name, mouse.Name);
mouse.CatchdByCat(this);
}
}
public class Mouse : Life
{
public static int RunNum
{
get
{
return runNum;
}
}
private static int runNum = 0;
private static int prefixFlag = 0;
public static event MouseRunEventHandler Run;
public event MouseCatchdEventHandler Catchd;
public Mouse(string name, House house)
: base(name, house)
{
if (prefixFlag == 0)
{
Console.Write("房子里面有许多老鼠,它们是:");
prefixFlag = 1;
}
else
{
Console.Write(",");
}
Console.Write(this.Name);
Cat.Miao += new CatMiaomiaoEventHandler(Cat_Miao);
this.Catchd += new MouseCatchdEventHandler(Mouse_Catchd);
}
private void Cat_Miao(Cat cat, EventArgs args)
{
Console.WriteLine("老鼠{0}吱吱的说:\"{1}来了,咱们快逃!\"", this.Name, cat.Name);
runNum++;
if (Run != null)
{
Mouse.Run(this, EventArgs.Empty);
}
}
public void CatchdByCat(Cat cat)
{
if (Catchd != null)
{
Catchd(cat, this, EventArgs.Empty);
}
}
private void Mouse_Catchd(Cat cat, Mouse mouse, EventArgs args)
{
Console.WriteLine("老鼠{0}对小猫{1}说:\"我现在瘦骨伶仃的,等我长肥了你再来吃我吧\"", this.Name, cat.Name);
}
}
public class Master : Life
{
public Master(string name, House house)
: base(name, house)
{
Console.WriteLine("住在这里的主人是{0}", this.Name);
Mouse.Run += new MouseRunEventHandler(Mouse_Run);
this.Troubled += new TroubleByMouseEventHandler(Master_Troubled);
}
public event TroubleByMouseEventHandler Troubled;
private void Mouse_Run(Mouse mouse, EventArgs args)
{
if (Mouse.RunNum < 5)
{
return;
}
this.TroubledByMouse(mouse);
}
public void TroubledByMouse(Mouse mouse)
{
if (Mouse.RunNum == 5)
{
Console.WriteLine("主人{0}被惊醒了", this.Name);
Console.WriteLine("{0}大叫一声:\"吵死了啦!\"", this.Name);
}
else
{
Console.WriteLine("{0}大声吼道:\"{1},快起来干活,不抓住第{2}只老鼠{3}我就把你扔到野外去!\"", this.Name, this.House.Cat.Name, Mouse.RunNum, mouse.Name);
if (this.Troubled != null)
{
this.Troubled(this, mouse, EventArgs.Empty);
}
}
}
public void OrderCatToCatchMouse(Cat cat, Mouse mouse)
{
cat.CatchMouse(mouse);
}
private void Master_Troubled(Master master, Mouse mouse, EventArgs args)
{
this.OrderCatToCatchMouse(this.House.Cat, mouse);
}
}
}
编译后的结果:
在白宫旁边有一栋房子
住在这里的主人是布什
布什养了一只小猫,名字叫做汤姆
房子里面有许多老鼠,它们是:杰瑞,莱姆,强尼,布莱克,劳伦斯,杰克,汉克斯,巴克,萨姆,
山姆,克里斯,伍德
一天晚上
小猫汤姆大叫一声:"喵~~~~~"
老鼠杰瑞吱吱的说:"汤姆来了,咱们快逃!"
老鼠莱姆吱吱的说:"汤姆来了,咱们快逃!"
老鼠强尼吱吱的说:"汤姆来了,咱们快逃!"
老鼠布莱克吱吱的说:"汤姆来了,咱们快逃!"
老鼠劳伦斯吱吱的说:"汤姆来了,咱们快逃!"
主人布什被惊醒了
布什大叫一声:"吵死了啦!"
老鼠杰克吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第6只老鼠杰克我就把你扔到野外去!"
小猫汤姆抓住了老鼠杰克
老鼠杰克对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠汉克斯吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第7只老鼠汉克斯我就把你扔到野外去!"
小猫汤姆抓住了老鼠汉克斯
老鼠汉克斯对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠巴克吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第8只老鼠巴克我就把你扔到野外去!"
小猫汤姆抓住了老鼠巴克
老鼠巴克对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠萨姆吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第9只老鼠萨姆我就把你扔到野外去!"
小猫汤姆抓住了老鼠萨姆
老鼠萨姆对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠山姆吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第10只老鼠山姆我就把你扔到野外去!"
小猫汤姆抓住了老鼠山姆
老鼠山姆对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠克里斯吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第11只老鼠克里斯我就把你扔到野外去!"
小猫汤姆抓住了老鼠克里斯
老鼠克里斯对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"
老鼠伍德吱吱的说:"汤姆来了,咱们快逃!"
布什大声吼道:"汤姆,快起来干活,不抓住第12只老鼠伍德我就把你扔到野外去!"
小猫汤姆抓住了老鼠伍德
老鼠伍德对小猫汤姆说:"我现在瘦骨伶仃的,等我长肥了你再来吃我吧"

程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应. 老鼠和猫故事有一天一群老鼠聚集在一起,商量如何才不给猫抓住.一只老鼠说在猫身上挂个铃铛,所有的老鼠都说这个主意好,突然一只老鼠说谁去挂呢,顿时没一只老鼠说话, 请问老鼠的粪便有没有毒,是不是所有的老鼠粪便都有毒?能否传染人疾病 有个三位数,从000开始,到999一共有多少个数?请把所有的数都写下来, 假如从播种开始到收获种子需要1年时间 且所有的有性生殖杂交都从播种开始,理论上从一粒假如从播种开始到收获种子需要1年时间 且所有的有性生殖杂交都从播种开始,理论上从一粒小麦和 郑振铎的《猫》课后读一读写一写的拼音,词意所有的都要, 是不是所有的爱情都开始于一个微笑,都结束于一滴眼泪 一,你把所有的数加起来就会知道结果【add up】二,我们努力想让他平静下来,但他还是激动地大叫.【calm down】会哪个写哪个.能全写出来更好. 所有的都要! 世界上有的多少老鼠老鼠 一个老鼠洞里有五只老鼠,猫进洞吃了一只老鼠,洞里还剩下几只老鼠? 一个老鼠洞里有五只老鼠,猫进洞吃了一只老鼠,洞里还剩几只老鼠?脑筋急转弯 一个老鼠洞里有五只老鼠,猫进洞吃了一只老鼠,洞里还剩下几只老鼠? 宇宙所有的时间一共有多长?时间有开始和结束吗? 所有的半径都相等,所有的直径都相等. “所有的结局都已写好,所有的泪水都已启程,去忽然忘了是怎样的一个开始”这句话出自哪? 所有的公式都要 所有的都做一下,