Download - 面向对象程序设计

Transcript
Page 1: 面向对象程序设计

03 流程控制窗体

面向对象程序设计

Page 2: 面向对象程序设计

面向对象程序设计 2郑捷[email protected] www.lzj.name

面向对象程序设计 2郑捷

目录

回顾变量和表达式

bool类型

流程控制

窗体控件使用

实验

1

2

3

4

5

Page 3: 面向对象程序设计

面向对象程序设计 3郑捷[email protected] www.lzj.name

编程基础——变量和表达式

• 变量• 输出语句• 运算符和表达式• 输入语句• 简单的类型转换• 常量,字面值• 布尔型• CTS 通用类型体系

Page 4: 面向对象程序设计

面向对象程序设计 4郑捷[email protected] www.lzj.name

变量的定义

• 变量的基本概念• 声明语法

• 简单变量类型– 整数 (long, int, short, byte)– 浮点数 (float, double, decimal)– 字符 (char) 、布尔 (bool) 、字符串 (string)

Page 5: 面向对象程序设计

面向对象程序设计 5郑捷[email protected] www.lzj.name

变量的赋值

• 变量可以在声明的时候直接初始化,也可以单独赋值。

• 赋予变量的值必须是和变量类型相同的,或者能够被隐含转换成变量类型的值

Page 6: 面向对象程序设计

面向对象程序设计 6郑捷[email protected] www.lzj.name

控制台变量的输出

• Console.WriteLine(xxxxx);• Console.Write(xxxxx);

• Console 是控制台对象,用于输入输出WriteLine 和 Write 是它的方法,用于输出内容

• 输出的可以是各种数据类型

Page 7: 面向对象程序设计

面向对象程序设计 7郑捷[email protected] www.lzj.name

窗体变量输出

• MessageBox.Show(xxxxx);

• MessageBox 是消息框对象,用于显示消息框与用户交互Show 是其主要方法,用来将消息框显示出来最简单的用法是显示一个字符串,还可以指定不同的图标、按钮等

• 输出的内容必须被转换成字符串!

Page 8: 面向对象程序设计

面向对象程序设计 8郑捷[email protected] www.lzj.name

运算符

• 运算符表示某种运算• 不同运算符有各自的优先级,各级运算符按照优

先级原则依次计算

Page 9: 面向对象程序设计

面向对象程序设计 9郑捷[email protected] www.lzj.name

数据类型的转换

• 将输入的数据转换成整数• Convert.ToInt32(......)

Page 10: 面向对象程序设计

面向对象程序设计 10郑捷[email protected] www.lzj.name

常量

• 常量是和变量相对的,不可改变数值的标识符• 取代 C 语言的 #define• 定义方式:在一般变量的定义前加 const• 不能修改常量的值

Page 11: 面向对象程序设计

面向对象程序设计 11郑捷[email protected] www.lzj.name

数据类型综述

• C# 是强类型语言,所有值、变量、表达式等有唯一的类型

• char 、 bool 等类型,不再可以和 int 进行相互转换

• 在 DotNet 平台的不同语言之间,类型具有共性

Page 12: 面向对象程序设计

面向对象程序设计 12郑捷[email protected] www.lzj.name

CTS通用类型体系

• 不同语言之间要进行数据交流,数据的类型必须一致

• DotNet 平台使用 CTS 类定义一套统一、通用的数据类型

• C# 中的每种数据类型都可以在 CTS 中找到对应的标准类型

• 例如: int 对应 System.Int32

Page 13: 面向对象程序设计

面向对象程序设计 13郑捷[email protected] www.lzj.name

编程基础——变量和表达式

• 变量• 输出语句• 运算符和表达式• 输入语句• 简单的类型转换• 常量,字面值• 布尔型• CTS 通用类型体系

Page 14: 面向对象程序设计

面向对象程序设计 14郑捷[email protected] www.lzj.name

窗体程序设计介绍

• 窗体程序设计,分为界面设计、代码编写两部分• 界面设计就是在界面上根据需要布局各种控件• 代码编写则是编写代码对控件的各种事件进行响

应• 现代界面编程的原则是事件驱动:即界面控件在

发生事件(如被点击、被输入等)之后,进行响应操作。而传统程序,则是流程控制驱动,按照写好的流程顺序执行。

Page 15: 面向对象程序设计

面向对象程序设计 15郑捷[email protected] www.lzj.name

常用控件

• 按钮– 用于接受用户的点击,并且对点击进行响应

• 文本框– 用于接收用户输入的文本信息– 可以在程序中读取用户的输入,也可以设置内容

• 标签– 用于显示静态信息– 也可以在程序运行中去设置信息,进行显示

Page 16: 面向对象程序设计

面向对象程序设计 16郑捷[email protected] www.lzj.name

属性

• 控件的属性分为设计时属性和运行时属性• 设计时属性在设计界面的阶段填写,直接反应在

界面上• 运行时属性在程序中通过代码进行设置,并且在

设置后直接反馈在界面上• 大部分属性都是既是设计时,也是运行时的

Page 17: 面向对象程序设计

面向对象程序设计 17郑捷[email protected] www.lzj.name

常用事件

• Click 点击事件一般在按钮上对此事件进行编程,进行点击后的操作

• 会自动生成 btnXXX_Click 这样的函数,在本函数中编程

• 注意观察控件、事件、函数之间的关联关系

Page 18: 面向对象程序设计

面向对象程序设计 18郑捷[email protected] www.lzj.name

实验

• 设计一个窗体界面,有一个按钮、两个文本框、一个标签等点击按钮时,将文本框输入的内容转换成整数,计算其和,并转换成字符串显示在标签上

• 要求:– 控件必须合理命名– 在事件中进行操作编程– 注意进行数据类型的转换

Page 19: 面向对象程序设计

面向对象程序设计 19郑捷[email protected] www.lzj.name

面向对象程序设计 19郑捷

目录

回顾变量和表达式

bool类型

流程控制

窗体控件使用

实验

1

2

3

4

5

Page 20: 面向对象程序设计

面向对象程序设计 20郑捷[email protected] www.lzj.name

概述

• 流程控制是编程的关键所在• 主要包括四种:– 顺序– 选择– 循环– 调用

Page 21: 面向对象程序设计

面向对象程序设计 21郑捷[email protected] www.lzj.name

流程

• 顺序执行– 正常的代码遵循顺序执行的原则– 每一条命令执行完成后,执行下一条命令– 直至出现流程的转向,或者到停机指令

• 转向流程– 遇到转向指令时,程序不是直接执行下一条指令,而

是根据转向指令,跳转到指定的位置继续执行– 转向指令往往带有条件

Page 22: 面向对象程序设计

面向对象程序设计 22郑捷[email protected] www.lzj.name

条件和布尔型

• 布尔型( bool )是新增的数据类型,取值只能是true 或 false ,用于表达条件的结果

• 布尔型出现后,条件判断和 int 类型不再相关• 几个规定:– 比较运算( >, <, >=, <=, ==, != )的结果是 bool– 逻辑运算( ||, &&, ! )的运算数和结果都是 bool– 条件运算符( ?: )中的条件必须是 bool

Page 23: 面向对象程序设计

面向对象程序设计 23郑捷[email protected] www.lzj.name

bool练习

• 闰年的判断标准:– 如果年份不能被 4 整除,则不是闰年– 如果能被 4 整除,但是不能被 100 整除,是闰年– 如果能被 100 整除,但是不能被 400 整除,不是闰年– 如果能被 400 整除,是闰年

• 写出判断的条件

Page 24: 面向对象程序设计

面向对象程序设计 24郑捷[email protected] www.lzj.name

if语句

• if 是根据条件,决定其后的语句是否执行• 基本语法:– if (条件 )– 语句 1– [else– 语句 2]

Page 25: 面向对象程序设计

面向对象程序设计 25郑捷[email protected] www.lzj.name

简单的 if语句

• 输入两个数,输出其最大值

• 输入三个数,输出其最大值

Page 26: 面向对象程序设计

面向对象程序设计 26郑捷[email protected] www.lzj.name

语句嵌套

• 编程经常使用嵌套,语句之间可以层层嵌套• 嵌套要求内层必须完全被嵌套在外层之中• 内层对于外层而言,被视为一个独立的物体

• 编程中大量使用嵌套

Page 27: 面向对象程序设计

面向对象程序设计 27郑捷[email protected] www.lzj.name

嵌套 if

• 输入成绩,判定成绩的等级– 成绩≥ 90 ,为“优秀”– ≥80 且 <90 ,为“良好”– ≥70 且 <80 ,为“中等”– ≥60 且 <70 ,为“及格”– <60 ,为“不及格”

Page 28: 面向对象程序设计

面向对象程序设计 28郑捷[email protected] www.lzj.name

switch语句

• if 语句负责判断一个分支,但是如果是一个表达式的多种取值,那么可以用 switch 语句

• switch (表达式 ){ case 值 1: 语句块 1; break; case 值 2: 语句块 2; break; default: 语句块 n; break;}

Page 29: 面向对象程序设计

面向对象程序设计 29郑捷[email protected] www.lzj.name

switch应用

• 判断成绩等级

Page 30: 面向对象程序设计

面向对象程序设计 30郑捷[email protected] www.lzj.name

多个 case对应相同指令

• 多个 case 可以对应相同的指令• 但是这些 case 之间,不能有其他指令• 这比 C 语言要求更严格

Page 31: 面向对象程序设计

面向对象程序设计 31郑捷[email protected] www.lzj.name

循环程序设计循环程序设计

• 循环指重复地执行某一段程序,直到某个预设的情况出现为止

• C# 中的循环,都是“当”型循环,即当条件满足时,循环继续。不满足时,退出。

• “直到”• 被重复执行的部分,称作循环体• 循环通常分为 while 循环和 for 循环,但是其本质

是一样的

Page 32: 面向对象程序设计

面向对象程序设计 32郑捷[email protected] www.lzj.name

whilewhile 和和 do-whiledo-while 循环循环

• while ( 条件 ) 循环体

• do 循环体while ( 条件 );

• 二者差异在于,首次进入循环体之前,是否进行条件的检查

Page 33: 面向对象程序设计

面向对象程序设计 33郑捷[email protected] www.lzj.name

whilewhile 循环特点循环特点

• 可以是任意条件• 在循环体中必须有语句使条件变得不满足• 循环的次数事先无法确定• 用 while 可以模拟出其他循环方式

Page 34: 面向对象程序设计

面向对象程序设计 34郑捷[email protected] www.lzj.name

forfor 循环循环

• for 循环是一种计数循环,通常是对循环控制变量进行增减,使其从初值变化到终值的一种过程

• for ( 初始设置 ; 结束条件 ; 自增 ) 循环体

• for 循环通常在开始之前就已经确定了循环的次数• for 循环分为递增循环和递减循环两大类

Page 35: 面向对象程序设计

面向对象程序设计 35郑捷[email protected] www.lzj.name

forfor 循环的特例循环的特例

• For 循环的初始化表达式、结束条件、自增表达式等均可以省略

• for (;;)• For 循环可以被当做 while 循环使用

• 这些特例,都不建议在编程中使用

Page 36: 面向对象程序设计

面向对象程序设计 36郑捷[email protected] www.lzj.name

forfor 循环案例循环案例

• Fibonacci 数列是一个很有趣的序列:• 第一個月有一對剛誕生的兔子 • 第二個月之後牠們可以生育 • 每月每對可生育的兔子會誕生下一對新兔子 • 兔子永不死去 • 假設在 n 月有新生及可生育的兔子總共 a 對, n+1 月就總共有

b 對。在 n+2 月必定總共有 a+b 對:因為在 n+2 月的時候,所有在 n 月就已存在的 a 對兔子皆已可以生育並誕下 a 對後代;同時在前一月 (n+1 月 ) 之 b 對兔子中,在當月屬於新誕生的兔子尚不能生育。

Page 37: 面向对象程序设计

面向对象程序设计 37郑捷[email protected] www.lzj.name

循环嵌套循环嵌套

• 循环中可以嵌套另外的程序结构• 嵌套的程序不一定要求和外层结构相同

Page 38: 面向对象程序设计

面向对象程序设计 38郑捷[email protected] www.lzj.name

循环的中断循环的中断

• break 语句– 中断循环,不检查条件,直接跳到循环外的下一条语

句• continue 语句– 用于中断当前循环,跳过循环体中剩余的语句,直接跳到检查循环条件处

– 注意:它不会结束循环,只是提前结束本轮的循环而已!

Page 39: 面向对象程序设计

面向对象程序设计 39郑捷[email protected] www.lzj.name

面向对象程序设计 39郑捷

目录

回顾变量和表达式

bool类型

流程控制

窗体控件使用

实验

1

2

3

4

5

Page 40: 面向对象程序设计

面向对象程序设计 40郑捷[email protected] www.lzj.name

窗体的使用

• 窗体编程是事件驱动的• 注意事件代码的编写

Page 41: 面向对象程序设计

面向对象程序设计 41郑捷[email protected] www.lzj.name

面向对象程序设计 41郑捷

目录

回顾变量和表达式

bool类型

流程控制

窗体控件使用

实验

1

2

3

4

5

Page 42: 面向对象程序设计

面向对象程序设计 42郑捷[email protected] www.lzj.name

上机与练习

• 编写一个简单的窗体程序,让用户输入自己的一些个人信息(如姓名、性别、年龄、身高等等),并根据用户的输入,做出综合性的评价。评语应根据输入内容自动调整

• 例如:– 在指定文本框中输入的信息为:张三,男, 1.85– 输出评价:张三先生,你很高大

Page 43: 面向对象程序设计