面向对象程序设计

43
03 流流流流 面面面面面面面面

description

0 3 流程控制 窗体. 面向对象程序设计. 目录. 1. 回顾变量和表达式. 2. bool类型. 3. 流程控制. 4. 窗体控件使用. 5. 实验. 面向对象程序设计. 郑捷. 2. 编程基础 —— 变量和表达式. 变量 输出语句 运算符和表达式 输入语句 简单的类型转换 常量,字面值 布尔型 CTS 通用类型体系. 变量的定义. 变量的基本概念 声明语法 简单变量类型 整数(long, int, short, byte) 浮点数(float, double, decimal) - PowerPoint PPT Presentation

Transcript of 面向对象程序设计

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: 面向对象程序设计