計(jì)算機(jī)二級(jí)VFP考試講義_第1頁(yè)
計(jì)算機(jī)二級(jí)VFP考試講義_第2頁(yè)
計(jì)算機(jī)二級(jí)VFP考試講義_第3頁(yè)
計(jì)算機(jī)二級(jí)VFP考試講義_第4頁(yè)
計(jì)算機(jī)二級(jí)VFP考試講義_第5頁(yè)
已閱讀5頁(yè),還剩96頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 1 章 數(shù)據(jù)與數(shù)據(jù)運(yùn)算 一、數(shù)據(jù)類型 1.數(shù)值型(n):由數(shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)組成。 (包括整數(shù)和實(shí)數(shù)) ,占 8 字節(jié)內(nèi)存,精度 16 位。例如數(shù)值型 常量:12、3.45、-6.78、5.878e12、1.6e-12 等。 2.字符型(c):每個(gè)字符占一個(gè)字節(jié),最長(zhǎng) 255 個(gè)字符。 3.邏輯型(l):只有真、假兩個(gè)值(.t. 、.t.、y.、y 、.f.、.f.、.n.、.n.)占 1 字節(jié)。 4.日期型(d):占 8 個(gè)字節(jié),取值范圍:0001 年 1 月 1 日9999 年 12 月 31 日。日期的表示格式很多,可用 有關(guān)命令設(shè)置: a)set date to mdy/dmy/

2、ymd 該命令設(shè)置日期表示形式。 b)set century to on/off 表示日期時(shí)是否指明“世紀(jì)” 。 c)set strictdate to 0/1/2 是否采用嚴(yán)格日期格式對(duì)待輸入日期值。此設(shè)置命令取“1/2”值時(shí),日 期需按照嚴(yán)格日期表示法yyyy-mm-dd的表示格式輸入,否則會(huì)彈出“出錯(cuò)”對(duì)話框;取“2”值時(shí) ctod() 、ctot()函數(shù)也采用嚴(yán)格日期格式轉(zhuǎn)換字符;若設(shè)為 0,則日期的輸入可按其它形式,但可能 被系統(tǒng)按不同日期解釋。 d)set mark to /; 該命令用于設(shè)置日期分隔符,若缺省設(shè)置值,則用默認(rèn)“/”為分隔符。 5.日期時(shí)間型(t):占 8 個(gè)字節(jié),

3、如常量2001-03-22,11:30 p。日期的表示范圍同上, 時(shí)間從 00:00 :00am11:59:59pm,缺省日期為 1899 年 12 月 30 日,缺省時(shí)間為午夜零點(diǎn)。 6.貨幣型(y):占 8 個(gè)字節(jié),貨幣型常量以前置符號(hào)$打頭,保留小數(shù) 4 位。 7.對(duì)象型(o):windows 中的對(duì)象,如 vfp 主窗口對(duì)象為“_screen” 。 (以上 7 種數(shù)據(jù)類型可用于內(nèi)存變量和數(shù)組,前 6 種還可用于字段變量,但下列數(shù)據(jù)類型只能用于字段變量) 8.雙精度型(n):占 8 個(gè)字節(jié) 9.浮點(diǎn)型(n):占 8 個(gè)字節(jié) 10. 整數(shù)型(n):占 4 個(gè)字節(jié) 11. 通用型(g):占

4、4 個(gè)字節(jié),專門(mén)用來(lái)存儲(chǔ) ole 對(duì)象,如電子表格、字處理文檔或圖片等由其它程序產(chǎn)生的 對(duì)象。 12. 備注型(m):占 4 個(gè)字節(jié),用于存放較多的文本信息,會(huì)產(chǎn)生與表同名的備注文件“*fpt” 。 13. 二進(jìn)制字符型(c):使用方法與字符型同,只是直接以二進(jìn)制形式存儲(chǔ)。 14. 二進(jìn)制備注型(m):使用方法與備注型同,只是直接以二進(jìn)制形式存儲(chǔ)。 二、常量與變量 1.常量(部分?jǐn)?shù)據(jù)類型的常量說(shuō)明): a)字符型常量必須用單引號(hào)、雙引號(hào)、或方括號(hào)括起來(lái)。如某種括符本身也是字符串內(nèi)容,則用另一種括符 括起該字串。 b)日期型常量必須用一對(duì)花括號(hào)包括。對(duì)于空值的日期,可用、/、-表示。 c)日期時(shí)

5、間型常量的空值表示成-,:,貨幣常量用$開(kāi)頭。 d)符號(hào)常量的定義及取消:例:#define pi 3.1415926535 #undef pi 2.變量:在程序執(zhí)行過(guò)程中其值可變的數(shù)據(jù)項(xiàng)。實(shí)際上是用標(biāo)識(shí)符命名的存放數(shù)據(jù)項(xiàng)的計(jì)算機(jī)內(nèi)存單元。變量有 變量名、變量值、變量類型、長(zhǎng)度、變量作用域等屬性。變量名可由字母、漢字、數(shù)字或下劃線組成,但須以 字母或漢字開(kāi)頭,長(zhǎng)度不超過(guò) 10 個(gè)字符。vfp 的變量可分為字段變量和內(nèi)存變量,表中的字段名就是字段變 量。內(nèi)存變量不必先聲明,如與字段變量同名,由于字段變量?jī)?yōu)先級(jí)較高,需在訪問(wèn)時(shí)加前綴 m(或 m) , 內(nèi)存變量的類型隨所賦值的類型變化而變化??勺鳛?/p>

6、內(nèi)存變量的類型包括前述 7 種基本類型。 a)簡(jiǎn)單內(nèi)存變量的賦值: 3.數(shù)組:要先用 dimension 或 declare 聲明,下標(biāo)最小為 1,默認(rèn)各元素值為。f 。 ;一個(gè)數(shù)組中各元素的 數(shù)據(jù)類型可以不同;可用一維數(shù)組方式訪問(wèn)二維數(shù)組;僅在賦值號(hào)左邊或作為輸入對(duì)象時(shí)可直接用數(shù)組名給該 數(shù)組的全部數(shù)組元素賦同一值。 例如:dimension x(5),y(2,3) 4.內(nèi)存變量常用命令: a)賦值:內(nèi)存變量=表達(dá)式 store 表達(dá)式 to 內(nèi)存變量列表 b)顯示:(包括變量名、作用域、類型、取值) list memory like noconsoleto printerprompt /

7、to file display memory like noconsoleto printerprompt / to file 說(shuō)明:like 短語(yǔ)表示只顯示與通配符相匹配的內(nèi)存變量; 子句 to printer/to file 表示將顯示的內(nèi)容同時(shí)送往打印機(jī)或文本文件中; list 命令連續(xù)流動(dòng)顯示,而 display 是分屏顯示; 子句 noconsole 表示不輸出到顯示器; 子句 prompt 表示要求彈出打印設(shè)置框。 ? 顯示輸出各表達(dá)式值時(shí)自動(dòng)換行 ?? 在同一行上顯示各表達(dá)式值 c)清除: clear memory release release all extended lik

8、e/except 子句 extended 表示在程序中還可刪除公共內(nèi)存變量; 短語(yǔ) except 表示刪除之外的其余內(nèi)存變量。 d)保存和恢復(fù): save to all like/except restore from additive 內(nèi)存變量文件的擴(kuò)展名為。mem; 子句 additive 表示以追加方式添加內(nèi)存變量,否則恢復(fù)前會(huì)先清空原有內(nèi)存變量。 save screen to restore screen from 以上為保存和恢復(fù)當(dāng)前屏幕內(nèi)容的命令;無(wú)可選項(xiàng)屏幕內(nèi)容存入緩沖區(qū)。 5.記錄字段與數(shù)組元素的數(shù)據(jù)交換: 記錄字段復(fù)制為數(shù)組元素: scatter fields memo to

9、 blank scatter fields like/except memo to blank 選用 memo 短語(yǔ)可同時(shí)復(fù)制備注型字段;blank 表示產(chǎn)生一空數(shù)組。 數(shù)組元素復(fù)制成記錄: gather from fields memo gather form fields like/except memo 1.3 表達(dá)式 1. 數(shù)值運(yùn)算符及表達(dá)式 () *或 *,/ % +, 2. 字符運(yùn)算符及表達(dá)式 +、 3. 日期(或日期時(shí)間)運(yùn)算符及表達(dá)式 +、 該表達(dá)式只有三種形式: 兩日期(或日期時(shí)間)型數(shù)據(jù)相減,結(jié)果為相差的天數(shù)(或秒數(shù)) ; 日期(或日期時(shí)間)型數(shù)據(jù)加上一個(gè)整數(shù),結(jié)果是一個(gè)新

10、的日期(或日期時(shí)間) ; 日期(或日期時(shí)間)型數(shù)據(jù)減去一個(gè)整數(shù),結(jié)果是一個(gè)新的日期(或日期時(shí)間) 。 4. 關(guān)系運(yùn)算符及表達(dá)式 、=、=、= =、(或# 或!=)、$ (優(yōu)先級(jí)相同) 運(yùn)算符兩邊的數(shù)據(jù)類型要相同,比較結(jié)果都為邏輯型: 數(shù)值型和貨幣型數(shù)據(jù)按值的大小比較; 日期和日期時(shí)間型數(shù)據(jù)比較時(shí),越晚的越大; 邏輯型數(shù)據(jù) tf; = = 只用于字串的精確比較; $ 包含于,也只能用于字符型數(shù)據(jù); = 也可用于字串的非精確比較,但其結(jié)果與 set exact on/off 有關(guān)。 5. 邏輯運(yùn)算符及表達(dá)式 not或!andor 作業(yè)作業(yè): 實(shí)驗(yàn)內(nèi)容:學(xué)習(xí)內(nèi)存變量、數(shù)組變量的定義,賦值,顯示,學(xué)習(xí)

11、各種表達(dá)式和運(yùn)算符。復(fù)習(xí)函數(shù)的使用。 一、內(nèi)存變量的賦值和使用 1、等號(hào)賦值 2、store 命令 3?和?的使用方法(顯示值) 4list memo like (顯示名稱,類型,值) 練習(xí):觀察下列命令的作用和顯示結(jié)果 x1=8*4 ?x1 x2=pqr xy=.t. xyz=1996/12/30 list memory like x* store 計(jì)算機(jī) to xy,x3 save to f1 all like x? release x1,x2 list memory like x? restore from f1 list memory like x? 二、數(shù)組的定義和使用(參考教材)

12、練習(xí)一 dimension array1(2) display memory like array1 store a to array1(1) store 2 to array1(2) display memory like array1 array1=100 display memory like a* 練習(xí)二、 dimension mm(2,3) display memory like m* 練習(xí)三、 dimension sample(2,3) store goodbye to sample(1,2) store hello to sample(2,2) store 99 to sampl

13、e(6) store .t. to sample(1) clear display memory like sample 三.運(yùn)算符: 1 數(shù)值運(yùn)算符: ? (4-3) * (12/nvar2) ? 3 * 2 ? 3 2 ? 2 * 7 ? 14 / 7 ? 15 % 4 ? iif(year(date( ) % 4 = 0, summer olympics this year; , no summer olympics this year) 2、關(guān)系運(yùn)算符: ? 23 54 status=“close” ? status = = “open” 注意: =表示等于.=表精確等于. 在 set

14、 exact off 狀態(tài)下,用“=”比較兩個(gè)字符串時(shí),只要“=”右邊的字符串與左邊的字符串的左端部分相同, 即認(rèn)為是相等;在 set exact on 狀態(tài)下,則要完全相同才是相同。 例如:判斷下列表達(dá)式的值 ab=abc ax=axax axax = ax ax=ax 你好=你好 你好=你好 3、日期運(yùn)算符: ?1999-01-02+3 ? 1999-01-02-1999-01-21 ? 1999-01-21-1999-01-02 ? 1999-01-02+1999-01-02 4、字符串運(yùn)算符: ? “我是”+”某某”+”!” ? “我是”-”某某”-”!” ? “我是 “+”某某 “+

15、”!” ? “我是 “-“某某 “+”!” $ :包含運(yùn)算符,如果該運(yùn)算符左邊的字符串包含在右邊的字符串里,那么表達(dá)式的值為真,否則為假. 例如: 判斷下列表達(dá)式的值 李$李小強(qiáng) 李小強(qiáng)$李 五、判斷下列表達(dá)式的正確與錯(cuò)誤: 1 2002-05-25 2 2002-05-25 3 2002/05/25 4 2003-05-01 10:10:10 am-10 5 2003-05-01-date() 6 2003-05-01+date() 7 2003-05-01+1000 _ 練習(xí)題 一、選擇題 1.在 visual foxpro 中,有下面幾個(gè)內(nèi)存變量賦值語(yǔ)句: x=2001-07-28 10

16、:15:20pm y=.t. m=$123.45 n=123.45 z=123.45 執(zhí)行上述賦值語(yǔ)句之后,內(nèi)存變量 x、y、m、n 和 z 的數(shù)據(jù)類型分別是( ) a)d、l、y、n、c b)d、l、n、n、c c)t、l、m、n、c d)t、l、y、n、c 2.以下日期值正確的是( ) a)2002-05-25 b)2002-05-25 c)2002-05-25 d)2002-0525 3.在下面的 visual foxpro 表達(dá)式中,不正確的是( ) a)2003-05-01 10:10:10 am-10 b)2003-05-01-date() c)2003-05-01+date()

17、d)2003-05-01+1000 4.在下列函數(shù)中,函數(shù)值為數(shù)值的是( ) a)bof() b)ctod(01/01/03) c)at(”人民”,”中華人民共和國(guó)”) d)substr(dtoc(date(),7) 二、填空題 1.命令 ?round(337.2007,3)的執(zhí)行結(jié)果是_。 2.命令 ?len(thisismybook)的結(jié)果是_。 3.time()返回值的數(shù)據(jù)類型是_。 c 4.順序執(zhí)行下列操作后,屏幕最后顯示的結(jié)果是_和_。 y=date() h=dtoc(y) ? type(y),type(h) d c 三、上機(jī)執(zhí)行下述命令,熟悉函數(shù)的功能。(請(qǐng)同學(xué)們?cè)谶\(yùn)行之前先思考。

18、) 1.b=dtoc(date(),1) ?今天是:+left(b,4)+年+iif(subs(b,5,1)=0,; subs(b,6,2),subs(b,5,2)+月+right(b,2)+日 2.x=str(12.4,4,1) y=right(x,3) z= ,出生年月,性別, 入校總分 說(shuō)明:(1)$符號(hào)是判斷前面一個(gè)字符串是否屬于后面那個(gè)字符串。 (2)在 list 后需使用字段名表時(shí),fields 可以不寫(xiě),也可以寫(xiě),最好是寫(xiě)。 (3)使用字段名表,備注字段可以顯示其內(nèi)容,通用型字段無(wú)法顯示內(nèi)容。 2).to printer: 到打印機(jī) 5).to file : 這里的文件類型是 t

19、xt 6).off:不顯示記錄號(hào) 7)list 和 display 區(qū)別: a.list 默認(rèn)參數(shù)是全部記錄,display 默認(rèn)參數(shù)是當(dāng)前記錄 b.list 顯示時(shí),如果有很多條記錄,就會(huì)一次顯示完,而 display 會(huì)分屏顯示 c.list=display all(分屏顯示), list next 1=display 例如:list for 性別=男 display for 性別=男 go 2 list next 3 go 2 disp next 3 結(jié)論:當(dāng) list 和 disp 不單獨(dú)使用,要加范圍和條件參數(shù)時(shí),是完全一樣的(除了分屏顯示外) 。 單獨(dú)使用時(shí):list 顯示全部,d

20、isp 顯示當(dāng)前記錄。 3.表的瀏覽 菜單方式: 窗口分割器 命令方式: browse fields for rest 2.3 表的修改與編輯表的修改與編輯 2.3.1 修改表結(jié)構(gòu)修改表結(jié)構(gòu) modify structure 2.3.2 表記錄的修改和編輯表記錄的修改和編輯 1.指針記錄的定位指針記錄的定位 記錄指針, 當(dāng)前記錄, 當(dāng)前記錄號(hào) 記錄號(hào)反映了記錄存放的物理順序 (1).命令方式:絕對(duì)移動(dòng)絕對(duì)移動(dòng) : go/ goto 命令 基本使用方法:go 數(shù)字、go top(第一條記錄) 、go bottom(最后一條記錄) 相對(duì)移動(dòng)相對(duì)移動(dòng) skip 數(shù)字 說(shuō)明:skip = skip 1

21、 skip 3 skip -2 使用函數(shù):recno()、bof()、eof() 重點(diǎn)掌握:重點(diǎn)掌握:eof()() 、bof()的含義。()的含義。 bof():begin of file:文件開(kāi)始,第一條記錄的前面,記錄號(hào)為 1 eof():end of file:文件結(jié)束,最后一條記錄的后面,記錄號(hào)為最后一條記錄的記錄號(hào)+1 請(qǐng)分別描述下列值為多少: use 學(xué)生 go 1 disp ?recno(),bof() skip 1 ?recno(),bof() go bottom ?recno(),eof() skip ?recno(),eof() 思考思考: use 學(xué)生 list dis

22、p disp 將會(huì)顯示什么結(jié)果將會(huì)顯示什么結(jié)果,為什么為什么? 2. 修改記錄修改記錄 (1)browse fields for p51 (2)成批修改記錄 (重點(diǎn)) 【格式】replace with additive , with additive . for while 【功能】用指定的值替換當(dāng)前表中指定范圍內(nèi)滿足條件的記錄中指定的值. additive 用于備注 型字段,表將表達(dá)式值添加到字段原有內(nèi)容后,否則取代原有內(nèi)容. !若命令中和選項(xiàng)均缺省,則只對(duì)當(dāng)前記錄進(jìn)行替換操作 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)是一個(gè)數(shù)據(jù)容器,包含多個(gè)表和表之間的關(guān)系(視圖,索引關(guān)系,存儲(chǔ)過(guò)程等) 。 表(自由表):獨(dú)立存在的

23、二維表 數(shù)據(jù)庫(kù)表(數(shù)據(jù)表):數(shù)據(jù)庫(kù)中的二維表,可以單獨(dú)使用 6.1 數(shù)據(jù)庫(kù)的創(chuàng)建與管理 611 創(chuàng)建 菜單方式 命令方式: create database 數(shù)據(jù)庫(kù)名 擴(kuò)展名:dbc 612 管理 項(xiàng)目管理器 613 數(shù)據(jù)庫(kù)的打開(kāi),修改,關(guān)閉 1打開(kāi):open database 數(shù)據(jù)庫(kù)名 exclusive/sharednoupdatevalidate 獨(dú)占 /共享 只讀 檢查有效性(校驗(yàn)) *打開(kāi)一個(gè)數(shù)據(jù)庫(kù)的同時(shí)不會(huì)關(guān)閉另外一個(gè)數(shù)據(jù)庫(kù) *打開(kāi)很多個(gè)以后想指定某個(gè)為當(dāng)前數(shù)據(jù)庫(kù),使用 set database to 庫(kù)名 2修改:modify database 數(shù)據(jù)庫(kù)名 例如: close all

24、 create database abc create database abc1 close all open database abc1 open database abc modi database set database to abc1 modi database 3關(guān)閉 close database 關(guān)閉當(dāng)前數(shù)據(jù)庫(kù) close database all 關(guān)閉所有已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù) close all 關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)和表 clear all 關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)和表,清除內(nèi)存變量 614 數(shù)據(jù)庫(kù)對(duì)表和管理 1)庫(kù)中新建表 2) 自由表添加到庫(kù)中 3) 數(shù)據(jù)表從數(shù)據(jù)庫(kù)中刪除(移去或

25、者刪除) 4) 表的操作:修改表結(jié)構(gòu),瀏覽表中數(shù)據(jù) 5) 連接、視圖等 615 數(shù)據(jù)庫(kù)文件的查看(了解) use 數(shù)據(jù)庫(kù)名.dbc /*打開(kāi)數(shù)據(jù)庫(kù)庫(kù)文件 modi stru /*修改數(shù)據(jù)庫(kù)庫(kù)文件的結(jié)構(gòu) browse /*瀏覽數(shù)據(jù)庫(kù)庫(kù)文件內(nèi)容 由此可以看見(jiàn):數(shù)據(jù)庫(kù)的實(shí)質(zhì)其實(shí)也是二維表(容器表) 。6.2 數(shù)據(jù)字典 62 數(shù)據(jù)字典數(shù)據(jù)字典 數(shù)據(jù)字典:數(shù)據(jù)字典:一張?zhí)厥獾谋?,存放表中各種數(shù)據(jù)的定義或者設(shè)置信息(包括表的屬性、字段屬性、記錄規(guī)則、表間關(guān) 系、以及參照完整性等信息) 說(shuō)明:對(duì)于自由表無(wú)效,只能在數(shù)據(jù)庫(kù)中使用(針對(duì)數(shù)據(jù)表) vfp 中的完整性控制: 1、 實(shí)體完整性:主關(guān)鍵字不為空(學(xué)號(hào)、

26、工號(hào)等主關(guān)鍵字段) 2、 域完整性:對(duì)于字段的類型和字段取值加以限制。 如:性別字段規(guī)定為 c 型,取值只能輸入男或者女 (valid) 3、 參照完整性:控制數(shù)據(jù)的一致性,設(shè)置數(shù)據(jù)庫(kù)關(guān)聯(lián)記錄的規(guī)則尤其是不同表之間的規(guī)則(如:更新是否一致等) 一、字段屬性:數(shù)據(jù)庫(kù)中對(duì)表修改屬性,可以設(shè)置字段約束(域完整性) 表設(shè)計(jì)器=字段選項(xiàng)卡 二、記錄規(guī)則:多個(gè)字段相互約束( 記錄有效性:例如:學(xué)生表中,學(xué)號(hào)必須滿 8 位,且性別只能是男或女兩個(gè)值:len(alltrim(學(xué)號(hào))=8 and 性別$”男女” ) 表設(shè)計(jì)器=表選項(xiàng)卡 觸發(fā)器:對(duì)表的插入、刪除、修改記錄的約束 三、永久關(guān)系:表與表之間的關(guān)聯(lián) 一

27、對(duì)一、一對(duì)多、多對(duì)多 建立方法:1:n 父表建主索引,子表建普通索引,再拖放 1:1 父表建主索引,子表建主索引或候選索引,再拖放 四、參照完整性:建立關(guān)聯(lián)后設(shè)置的更新規(guī)則、插入規(guī)則和刪除規(guī)則。 更新規(guī)則(級(jí)聯(lián)/限制/忽略) 插入規(guī)則(限制/忽略) 刪除規(guī)則(級(jí)聯(lián)/限制/忽略) 操作步驟: 打開(kāi)數(shù)據(jù)庫(kù)=modi database=數(shù)據(jù)庫(kù)菜單=編輯參照完整性 63 視圖 視圖是依賴于數(shù)據(jù)庫(kù)表而導(dǎo)出的虛表,不以獨(dú)立的文件形式存在??赏ㄟ^(guò)修改視圖而修改原表數(shù)據(jù)。 分類:本地視圖(當(dāng)前數(shù)據(jù)庫(kù)) 、遠(yuǎn)程視圖(當(dāng)前數(shù)據(jù)庫(kù)外的數(shù)據(jù)源) 631 創(chuàng)建本地視圖 創(chuàng)建方法: 1、打開(kāi)數(shù)據(jù)庫(kù) 2、create vi

28、ew(或者選新建=視圖) 3、選取篩選、排序、連接等選項(xiàng) 4、 modify database 查看 遠(yuǎn)程視圖:當(dāng)前數(shù)據(jù)庫(kù)外的數(shù)據(jù)源導(dǎo)入到數(shù)據(jù)庫(kù)中操作。 例如:excel 表、其它數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)等 使用方法: open database 數(shù)據(jù)庫(kù) use 視圖名 /*類似打開(kāi)一張表*/ . /*打開(kāi)后的操作就和表的操作完全類似*/ 課后思考課后思考: : 有表 xx(學(xué)號(hào) c(2),姓名 c(8),語(yǔ)文 n(3,0),數(shù)學(xué) n(3,0),政治 n(3,0) 完成:1、將全班同學(xué)的數(shù)學(xué)都改為 60 分 2、全班男同學(xué)的語(yǔ)文都加十分,女同學(xué)的語(yǔ)文加 10% 3、增加一總分字段 2、計(jì)算出所有同學(xué)的總

29、分,其中語(yǔ)文占 30%.數(shù)學(xué)占 20%.政治占 30% 5、將第五位同學(xué)的語(yǔ)文加 10 分,總分改為 600 參考答案: 1、 repl all 數(shù)學(xué) with 60 2、 repl all 語(yǔ)文 with 語(yǔ)文+10 for 性別=男 repl all 語(yǔ)文 with 語(yǔ)文*1.1 for 性別=女 3、 modi stru 增加總分字段,n(3,0) 4、 repl all 總分 with 語(yǔ)文*0.3+數(shù)學(xué)*0.2+政治*0.3 5、 repl reco 5 總分 with 600,語(yǔ)文 with 語(yǔ)文+10 或是: go 5 repl 總分 with 600,語(yǔ)文 with 語(yǔ)文+10

30、 3 3 插入記錄插入記錄 insert before blank 向已有表中增加新記錄可分為:在表文件的尾部追加新記錄(append)和在表文件任意記錄的前后插入新記錄(insert)兩 種方法 補(bǔ)充:insert into 表名(字段列表) values(表達(dá)式列表) 向表尾追加一個(gè)新記錄,并將指定的數(shù)據(jù)存入該記錄中 如:insert into 學(xué)生(學(xué)號(hào),姓名,性別) values(12325,阿貴,”男”) 2.為記錄做刪除標(biāo)記為記錄做刪除標(biāo)記(菜單方式,命令方式) 兩步:邏輯刪除邏輯刪除和物理刪除物理刪除 (1)邏輯刪除即做一個(gè)刪除標(biāo)記. delete for while !若命令中

31、和選項(xiàng)均缺省,則只對(duì)當(dāng)前記錄進(jìn)行刪除操作 邏輯刪除記錄的恢復(fù) recall for while !若命令中和選項(xiàng)均缺省,則只對(duì)當(dāng)前記錄進(jìn)行恢復(fù)刪除操作 (2)物理刪除 pack 物理刪除( 真正刪除)當(dāng)前表中所有已打上刪除標(biāo)記的記錄,并重新調(diào)整記錄號(hào) 刪除全部記錄 ,并保留表結(jié)構(gòu). zap dele all pack 2.3.32.3.3 數(shù)據(jù)表與數(shù)組之間的數(shù)據(jù)交換數(shù)據(jù)表與數(shù)組之間的數(shù)據(jù)交換(重點(diǎn))(重點(diǎn)) scatter 和 gather form (書(shū) p55) 1、 scatter :將表中的單個(gè)記錄傳送到數(shù)組或內(nèi)存變量中 單記錄-數(shù)組(內(nèi)存變量) 【格式】scatterscatter

32、fieldsfields memomemo toto blankblank | | memvarmemvar blankblank scatter 用法一:將當(dāng)前記錄的值賦給內(nèi)存變量 格式: scatter fields 字段名表 memver 例如:use 學(xué)生 go 3 disp scatter memvar scatter fields 學(xué)號(hào),姓名,入校總分 memvar ?m.學(xué)號(hào),m.姓名,m. 入??偡?scatter 用法二:將當(dāng)前記錄的值賦給數(shù)組變量 格式:重點(diǎn)掌握 scatter fields 字段名表 to 數(shù)組變量名 例如:dime arr1(3) list memo l

33、ike a* use 學(xué)生 go 5 scatter to arr1 list memo like arr1 scatter to arr1 memo 掌握表的打開(kāi)和關(guān)閉; 表結(jié)構(gòu)的顯示,表記錄的顯示方法. 實(shí)驗(yàn)內(nèi)容: 一.創(chuàng)建自由表(采用命令法、菜單法、表向?qū)?, 建議:set default to f:lq(各人建自已的默認(rèn)目錄),下面的東西都放在自已的文件夾下.(注意:每打開(kāi) visual foxpro 就必須重新設(shè)置默認(rèn)目錄先執(zhí)行 set defa to 路徑); 1. 創(chuàng)建表結(jié)構(gòu)(教材 p44 圖 4.1) 菜單法: 使用 create 路徑表名.dbf,進(jìn)入表設(shè)計(jì)器建結(jié)構(gòu) 使用 c

34、reat table 表名(字段名 類型(寬度),) (注意該有空格和不該有空格的地方) eg: create table 學(xué)生(學(xué)號(hào) c(8),姓名 c(8),出生日期 d,入??偡?n(3,0),個(gè)人信息 m,照片 g) 2. 修改表結(jié)構(gòu)命令修改表結(jié)構(gòu)命令 modifymodify structurestructure 二.輸入數(shù)據(jù)。輸入教材 p42 表 4.1 學(xué)生.dbf,特長(zhǎng)字段隨便輸入幾個(gè),照片也隨便選幾個(gè)人粘貼點(diǎn)圖片就行了(圖 片自選)如果數(shù)據(jù)輸入不正確的話,請(qǐng)用 browse 命令修改,添加記錄(輸入數(shù)據(jù))可以用 append 命令(只輸兩條即 可) 輸入完:關(guān)閉就存盤(pán)(注意:

35、memo 如果輸入了的話就會(huì)變成 memo, gen=gen) 4) 請(qǐng)觀察狀態(tài)欄,是否有文件被打開(kāi),它的名字是什么?路徑是什么?當(dāng)前記錄號(hào)是什么? 共有多少條記錄? 執(zhí)行 use 命令,數(shù)據(jù)表被關(guān)閉了,請(qǐng)?jiān)倏纯礌顟B(tài)欄的情況 請(qǐng)?jiān)俅蜷_(kāi)表學(xué)生: use 學(xué)生 三、表的打開(kāi)、關(guān)閉:(建議先檢查一下默認(rèn)目錄) 打開(kāi):方法一:文件菜單-打開(kāi)表或者常用工具欄-打開(kāi)表 方法二:use 表名 或者是 use 盤(pán)符:路徑文件名 關(guān)閉:use close table/close all/clear all 四表文件的顯示 1 顯示表結(jié)構(gòu):list/display stucture (以下操作用“學(xué)生.dbf”表

36、,為節(jié)省時(shí)間,表可從我的主頁(yè)上下載) 2顯示記錄命令 disp/list 范圍子句條件子句fields 子句 練習(xí): list all list next 2 list record 5 list rest 顯示所有女同學(xué),不顯示記錄號(hào) 顯示姓張的男同學(xué) 顯示入學(xué)成績(jī)大于 580 以上的人的姓名和成績(jī)。 顯示第 5 號(hào)記錄的姓名,性別和入學(xué)成績(jī) 顯示 84 年出生的男生的入成績(jī)學(xué) 不顯示記錄號(hào) 答案: 顯示所有女同學(xué) list for 性別=”女”off 顯示姓張的男同學(xué) disp for substr(姓名,1,2)=“張”and 性別=”男” list for 姓名=”張”and 性別=”

37、男” 顯示入學(xué)成績(jī)大于 580 以上的人的姓名和成績(jī)。 list for 入學(xué)成績(jī)580 fields 姓名,入學(xué)成績(jī) 顯示 5 號(hào)記錄的姓名,性別和入學(xué)成績(jī) list record 5 fields 姓名,性別,入學(xué)成績(jī) 顯示 82 年出生的男生的入成績(jī)學(xué) list for year(出生年月)=1982 and 性別=”男” fields 入學(xué)成績(jī)子 off 排序查詢和多表操作排序查詢和多表操作 5.15.1 排序排序 基本格式: sort to on. sort to on /a/d/c,/a/d/c. ascending/descendingfields 范圍for/while 條件

38、說(shuō)明: 默認(rèn)為/a/a 升序升序 . . /d/d 降序降序 /c 排序時(shí)不區(qū)分大小寫(xiě). 排序會(huì)產(chǎn)生一個(gè)已經(jīng)排好序的新的 dbf 文件, 而以前的表沒(méi)有改變 . 如: 對(duì)學(xué)生表按入學(xué)成績(jī)排序.( (單重排序單重排序) ) 對(duì)學(xué)生表先按性別,再按入學(xué)成績(jī)排序. ( (多重排序多重排序) ) sort to 學(xué)生 2 on 性別,入??偡?注意:排序改變了記錄號(hào),即記錄存放的物理順序。 5.25.2 索引索引 5.2.1 概念 物理順序物理順序:記錄在內(nèi)存中存放的實(shí)際順序(記錄號(hào)反映了記錄存放的先后順序) 邏輯順序邏輯順序:主控索引生效時(shí)的順序(排列順序) 索引類型索引類型 單索引文件,擴(kuò)展名 i

39、dx(只包含一個(gè)索引項(xiàng)) 復(fù)合索引文件,擴(kuò)展名 cdx 分: 結(jié)構(gòu)復(fù)合索引 主文件名與表同名,隨表的打開(kāi)而打開(kāi) 非結(jié)構(gòu)復(fù)合索引 主文件名不與表同名 (包含多個(gè)索引項(xiàng)) 復(fù)合索引文件還可以分為:主索引、唯一索引(unique) 、候選索引(candidate) 、普通索引 主索引:只能在數(shù)據(jù)庫(kù)表中建,索引字段無(wú)重復(fù)值,一張表只能建一個(gè)主索引 候選索引:必須是復(fù)合索引。索引字段無(wú)重復(fù)。一張表可以有多個(gè)候選索引.candidate 普通索引: 索引字段允許有重復(fù)值, 一張表可以有多個(gè)普通索引. 默認(rèn) 惟一索引:索引字段允許有重復(fù)值,但相同的字段值只取第一個(gè)。unique 索引關(guān)鍵字: 建立索引所用的

40、字段或表達(dá)式 5.2.2 索引文件的建立 【格式】index on to | tag of for ascending | descending unique/candidate additive additive:表建立索引文件時(shí)不關(guān)閉先前的索引. 單索引的建立(.idx) index on 索引表達(dá)式索引表達(dá)式 to 單索引文件名單索引文件名 index on 姓名 to xm 說(shuō)明: 建立單索引文件 xm.idx 建立時(shí) xm.idx 就打開(kāi)并生效了 默認(rèn)是按照升序進(jìn)行的,要降序只有 n 型字段才可以,其它類型要降序的話就只能用復(fù)合索引的方法了 例: index on 入??偡?to r

41、xzf 單索引不能使用 ascending 和 descending 參數(shù),復(fù)合索引才能使用 ascending 和 descending 參數(shù) 復(fù)合索引(.cdx)(.cdx) 結(jié)構(gòu)復(fù)合索引(與表主文件名同名,且隨表自動(dòng)打開(kāi)) indexindex onon 索引表達(dá)式索引表達(dá)式 tagtag 索引標(biāo)識(shí)索引標(biāo)識(shí) asce/descasce/desc use 學(xué)生 index on 姓名 tag xm descending 課程-選課(1:n) 一方:學(xué)生,課程 建索引 多方:選課. 建關(guān)聯(lián) sele 1 use 學(xué)生 index on 學(xué)號(hào) tag xh sele 2 use 課程 inde

42、x on 課程號(hào) tag kch sele 3 use 選課 set rela to 學(xué)號(hào) into a set rela to 課程號(hào) into b additive list 學(xué)號(hào),a.姓名,b.課程名,成績(jī), 4.取消關(guān)聯(lián) 在父表工作區(qū)內(nèi)使用 set rela to 5.數(shù)據(jù)工作期 p73 set view on/off 在數(shù)據(jù)工作期中建關(guān)聯(lián) 5.5.3表與表的連接 是一種物理連接,將兩個(gè)工作區(qū)中打開(kāi)的表文件連接生成一個(gè)新的表文件. 格式: join with 別名 to 新表文件 for fields 字段名表 例 5-24 用”學(xué)生”,”選課”,”課程”生成新表”學(xué)生課程”,其中包含

43、學(xué)號(hào),姓名,性別,課程名,課時(shí)數(shù),成績(jī) sele 1 use 學(xué)生 sele 2 use 選課 join with a to 學(xué)生選課 for 學(xué)號(hào)=a.學(xué)號(hào) fields a.學(xué)號(hào),a.姓名,課程號(hào),成績(jī) use 學(xué)生選課 select 3 use 課程. join with b to 學(xué)生課程 for 課程號(hào)=b.課程號(hào),fields b.學(xué)號(hào),b.姓名,課程名,課時(shí),b.成績(jī) use 學(xué)生課程 brow 注意:join with 命令不需要使用事先排序和索引,它會(huì)連接產(chǎn)生一個(gè)新的表,是一種物理的連接。如果缺少 fiel 字句,則代表全部字段。 四、表與表的更新 1、update 的作用:

44、用一個(gè)表的內(nèi)容替換另一個(gè)表的內(nèi)容。 格式:update on from replace with , with , random 3、功能 :利用表的表達(dá)式值來(lái)更新當(dāng)前表文件中記錄的字段值。 說(shuō)明: *兩個(gè)表都需要先對(duì)連接關(guān)鍵字段建立索引 *如果有 random 字段,那么只需當(dāng)前表建立索引,另外一張可以不建 例:有兩張表: 總分表:總分表:zf.dbf 學(xué)號(hào) 姓名 語(yǔ)文 數(shù)學(xué) 總分 110 張三 114 李四 119王二 成績(jī)表:成績(jī)表: cj.dbf 學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 110 67 65 114 89 67 119 78 95 按照成績(jī)表的成績(jī)修改總分表的成績(jī),并計(jì)算出總分表的總分字段 參

45、考答案: close all sele 2 use cj index on 學(xué)號(hào) tag xhcj sele 1 use zf index on 學(xué)號(hào) tag xhzf update on 學(xué)號(hào) from b replace 語(yǔ)文 with b.語(yǔ)文,數(shù)學(xué) with b.數(shù)學(xué) replace all 總分 with 語(yǔ)文+數(shù)學(xué) list (在被替換的表中用 update) 總結(jié): join with:不需要建立索引,物理連接生成一張新表 set relation to :子表需要建索引。父表不建 update:兩個(gè)表都要建立索引,并且索引關(guān)鍵字類型和寬度要相同。 多工作區(qū)操作 實(shí)驗(yàn)名稱:多工作

46、區(qū)操作 實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康暮鸵螅罕匦迣?shí)驗(yàn),掌握多工作區(qū)的基本操作,建立關(guān)聯(lián),使用連接和表的更新 實(shí)驗(yàn)內(nèi)容: 1. 為表“學(xué)生” “選課” “課程”建立表間關(guān)系,顯示學(xué)號(hào),姓名,課程號(hào),成績(jī),課程名字段。set relation to 2.將“學(xué)生” 、 “選課.dbf”及“課程.dbf”表連接生成一張新表 new1 ,其中包含學(xué)號(hào),姓名,課程號(hào),成績(jī),課程名。 join with 3. 用“update”文件夾下的 cj.dbf 中的語(yǔ)文和數(shù)學(xué)分?jǐn)?shù)填入 zf.dbf 表,統(tǒng)計(jì)總分填入總分字段,其中語(yǔ)文占 60%,數(shù) 學(xué)占 40%. update sql 部份 1、查詢教師號(hào)及其所

47、任課程的門(mén)數(shù)(授課.dbf) 2、查詢選修了課程 c140 的學(xué)生學(xué)號(hào)和成績(jī),并按成績(jī)降序排列(選課.dbf) 3、查詢教師的編號(hào),姓名極其所授課程的編號(hào)(教師.dbf,授課.dbf) 參考答案 1. selesele 1 1 useuse 學(xué)生學(xué)生 indexindex onon 學(xué)號(hào)學(xué)號(hào) tagtag xhxh selesele 2 2 useuse 課程課程 indexindex onon 課程號(hào)課程號(hào) tagtag kchkch selesele 3 3 useuse 選課選課 setset relarela toto 學(xué)號(hào)學(xué)號(hào) intointo a a setset relarela

48、 toto 課程號(hào)課程號(hào) intointo b b additiveadditive (以上兩條命令可合為一條命令:以上兩條命令可合為一條命令:setset relarela toto 學(xué)號(hào)學(xué)號(hào) intointo a a,課程號(hào),課程號(hào) intointo b b addiaddi) listlist 學(xué)號(hào),學(xué)號(hào), a.a.姓名,課程號(hào)姓名,課程號(hào),b.,b.課程名,成績(jī),課程名,成績(jī), 2.select 1 useuse 學(xué)生學(xué)生 selectselect 2 2 useuse 選課選課 joinjoin withwith a a toto newnew forfor 學(xué)號(hào)學(xué)號(hào)=a.=a.學(xué)號(hào)

49、學(xué)號(hào) selesele 3 3 useuse newnew selesele 4 4 useuse 課程課程 joinjoin withwith c c toto new1new1 forfor 課程號(hào)課程號(hào)=c.=c.課程號(hào)課程號(hào) useuse new1new1 listlist 3 3 使用使用 update:update: closeclose allall selesele 2 2 useuse cjcj indexindex onon 學(xué)號(hào)學(xué)號(hào) tagtag xhcjxhcj selesele 1 1 useuse zfzf indexindex onon 學(xué)號(hào)學(xué)號(hào) tagtag x

50、hzfxhzf updaupda onon 學(xué)號(hào)學(xué)號(hào) fromfrom b b replrepl 語(yǔ)文語(yǔ)文 withwith b.b.語(yǔ)文語(yǔ)文, ,數(shù)學(xué)數(shù)學(xué) withwith b.b.數(shù)學(xué)數(shù)學(xué) replrepl allall 總分總分 withwith 語(yǔ)文語(yǔ)文*0.6+*0.6+數(shù)學(xué)數(shù)學(xué)*0.4*0.4 listlist 使用關(guān)聯(lián)使用關(guān)聯(lián)+replace+replace 完成完成: : closeclose allall clearclear selesele 1 1 useuse cjcj indexindex onon 學(xué)號(hào)學(xué)號(hào) toto xnxn selesele 2 2 useuse

51、 zfzf setset relarela toto 學(xué)號(hào)學(xué)號(hào) intointo a a from 授課; group by 教師號(hào) 2、select 學(xué)號(hào),成績(jī); from 選課; where 課程號(hào)=c140; order by 成績(jī) desc 3、select 教師.教師號(hào),姓名,課程號(hào); from 教師,授課; where 教師.教師號(hào)=授課.教師號(hào) 作業(yè)作業(yè): : 第一題:有表第一題:有表: : stu(stu(學(xué)號(hào)學(xué)號(hào), ,姓名姓名, ,性別性別, ,班級(jí)班級(jí)) ) 一方一方 cj(cj(學(xué)號(hào)學(xué)號(hào), ,課程名課程名, ,分?jǐn)?shù)分?jǐn)?shù)) ) 多方多方 請(qǐng)顯示出請(qǐng)顯示出 0303 級(jí)級(jí) 3

52、 3 班班 每位同學(xué)的姓名每位同學(xué)的姓名, ,分?jǐn)?shù)分?jǐn)?shù)( (請(qǐng)使用關(guān)聯(lián)請(qǐng)使用關(guān)聯(lián)) ) 注意:每個(gè)同學(xué)可以選多門(mén)課注意:每個(gè)同學(xué)可以選多門(mén)課 第二題:有表第二題:有表: : kc(kc(課程號(hào)課程號(hào), ,課程名課程名) ) sk(sk(教師號(hào)教師號(hào), ,教師姓名教師姓名, ,課程號(hào)課程號(hào)) ) 請(qǐng)顯示出每位教師的教師姓名請(qǐng)顯示出每位教師的教師姓名, , 課程號(hào)課程號(hào), ,課程名課程名( (請(qǐng)使用連接請(qǐng)使用連接) ) 第三題:有表第三題:有表: : zg(zg(工號(hào)工號(hào), ,姓名姓名, ,水電費(fèi)水電費(fèi), ,煤氣費(fèi)煤氣費(fèi), ,網(wǎng)費(fèi)網(wǎng)費(fèi), ,總費(fèi)總費(fèi)) ) 其中只有工號(hào)和姓名有數(shù)據(jù)其中只有工號(hào)和姓名

53、有數(shù)據(jù), ,其它數(shù)據(jù)沒(méi)有填寫(xiě)其它數(shù)據(jù)沒(méi)有填寫(xiě) fei(fei(工號(hào)工號(hào), ,水電費(fèi)水電費(fèi), ,煤氣費(fèi)煤氣費(fèi)) ) 表表 feifei 中所有數(shù)據(jù)已經(jīng)填寫(xiě)中所有數(shù)據(jù)已經(jīng)填寫(xiě) 請(qǐng)編寫(xiě)命令完成下列功能請(qǐng)編寫(xiě)命令完成下列功能: : 利用表利用表 feifei 中的數(shù)據(jù)填寫(xiě)表中的數(shù)據(jù)填寫(xiě)表 zgzg 中的數(shù)據(jù)。中的數(shù)據(jù)。 設(shè)網(wǎng)費(fèi)統(tǒng)一收取設(shè)網(wǎng)費(fèi)統(tǒng)一收取 6565 元元, ,請(qǐng)計(jì)算出總費(fèi)。請(qǐng)計(jì)算出總費(fèi)。( (更新更新) ) 實(shí)驗(yàn)六 實(shí)驗(yàn)名稱:表操作(四) 目的:1.練習(xí)排序 2.索引創(chuàng)建,打開(kāi),使用,更新 3.練習(xí)使用順序查詢和索引查詢. 內(nèi)容(以下內(nèi)容對(duì)”學(xué)生”表進(jìn)行操作) 1 按性別降序排列,生成排序文

54、件 xb1 2 按出生日期建立升序的單索引文件 csrq1. 3、按入??偡纸⒔敌虻膯嗡饕募?zf1. 4 建立非結(jié)構(gòu)復(fù)合索引文件 stu.cdx,要求先排女生記錄再排男生記錄。(選做) 5 建立一個(gè)結(jié)構(gòu)復(fù)合索引要求創(chuàng)建一個(gè)索引標(biāo)志 xm1,實(shí)現(xiàn)按姓名升序排列. 6.按性別和入學(xué)成績(jī)創(chuàng)建一個(gè)結(jié)構(gòu)復(fù)合索引,索引標(biāo)識(shí)為 xbcj, 實(shí)現(xiàn)先按性別,再按入學(xué)成績(jī)升序排列. 7.建結(jié)構(gòu)復(fù)合索引,按”三好生”字段升序排,索引標(biāo)識(shí) shs. 8.關(guān)閉表后重新打開(kāi)表.打開(kāi)單索引文件 zf1 并顯示記錄. use use 學(xué)生 set index to zf1 list 或:use 學(xué)生 index zf1

55、 list 9 分別設(shè)置 xm1,xbcj,shs 為主控索引標(biāo)識(shí),并顯示. use 學(xué)生 set order to xm1 list set order to xbcj list set order to shs list 10. 打開(kāi)學(xué)生表,按入??偡稚蚪▎嗡饕募jP(guān)閉表。打開(kāi)學(xué)生表,將吳紅梅的入校總分改為 650 分。打開(kāi)單索 引文件,顯示記錄。觀察吳紅梅在表中的位置,用 reindex 更新單索引文件,并顯示,觀察吳紅梅在表中的位置. 11.用 locate 命令使指針指向第一條入??偡中∮?580 分的記錄,再把指針指向第二條入??偡中∮?580 分的記錄 (locate-con

56、tinue) 12、用 seek 和 find 命令分別查找”江冰”.(要先對(duì)姓名字段建索引) 索引參考答案: 1.sort on 性別/d to xb1 2.index on 出生日期 to csrq1 3.index on 入學(xué)成績(jī) to zf1 4.index on 性別 tag xb of stu desc 5.index on 姓名 tag xm1 6.index on 性別+str(入學(xué)成績(jī)) tag xbcj 7.index on 三好生 tag shs 10. use 學(xué)生 index on 入校總分 to cj list use use 學(xué)生 replace 入??偡?wit

57、h 650 for 姓名= 吳紅梅 set index to cj list (吳紅梅沒(méi)有排到正確的位置) reindex list (吳紅梅排到了正確的位置) 11. locate for 入??偡?80 disp continue disp 12.index on 姓名 to xm find 江冰 seek “江冰” 第第 3 章章 程序設(shè)計(jì)(一)程序設(shè)計(jì)(一) 本章重點(diǎn): 程序的編寫(xiě),基本程序基本結(jié)構(gòu),子程序和過(guò)程 常見(jiàn)的程序設(shè)計(jì)方法 1、 結(jié)構(gòu)化程序設(shè)計(jì)(模塊化、面向過(guò)程的程序設(shè)計(jì)) 2、 面向?qū)ο蟮某绦蛟O(shè)計(jì) 8.1 面向過(guò)程程序設(shè)計(jì)面向過(guò)程程序設(shè)計(jì) 8.1.1 程序文件的建立和執(zhí)行

58、程序的擴(kuò)展名:prg 一、程序的建立: 1、 modi comm 程序名.prg (.prg 可?。?實(shí)質(zhì):文本文件(ascii 編碼) ,執(zhí)行時(shí),會(huì)產(chǎn)生編譯文件 fxp 后讓計(jì)算機(jī)執(zhí)行。 2、 菜單方式 二、程序的運(yùn)行 do 三、vfp 中程序的分類:數(shù)學(xué)類程序、涉及到表操作的程序 如果本程序是涉及到表操作的程序,那么: 1、 使用程序之間可以先加語(yǔ)句 clear 和 close all 2、 程序最后可以使用命令 close all 然后使用 return 或 cancel 或 quit 最后注意書(shū)寫(xiě)程序的格式(縮進(jìn)) 四、程序舉例 例:顯示出所有入??偡衷?580 分及以上的同學(xué)信息 c

59、lear close all use 學(xué)生 locate for 入??偡?580 do while .not. eof() disp continu wait 按任意鍵繼續(xù) enddo ?結(jié)束 close all cancel 8.1.2 程序中常用的命令 1.交互式輸入命令 (1) 賦值命令 = store (2) 輸入數(shù)據(jù)的命令:(注意:輸入數(shù)據(jù)是在程序執(zhí)行的時(shí)候) accept 提示信息 to input 提示信息 to wait 提示信息 to timeout 注意:wait 輸入的是一個(gè)字符(c 型) input 和 accept 的區(qū)別: input 適用于全部類型內(nèi)存變量,輸入

60、時(shí)需要加定界符 accept 只適用于 c 型,并且 c 型不加定界符 說(shuō)明: 提示信息是提示信息是 c 型型, 它會(huì)在屏幕上原樣輸出它會(huì)在屏幕上原樣輸出 . input 和和 accept 在編寫(xiě)程序時(shí)語(yǔ)句都一樣,只是執(zhí)行程序(在編寫(xiě)程序時(shí)語(yǔ)句都一樣,只是執(zhí)行程序(do)時(shí),輸入的東西不同)時(shí),輸入的東西不同 下面請(qǐng)看程序?qū)嵗?例:輸入 a、b、c 的值,對(duì) 2ax+b=c 求 x 的值。 clear input “現(xiàn)在計(jì)算 2ax+b=c,請(qǐng)輸入 a 的值:” to a input “請(qǐng)輸入 b 的值:” to b input “請(qǐng)輸入 c 的值:” to c x=(c-b)/(2*a)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論