C#程序设计 课件项目3 交通灯_第1页
C#程序设计 课件项目3 交通灯_第2页
C#程序设计 课件项目3 交通灯_第3页
C#程序设计 课件项目3 交通灯_第4页
C#程序设计 课件项目3 交通灯_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

交通灯项目三高等院校公共课系列精品教材C#程序设计熟练掌握C#中的流程控制语句熟练掌握各种运算符的用法和优先级学会不同数据类型间的转换方法掌握WinForm控件TextBox、ComboBox的使用学会使用Resources类来实现图片切换技能目标除了用鼠标来接收用户命令之外,我们还可以接收用户键盘输入的设置,完成更准确的计时和图片切换操作,本项目将通过模拟交通灯来练习类型转换及流程控制语句的使用。项目导读任务1知识点任务2交通灯项目案例知识梳理知识点任务1一、流程控制语句二、运算符三、类型转换知识梳理任务引入:C#语言中除了基本的算术运算之外,还有哪些运算符?程序的执行除了按照从上到下的顺序之外,还有哪些流程控制语句呢?任务分析:和C语言类似,C#中除了算术运算符之外,还有关系运算符、逻辑运算符、赋值运算符等等。有时为了控制程序的执行,C#中还包含选择语句、迭代语句和跳转语句。任务1知识点一、流程控制语句C#在局部代码片断内遵循的依然是过程型编程语言(特征就是程序调用的先后顺序与定义的先后顺序之间有关联),因此语句按其在源码中出现的顺序依次执行。但是如果完全按固定的顺序执行,就将缺乏灵活性。因此,需要根据测试条件的结果决定要执行的语句。C#提供了控制流程语句,可用于改变执行顺序。所有控制流程语句都具有相同的基本特征:根据一组条件选择要执行的语句。一般分为:选择语句、迭代语句(循环语句)、跳转语句。任务1知识点(一)选择语句主要功能是根据表达式的值选择性地执行多条语句中的一条,包括if语句和switch语句。1.if语句if语句是最基本的选择语句,它根据一个布尔表达式的结果选择执行一条语句。2.switch语句switch语句与级联if语句功能类似,但更简洁、更灵活。switch语句执行与表达式值相等的标签指定的语句列表。任务1知识点(二)迭代语句选择语句是根据表达式的值选择语句并执行一次,而迭代语句(循环语句)重复执行语句多次。一般在迭代过程中都需要计算表达式的值,测试是否继续循环。在表达式的值决定退出循环之前,还可以使用break,goto、return、throw;也可使用continue结束本次循环,直接开始下一次的循环。迭代语句包括while语句、do-while语句、for语句和foreach语句。任务1知识点(三)跳转语句跳转语句主要包括break语句、continue语句和return语句。1.break语句break语句用于退出最近(本层)的switch、while、do、for或foreach语句。如果多条循环语句相互嵌套,就只退出所在的那层循环。2.continue语句continue语句用于退出本次循环,然后进入最近的while、do、for、foreach语句的下一次循环。如果多层循环嵌套,continue语句只将用于最里面的那层循环。3.return语句return语句用于返回调用方所在的位置。一般多用于子方法返回调用的主方法任务1知识点(四)位运算符位运算符作用于二进制位,并逐位执行操作。&、|、^、~、<<、>>的描述如下表所示:任务1知识点二、运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,C#有丰富的内置运算符,分为以下六类:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符任务1知识点(一)算术运算符表显示了C#支持的所有算术运算符。假设变量

A

的值为10,变量

B

的值为20,则:任务1知识点(二)关系运算符表显示了C#支持的所有关系运算符。假设变量A的值为0,变量B的值为20,则:(三)逻辑运算符表显示了C#支持的所有逻辑运算符。假设变量A为布尔值true,变量B为布尔值false,则:任务1知识点(四)赋值运算符表列出了C#支持的赋值运算符:任务1知识点(五)其他运算符表列出了C#支持的其他一些重要的运算符,包括sizeof、typeof和条件运算符?:等等。任务1知识点(六)运算符优先级表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会被优先计算。任务1知识点三、类型转换作为统一类型系统的一部分,所有值类型都可以转换为object。预定义的数值型类型之间支持隐式转换,隐式转换可能降低精度,但是不降低量级(表示数据的能力),所以实际应用过程中应该避免使用隐式转换。inti=40;objectj=i;//隐式转换必要的时候需要进行强制转换,强制转换的方式分为:(Type)e即将e的值转换为类型Type;intm=(int)j;//显式转换任务1知识点同时C#还提供了Convert.ToType(e)即将e的类型转换为Type的形式,如下表所示;以及e.ToString()即将e的类型转换为字符串;Type.parse(e)即将e的类型转换为Type等方法。任务1知识点交通灯项目案例任务2一、创建项目二、界面布局三、编写代码知识梳理任务引入:在图片移动项目中,我们控制的图片只有一张,能不能用程序控制图片的更换呢?在本任务中就使用多张图片的切换来实现对交通灯中红、绿、黄三种颜色的变换。任务分析:本任务需要提前准备好四张图片,第1张用于显示初始状态,即三个灯都不亮;第2张用于显示只有绿灯亮;第3张用于显示只有黄灯亮;第4张用于显示只有红灯亮。程序运行过程中用代码动态改变PictureBox控件中的图片,而每个灯亮的秒数则由用户的输入数据来决定。任务2交通灯项目案例一、创建项目启动VS2013以后,选择“文件”菜单——“新建”——“项目”打开“新建项目”对话框,确认左侧目录树选中的是“VisualC#”选项,然后选择“Windows窗体应用程序”,浏览到项目的存放目录“D:\CSharp”,名称设置为“WTrafficLight”。任务2交通灯项目案例二、界面布局本项目主要来模拟交通灯效果,可以设置三种灯亮灭切换的时间和顺序,界面布局如图所示,主要控件的属性和事件设置如表所示。选中下拉列表框ComboBox1的Items属性后,点击后面的“三个点”按钮,依次添加三行数据:绿灯先亮、黄灯先亮、红灯先亮。任务2交通灯项目案例这三行数据的顺序要和后面代码中枚举LightOn的顺序一致。注意:PictureBox1控件需要放置4张图片,通过设置其Image属性来添加图片,选中Image属性后,点击后面的“三个点”按钮——“项目资源文件”——“导入”选择4个图片文件,这4个文件大小相同,这4张图片可以到本书提供的资源中获取,分别是:灭灯图片default.png、绿灯图片green.png、黄灯图片yellow.png、红灯图片red.png。任务2交通灯项目案例三、编写代码前台界面(Form.cs[设计])设置完毕之后,右击窗体“Form1”——“查看代码”可以进入后台代码(Form.cs)的编写界面,或者右击解决方案资源管理器的文件“Form1.cs”——“查看代码”也可以进入代码编写界面。1.定义枚举类型LightOn(在类Form1的上面,命名空间里面,和类Form1是平行的)2.定义窗体的公共变量(即类Form1的字段)3.编写“开始”按钮的单击事件绑定的方法btnStart_Click(),开始模拟交通灯,该方法是在设计界面双击控件btnStart自动生成的。4.编写timer1_Tick()方法,该方法是在设计界面双击控件timer1自动生成的,根据用户设置的时间和顺序控制交通灯的亮灭任务2交通灯项目案例5.编写“重置”按钮的单击事件绑定的方法btnReset_Click(),该方法是在设计界面双击控件btnReset自动生成的。6.编写“退出”按钮的单击事件绑定的方法btnExit_Click(),该方法是在设计界面双击控件btnExit自动生成的。7.编写窗口Form1的关闭事件绑定的方法Form1_FormClosed(),该方法是在设计界面选中控件Form1,点击属性窗口中的“事件”按钮,然后找到FormClosed事件(也可以用FormClosing事件,这两个事件的细微区别读者可以自行研究),双击FormClosed事件的值添加的。任务2交通灯项目案例本项目是在图片移动项目的基础上进行提升,使用了更多的Windows控件,同时练习用代码控制图片的切换,项目中对亮灯颜色的控制也可以简单的使用一个整型变量,之所以使用了枚举类型,主要是为了提高程序的可读性,达到“见名知

温馨提示

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

评论

0/150

提交评论