




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、指導(dǎo)老師:余敦輝2009-3-2VFP程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)書前言學(xué)習(xí)數(shù)據(jù)庫(kù)程序設(shè)計(jì),上機(jī)實(shí)訓(xùn)是十分重要的環(huán)節(jié)。為了方便讀者上機(jī)練習(xí),本實(shí)訓(xùn)指導(dǎo)書設(shè)計(jì)了12個(gè)實(shí)訓(xùn)。這些實(shí)訓(xùn)和課堂教學(xué)緊密配合,通過(guò)有針對(duì)性的上機(jī)實(shí)訓(xùn),可以更好地熟悉 Visual FoxPro的功能,掌握 Visual FoxPro程序設(shè)計(jì)的方法,并培養(yǎng)一定的應(yīng)用開發(fā)能力。建議每個(gè)實(shí)訓(xùn)安排2機(jī)時(shí)左右,也可以根據(jù)實(shí)際情況從每個(gè)實(shí)訓(xùn)中選擇部分內(nèi)容上機(jī)練習(xí)。為了達(dá)到理想的實(shí)訓(xùn)效果,請(qǐng)務(wù)必做到以下幾點(diǎn):1、實(shí)訓(xùn)前認(rèn)真準(zhǔn)備,要根據(jù)實(shí)訓(xùn)目的和實(shí)訓(xùn)內(nèi)容,復(fù)習(xí)好實(shí)訓(xùn)中可能要用到的命令,想好編程的思路,做到胸有成竹,提高上機(jī)效率。2、實(shí)訓(xùn)過(guò)程中積極
2、思考,要深入分析命令、程序的執(zhí)行結(jié)果以及各種屏幕信息的含義、出現(xiàn)的原因并提出解決辦法。3、實(shí)訓(xùn)后認(rèn)真總結(jié),要總結(jié)本次實(shí)訓(xùn)有哪些收獲,還存在哪些問(wèn)題,并完成實(shí)訓(xùn)指導(dǎo)書要求填寫的內(nèi)容。程序設(shè)計(jì)和應(yīng)用開發(fā)能力的提高需要不斷的上機(jī)實(shí)踐和長(zhǎng)期的經(jīng)驗(yàn)積累,在上機(jī)過(guò)程中會(huì)碰到各種各樣的問(wèn)題,分析問(wèn)題和解決問(wèn)題的過(guò)程就是經(jīng)驗(yàn)積累的過(guò)程。只要按照上面3點(diǎn)要求去做,在學(xué)完本課程后就一定會(huì)有很大的收獲,計(jì)算機(jī)應(yīng)用能力就會(huì)有很大提高?!緦?shí)訓(xùn)1】熟悉VFP環(huán)境實(shí)訓(xùn)目的:1熟悉VFP系統(tǒng)的操作環(huán)境。2掌握VFP系統(tǒng)的啟動(dòng)和退出方法。3掌握MSDN幫助文件的使用方法。實(shí)訓(xùn)內(nèi)容:1.VFP系統(tǒng)的啟動(dòng)(1)點(diǎn)擊“開始”菜單中的
3、“程序”選項(xiàng)。(2)找到Visual FoxPro 6.0的快捷方式來(lái)啟動(dòng)VFP。注:Visual FoxPro 6.0的可執(zhí)行文件為vfp6.exe,其所在目錄隨安裝的位置的不同而不同,一般為:“C:Program FilesMicrosoft Visual StudioVfp98VFP6.EXE"。2.在桌面上建立vfp6.exe的快捷方式(1) 首先找到VFP的可執(zhí)行文件vfp6.exe,依次打開C:Program FilesMicrosoft Visual StudioVfp98文件夾,找到VFP的可執(zhí)行文件為vfp6.exe。(根據(jù)具體實(shí)訓(xùn)環(huán)境的不同,該文件的位置可能不同)
4、(2)選中vfp6.exe文件。(3)右鍵拖動(dòng)vfp6.exe文件到桌面空白處,在彈出的快捷菜單中選擇“在當(dāng)前位置創(chuàng)建快捷方式”菜單項(xiàng),即可在桌面上建立vfp6.exe的快捷方式。雙擊剛剛建好的快捷方式也可以啟動(dòng)vfp環(huán)境。3.退出VFP(以下方法并列)方法1:在“命令”窗口中,輸入命令“quit”。方法2:直接按Alt+F4。方法3:在“文件”菜單中,選擇“退出”命令。方法4:雙擊主窗口左上角的控制菜單框。方法5:在主窗口控制菜單中,選擇“關(guān)閉”。4.認(rèn)識(shí)VFP界面(1) 在vfp主窗口中依次找到標(biāo)題欄、菜單欄、工具欄、狀態(tài)欄的位置。(2) “常用”工具欄的關(guān)閉。單擊“顯示”菜單中的“工具欄
5、”菜單項(xiàng)。在彈出的窗口中,找到“工具欄”列表框中的“常用”項(xiàng),鼠標(biāo)單擊去掉“常用”工具欄前面的選中標(biāo)記。單擊“確定”按鈕,即可關(guān)閉“常用”工具欄。(3) “常用”工具欄的顯示。單擊“顯示”菜單中的“工具欄”菜單項(xiàng)。在彈出的窗口中,找到“工具欄”列表框中的“常用”項(xiàng),鼠標(biāo)單擊選中“常用”工具欄前面的選中標(biāo)記。單擊“確定”按鈕,即可顯示“常用”工具欄。注:其他工具欄的顯示與關(guān)閉與上面的方法相同,請(qǐng)讀者自己練習(xí)。(3)命令窗口顯示與關(guān)閉。方法1:?jiǎn)螕簟按翱凇辈藛沃械摹泵畲翱凇?菜單項(xiàng)來(lái)顯示命令窗口,再次單擊“窗口”菜單中的”命令窗口”菜單項(xiàng)可關(guān)閉命令窗口。方法2:CTRL+F2(顯示命令窗口)/
6、CTRL+F4(關(guān)閉命令窗口)5.利用MSDN幫助文件查找要解決的問(wèn)題(1)進(jìn)入幫助系統(tǒng)有三種方法。方法1:在命令窗口中,輸入“help”命令后,回車。方法2:調(diào)用“幫助”菜單。方法3:在VFP窗口中的任一位置選中需要獲得幫助的內(nèi)容,按“F1”功能鍵。(2)選擇“活動(dòng)子集”為“Visual Foxpro文檔”,保證用戶查看到的是關(guān)于vfp的幫助內(nèi)容。(3)選中“搜索”標(biāo)簽,輸入要搜索的關(guān)鍵字。例如輸入“系統(tǒng)容量”四個(gè)字,單擊“列出主題”按鈕列出符合條件的主題。(4)用鼠標(biāo)雙擊找到的主題,在右邊的窗口部分即可看到要查找主題的相關(guān)內(nèi)容。(當(dāng)然用戶也可以在“目錄”選項(xiàng)卡下以目錄的形式來(lái)瀏覽vfp的幫
7、助內(nèi)容。)注:幫助文件的位置:通常情況下,VFP6的MSDN幫助文件位置在c:program filesMicrosoft Visual studiomsdn9898vs2502,文件名為foxhelp.chm。(5)請(qǐng)讀者找到所在的實(shí)訓(xùn)環(huán)境下,VFP6的MSDN幫助文件foxhelp.chm的存放位置?!緦?shí)訓(xùn)2】項(xiàng)目管理器的基本操作實(shí)訓(xùn)目的:1.掌握工作目錄的設(shè)置方法。2.掌握項(xiàng)目管理器的基本操作。3.掌握如何建立表文件及備注和通用字段內(nèi)容的輸入方法。實(shí)訓(xùn)內(nèi)容:1.設(shè)置D:VFPLX文件夾為工作目錄(兩種方法)首先在D盤新建立一個(gè)名為VFPLX的文件夾。方法1:菜單方法(1)依次單擊“工具”
8、菜單中的“選項(xiàng)”菜單項(xiàng)。(2)單擊選中”文件位置”選項(xiàng)卡中的“默認(rèn)目錄”項(xiàng)。(3) 單擊“修改”按鈕,在彈出的“更改文件位置”對(duì)話框中,選中“使用默認(rèn)目錄”選項(xiàng)。(4)在“定位默認(rèn)目錄”下面的文本框輸入新的工作目錄文件夾路徑,單擊“確定”按鈕。例如輸入:D:VFPLX。方法2: 命令操作的格式為:set default to 目錄名(1)在命令窗口中輸入:set default to D:VFPLX(2)回車執(zhí)行上面的命令即可。注意:要設(shè)置為工作目錄的文件夾必須已經(jīng)存在,否則,不能設(shè)置成功。在vfp環(huán)境下,一旦設(shè)置了工作目錄后,用戶使用VFP工作過(guò)程中所產(chǎn)生的文件默認(rèn)都會(huì)存到已經(jīng)設(shè)置好的工作目
9、錄下,不會(huì)與vfp系統(tǒng)文件混在一起,方便管理與查找。2.項(xiàng)目管理器的基本操作(1)建立項(xiàng)目文件單擊“文件”菜單中的“新建”菜單項(xiàng),在彈出的窗口中選擇文件類別為“項(xiàng)目”。單擊“新建文件”按鈕。在彈出的創(chuàng)建窗口中輸入項(xiàng)目文件名。例如輸入:XM1(注意項(xiàng)目文件的擴(kuò)展名為.PJX)。 單擊“保存”按鈕,便建立了名為XM1的項(xiàng)目文件,同時(shí)打開了項(xiàng)目管理器窗口。(2)建立數(shù)據(jù)庫(kù)文件在項(xiàng)目管理器中,單擊選中“數(shù)據(jù)”選項(xiàng)卡下面的“數(shù)據(jù)庫(kù)”類別。單擊“新建”按鈕,單擊“新建數(shù)據(jù)庫(kù)”按鈕。輸入文件名:如“教工”(注意數(shù)據(jù)庫(kù)文件的擴(kuò)展名為.dbc)。單擊“保存”按鈕,便建立了名為“教工”的數(shù)據(jù)庫(kù),同時(shí)打開了數(shù)據(jù)庫(kù)設(shè)
10、計(jì)器窗口。單擊數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口右上角的“x”形圖標(biāo)按鈕來(lái)關(guān)閉設(shè)計(jì)器。(3)關(guān)閉項(xiàng)目文件單擊項(xiàng)目管理器右上角的“x”(關(guān)閉按鈕)。(4)打開項(xiàng)目文件。單擊“文件”菜單中的“打開”菜單項(xiàng)。選擇文件類型為“項(xiàng)目”,選中要打開的項(xiàng)目文件XM1.PJX,單擊“確定”。(5)建立表文件單擊“數(shù)據(jù)庫(kù)”左邊的“+”,就會(huì)列出剛剛建好的“教工”數(shù)據(jù)庫(kù)。單擊“教工”左邊的“+”,選中“表”。(選自由表,可建立自由表)單擊“新建”/單擊“新建表”按鈕(此時(shí)建立的是數(shù)據(jù)庫(kù)表)。輸入文件名:如“zgda”(注意表文件的擴(kuò)展名為.dbf)。單擊“保存”按鈕,便打開了表設(shè)計(jì)器窗口。輸入表的結(jié)構(gòu)(如下表所示)后,單擊“確定”
11、按鈕。字段字段名類型寬度1編號(hào)字符型42姓名字符型63性別字符型24年齡數(shù)值型25職稱字符型66工作時(shí)間日期型87婚否邏輯型18簡(jiǎn)歷備注型49照片通用型4 系統(tǒng)提示是否現(xiàn)在“輸入記錄”,選擇“是”,并在全屏幕編輯窗口中輸入下列記錄。編號(hào)姓名性別年齡職稱工作時(shí)間婚否簡(jiǎn)歷照片1張黎黎女26助教05/24/99.T.memoGen2李艷女30助教09/24/99.T.memoGen3劉強(qiáng)男38講師12/24/95.T.memoGen4王秋燕女45講師10/09/93.T.memoGen5姜麗萍女45講師10/09/93.T.memoGen6陳麗麗女38講師09/27/95.T.memoGen7劉剛男
12、50副教授06/28/88.T.memoGen8王良男39講師08/09/95.T.memoGen注意:1.備注字段的輸入方法:雙擊相應(yīng)記錄的備注字段(簡(jiǎn)歷),打開備注字段的輸入窗口,既可輸入文本內(nèi)容。2.通用字段的輸入方法:(1)雙擊相應(yīng)記錄的通用字段(照片字段),打開通用字段的輸入窗口。(2)單擊“編輯”菜單中的“插入對(duì)象”命令。(3)選擇“對(duì)象類型”為“Microsoft Word 圖片”,即可打開Word程序。(4)在Word程序依次單擊插入/圖片/剪貼畫/選擇一個(gè)剪貼畫插入。(5)關(guān)閉Word程序,回到vfp,即可看到插入的圖片,關(guān)閉通用字段的輸入窗口。(6)已經(jīng)插入內(nèi)容的備注字段和
13、通用字段的外表分別顯示為Memo和Gen,第一個(gè)字母大寫;沒(méi)有插入內(nèi)容的備注字段和通用字段的外表分別顯示為memo和gen。小結(jié):建立表文件的過(guò)程分2步。首先建立表結(jié)構(gòu),即定義表的列數(shù)及每一列的數(shù)據(jù)類型、寬度等;再輸入記錄信息,即決定表有多少行的數(shù)據(jù)。(6)修改表文件的結(jié)構(gòu) 在項(xiàng)目管理器中,選中zgda.dbf表。 單擊“修改”按鈕,即可打開表設(shè)計(jì)器,對(duì)表的結(jié)構(gòu)進(jìn)行修改。(可增加、插入、刪除字段、改變字段的位置) 在表設(shè)計(jì)器的字段選項(xiàng)卡上的字段列表中最后一個(gè)字段后面單擊鼠標(biāo)來(lái)增加一個(gè)備注型字段,輸入字段名為“備注”,選擇字段類型為“備注型”。 刪除“工作時(shí)間”字段:選中“工作時(shí)間”字段,單擊“
14、刪除”按鈕。 改變字段的位置(順序):拖動(dòng)字段名前的移動(dòng)按鈕到目標(biāo)位置松開鼠標(biāo)即可。注:可以在命令窗口中輸入:modify structure命令,來(lái)修改表文件的結(jié)構(gòu),但必須先打開zgda表。(7)瀏覽表的內(nèi)容(記錄)在項(xiàng)目管理器中,選中zgda.dbf表。單擊“瀏覽”按鈕,即可打開瀏覽窗口對(duì)表的記錄進(jìn)行修改。(8)移去一個(gè)(表)文件在項(xiàng)目管理器中,選中要移去:如zgda.dbf表。單擊“移去”按鈕,單擊“移去”按鈕,僅僅是將表從項(xiàng)目管理器中移去,不刪除該表文件;(單擊“刪除”按鈕,是將表從項(xiàng)目管理器中移去,同時(shí)刪除該表文件)。注:如果是數(shù)據(jù)庫(kù)表,移去后該表變?yōu)樽杂杀怼?9)在項(xiàng)目中添加已有的
15、文件在項(xiàng)目管理器中,選中要添加的文件類型:如選中“自由表”類別。單擊“添加”按鈕,選擇要添加的表文件,如:剛剛移去的zgda.dbf單擊“確定”,即可添加到項(xiàng)目中。(10)項(xiàng)目管理器展開與折疊、選項(xiàng)卡拖離和頂層顯示操作展開與折疊:?jiǎn)螕簟捌渌边x項(xiàng)卡右邊的“向上箭頭”圖標(biāo),即可折疊項(xiàng)目管理器窗口,同時(shí)“向上箭頭”圖標(biāo)變成“向下箭頭”圖標(biāo);單擊“其他”選項(xiàng)卡右邊的“向下箭頭”圖標(biāo),即可展開項(xiàng)目管理器窗口,選項(xiàng)卡的拖離:在“折疊”狀態(tài)下,拖動(dòng)相應(yīng)的“選項(xiàng)卡”到新的位置松開鼠標(biāo)即可。選項(xiàng)卡的頂層顯示:?jiǎn)螕敉想x后的選項(xiàng)卡上的“圖釘”圖標(biāo)即可使該選項(xiàng)卡變成“頂層顯示”狀態(tài),不被其他的“選項(xiàng)卡”所遮蓋?!緦?shí)
16、訓(xùn)3】數(shù)據(jù)類型與常用函數(shù)的用法實(shí)訓(xùn)目的:1熟練掌握各種數(shù)據(jù)類型常量的表示方法。2熟練掌握常用函數(shù)的用法。相關(guān)知識(shí):1常量的表示方法數(shù)值型(N):直接由數(shù)字或+、-、小數(shù)點(diǎn)構(gòu)成,無(wú)定界符號(hào)。字符型(C):(1)由字符、漢字組成,需加定界符(單引號(hào)、雙引號(hào)、中括號(hào))。(2)如沈陽(yáng)、”沈陽(yáng)”、沈陽(yáng)。(3)同一定界符不能嵌套,如:“AB”CD”,但 AB”CD”是合法的。日期型(D):用定界。如:2005-08-30或CTOD(“01/08/30”)。日期時(shí)間型(T):用定界。如:2005-08-30 11:15:30 A邏輯型(L):用.定界。如用.t.或.Y.表示邏輯真, 用.F.或.N.表示邏輯
17、假。貨幣型(Y):用$符號(hào)開頭,后跟數(shù)字。如:$90。2.函數(shù)的學(xué)習(xí)要點(diǎn)(1)函數(shù)名是什么?(2)該函數(shù)有幾個(gè)參數(shù)、參數(shù)的數(shù)據(jù)類型是什么?(3)該函數(shù)的功能是什么?(4)返回值的數(shù)據(jù)類型是什么?對(duì)于任何的一個(gè)函數(shù),只要注意以上4點(diǎn),應(yīng)用起來(lái)就不成問(wèn)題!實(shí)訓(xùn)內(nèi)容:在窗口中輸入下列函數(shù)表達(dá)式,回車運(yùn)行后分析運(yùn)行結(jié)果,具體練習(xí)過(guò)程中請(qǐng)查閱幫助文件以了解下述函數(shù)的具體用法。1.sign( ) 函數(shù)功能:當(dāng)指定數(shù)值表達(dá)式的值為正、負(fù)或 0 時(shí),分別返回 1、-1 或 0? sign(0) &&0? sign(-8) &&-12.平方根函數(shù)sqrt():返回指定數(shù)值表達(dá)式的
18、平方根? sqrt(9) &&3 (參數(shù)不能為負(fù)數(shù))3.圓周率函數(shù)pi():返回圓周率常數(shù)? pi() &&3.14set decimals to 4 &&指定數(shù)值型數(shù)據(jù)顯示的小數(shù)位數(shù)為4位,系統(tǒng)默認(rèn)為2位? pi() && 3.14164.取整函數(shù)int()、floor()、ceiling()? int(12.56) &&12 ? int(-12.56) && -12 ? int(.56) &&0 注:int()函數(shù)返回值為參數(shù)的整數(shù)部分。? floor(-4.5) &&a
19、mp; -5 ? floor(3.5) &&3注:floor()函數(shù)返回值為小于或者等于參數(shù)值的最大的整數(shù)。? ceiling(-4.5) &&-4? ceiling(3.5) &&4注:ceiling()函數(shù)返回值為大于或者等于參數(shù)值的最小的整數(shù)。5.四舍五入函數(shù)Round()? Round(7556.5678,2) &&7556.57 ? Round(7556.5678,0) &&7557? Round(7556.81,-2) &&7600 ? Round(7556.5678,-1) &
20、&7560 注:第二個(gè)參數(shù)為負(fù)數(shù)時(shí),表示對(duì)相應(yīng)的整數(shù)位進(jìn)行四舍五入6.最值函數(shù)max()、min()? max(10,20,30,25) &&30 ? max(10,20) &&20 ? max("a","ab") &&ab ? max($10,$20) &&$20 ? max(2005-4-16,2004-4-16) &&2005-4-16注:參數(shù)至少有二個(gè),參數(shù)可以是字符型、數(shù)值型、貨幣型、日期型;將上面的max改寫成min后運(yùn)行并分析運(yùn)行結(jié)果。7.求字符串長(zhǎng)度函
21、數(shù)len()? len("abcde") &&5 ? len("*") &&1 *為空格字符? len("中國(guó)") &&4 一個(gè)漢字占2個(gè)寬度? len("") &&0 空字符串長(zhǎng)度為08.大小寫轉(zhuǎn)換函數(shù)? lower("AbCd12OK")&&abcd12ok? upper("AbCd12OK")&&ABCD12OK 注:只轉(zhuǎn)換字符串中的大小寫,其他字符不變。9.空格字符生成函數(shù)
22、? "a"+space(3)+"b" &&a*b *為空格字符? len(space(3)+space(2)&&5 +為字符連接運(yùn)算符? len(space(3)-space(2)&&5 -為字符連接運(yùn)算符10.刪除空格字符函數(shù)? trim("abcd*")+"ef" &&abcdef *為空格字符? trim("abc*d*")+"ef" &&abc*def *為空格字符? ltrim(&quo
23、t;*ab*")+"ef" &&ab*ef *為空格字符? alltrim("*ab*")+"ef" &&abef *為空格字符11.取子串函數(shù)? left("abcdef",2) &&ab ? left("abcdef",100) && abcdef ? right("abcdef",3) &&def ? substr("abcdef",2,3) &&
24、;bcd ? substr("abcdef",3) &&cdef? substr("中華人民共和國(guó)",5,4) &&人民12.occurs()函數(shù)? occurs("ab","cabkabk") &&2 串a(chǎn)b在串cabkabk中出現(xiàn)了2次? occurs("ab","ckk") &&0 串a(chǎn)b在串ckk中出現(xiàn)了0次13、at()函數(shù)? at("ab","ccabkabk"
25、,1) &&3 串a(chǎn)b在串cabkabk中第1次出現(xiàn)的起始位置是3? at("ab","ccabkabk",2) &&6 串a(chǎn)b在串cabkabk中第1次出現(xiàn)的起始位置是614.子串替換函數(shù)? stuff("abcdef",2,4,"ok") &&abokef 替換串a(chǎn)bcdef第2個(gè)位置開始的4個(gè)字符,用串ok來(lái)替換? stuff("abcdef",2,0,"ok") &&abokcdef 相當(dāng)于插入ok? s
26、tuff("abcdef",2,4,"") &&af 相當(dāng)于刪除bcde15.日期函數(shù)? date() &&返回系統(tǒng)日期set century on &&用4位數(shù)字顯示年份? date()set date to ansi &&設(shè)置日期的顯示格式為ansi? date()? time()&&以字符串形式返回系統(tǒng)當(dāng)前時(shí)間? datetime()&&返回系統(tǒng)日期和時(shí)間? year(2004-04-16)&&2004 返回日期中的年份數(shù)值? month
27、(2004-04-16) &&4 返回日期中的月份數(shù)值? day(2004-04-16)&&16? hour(datetime()&&分別顯示當(dāng)前系統(tǒng)時(shí)間的小時(shí)數(shù)? minute(datetime()&&分別顯示當(dāng)前系統(tǒng)時(shí)間的分鐘數(shù)? sec(datetime() &&分別顯示當(dāng)前系統(tǒng)時(shí)間的秒數(shù)16.轉(zhuǎn)換函數(shù)? str(123.5678,8,2) &&*123.57 *為空格? str(123.5678,6,3) &&123.57? val("123.45")+1
28、00 &&223.45? val("12a3.45") &&12? val("a1212a3.45") &&0 第1個(gè)字符不是數(shù)字也不是+-號(hào),返回0set date to usa &&設(shè)置日期的顯示格式為美國(guó)日期格式? ctod("04-16-05") &&2005-4-16? ctod("04-16-05")+1 &&2005-4-17? dtoc(date() &&將系統(tǒng)日期轉(zhuǎn)換為字符格式17.宏替
29、換函數(shù)x="123"? &x+100 && 223 &&相當(dāng)于? 123+100? x+"100" && 123100 18.iif()函數(shù)x=100? iif(x>100,x-50,x+50) &&150? iif(x<0,-1,iif(x=0,0,1) &&1 19.數(shù)據(jù)類型測(cè)試函數(shù)type()、vartype()? type("123") &&N ? type("04/06/09") &
30、&N? type("time()") &&C ? vartype(123) &&N? vartype(“123”) &&C ? vartype($123) &&Y ? vartype(Datetime() &&T ? vartype(2005-04-19) &&D ? vartype(3>5) &&L思考題:如何用IIF()函數(shù)實(shí)現(xiàn)SIGN()的功能?(提示:IIF(X>0,1,IIF( x=0 ,0,-1))20.測(cè)試函數(shù)bof()、eof(
31、)、recno()use zgda? bof() &&.f.? recno() &&1 剛剛打開的表,指針指向首記錄skip 1 && 指針向上移動(dòng)一條記錄? bof() &&.t. ? recno() &&1 表可訪問(wèn)的最小記錄號(hào)為1go bottom && 指針指向尾記錄? eof() &&.f. ? recno() &&8 假設(shè)表中只有8條記錄,指針指向首記錄skip &&指針向下移動(dòng)一條記錄? eof() &&.t.? recn
32、o() &&9 表可訪問(wèn)的最大記錄號(hào)為記錄總數(shù)+1, 假設(shè)表中只有8條記錄? reccount() &&8 假設(shè)表中只有8條記錄21.信息窗口函數(shù)MessageBox()格式:MESSAGEBOX(信息文本, ,對(duì)話框類型數(shù)值 ,標(biāo)題欄文本)例子:MESSAGEBOX(“您好,VFP!”,64,“提示信息”)【實(shí)訓(xùn)4】運(yùn)算符與表達(dá)式實(shí)訓(xùn)目的:1.掌握各種類型表達(dá)式的書寫方法。2.掌握運(yùn)算符的優(yōu)先級(jí)別。實(shí)訓(xùn)內(nèi)容:依次在命令窗口中輸入下列表達(dá)式,回車運(yùn)行來(lái)輸出表達(dá)式的值,并分析運(yùn)行結(jié)果。1.數(shù)值表達(dá)式? -3*2 &&9 負(fù)號(hào)的運(yùn)算級(jí)別高于乘方? (
33、3+4)/22+int(12.5) &&13.75相關(guān)知識(shí):(1)書寫數(shù)值表達(dá)式,乘號(hào)一定不能省略。(2)數(shù)值表達(dá)式是由算術(shù)運(yùn)算符和數(shù)值型常數(shù)、變量、函數(shù)組成,運(yùn)算結(jié)果為數(shù)值型數(shù)據(jù)。算術(shù)運(yùn)算符為:+ - * % ( ) 。(3)算術(shù)運(yùn)算符的優(yōu)先次序由高到低依次為:括號(hào)、負(fù)號(hào)、乘方、乘除、模運(yùn)算(取余)、加減,同級(jí)運(yùn)算從左到右依次進(jìn)行。2.字符表達(dá)式? “abc*”+”*cd*” &&abc*cd* *為空格,+號(hào)為字符串完全連接運(yùn)算?“abc*”-”*cd*” &&abc*cd* *為空格,-號(hào)為字符串不完全連接運(yùn)算相關(guān)知識(shí):(1)字符表達(dá)式是由
34、字符運(yùn)算符和字符型常數(shù)(即用定界符括起來(lái)的字符串)、變量、函數(shù)組成,運(yùn)算結(jié)果是字符型數(shù)據(jù)或邏輯值。(2)二種字符串運(yùn)算符,優(yōu)先級(jí)別相同。(3)完全連接是指兩個(gè)字符串合并,即包括空格在內(nèi)的字符串中所有字符相加。不完全連接運(yùn)算是將串1尾部的空格移到串2的尾部后,再連接。3.關(guān)系表達(dá)式set collate to “machine” &&設(shè)置數(shù)據(jù)的比較序列為機(jī)內(nèi)碼方式? 8>100 &&.f. ? “8”>”100” &&.t.? 2004-5-19>2003-5-19 && .t.? $80<$60 &
35、&.f.? “abc”=”ab” &&.t. 系統(tǒng)默認(rèn)“=”為非精確比較,右邊是左邊的左子串,則成立。Set exact on &&設(shè)置“=”為精確比較,off為非精確比較“abc”=”ab” && .f. 精確比較要求兩邊的字符串必須完全相等才成立。? “ok”$”abokd” &&.t. 前一個(gè)串“ok”包含在后一個(gè)串中,返回邏輯真相關(guān)知識(shí):(1)關(guān)系表達(dá)式描述的同類數(shù)據(jù)的大小比較關(guān)系,其結(jié)果是一個(gè)邏輯值,關(guān)系成立結(jié)果取真(.T.),不成立結(jié)果取假(F)。(2)關(guān)系運(yùn)算符兩邊的數(shù)據(jù)類型要一致,只有同類型的數(shù)據(jù)才能進(jìn)行比
36、較。(3)數(shù)據(jù)比較規(guī)律數(shù)值和貨幣類型:數(shù)越大,其值越大。如:1000>800 $90>$10日期數(shù)據(jù):未來(lái)>歷史 如:2007-5-19>2007-5-18邏輯常量:邏輯真大于邏輯假,即:.t.>.f.字符串比較:依次對(duì)應(yīng)比較兩個(gè)串的字符,直到比較出結(jié)果即停止比較。例如:"abc">"ab", "abc">"aBc"。字符的比較規(guī)律ASCII字符:比較字符的ASCII碼值的大小??偨Y(jié)規(guī)律為:空格<0-9<A-Z<a-z。漢字字符:是按照漢字的機(jī)內(nèi)碼值的大小
37、來(lái)進(jìn)行比較的,即比較漢字的拼音字符串的大小。例如:漢字“男”的拼音為“nan”, 漢字“女”拼音為“nv”,所以“男”小于“女”。注意:上述字符的比較規(guī)律的前提是必須設(shè)置數(shù)據(jù)的比較序列為機(jī)內(nèi)碼方式。設(shè)置的命令為:set collate to “machine” 或者依次單擊“工具”菜單中的“選項(xiàng)”菜單項(xiàng),單擊“數(shù)據(jù)”選項(xiàng)卡,設(shè)置“排序序列”為“machine”選項(xiàng)即可。4.邏輯表達(dá)式:邏輯運(yùn)算符的優(yōu)先級(jí)別為:.NOT. .AND. .OR.? not(10+3)>5 and ”ab”$”ab”+”cde” or 3>=4 &&.f.? 3>2 AND NOT
38、5>6 && 相關(guān)知識(shí):(1)當(dāng)表達(dá)式中出現(xiàn)了多種運(yùn)算符時(shí),各種運(yùn)算符的優(yōu)先順序由高到低依次為:算術(shù)或字符或日期運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算(2)相同優(yōu)先級(jí)的運(yùn)算按從左到右的順序計(jì)算5.日期和日期時(shí)間表達(dá)式? 2005-3-29-2005-3-21 &&8 兩日期相差的天數(shù)為8天? 2005-3-29+2005-3-21 && 兩日期表達(dá)式相加,屬非法表達(dá)式? 2005-3-25+3 &&2005-3-28? 2005-3-25-3 &&2005-3-22 (用嚴(yán)格日期格式表示)? datetime()+30 &am
39、p;&其值為當(dāng)前時(shí)間的30秒后的日期時(shí)間? datetime()-30 &&其值為當(dāng)前時(shí)間的30秒以前的日期時(shí)間? 2005-5-5 10:10:20 a-datetime() &&2個(gè)日期時(shí)間相差的秒的數(shù)值相關(guān)知識(shí):(1)一個(gè)日期與一個(gè)數(shù)值相加,&&日期,表示從當(dāng)前日期往后數(shù)N天。(2)一個(gè)日期與一個(gè)數(shù)值相減,&&日期,表示從當(dāng)前日期向前數(shù)N天。(3)兩個(gè)日期相減,&&數(shù)值,表示兩日期之間相差的天數(shù)?!緦?shí)訓(xùn)5】程序結(jié)構(gòu)實(shí)訓(xùn)目的:(1)理解VFP的2種工作方式:交互方式和程序執(zhí)行方式。(2)掌握程序文件的建
40、立、存盤、調(diào)用方法和注釋語(yǔ)句的使用方法。(3)熟悉3種程序結(jié)構(gòu)。(4)會(huì)用調(diào)試器來(lái)分析程序的執(zhí)行流程。相關(guān)知識(shí):行首注釋語(yǔ)句: NOTE | * 注釋內(nèi)容功能:在程序文件中指示注釋行的開始,注釋行不被執(zhí)行。行尾注釋語(yǔ)句: && 注釋內(nèi)容功能:在程序文件中代碼行的行尾注釋,注釋內(nèi)容不被執(zhí)行。實(shí)訓(xùn)內(nèi)容:完善下列程序橫線處的代碼,并調(diào)試運(yùn)行。1建立并執(zhí)行程序p1.prg,程序功能是判斷用戶輸入的整數(shù)是否是偶數(shù)。(1)在命令窗口中輸入:modify command p1,在彈出的文本編輯器窗口中輸入程序代碼如下: input "一個(gè)整數(shù)" to xif x/2=in
41、t(x/2) ? “您輸入的是偶數(shù)”else? “您輸入的不是偶數(shù)”endif(2)按CTRL+W鍵,存盤。(3)在命令窗口中輸入命令:DO p1后,回車執(zhí)行該程序。2參照上面的例子來(lái)建立并執(zhí)行p2.prg,程序功能:判斷用戶輸入的整數(shù)是正數(shù)、負(fù)數(shù)還是零,代碼如下:input "一個(gè)整數(shù)" to xif x>0 ? "您輸入的是一個(gè)正數(shù)"elseif x<0 &&此處為if語(yǔ)句的嵌套結(jié)構(gòu)。 ? "您輸入的是一個(gè)負(fù)數(shù)"else ? "您輸入的是零"endif endif3.參照上面的例子來(lái)
42、建立并執(zhí)行p3.prg,程序功能:根據(jù)學(xué)生的分?jǐn)?shù)情況給出成績(jī)等級(jí),代碼如下:Input "分?jǐn)?shù) " to x &&從鍵盤接收來(lái)個(gè)成績(jī)的數(shù)值賦值給X變量Do case Case x>=90 and x<100 ? "優(yōu)秀" Case x>=80 and x<90 ? "良好" Case x>=70 and x<80 ? "中等" Case x>=60 and x<70 ? "及格"otherwise ? "悲慘,
43、您可能不及格阿!"Endcase4.建立sum.prg,程序功能是求 1+2+3+10的和,代碼如下所示S=0K=1DO WHILE K<=10S=S+KK=K+1 ENDDO? “1+2+10=”,S注意:S=S+K為求和表達(dá)式,在循環(huán)中的作用是累加變量K的值,將結(jié)果保存到S變量中。思考:(1)若s=s+k分別改為s=s+k*2和s=s+1/k,程序的功能又是什么?(2)請(qǐng)分析下面的程序段的功能是什么,S中累加的是哪些數(shù)的和?S=0K=1DO WHILE K<=10 K=K+1 S=S+KENDDO? “S=”,S操作練習(xí):使用調(diào)試器來(lái)跟蹤該程序的執(zhí)行情況,具體步驟為:
44、(1)單擊“工具”菜單中的“調(diào)試器”菜單項(xiàng),打開“調(diào)試器”窗口。(2)在調(diào)試器窗口中單擊“文件”菜單中的“打開”菜單項(xiàng),打開要跟蹤的程序,如sum.prg。(3)執(zhí)行“調(diào)試”菜單中的“單步跟蹤”命令,來(lái)跟蹤程序的執(zhí)行,并觀察分析“局部”窗口中變量值的變化情況。5.在程序功能不變的情況下,用FOR循環(huán)來(lái)改寫第4題sum.prg,并對(duì)比FOR循環(huán)與DO While循環(huán)的區(qū)別。參考代碼如下,讀者也可以自己寫出類似的程序。S=0For k=1 to 10 step 1 S=S+kEndfor? “S=”,S6.編寫程序JC.PRG,程序功能是求5的階乘(5!=1*2*3*4*5),參考代碼如下。Y=1
45、 &&存放階乘結(jié)果的變量要賦初值為1FOR X=1 TO 5 step 1 && step 1 可省略 Y=Y*X &&累計(jì)變量X的乘積到變量Y中。ENDFOR? "5!=",Y注:請(qǐng)打開調(diào)試器,來(lái)跟蹤該程序的執(zhí)行情況。7.參照上一題的程序,編寫程序求S=1!+2!+3!+4!+5!的值。S=0Y=1FOR X=1 TO 5Y=Y*X &&循環(huán)執(zhí)行過(guò)程中,Y中存放的分別是1、2、3、4、5的階乘值S=S+Y &&累加Y中存放的分別是1、2、3、4、5的階乘值ENDFOR? "S=&qu
46、ot;,S8.用調(diào)試器跟蹤下面程序的執(zhí)行情況,并寫出運(yùn)行結(jié)果。Store 0 to x, y, s1, s2, s3Do while x<10x=x+1Do case Case int(x/2)=x/2 &&判斷X是偶數(shù) S1=s1+x/2 &&S1中累加的是2、4、6、8、10幾個(gè)數(shù)和的一半Case mod(x,3)=0 &&判斷X是3的倍數(shù)S2=s2+x/3 &&S2中累加的是3、9兩個(gè)數(shù)和的三分之一Case x%2!=0 &&判斷X不是偶數(shù)s3=s3+1 &&S3存放的是非偶數(shù)的個(gè)數(shù)(1
47、、5、7)EndcaseEnddo? s1,s2,s3運(yùn)行結(jié)果: 15.0000 4.0000 3 9.找出100900之間的“水仙花數(shù)”(指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身,如:153=13+53+33),下面是部分代碼,調(diào)試該程序。*SXH.PRG求水仙花數(shù)*CLEARFOR K=100 TO 999A=INT(K/100) &&取百位數(shù)字B=INT(K-100*A)/10) &&取十位數(shù)字C=MOD(K,10) &&取個(gè)位數(shù)字,看看取十位是否還有別的方法?IF k=A*3+B*3+c*3 ? KENDIFENDFOR 運(yùn)行結(jié)果:1
48、53,370,371,40710.用scan-endscan循環(huán)結(jié)構(gòu)來(lái)顯示zgda表中所有女講師的記錄信息。USE ZGDASCAN for 性別=“女” and 職稱=“講師” DISPLAYENDSCAN11、用3種循環(huán)顯示ZGDA.DBF的所有記錄,請(qǐng)對(duì)比3種循環(huán)。(1)用SCAN循環(huán)顯示ZGDA.DBF的所有記錄:USE ZGDASCAN DISPLAYENDSCAN(2)用DO循環(huán)顯示ZGDA.DBF的所有記錄:USE ZGDADO WHILE NOT EOF()DISPskipENDDO(3)用FOR循環(huán)顯示ZGDA.DBF的所有記錄:USE ZGDAK=RECCOUNT()FOR
49、 J=1 TO KDISPskipENDFOR【實(shí)訓(xùn)6】數(shù)據(jù)表的操作實(shí)訓(xùn)目的:(1)熟練掌握數(shù)據(jù)表文件的建立、復(fù)制、刪除和表記錄的插入、刪除等命令操作。(2)會(huì)用命令方式來(lái)給表建立索引。實(shí)訓(xùn)內(nèi)容:1.建立zgda表文件(1)在D盤新建一個(gè)文件夾vfpok。(2) 設(shè)置d:vfpok為工作目錄,在命令窗口中輸入命令:set defa to d:vfpok &&可根據(jù)需要設(shè)置。(1)在命令窗口中輸入命令:create zgda,打開表設(shè)計(jì)器。(2)接下來(lái)的操作與項(xiàng)目管理器中的建表操作相同。建立表文件的過(guò)程分2步:即先建立表結(jié)構(gòu)(規(guī)定表的列數(shù)及類型等);輸入記錄(決定表有多少行的數(shù)據(jù)
50、)2.表文件的復(fù)制use zgda &&打開表zgdalist && list顯示全部記錄后,指針指向文件尾? eof() && .t. copy to danew.dbf for 性別='男' &&復(fù)制打開的表文件zgda 中男生記錄到danew.dbfuse danew &&打開danew,此時(shí)自動(dòng)關(guān)閉前一個(gè)表zgdadisp all&&顯示全部記錄后,指針指向文件尾3.表結(jié)構(gòu)的復(fù)制與修改use zgdadisplay structure &&顯示表的結(jié)構(gòu)信息co
51、py stru to dast.dbf fiel 姓名,性別,年齡,職稱 &&復(fù)制zgda表文件結(jié)構(gòu)到dast.dbfuse dast &&打開danew,此時(shí)自動(dòng)關(guān)閉前一個(gè)表zgdalist structure &&顯示表的結(jié)構(gòu)信息modi stru &&修改結(jié)構(gòu)danew表的結(jié)構(gòu)4.文件的復(fù)制close all &&關(guān)閉所有文件copy file zgda.dbf to zgdabak.dbf &&復(fù)制zgda表文件到zgdabak表文件中use zgdabak &&顯示錯(cuò)誤信息
52、,找不到備注文件copy file zgda.fpt to zgdabak.fpt &&復(fù)制備注文件use zgdabak &&打開文件list &&顯示全部記錄后,指針指向文件尾5.文件改名、刪除與文件目錄的顯示dir z*.* &&列出所有z開頭的文件dir &&列出所有表文件rename zgdabak.dbf to zb.dbf &&表文件zgdabak.dbf改名為zb.dbfuse zb.dbf &&顯示錯(cuò)誤信息,找不到備注文件rename zgdabak.fpt to
53、zb.fpt&&表備注文件同時(shí)要改名,否則,zb.dbf表打不開。dele file zb.fpt &&刪除zb.fptuse zb.dbf &&顯示錯(cuò)誤信息,找不到備注文件dele file zb.dbf &&刪除zb.dbf文件6.表記錄的修改use zgdaedit &&進(jìn)入全屏幕狀態(tài),修改表的記錄change &&進(jìn)入全屏幕狀態(tài),修改表的記錄browse &&進(jìn)入全屏幕狀態(tài),修改表的記錄*用replace命令修改特定的記錄go 4 &&指針定位記錄號(hào)為4的記錄
54、disp &&顯示當(dāng)前記錄信息repl 年齡 with 年齡+1 &&當(dāng)前記錄的年齡+1,無(wú)范圍、條件替換的是當(dāng)前記錄disp &&顯示當(dāng)前記錄信息(對(duì)比一下)*用replace命令成批的修改滿足條件的多條記錄clear &&清屏list&&顯示所有記錄信息repl all 年齡 with 年齡+1 for 職稱="講師" &&所有講師記錄的年齡+1list &&顯示所有記錄信息(對(duì)比一下) 7.表記錄的插入go 3 &&指針定位在第3條記錄ins
55、ert blank &&在第3條記錄后,插入一條空記錄list &&顯示所有記錄信息go 3 insert blank before &&在第3條記錄前,插入一條空記錄list &&顯示所有記錄信息8.表記錄的刪除go 3dele &&邏輯刪除當(dāng)前記錄list &&可以看到第3條記錄有刪除標(biāo)記*pack &&物理刪除有刪除標(biāo)記的記錄list &&顯示所有記錄信息,原來(lái)的第3號(hào)記錄已刪除了。注:(1)請(qǐng)讀者將另一條空記錄用命令刪除(2)zap等價(jià)于先執(zhí)行dele all
56、后,再執(zhí)行pack(請(qǐng)復(fù)制一個(gè)表文件再試這個(gè)命令)。(3)recall、delete 命令后無(wú)任何選項(xiàng)時(shí),只對(duì)當(dāng)前記錄操作。9.表的排序use zgdasort on 性別 /D to zgxb &&按照性別降序生成排序表zgxbuse zgxblist 10.建立索引及索引查找(1)建立單索引close all &&關(guān)閉所有文件 use zgda &&打開表文件zgdalist &&此時(shí)表按照物理順序顯示,即按照記錄號(hào)順序顯示(用戶輸入記錄的順序)index on 性別 to xb.idx &&按照性別遞增的順序建立單索引文件list &&此時(shí)表按照性別遞增的邏輯順序來(lái)顯示(剛剛建立的索引文件正起作用)set index to &&關(guān)閉索引文件,記錄恢復(fù)物理順序顯示list &&記錄恢復(fù)物理順序顯示set index to xb.idx &&打開已經(jīng)建立單索引文件(2)建立結(jié)構(gòu)復(fù)合索引index on 年齡
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能科技研發(fā)項(xiàng)目合同
- 小區(qū)物業(yè)服務(wù)提升協(xié)議
- 一碳化合物中試平臺(tái)可持續(xù)發(fā)展模式與市場(chǎng)前景
- 2025年信息系統(tǒng)項(xiàng)目管理考試試題及答案
- 2025年聲樂(lè)藝術(shù)考核試題及答案
- 2025年城市管理與環(huán)境保護(hù)的實(shí)踐能力的考試試卷及答案
- 特殊體制學(xué)生管理制度
- 特殊氣候應(yīng)急管理制度
- 特種作業(yè)車輛管理制度
- 特種設(shè)施設(shè)備管理制度
- 中考化學(xué)專題:質(zhì)量守恒教學(xué)設(shè)計(jì) 人教版
- 2023年全國(guó)職業(yè)院校技能大賽-融媒體內(nèi)容策劃與制作賽項(xiàng)規(guī)程
- 國(guó)家開放大學(xué)本科《商務(wù)英語(yǔ)4》一平臺(tái)機(jī)考真題及答案(第一套)
- 有關(guān)構(gòu)建政務(wù)信息系統(tǒng)密碼應(yīng)用管理體系的建議
- 新能源汽車動(dòng)力蓄電池及管理技術(shù) 課件 模塊二 動(dòng)力蓄電池管理系統(tǒng)功能和技術(shù)認(rèn)知
- 無(wú)犯罪查詢授權(quán)委托書
- 屋頂分布式光伏電站施工管理要點(diǎn)
- 廣東省珠海市金灣區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末考試生物試題(無(wú)答案)
- 2024年湖南中考化學(xué)試卷及答案
- DL-T-300-2011火電廠凝氣器管防腐防垢導(dǎo)則
- 何家弘法律英語(yǔ)第四版翻譯完整版
評(píng)論
0/150
提交評(píng)論