项目4 霓虹灯与跑马灯_第1页
项目4 霓虹灯与跑马灯_第2页
项目4 霓虹灯与跑马灯_第3页
项目4 霓虹灯与跑马灯_第4页
项目4 霓虹灯与跑马灯_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

霓虹灯与跑马灯项目四高等院校公共课系列精品教材C#程序设计熟练掌握数组的定义、赋值和引用了解结构和枚举学会使用Random类生成随机数学会使用Color类给控件设置背景颜色练习用代码动态生成控件技能目标WinForm中的控件不但可以用鼠标从工具箱拖入窗体,还可以使用代码动态生成批量控件,同时用代码设置控件的常用属性,本项目将通过模拟霓虹灯来练习数组的使用和以及代码生成控件的方法,跑马灯项目则是借鉴图片移动项目的设计思路,将单个图片移动借助数组实现多个控件的移动。项目导读任务1知识点任务2霓虹灯项目案例任务3跑马灯项目案例知识梳理知识点任务1一、数组二、结构三、枚举知识梳理任务引入:除了整型、实型、字符型等基本数据类型之外,C#中用什么来描述一组数据呢?答案是:数组。有时为了更好地描述一个事物的多种不同属性,还会用到结构,如:学生信息由学号、姓名、性别、班级、成绩等组成,可以定义一个Student结构。还有的时候要描述一系列不同的事物,可以使用枚举,如:星期由星期一、星期二……星期日组成,可以定义一个WeekDay枚举。任务分析:数组、结构和枚举都属于特殊的类型,但是它们在C#语言编程中使用非常广泛,尤其是应用数组对一组相同类型的数据进行操作时十分方便。任务1知识点一、数组数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。任务1知识点(一)数组的定义数组是一组使用数字索引的对象,这些对象同属于一种类型。数组本身是System.Array的实例化对象。C#数组属于引用类型,对于指向数组的引用,将从托管堆给它分配内存。具体的数组元素是根据其类型分配内存空间的。数组的一般形式为:type[]arrayName;(二)数组的初始化和赋值声明一个数组不会在内存中初始化数组。当初始化数组变量时,可以给赋值数组。数组是一个引用类型,所以需要使用new关键字来创建数组的实例。任务1知识点(三)数组的引用要让数组发挥作用,必须访问其元素,元素是通过带索引的数组名称来访问的,这是通过把元素的索引放置在数组名称后的方括号中来实现的。要访问多维数组或交错数组的元素,需要提供多个索引位置。所有数组的索引下标都是从0开始的。二、结构结构是使用struct关键字定义的,与类相似,都表示可以包含数据成员和函数成员的数据结构。一般情况下,很少使用结构(也并不建议使用结构),但作为.NETFramework系统中的一个基本架构,有必要了解一下的。结构是一种值类型,并且不需要堆分配。结构的实例化操作可以不使用new运算符。所有结构都直接继承自System.ValueType。结构是用来代表一个记录,假如我们想了解图书馆中书的动态,可以关心每本书的以下属性:TitleAuthorSubjectBookID任务1知识点C#中的结构有以下特点:结构可带有方法、字段、索引、属性、运算符方法和事件。结构可定义构造函数,但不能定义析构函数。但是,不能为结构定义默认的构造函数。与类不同,结构不能继承其他的结构或类。结构不能作为其他结构或类的基础结构。结构可实现一个或多个接口。结构成员不能指定为abstract、virtual或protected。使用New操作符创建一个结构对象时,会调用适当的构造函数来创建结构。如果不使用New操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。任务1知识点类和结构有以下几个主要的不同点:类是引用类型,结构是值类型。结构不支持继承。结构不能声明默认的构造函数。任务1知识点三、枚举枚举是一种创建数值类型(取值可能是预定义的)的机制,对于其中每个可能取值,都有一个有意义的名称。通过定义一组有效值,并给它们指定名称,枚举能够轻松地表示真实世界的概念和信息,并让编译器能够理解底层值,而程序员能够理解表层含义(名称)。可以认为枚举定义了一组离散的常量,这些常量只能通过“容器”名才能访问,基本访问格式:枚举名.名称。枚举类型定义的语法格式如下:访问修辞符enum枚举名:基础类型{//枚举成员列表}任务1知识点霓虹灯项目案例任务2一、创建项目二、界面布局三、编写代码知识梳理任务引入:在图片移动和交通灯项目中,我们用到的控件都是用鼠标拖动放入windows窗体的,那么我们能不能用代码来动态生成控件呢?——当然可以。霓虹灯是通过各种颜色的协调变化共同完成功能的有序开展,单个颜色无法完成霓虹灯的功能,每一个颜色都是休戚与共的,只有这样才能顺利实现预定的功能,完成既定的任务。任务分析:其实,在我们用鼠标拖动来添加控件时,VS2013系统会自动帮我们生成相应的代码,这些自动生成的代码都放在Form1.Designer.cs文件中,我们可以通过查看该文件中的代码,来学习用代码生成控件的语句。同时为了方便控制整个霓虹灯的位置和颜色,我们采用数组来存放霓虹灯。任务2霓虹灯项目案例一、创建项目启动VS2013以后,选择“文件”菜单——“新建”——“项目”打开“新建项目”对话框,确认左侧目录树选中的是“VisualC#”选项,然后选择“Windows窗体应用程序”,浏览到项目的存放目录“D:\CSharp”,名称设置为“WNeonLight”。任务2霓虹灯项目案例二、界面布局本项目主要来模拟霓虹灯效果,可以实现红色转一圈、顺时针转、逆时针转三种变换方式,界面布局如图所示任务2霓虹灯项目案例主要控件的属性和事件设置如表所示。任务2霓虹灯项目案例三、编写代码前台界面(Form.cs[设计])设置完毕之后,右击窗体“Form1”——“查看代码”可以进入后台代码(Form.cs)的编写界面,或者右击解决方案资源管理器的文件“Form1.cs”——“查看代码”也可以进入代码编写界面。1.定义窗体的公共变量(即类Form1的字段)2.编写“生成一圈Label”按钮的单击事件绑定的方法btnCreate_Click(),该方法是在设计界面双击控件btnCreate自动生成的。3.编写timer1_Tick()方法,该方法是在设计界面双击控件timer1自动生成的,用多分支选择语句swith实现三种不同变换方式的霓虹灯。任务2霓虹灯项目案例4.分别编写“红色转一圈”、“顺时针”和“逆时针”三个按钮的单击事件绑定的方法btnRed_Click()、btnClockwise_Click()和btnAntiClockwise_Click(),这三个方法都是在设计界面双击按钮控件自动生成的,用于完成三种不同的变换方式的切换。任务2霓虹灯项目案例跑马灯项目案例任务3一、创建项目二、界面布局三、编写代码知识梳理任务引入:生活中的霓虹灯大多数都是通过不断改变颜色达到绚丽多彩的展示效果,那么还有没有其他形式的霓虹灯呢?当然有,还有一种霓虹灯是通过改变每一个灯的位置来实现变换效果的,那就是跑马灯。跑马灯是通过各种颜色的协调变化共同完成功能的有序开展,单个颜色无法完成跑马灯的功能,每一个颜色必须互相协作才能完成整个功能。任务分析:用代码动态生成一组控件以后,参考图片移动的设计思路,让它们沿着窗体转起来,就实现了跑马灯的效果,同时,如果加上键盘操作的话,就变成了贪吃蛇,为下一个贪吃蛇项目做准备。任务3跑马灯项目案例一、创建项目同一个解决方案可以创建多个项目,在霓虹灯项目的解决方案资源管理器中,右击“解决方案WNeonLight”,选择“添加”——“新建项目”打开“新建项目”对话框,确认左侧目录树选中的是“VisualC#”选项,然后选择“Windows窗体应用程序”,浏览到项目的存放目录“D:\CSharp\WNeonLight”,名称设置为“WHorseRaceLamp”。创建完毕以后,在解决方案WNeonLight中共有两个项目WNeonLight和WHorseRaceLamp,如图所示任务3跑马灯项目案例二、界面布局本项目也是一种霓虹灯效果,动态生成五个Label,然后结合图片移动项目的设计思路,让这五个Label沿着panel控件边缘转圈,或者用键盘来控制运动方向,因此也叫跑马灯。界面布局如图所示任务3跑马灯项目案例主要控件的属性和事件设置如表所示。任务3跑马灯项目案例三、编写代码前台界面(Form.cs[设计])设置完毕之后,右击窗体“Form1”——“查看代码”可以进入后台代码(Form.cs)的编写界面,或者右击解决方案资源管理器的文件“Form1.cs”——“查看代码”也可以进入代码编写界面。1.定义枚举类型Direction(在类Form1的上面,命名空间里面,和类Form1是平行的)2.定义窗体的公共变量(即类Form1的字段)3.编写“生成5个Label”按钮的单击事件绑定的方法btnCreate_Click(),该方法是在设计界面双击控件btnCreate自动生成的。4.编写timer1_Tick()方法,该方法是在设计界面双击控件timer1自动生成的,让5个Label沿着panel1的边缘顺时针转圈,该方法默认每隔100毫秒执行一次,如果想调整速度,可以修改timer1控件的Interval属性。任务3跑马灯项目案例5.编写“跑起来”按钮的单击事件绑定的方法btnRun_Click(),该方法是在设计界面双击控件btnRun自动生成的,用于启动timer1,让5个Label沿着panel1的边缘顺时针转圈起来。6.编写timer2_Tick()方法,该方法是在设计界面双击控件timer2自动生成的,让5个Label在panel1中动起来,其体运动方向根据字段dir的变化而改变,该方法默认每隔100毫秒执行一次,如果想调整速度,可以修改timer1控件的Interval属性。7.编写按钮btnRun的键盘按下事件绑定的方法btnRun_KeyDown(),该方法是在设计界面选中控件btnRun,点击属性窗口中的“事件”按钮,然后找到KeyDown事件,双击KeyDown事件的值添加的。8.修改“跑起来”按钮的单击事件绑定的方法btnRun_Click(),该方法是在设计界面双击控件btnRun自动生成的,用于启动timer2,让5个Label动起来,用键盘控制Label的运动方式。任务3跑马灯项目案例本项目是在一个解决方案中创建了霓虹灯

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论