第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)1.ppt_第1頁
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)1.ppt_第2頁
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)1.ppt_第3頁
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)1.ppt_第4頁
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)1.ppt_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余38頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Visual FoxPro 程序設(shè)計(jì)教程,機(jī)械工業(yè)出版社同名教材配套電子教案,2007 年 7月,4.1 條件表達(dá)式 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 運(yùn)算符的優(yōu)先順序 4.2 條件選擇語句 單條件選擇語句IF 多分支條件選擇語句DO CASE 4.3 提供簡(jiǎn)單選擇的控件 命令按鈕組,第 4 章,選擇結(jié)構(gòu)程序設(shè)計(jì), 選項(xiàng)按鈕組 復(fù)選框 4.4 計(jì)時(shí)器與微調(diào)器 計(jì)時(shí)器 微調(diào)器 4.4 鍵盤事件 KeyPress事件 響應(yīng)鍵盤事件,4.1.1 關(guān)系運(yùn)算符與關(guān)系表達(dá)式,4.1 條件表達(dá)式,教學(xué)進(jìn)程,關(guān)系運(yùn)算符有8種:、=、=、#、 !=、$、= =,邏輯運(yùn)算符有3種:AND、OR、NO

2、T,4.1.1 邏輯運(yùn)算符與邏輯表達(dá)式,運(yùn)算符的優(yōu)先順序:算術(shù)運(yùn)算符、字符串運(yùn)算符、 關(guān)系運(yùn)算符、邏輯運(yùn)算符,4.1.1 運(yùn)算符的優(yōu)先順序,4.2 條件選擇語句,單條件選擇語法結(jié)構(gòu):,IF條件 語句列1 ELSE 語句列2 ENDIF,教學(xué)進(jìn)程,教學(xué)進(jìn)程,【例4-2】設(shè)計(jì)一個(gè)驗(yàn)證口令的表單。輸入口令時(shí)文本框中只顯示相同個(gè)數(shù)的“*”號(hào),如圖4-2所示。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。 (2) 設(shè)置對(duì)象屬性。,(3) 編寫程序代碼。圖4-3 建立界面與設(shè)置屬性,教學(xué)進(jìn)程, 編寫關(guān)閉按鈕Command1的Click事件代碼: THISFORM.Release,教學(xué)進(jìn)程,編寫Text1

3、的Valid事件代碼: THISFORM.Command1.TabStop = .F. a = LOWER(THIS.Value) IF a= abcd THISFORM.Label1.Top = THIS.Parent.Top THISFORM.Label1.Caption=歡迎使用本程序! THISFORM.Command1.TabStop = .T. THIS.Parent.Visible = .F. ELSE MESSAGEBOX(對(duì)不起,口令錯(cuò)!請(qǐng)重新輸入!,48,口令) THIS.SelStart=0 THIS.SelLength=LEN(RTRIM(THIS.Value) END

4、IF,教學(xué)進(jìn)程,教學(xué)進(jìn)程,【例4-3】求函數(shù)值。輸入x,計(jì)算y的值,其中:,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫程序代碼。 根據(jù)流程圖,可以寫出命令按鈕Command1的單擊(Click)事件代碼為:,x = val(THISFORM.Text1.Value) IF x = 0 y = 4 * x ELSE y = 15 2 * x ENDIF THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength= EN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus THISF

5、ORM.Text2.Value = y,教學(xué)進(jìn)程,教學(xué)進(jìn)程,教學(xué)進(jìn)程,使用IIF函數(shù) IIf函數(shù)的語法結(jié)構(gòu)為: 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 THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength=LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFoc

6、us,教學(xué)進(jìn)程, IF語句的嵌套 【例4-5】鐵路托運(yùn)行李,從甲地到乙地,規(guī)定每張客票托運(yùn)費(fèi)計(jì)算方法是:行李重量不超過50公斤時(shí),每公斤0.25元,超過50公斤而不超過100公斤時(shí),其超過部分每公斤0.35元,超過100公斤時(shí),其超過部分每公斤0.45元。編寫程序,輸入行李重量,計(jì)算并輸出托運(yùn)的費(fèi)用。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。,教學(xué)進(jìn)程,(2) 編寫程序代碼。 根據(jù)流程圖,可以寫出命令按鈕Command1的單擊(Click)事件代碼為: w = THISFORM.Text1.Value IF w = 50 x = 0.25 * w ELSE IF w = 1

7、00 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,教學(xué)進(jìn)程,【例4-6】5-5某百貨公司為了促銷,采用購(gòu)物打折扣的優(yōu)惠辦法:每位顧客一次購(gòu)物 (1) 在1000元以上者,按九五折優(yōu)惠。 (2) 在2000元

8、以上者,按九折優(yōu)惠。 (3) 在3000元以上者,按八五折優(yōu)惠。 (4) 在5000元以上者,按八折優(yōu)惠。 編寫程序,輸入購(gòu)物款數(shù),計(jì)算并輸出優(yōu)惠價(jià)。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。,教學(xué)進(jìn)程,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,ENDIF ENDIF ENDIF THISFORM.Text2.Val

9、ue = y THISFORM.Text1.SelStart = 0 THISFORM.Text1.SelLength= LEN(THISFORM.Text1.Text) THISFORM.Text1.SetFocus,(2) 編寫程序代碼。 根據(jù)流程圖,可以寫出命令按鈕Command1的單擊(Click)事件代碼為:,多分支條件選擇語句DO CASE 語法結(jié)構(gòu),DO CASE CASE條件1 語句列1 CASE條件2 語句列2 . OTHERWISE 其他語句列 ENDCASE,教學(xué)進(jìn)程,【例4-7】5-6在例4-6中使用DO CASE語句來計(jì)算優(yōu)惠價(jià), 只需將其中命令按鈕Command1的

10、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

11、,教學(xué)進(jìn)程,4.3 提供簡(jiǎn)單選擇的控件,使用命令按鈕組,【例4-8】5-7使用命令按鈕組的程序。 設(shè)銀行定期存款年利率為:1年期2.25%,2年期2.43%, 3年期2.70%,5年期2.88%(不計(jì)復(fù)利)。 今有本金x元,5年以后使用,共有以下6種存法: l存一次5年期。 l存一次3年期,一次2年期。 l存一次3年期,兩次1年期。 l存兩次2年期,一次1年期。 l存一次2年期,三次1年期。 l存五次1年期。 分別計(jì)算各種存法5年后到期時(shí)的本息合計(jì),如圖4-12所示。,教學(xué)進(jìn)程,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。 (2) 設(shè)置對(duì)象屬性。 (3) 編寫程序代碼。 編寫表單的Activ

12、ate事件代碼: 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,教學(xué)進(jìn)程,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年

13、期,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年期,教學(xué)進(jìn)程,y = (1 + x1)5 * a ENDCASE mes = ALLT(STR(a) + “元” + mes + CHR(13) + “到期時(shí), 本息共計(jì): + ALLT(STR(y,12,2) + 元 ME

14、SSAGEBOX(mes, 0 , 利息計(jì)算),教學(xué)進(jìn)程,選項(xiàng)組與選項(xiàng)組生成器,【例4-9】利用選項(xiàng)組控制例4-8中存款利息的計(jì)算,如圖4-16。 設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面 (2) 設(shè)置對(duì)象屬性。 (3) 編寫程序代碼。 編寫表單的Activate事件代碼: THIS.Text1.SetFocus 編寫選項(xiàng)按鈕組OptionGroup1的Click事件代碼:,教學(xué)進(jìn)程,a = val(THISFORM.Text1.Value) x1 = 0.0225 x2 = 0.0243 x3 = 0.027 x5 = 0.0288 n = THIS.Value DO CASE CASE

15、 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,教學(xué)進(jìn)程,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

16、 CASE n = 6 mes = 存5次1年期 y = (1 + x1)5 * a ENDCASE mes = mes + ,本息共計(jì):+ALLT(STR(y,12,2)+元 THISFORM.Label3.Caption = mes,教學(xué)進(jìn)程,【例4-10】利用選項(xiàng)組控制文本的對(duì)齊方式與字體,如圖4-18。 設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。 (2) 設(shè)置對(duì)象屬性。 (3) 編寫程序代碼。 編寫表單的Activate事件代碼: THISFORM.Text1.SetFocus 編寫OptionGroup1的Click事件代碼:,n = THIS.Value DO CASE CAS

17、E n = 1 THISFORM.Text1.Alignment = 0 CASE n = 2 THISFORM.Text1.Alignment = 2 CASE n = 3 THISFORM.Text1.Alignment = 1 ENDCASE,教學(xué)進(jìn)程,編寫OptionGroup2的Click事件代碼: n = THIS.Value DO CASE CASE n = 1 THISFORM.Text1.FontName = 宋體 CASE n = 2 THISFORM.Text1.FontName = 隸書 CASE n = 3 THISFORM.Text1.FontName = 黑體 C

18、ASE n = 4 THISFORM.Text1.FontName = 楷體_GB2312 ENDCASE,教學(xué)進(jìn)程,選項(xiàng)組的圖形方式,【例4-11】修改上例中的選項(xiàng)組成圖形按鈕的形式,如圖4-21。 設(shè)計(jì)步驟同上例,只介紹選項(xiàng)組的修改方法。,與修改命令按鈕組類似,可以在“選項(xiàng)組生成器”中對(duì)各個(gè)選項(xiàng)按鈕進(jìn)行修改。下面我們通過屬性窗口對(duì)選項(xiàng)按鈕進(jìn)行修改。 用鼠標(biāo)右鍵單擊選項(xiàng)組OptionGroup1,在彈出菜單中選擇“編輯”,OptionGroup1的四周出現(xiàn)淺色邊界,開始對(duì)選項(xiàng)組(容器)中的按鈕進(jìn)行編輯。 依次選中三個(gè)按鈕Option1Option3,將其標(biāo)題(Cpation)屬性改為:(空)

19、,自動(dòng)大?。ˋutoSize)屬性改為:.F. 假,圖片(Picture)屬性通過瀏覽按鈕“”進(jìn)行查找,并分別改為:,programfilesmicrosoftvisualstudiocommongraphicsbitmapstlbr_w95lft.bmp programfilesmicrosoftvisualstudiocommongraphicsbitmapstlbr_w95ctr.bmp program filesmicrosoftvisual studiocommongraphicsbitmaps tlbr_w95rt.bmp 最后適當(dāng)調(diào)整按鈕的大小與相互位置。與之相仿可以將選項(xiàng)組Op

20、tionGroup1改為圖形方式,如圖4-22所示。,教學(xué)進(jìn)程,使用復(fù)選框,1、使用單個(gè)復(fù)選框,【例4-12】在上例中,增加復(fù)選框,控制選項(xiàng)組是否顯示,如圖4-23所示。,圖4-23 利用復(fù)選框控制控件的顯示,設(shè)計(jì)步驟同上例,只列出增加的部分。 (1) 增加一個(gè)復(fù)選框控件Check1。 (2) 修改Check1的屬性: AutoSize 屬性改為:.T. 真 標(biāo)題(Caption)改為:修改 值(Value)改為:.T. (3) 編寫Check1的Click事件代碼: THISFORM.OptionGroup1.Visible = THIS.Value THISFORM.OptionGroup

21、2.Visible = THIS.Value,2、使用多個(gè)復(fù)選框,【例4-13】利用復(fù)選框來控制輸入或輸出文本的字體風(fēng)格,如圖4-24所示。,圖4-24 控制字體風(fēng)格,設(shè)計(jì)步驟如下: (1) 選擇新建表單,進(jìn)入表單設(shè)計(jì)器,增加一個(gè)形狀控件 Shape1、一個(gè)文本框控件Text1、一個(gè)標(biāo)簽控件Label1以及三個(gè)復(fù)選框控件Check1、Check2和Check3。 (2) 設(shè)置對(duì)象屬性。 (3) 編寫事件代碼。 編寫表單的Activate事件代碼: THIS.Text1.SetFocus 編寫Check1的Click事件代碼: THISFORM.Text1.FontBold = THIS.Val

22、ue 編寫Check2的Click事件代碼: THISFORM.Text1.FontItalic = THIS.Value 編寫Check3的Click事件代碼: THISFORM.Text1.FontUnderLine = THIS.Value,3、復(fù)選框的圖形按鈕方式,【例4-14】圖形按鈕形式的復(fù)選框,如圖4-25。單擊鎖定按鈕關(guān)閉其他復(fù)選框,單擊修改按鈕則開放其他復(fù)選框。,圖4-25 使用圖形按鈕形式的復(fù)選框,設(shè)計(jì)步驟如下: (1) 選擇新建表單,進(jìn)入表單設(shè)計(jì)器,首先增加一個(gè)形狀控件Shape1,然后在其上增加一個(gè)文本框控件Text1、一個(gè)標(biāo)簽控件Label1以及五個(gè)復(fù)選框控件Chec

23、k1、Check2、Check3、Check4和Check5(參見圖4-26)。,圖4-26 設(shè)計(jì)按鈕形式的復(fù)選框 (2) 修改控件屬性。,(3) 編寫事件代碼。 編寫Check1的Click事件代碼: THISFORM.Text1.FontBold = THIS.Value 編寫Check2的Click事件代碼: THISFORM.Text1.FontItalic = THIS.Value 編寫Check3的Click事件代碼: THISFORM.Text1.FontUnderLine = THIS.Value 編寫Check4的Click事件代碼: THISFORM.Text1.FontS

24、trikethru = THIS.Value 編寫Check5的Click事件代碼: THISFORM.SetAll(Enabeld,THIS.Value,CheckBox) THIS.Enabeld=.T. THIS.Caption=IIF(THIS.Value=1,R 鎖定,R 修改),4.4 計(jì)時(shí)器與微調(diào)器 使用計(jì)時(shí)器 1、計(jì)時(shí)器的計(jì)時(shí)功能,【例4-15】在表單上設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,如圖4-28所示。,圖4-28 數(shù)字時(shí)鐘,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。 (2) 設(shè)置屬性。 (3) 編寫程序代碼。 編寫表單的Activate事件代碼: SET HOURS TO 12 編寫O

25、ptionGroup1的InteractiveChange事件代碼: IF THIS.Value=2 SET HOURS TO 12 THISFORM.Container1.Label1.Visible=.T. ELSE SET HOURS TO 24 THISFORM.Container1.Label1.Visible=.F. ENDIF, 編寫Timer1的Timer事件代碼: IF HOUR(DATETIME()=12 THIS.Parent.Label1.Caption=下午 ELSE THIS.Parent.Label1.Caption=上午 ENDIF THIS.Parent.Text1.Value=SUBSTR(TTOC(DATETIME(),10,8),2. 計(jì)時(shí)器的動(dòng)感控制 【例4-16】設(shè)計(jì)一個(gè)電子游動(dòng)標(biāo)題板,標(biāo)題“使用VFP設(shè)計(jì)動(dòng)畫”在表單的黃色區(qū)域(容器中)自右至左地反復(fù)移動(dòng)。單擊“暫?!卑粹o,標(biāo)題停止移動(dòng),按鈕變成“繼續(xù)”。 單擊“繼續(xù)”按鈕,標(biāo)題繼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論