C#实验5报告姓名学号

上传人:宝路 文档编号:6866486 上传时间:2017-09-14 格式:DOC 页数:8 大小:62KB
返回 下载 相关 举报
C#实验5报告姓名学号_第1页
第1页 / 共8页
C#实验5报告姓名学号_第2页
第2页 / 共8页
C#实验5报告姓名学号_第3页
第3页 / 共8页
C#实验5报告姓名学号_第4页
第4页 / 共8页
C#实验5报告姓名学号_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C#实验5报告姓名学号》由会员分享,可在线阅读,更多相关《C#实验5报告姓名学号(8页珍藏版)》请在金锄头文库上搜索。

1、南 京 晓 庄 学 院C#语言程序设计基础课程实验报告实验名称:C#面向对象技术应用实验所在院(系): 数信院 姓名&学号: 徐烨 13139250 班 级 :13 软 2实验目的与要求:深入理解 C#类及继承与多态特性,掌握 C#类设计方法;理解对象生命周期、属性、事件与委托;掌握编写索引函数和操作符重载的方法;掌握系统常用类型的综合使用方法;会综合应用 C#面向对象语言基础结构解决多个实际应用问题。实验地点及设备:实验地点:鹤琴 303实验硬件环境:Core2 I5 CPU, 2G 内存实验软件环境:Windows XP,Visual Studio 2010本实验主要原理知识:(1) 类是

2、一组具有相同数据结构和相同操作的对象的集合,面向对象的基本概念包括对象、类、继承和通信。(2)对象的生命周期从构造函数开始,到析构函数结束;非静态构造函数针对每个对象调用一次,静态构造函数只针对类调用一次。(3)属性是特殊的成员方法,可以通过 get/set 访问函数控制对字段的访问。索引函数以数组的方式来访问一组字段值,它也由 get/set 访问函数组合而成。(4)事件是一种委托类型的成员,它能够使对象对发生的特定情况做出响应,不同的客户可以为对象定义不同的事件处理方法。实验内容:(1) 十字路口交通信号控制:创建 C#控制台应用程序,功能如下:编写 C#控制台应用程序,1)创建一个十字路

3、口类 Crossroads, 它包含 4 个 bool 类型的字段(表示该路口东南西北 4 个方向的信号灯,取值true 表示亮绿灯,取值 false 表示亮红灯) 定义路口的变灯事件(如 OnShiftLight),以及变灯方法(如 ShiftLight) ;2)创建汽车类 Car, 包含汽车状态(停/行) ,以及汽车当前位置(东南西北)两个字段 通过对变灯事件的处理来实现红灯停,绿灯行;3)在主程序中测试多个 Car 对一个 Cross 对象的事件响应结果 创建路口 Cross 创建 Car1、Car2 、Car3 、 Car4,分别在四个方向 路口变灯 打印变灯后各个 car 的状态 u

4、sing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 语法知识路灯与车public enum direction east, south, west ,north;public class Cross public bool Light1; public bool Light2;public bool Light3; public bool Light4;public Cross(bool light1,bool light2, bool light3, bool l

5、ight4) this.Light1 = light1; this.Light2 = light2; this.Light3 = light3;this.Light4 = light4;public delegate void OnShiftLightDelegate(Cross cross); public event OnShiftLightDelegate OnShiftLight;public void ShiftLight(bool light1, bool light2, bool light3, bool light4) this.Light1 = light1;this.Lig

6、ht2 = light2; this.Light3 = light3; this.Light4 = light4;if (OnShiftLight != null) OnShiftLight(this); public class Car private bool state; public bool State private set; get; private direction dierct; public Car(direction dir) this.dierct = dir; public void StopOrGo(Cross cross) if (this.dierct = d

7、irection.east) if (cross.Light1 = true) this.state = true; else this.state = false ; if (this.dierct = direction.south ) if (cross.Light2 = true) this.state = true; else this.state = false; if (this.dierct = direction.west) if (cross.Light3 = true) this.state = true; else this.state = false; if (thi

8、s.dierct = direction.north) if (cross.Light4 = true) this.state = true; else this.state = false; public override string ToString() return string.Format(车的状态是0,this.state ); class Program static void Main(string args) var Cross1 = new Cross(true,false ,true,false );var car1=new Car(direction.east); v

9、ar car2 = new Car(direction.south); var car3 = new Car(direction.west ); var car4 = new Car(direction .south);Cross1.OnShiftLight += car1.StopOrGo; Cross1.OnShiftLight += car2.StopOrGo; Cross1.OnShiftLight += car3.StopOrGo; Cross1.OnShiftLight += car4.StopOrGo;Cross1.ShiftLight(false,true,false,true

10、 );Console.WriteLine(Car1: + car1.ToString (); Console.WriteLine(Car2: + car2.ToString (); Console.WriteLine(Car3: + car3.ToString(); Console.WriteLine(Car4: + car4.ToString();Console.ReadKey(); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace L7_1class Pro

11、gramstatic void Main(string args)Console.WriteLine(状态?true代表通行D,?状态?false代表等待y。);Console.WriteLine();Crossroads cross = new Crossroads();Console.WriteLine(路灯?指?示?灯?初?始?状态?:oeast 0;west 1;south 2;north 3;);Console.WriteLine();Car car1=new Car(Location.East,true);Console.WriteLine(Car1初?始?位?置?为a0,状态?为

12、a1,car1._Carlocation,car1._state);Console.WriteLine();car1.Register(cross);car1 car2=new car1(Location.West,true);Console.WriteLine(Car2初?始?位?置?为a0,状态?为a1,car2._Carlocation,car2._state); Console.WriteLine();car2.Register(cross);Car car3=new Car(Location.North,true);Console.WriteLine(Car3初?始?位?置?为a0,

13、状态?为a1,car3._Carlocation,car3._state);Console.WriteLine();car3.Register(cross);Car car4 = new Car(Location.South, true);Console.WriteLine(Car4初?始?位?置?为a0,状态?为a1, car4._Carlocation, car4._state);Console.WriteLine();car4.Register(cross);cross.SignalShift();Console.WriteLine(变?灯?后car1的?状态?为a0,?car2的?状态

14、?为a1,car3的?状态?为a2,car4的?状态?为a3.);enum Location East, West, South, North delegate void SignalHandler(Location GreenLocation,Locationclass Crossroadspublic bool east;public bool west;public bool south;public bool north;public event SignalHandler OnsignalShift;public Crossroads()east=true;west=true;sou

15、th=false;north=false;public void SignalShift()if(east=true)east=false;west=false;south=true;north=true; OnsignalShift(Location.South,Location.North);elseeast=true;west=true;south=false;north=false;OnsigalShift(Location.East,Location.West);class Carpublic Location_Carlocation;public bool_state;public Car(Location location,bool state)?_Carlocation=location;_state=state;void Car_OnsignalShift(Location GreenLocation1,Location GreenLocation2)if(this._Car

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号