题目:猫叫,老鼠逃跑,主人惊醒。(10分)

要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象
评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)
            <2>从Mouse和Master中提取抽象(5分)
            <3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分)

 1using System; 
 2using System.Collections; 
 3
 4namespace ConsoleApplication1 
 5
 6 public interface Observer 
 7 
 8  void Response();    //观察者的响应,如是老鼠见到猫的反映 
 9 } 
10 public interface Subject 
11 
12  void AimAt(Observer obs);  //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 
13 } 
14
15 public class Mouse : Observer 
16 
17  private string name; 
18  public Mouse(string name, Subject subj) 
19  {           
20   this.name = name; 
21   subj.AimAt(this); 
22  } 
23        
24  public void Response() 
25  
26   Console.WriteLine(name + " attempt to escape!"); 
27  } 
28 } 
29
30 public class Master : Observer 
31 {   
32  public Master(Subject subj) 
33  {           
34   subj.AimAt(this); 
35  } 
36        
37  public void Response() 
38  
39   Console.WriteLine("Host waken!"); 
40  }  
41 } 
42  
43
44 public class Cat : Subject 
45 
46  private ArrayList observers; 
47  public Cat() 
48  {   
49   this.observers = new ArrayList(); 
50  } 
51  public void AimAt(Observer obs) 
52  
53   this.observers.Add(obs); 
54  } 
55  public void Cry() 
56  
57   Console.WriteLine("Cat cryed!"); 
58   foreach (Observer obs in this.observers) 
59   
60    obs.Response(); 
61   } 
62  } 
63 } 
64
65 class MainClass 
66 
67  /**//// <summary> 
68  /// 应用程序的主入口点。 
69  /// </summary> 
70  [STAThread] 
71  static void Main(string[] args) 
72  
73   Cat cat = new Cat(); 
74   Mouse mouse1 = new Mouse("mouse1", cat); 
75   Mouse mouse2 = new Mouse("mouse2", cat); 
76   Master master = new Master(cat); 
77   cat.Cry(); 
78  } 
79 } 
80
81
82


设计方法二: 使用event -- delegate设计..

 1using System; 
 2using System.Collections; 
 3
 4
 5namespace ConsoleApplication1 
 6
 7 public delegate void SubEventHandler(); 
 8 public abstract class Subject 
 9 
10  public event SubEventHandler SubEvent; 
11  protected void FireAway() 
12  
13   if (this.SubEvent != null) 
14    this.SubEvent(); 
15  }   
16 } 
17 public class Cat : Subject 
18 {  
19  public void Cry() 
20  
21   Console.WriteLine("cat cryed."); 
22   this.FireAway(); 
23  } 
24 } 
25
26 public abstract class Observer 
27 
28  public Observer(Subject sub) 
29  
30   sub.SubEvent += new SubEventHandler(Response); 
31  } 
32  public abstract void Response();    
33 } 
34 public class Mouse : Observer 
35 
36  private string name; 
37  public Mouse(string name, Subject sub) : base(sub) 
38  {   
39   this.name = name; 
40  } 
41  public override void Response() 
42  
43   Console.WriteLine(name + " attempt to escape!"); 
44  } 
45 } 
46 public class Master : Observer 
47 
48  public Master(Subject sub) : base(sub){} 
49  public override void Response() 
50  
51   Console.WriteLine("host waken"); 
52  } 
53 } 
54
55 class MainClass 
56 
57  /**//// <summary> 
58  /// 应用程序的主入口点。 
59  /// </summary> 
60  [STAThread] 
61  static void Main(string[] args) 
62  
63   Cat cat = new Cat(); 
64   Mouse mouse1 = new Mouse("mouse1", cat); 
65   Mouse mouse2 = new Mouse("mouse2", cat); 
66   Master master = new Master(cat); 
67   cat.Cry(); 
68  } 
69 } 
70

转载于:https://www.cnblogs.com/CrazyWill/archive/2005/11/07/270819.html

一道有趣的C#考试题目相关推荐

  1. 一道有趣的大厂测试面试题,你能用 Python or Shell 解答吗?

    本文是测试开发工程师 Venn 同学面试某互联网名企遇到的一道面试题目,首发于 Testerhome 社区,引发了有趣的讨论和解答,供各位测试同学参考.链接:https://testerhome.co ...

  2. python—成绩管理系统考试题目:小学五年级学生小明、小王、小丽、小花的语文、英语、数学成绩如……

    python-成绩管理系统考试题目:小学五年级学生小明.小王.小丽.小花的语文.英语.数学成绩如-- 最近在做人工智能微专业时发现了一道特别有趣的题目,原谅作者才疏学浅,花费了将近一下午的时间才写出正 ...

  3. 四川话四级考试题目答案及详解(一)

    四川话四级考试题目答案及详解(一) --阿风 一年一度的高考又开始了,全社会的人都在为考生紧张,都要尽量为考生提供方便,甚至暂时牺牲自己的方便.在这特殊的日子,阿风在网上看到一份有趣的试题:<四 ...

  4. 2评分标准多少分_突发!财政部刚刚通知!2020年中级考试题目分值及评分标准大变!...

    突发!财政部刚刚通知!2020年中级考试题目分值及评分标准大变!其中: 1.三科多选题的评分标准由多选.少选.错选.不选均不得分变为少选得相应分值,多选.错选.不选均不得分. 2.三科判断题的评分标准 ...

  5. 历年CCF-CSP认证考试题目解法/思想

    每年的题难度都不太一样,这一点在16.17年上尤其明显,难度低的时候前两道题就是送分题,加一起15分钟解决,得分样例水的不行.难度高的时候第二题就让你模拟半天,且测试样例诡异无比,测试样例通过可能只= ...

  6. 全面分析RHCE7(红帽认证工程师)考试题目之 ----SSH篇

    管理SSH服务(远程连接服务) 一,ssh服务常用配置参数 /etc/ssh/sshd_config 注意:修改端口时要确保SELinux 不是 Enforcing [root@test13 ~]# ...

  7. 全面分析RHCE7(红帽认证工程师)考试题目之 ----邮件篇

    基础邮件服务 电子邮件服务器的基本功能 为用户提供电子邮箱存储空间(用户名@邮件域名) 处理用户发出的邮件-------传递给收件服务器 处理用户收到的邮件-------投递到邮箱 配置前提 虚拟机s ...

  8. 全面分析RHCE7(红帽认证工程师)考试题目之 ---Firewall(防火墙)篇

    防火墙策略管理(firewall) 作用:隔离 局域网和外网之间 阻止入站,允许出站 软件防火墙 系统服务:firewalld 管理工具:firewall-cmd(命令工具. Linux7),fire ...

  9. CCF- CSP历年认证考试题目链接+题解总结(持续更新)

    CCF- CSP历年认证考试题目链接+题解总结(持续更新ing) 目录 CCF- CSP历年认证考试题目链接+题解总结(持续更新ing) 202206第26次CCF计算机软件能力认证 202203第2 ...

最新文章

  1. 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集
  2. 接受java的返回值_java怎样接受 到return的值的?
  3. 获取class的名字
  4. 冬季防御抗疫情宣传插画素材,时刻提醒大家注意
  5. 介绍一个基于ASP.NET MVC的框架Catharsis
  6. Linux(Ubuntu)使用日记------自定义命令的使用
  7. 计算机内存外存共同点,存储器:内存和外存
  8. 浅谈Http协议、TCP协议
  9. Could not find artfact com.oracle:ojdbc7:jar:12.1.0.2.0 in nexus-aliyun
  10. 微信小程序php后台实现
  11. Aras innovator: 怎样把excel文件导入到Aras数据库
  12. 微信公众号实现带图卡片分享链接
  13. 美国的互联网上网费现状
  14. 大于4GB镜像文件刻录方法
  15. BOSS直聘上市背后:招聘新人与行业老炮的终极对决
  16. 11月第3周新闻回顾:难忘的光棍节 辛劳的IT人
  17. windows安装torch_sparse\torch_geometric\torch_cluster
  18. web3j监听合约logs事件
  19. Android逐帧动画和补间动画
  20. 八一农垦大学计算机科学与技术专业好不好,黑龙江八一农垦大学最好的专业(什么专业最好)...

热门文章

  1. python绘制条形图-python3使用matplotlib绘制条形图
  2. python编程零基础-如何零基础入门Python编程?
  3. python变量类型-python变量的数据类型有哪些?
  4. python乘法口诀代码-浅析一句python代码成生九九乘法表
  5. php python-浅谈php调用python文件
  6. python程序员工作怎样-怎样才能成为一名Python程序员
  7. python中怎么输出中文-python中使用print输出中文的方法
  8. python项目归纳总结-【第108期】总结最近项目中常用的几个Python库
  9. python开发软件行么-python适合开发桌面软件吗?
  10. 给想学python-零基础的小白,如何学Python才能更快就业?