Visual C#.NET程序设计 作业 - 图文(7)

2019-08-31 23:16

if (Alarm != null) { // 通过代理调用事件处理方法 Alarm(this, e); } } // 在该方法中循环调用OnAlarm方法来触发事件,直到 // stop字段的值为true public void Start() { for (; ; ) { nrings++; if (stop) { break; } else if (snoozePressed) { // 程序暂停1秒钟 System.Threading.Thread.Sleep(1000); { // 创建事件参数对象实例 AlarmEventArgs e = new AlarmEventArgs(snoozePressed, nrings); OnAlarm(e); // 触发事件,在事件处理方法中会 // 相应地设置snoozePressed和stop // 字段的值(通过属性来设置) } } else { // 程序暂停0.3秒 System.Threading.Thread.Sleep(300); AlarmEventArgs e = new AlarmEventArgs(snoozePressed, nrings); OnAlarm(e); // 触发事件 } } } } // 包含事件处理方法的类 public class WakeMeUp { // 事件处理方法 // 在该方法中根据用户的输入来通过事件参数sender // 设置事件发送者属性, public void AlarmRang(object sender, AlarmEventArgs e) { Console.WriteLine(e.AlarmText + \ if (!(e.SnoozePressed)) { if (e.NumRings % 10 == 0) { Console.WriteLine(\继续闹铃?输入Y\ Console.WriteLine(\打会盹儿?输入N\ Console.WriteLine(\停止闹铃?输入Q\ String input = Console.ReadLine(); if (input.Equals(\ else if (input.Equals(\ { // 通过事件参数sender来访问触发事件的对象 ((AlarmClock)sender).SnoozePressed = true; return; } else { ((AlarmClock)sender).Stop = true; return; } } } else { Console.WriteLine(\继续闹铃?输入Y\ Console.WriteLine(\停止闹铃?输入Q\ String input = Console.ReadLine(); if (input.Equals(\ else { ((AlarmClock)sender).Stop = true; return; } } } } // 包含程序入口方法的类 public class AlarmDriver { // 入口方法 public static void Main(string[] args) { // 创建事件接收者对象实例 WakeMeUp w = new WakeMeUp(); // 创建事件发送者对象实例 AlarmClock clock = new AlarmClock(); // 把事件处理方法绑定到发送者的事件上 clock.Alarm += new AlarmEventHandler(w.AlarmRang); clock.Start(); } } } (8)选择“生成”→“生成解决方案”选项,以生成此项目。

(9)选择“调试” →“开始执行(不调试)”选项来执行此应用程序。 此程序的输出结果如图3.1所示。

图3.1 EventSample的输出结果

指导教师检查学生进度

第二部分 练习(40分钟)

练习1:多态(polymorphism)

C#可以通过使用关键字virtual在基类中定义虚方法,用override在派生类重载虚方法实现多态。以飞机类和客机类的代码来说明如何实现多态。 指导教师分析解题思路

分别创建类Plane和Airliner的实例p和a,先调用类Plane的方法Report,然后把p指向a,再调用Report方法,此时实际上调用了类Airliner被重载的方法Report。 具体代码如下所示:

using System; using System.Collections.Generic; using System.Text; namespace Polymorphism { class Plane //定义飞机类 { public int wheels; //飞机轮子数量 protected int weight; //飞机重量,是受保护的变量 public Plane() { ; } public Plane(int w1, int w2) { wheels = w1; weight = w2; } //定义虚方法 public virtual void Report() { Console.WriteLine(\ {1}\ } } class Airliner : Plane //定义客机类,从飞机类中继承 { int passengers; //客机乘客数量 public Airliner(int w1,int w2,int p):base(w1,w2) { passengers = p; } //重载父类中的方法 public override void Report() { Console.WriteLine(\ is {2}\ } } class Program { static void Main(string[] args) { Plane p = new Plane(); Airliner a = new Airliner(2, 300, 100); p.Report(); p = a; p.Report(); } } } 指导教师检查学生进度 指导教师检查学生代码规范性

第三部分 作业

指导教师布置作业 例如:

interface IHabit { void CatchFood(); string food{get;set;} ?? } 然后定义猫、老虎、狮子、大象等几个动物类来实现该接口; 最后定义一个调用类,来运行程序,查看接口的使用情况。

定义一个接口,用于描述动物的生活习性,包含食性、捕食、分布区域、睡觉方式、群居方式等;接口里面包括属性和方法。

9、数组、集合对象和泛型


Visual C#.NET程序设计 作业 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实验一 DSB调制与解调

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: