第4章 选择结构程序设计1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计步骤如下: (1) 建立应用程序用户界面与设置对象属性。
教学进程
(2) 编写程序代码。
根据流程图,可以写出命令按钮Command1的单击(Click)事件代码为:
x =val(THISFORM.Text1.Value) IF x < 1000 y=x ELSE IF x < 2000 y = 0.95 * x ELSE IF x < 3000 y = 0.9 * x ELSE IF x < 5000 y = 0.85 * x ELSE y = 0.08 * x ENDIF
教学进程
4.3 提供简单选择的控件 ●使用命令按钮组 【例4-8】5-7使用命令按钮组的程序。 设银行定期存款年利率为:1年期2.25%,2年期2.43%, 3年期2.70%,5年期2.88%(不计复利)。 今有本金x元,5年以后使用,共有以下6种存法: l存一次5年期。 l存一次3年期,一次2年期。 l存一次3年期,两次1年期。 l存两次2年期,一次1年期。 l存一次2年期,三次1年期。 l存五次1年期。 分别计算各种存法5年后到期时的本息合计,如图4-12所示。
设计步骤如下:
(1) 建立应用程序用户界面。 (2) 设置对象属性。
教学进程
(3) 编写程序代码。 图4-3 建立界面与设置属性
● 编写关闭按钮Command1的Click事件代码: THISFORM.Release
教学进程
●编写Text1的Valid事件代码: THISFORM.Command1.TabStop = .F. a = LOWER(THIS.Value) IF a= "abcd " THISFORM.Label1.Top = THIS.Parent.Top THISFORM.Label1.Caption="欢迎使用本程序!"
逻辑运算符有3种:AND、OR、NOT
4.1.1 运算符的优先顺序
运算符的优先顺序:算术运算符、字符串运算符、 关系运算符、逻辑运算符
教学进程
4.2 条件选择语句
单条件选择语法结构: IF〈条件〉 [语句列1] [ELSE [语句列2]] ENDIF
教学进程
【例 4-2】设计一个验证口令的表单。输入口令时文本框中 只显示相同个数的“*”号,如图4-2所示。
教学进程
设计步骤如下: (1) 建立应用程序用户界面。 (2) 设置对象属性。 (3) 编写程序代码。 ● 编写表单的Activate事件代码: THIS.Text1.SetFocus ● 编写命令按钮组 Commandgroup1的Click事件代码: a =val( THISFORM.Text1.Value) x1 = 0.0225 x2 = 0.0243 x3 = 0.027 x5 = 0.0288 n = THIS.Value
教学进程
mes = "存1次3年期,2次1年期" y = (1 + 3 * x3) * (1 + x1)^2 * a CASE n = 4 mes = "存2次2年期,1次1年期" y = (1 + 2 * x2)^2 * (1 + x1) * a CASE n = 5 mes = "存1次2年期,3次1年期" y = (1 + 2 * x2) * (1 + x2)^3 * a CASE n = 6 mes = "存5次1年期" y = (1 + x1)^5 * a ENDCASE mes = mes + ",本息共计:"+ALLT(STR(y,12,2))+"元" THISFORM.Label3.Caption = mes
THISFORM.Text1.SelStart = 0
THISFORM.Text1.SelLength=LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus
教学进程
● IF语句的嵌套
【例 4-5】铁路托运行李,从甲地到乙地,规定每张客票 托运费计算方法是:行李重量不超过 50 公斤时,每公斤 0.25 元,超过 50 公斤而不超过 100 公斤时,其超过部分每 公斤0.35元,超过100公斤时,其超过部分每公斤0.45元。 编写程序,输入行李重量,计算并输出托运的费用。
教学进程
a = val(THISFORM.Text1.Value) x1 = 0.0225 x2 = 0.0243 x3 = 0.027 x5 = 0.0288 n = THIS.Value DO CASE CASE n = 1 mes = "存1次5年期" y = (1 + 5 * x5) * a CASE n = 2 mes = "存1次3年期,1次2年期" y = (1 + 3 * x3) * (1 + 2 * x2) * a CASE n = 3
教学进程
【例4-10】利用选项组控制文本的对齐方式与字体,如图4-18。 设计步骤如下: (1) 建立应用程序用户界面。 (2) 设置对象属性。 (3) 编写程序代码。 ●编写表单的Activate事件代码: THISFORM.Text1.SetFocus ●编写OptionGroup1的Click事件代码:
ENDIF
THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength= EN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus THISFORM.Text2.Value = y
教学进程
●使用IIF函数 IIf函数的语法结构为: IIf(条件,真部分,假部分) 【例 4-4】例 4-3 中命令按钮 Command1 的单击( Click )事件代 码可以改为: x =val(THISFORM.Text1.Value) y = IIF(x >= 0, 4 * x, 15 – 2 * x) THISFORM.Text2.Value = y
DO CASE
CASE〈条件1〉 [〈语句列1〉]
[CASE〈条件2〉
[〈语句列2〉]] ...
[OTHERWISE
[〈其他语句列〉]] ENDCASE
【例4-7】5-6在例4-6中使用DO CASE语句来计算优惠价, 只需将其中命令按钮Command1的Click事件代码改为: x = val(THISFORM.Text1.Value) DO CASE CASE x < 1000 y=x CASE x < 2000 y = 0.95 * x CASE x < 3000 y = 0.9 * x CASE x < 5000 y = 0.85 * x OTHERWISE y = 0.80 * x ENDCASE THISFORM.Text2.Value = y THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength=LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus
【例4-9】利用选项组控制例4-8中存款利息的计算,如图4-16。 设计步骤如下: (1) 建立应用程序用户界面 (2) 设置对象属性。
(3) 编写程序代码。
● 编写表单的Activate事件代码: THIS.Text1.SetFocus ● 编写选项按钮组OptionGroup1的Click事件代码:
教学进程
【例4-6】5-5某百货公司为了促销,采用购物打折扣的优惠办 法:每位顾客一次购物 (1) 在1000元以上者,按九五折优惠。 (2) 在2000元以上者,按九折优惠。 (3) 在3000元以上者,按八五折优惠。 (4) 在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。
ENDIF ENDIF ENDIF THISFORM.Text2.Value = y THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength= LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus
教学进程
多分支条件选择语句DO CASE 语法结构
设计步骤如下:
(1) 建立应用程序用户界面与设置对象属性。
教学进程
(2) 编写程序代码。
根据流程图,可以写出命令按钮Command1的单击(Click)事件代码为:
w = THISFORM.Text1.Value IF w <= 50 x = 0.25 * w ELSE IF w <= 100 x = 0.25 * 50 + 0.35 * (w – 50) ELSE x = 0.25 * 50 + 0.35 * 50 + 0.45 * (w – 100) ENDIF ENDIF THISFORM.Text2.Value = x THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength = LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus
教学进程
DO CASE CASE n = 1 mes = "存1次5年期" y = (1 + 5 * x5) * a CASE n = 2 mes = "存1次3年期,1次2年期" y = (1 + 3 * x3) * (1 + 2 * x2) * a CASE n = 3 mes = "存1次3年期,2次1年期" y = (1 + 3 * x3) * (1 + x1)^2 * a CASE n = 4 mes = "存2次2年期,1次1年期" y = (1 + 2 * x2)^2 * (1 + x1) * a CASE n = 5mes = "存1次2年期,3次1年期" y = (1 + 2 * x2) * (1 + x2)^3 * a CASE n = 6 mes = "存5次1年期"
Visual FoxPro 程序设计教程
机械工业出版社同名教材 配套电子教案
2007 年 7月
第 章 选择结构程序设计
4.1 条件表达式
■ 关系运算符与关系表达式 ■ 逻辑运算符与逻辑表达式 ■ 运算符的优先顺序 ■ 选项按钮组 ■ 复选框
4
4.4 计时器与微调器
■ 计时器 ■ 微调器
4.2 条件选择语句
■ 单条件选择语句IF
4.4 键盘事件
■ KeyPress事件
■ 响应键盘事件
■ 多分支条件选择语句DO CASE
4.3 提供简单选择的控件
■ 命令按钮组
4.1 条件表达式
4.1.1 关系运算符与关系表达式
关系运算符有8种:<、<=、>、>=、=、<>、#、
!=、$、= =
4.1.1 逻辑运算符与逻辑表达式
n = THIS.Value DO CASE CASE n = 1 THISFORM.Text1.Alignment = 0 CASE n = 2 THISFORM.Text1.Alignment = 2 CASE n = 3 THISFORM.Text1.Alignment = 1 ENDCASE
THISFORM.Command1.TabStop = .T.
THIS.Parent.Visible = .F. ELSE
Biblioteka Baidu
MESSAGEBOX(" 对不起,口令错!请重新输入! ",48,"口令
") THIS.SelStart=0
THIS.SelLength=LEN(RTRIM(THIS.Value))
ENDIF
教学进程
【例4-3】求函数值。输入x,计算y的值,其中:
设计步骤如下:
(1) 建立应用程序用户界面与设置对象属性。 (2) 编写程序代码。
根据流程图,可以写出命令按钮Command1的单击(Click)事件代码为:
教学进程
x = val(THISFORM.Text1.Value) IF x >= 0 y=4*x ELSE y = 15 – 2 * x
教学进程
y = (1 + x1)^5 * a ENDCASE mes = ALLT(STR(a)) + “元” + mes + CHR(13) + “到期时, 本息共计:" + ALLT(STR(y,12,2)) + "元" MESSAGEBOX(mes, 0 , "利息计算")
教学进程
●选项组与选项组生成器
相关文档
最新文档