




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual FoxPro閱讀題目1. 統(tǒng)計(jì)(計(jì)數(shù))問(wèn)題(查記錄條數(shù)、滿足條件計(jì)數(shù)的問(wèn)題)題目:統(tǒng)計(jì)表中滿足條件的記錄數(shù),如統(tǒng)計(jì)“男”同學(xué)的人數(shù),并顯示結(jié)果。程序1:set talk offuse 學(xué)生count to k for 性別=“男”?kset talk onreturn程序1:關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top)統(tǒng)計(jì)“男”記錄數(shù)保存變量k中顯示k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口程序2:set talk offuse 學(xué)生calculate count()to k for 性別=“男”?kset talk onreturn程序2:關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top)利用calc
2、ulate命令統(tǒng)計(jì)“男”記錄數(shù)保存變量k中顯示k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口程序3:set talk offsele cnt(*)from 學(xué)生 where性別=“男” into array k?K(1) && ?K(1,1)set talk onreturn程序3:關(guān)閉人機(jī)對(duì)話用sql命令統(tǒng)計(jì)“男”記錄數(shù)保存到數(shù)組變量k中顯示數(shù)組元素k(1)的值(k(1)和k(1,1)等價(jià)) 打開(kāi)人機(jī)對(duì)話返回到命令窗口*cnt()和count()等價(jià),功能:統(tǒng)計(jì)記錄數(shù)程序4:set talk offsele cnt(*)from 學(xué)生 where性別=“男” into table k?cn
3、tset talk onreturn程序4:關(guān)閉人機(jī)對(duì)話用sql命令統(tǒng)計(jì)“男”記錄數(shù)保存到永久表k中顯示表字段cnt的值(注意字段名)打開(kāi)人機(jī)對(duì)話返回到命令窗口*cnt()和count()等價(jià),功能:統(tǒng)計(jì)記錄數(shù)程序5:set talk offuse 學(xué)生k=0do while .not.eof() if 性別=“男” k=k+1 endif skipenddo?kset talk onreturn程序5:利用循環(huán),逐條記錄判斷條件來(lái)統(tǒng)計(jì)關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top處,即第一行)給變量k賦值0做循環(huán)(條件是指針沒(méi)有指向表尾,執(zhí)行循環(huán)體)對(duì)當(dāng)前記錄判斷條件,若滿足條件變量k增加1(相當(dāng)于
4、記數(shù))結(jié)束判斷指針下移再返回到not eof()條件處判斷.是否執(zhí)行循環(huán)體結(jié)束循環(huán)后,顯示變量k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口*變量k的值就是記載“男”的人數(shù)程序6:set talk offclearuse 學(xué)生k=0locate for 性別=“男”do while.not. eof() k=k+1 continueenddo?kset talk onreturn程序6:locate.for continue配合關(guān)閉人機(jī)對(duì)話清屏幕信息打開(kāi)學(xué)生表(指針指向top處,即第一行)給變量k賦值0查詢:指針指向第一個(gè)性別為 “男”同學(xué)的記錄上做循環(huán)(條件是指針沒(méi)有指向表尾,執(zhí)行循環(huán)體)變量k增加1(相
5、當(dāng)于記數(shù))移動(dòng)指針到下一個(gè)滿足條件的記錄上(有兩種可能,有和無(wú))返回到not eof()條件處判斷決定是否執(zhí)行循環(huán)體結(jié)束循環(huán)后,顯示變量k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口程序7:set talk offuse 學(xué)生k=0do while .t. if eof() exit endif if 性別=“男” k=k+1 endif skipenddo?Kset talk onreturn程序7:關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top處,即第一行)給變量k賦值0do while 做循環(huán)(條件是.t.成立)若指針指向表尾,即eof()函數(shù)的值為.T.執(zhí)行exit語(yǔ)句,退出循環(huán),執(zhí)行?k語(yǔ)句否則:判斷當(dāng)前
6、記錄性別要是“男”變量k增加1(相當(dāng)于記數(shù))結(jié)束判斷指針下移enddo返回到.t.條件處判斷,執(zhí)行循環(huán)體.結(jié)束循環(huán)后,顯示變量k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口程序8:set talk offuse 學(xué)生k=0i=1do while i<=reccount() if 性別=“男” k=k+1 endif skip i=i+1enddo?kset talk onreturn程序8:關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top處,即第一行)給變量k賦值0給變量i賦值1do while 做循環(huán)(條件是i<=總記錄數(shù)值)若判斷當(dāng)前記錄性別為“男”時(shí)變量k增加1(相當(dāng)于記數(shù))結(jié)束判斷指針下移i增1e
7、nddo返回到條件i<=總記錄數(shù)值處判斷,是否執(zhí)行循環(huán)體結(jié)束循環(huán)后,顯示變量k的值打開(kāi)人機(jī)對(duì)話返回到命令窗口程序9:set talk offuse 學(xué)生K=0go bottomdo while .not.eof() if=性別“男” k=k+1 endif skip -1enddo?kreturn程序9:逆向指針移動(dòng),從下至上,統(tǒng)計(jì)!關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top處,即第一行)給變量k賦值0指針指向最后一條記錄(逆向,自底向上查數(shù))做循環(huán)(條件是指針沒(méi)有指向表首,即top上方)若對(duì)當(dāng)前記錄滿足條件變量k增加1(相當(dāng)于記數(shù))結(jié)束判斷指針上移一次返回到not eof()條件處判斷決定
8、是否執(zhí)行循環(huán)體結(jié)束循環(huán)后,顯示變量k的值返回到命令窗口2. 求最大值(最小值)問(wèn)題題目:求數(shù)學(xué)最高分,并顯示。條件:以下是求N型字段最大值的程序。思考:若求最小值,如何修改程序呢?程序1:set talk offselect max(數(shù)學(xué))from 成績(jī) into array ss?ss(1) && ?ss(1,1)return程序1:用SQL命令求最大值(或最小值)關(guān)閉人機(jī)對(duì)話sql命令求最大值,保存到二維數(shù)組ss中顯示數(shù)組元素的值(即最高分)返回到命令窗口*二維數(shù)組元素可以用一維數(shù)組元素來(lái)表示程序2:set talk offuse 成績(jī)calculate max(數(shù)學(xué)) t
9、o ss?ssreturn程序2:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表用calculate命令直接求最大值,保存變量ss中顯示變量ss的值(即最高分)返回到命令窗口*cnt()、max()、min()、sum()、avg()五個(gè)函數(shù)可以用在calculate命令中程序3:set talk offuse 成績(jī)index on 數(shù)學(xué) to ssgo bottom?數(shù)學(xué)set talk onreturn程序3:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)按照數(shù)學(xué)升序建立索引(邏輯排序),指針指向top移動(dòng)指針到bottom,最后一條記錄(最高分的行) 顯示數(shù)學(xué)的值(即最高分)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序4:set
10、talk offuse 成績(jī)index on -數(shù)學(xué) to ss?數(shù)學(xué)return程序4:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)按照數(shù)學(xué)降序建立索引(邏輯排序),指針指向top顯示數(shù)學(xué)的值(即最高分)返回到命令窗口程序5:set talk offuse 成績(jī)sort on 數(shù)學(xué)/d to ssuse ss?數(shù)學(xué)return程序5:通過(guò)間接排序關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)按照數(shù)學(xué)升序建立新表ss(物理排序)打開(kāi)新表ss,指針指向第一條(top)顯示數(shù)學(xué)的值(即ss第一條記錄數(shù)學(xué)的最高分)返回到命令窗口程序6:set talk offuse 成績(jī)m=數(shù)學(xué)skipdo while .n
11、ot.eof() if m<數(shù)學(xué) m=數(shù)學(xué) endif skipenddo?“最大值=”,mset talk onreturn程序6:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)將第一條記錄數(shù)學(xué)的值存入變量m中指針指向第二條上做循環(huán)(若指針沒(méi)有指向表尾)若m小于當(dāng)前記錄數(shù)學(xué)字段值時(shí)執(zhí)行語(yǔ)句m=數(shù)學(xué),讓m保存最高者結(jié)束判斷指針下移返回到not eof()條件處判斷決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量m的值(即最高分)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序7:set talk offuse 成績(jī)m=數(shù)學(xué)skipdo while .not.eof()n=數(shù)學(xué)m=max(m,n)skipenddo?“最大
12、值=”,mset talk onreturn程序7:(采取循環(huán)方式求最大值)關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)將第一條記錄數(shù)學(xué)的值存入變量m中指針指向第二條上做循環(huán)(若指針沒(méi)有指向表尾)把當(dāng)前記錄數(shù)學(xué)的值存入n中利用函數(shù)max(m,n),求最大值保存到m中指針下移返回到not eof()條件處判斷決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量m的值(即最高分)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序8:set talk offuse 成績(jī)copy to array ssm=ss(1,2)for i=2 to reccount() if m<s(i,2) m=s(i,2) endifendfor?“最
13、大值=”,mreturn程序8:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)將學(xué)生表保存到二維數(shù)組中,注意元素表示什么將第一個(gè)人的數(shù)學(xué)保存到變量m中做循環(huán)(從第二行到最后一行)若m小于當(dāng)前行數(shù)學(xué)分把當(dāng)前大者存入m中結(jié)束判斷返回進(jìn)行下一次循環(huán)條件判斷循環(huán)結(jié)束后,顯示變量m的值(即最高分)返回到命令窗口程序9:和表無(wú)關(guān),求任意10個(gè)數(shù)的最大值set talk offinput“請(qǐng)輸入第一個(gè)數(shù):”to xi=1do while i<=9 input“請(qǐng)輸入下一個(gè)數(shù):”to y if x<y x=y endif i=i+1enddo?“最大值=”,xreturn程序9:(采取循環(huán)方式求最大值)
14、關(guān)閉人機(jī)對(duì)話先輸入第一個(gè)數(shù)值存入x中i=1(i賦初值1)做循環(huán)(9次)再輸入下一個(gè)數(shù),保存到y(tǒng)中比較大???讓x保留大者結(jié)束判斷i=i+1(進(jìn)行下一次循環(huán))循環(huán)結(jié)束顯示變量x的值(即最大值)返回到命令窗口程序10:和表無(wú)關(guān),求三個(gè)數(shù)中的中間數(shù)set talk offa=6b=13c=19if max(a,b)<c ?max(a,b)else if min(a,b)<c ?min(a,b) endifendifset talk onreturn程序10:分析函數(shù)max(a,b,c,d,e)求其中的最大值min(a,b,c,d,e)求其中的最小值(1) 當(dāng)使用函數(shù)max(字段名)時(shí),必須
15、使用在select命令中。(2) 當(dāng)使用函數(shù)max(表達(dá)式1,表達(dá)式2.)時(shí),可以獨(dú)立使用,和普通函數(shù)一樣3. 求和問(wèn)題題目:求數(shù)學(xué)成績(jī)列向總和;(對(duì)給定的表若滿足條件的列向總和呢,請(qǐng)自己完善程序?)程序1:set talk offuse 成績(jī)sum 數(shù)學(xué) to ss ?ssset talk onreturn程序1:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)用sum命令對(duì)數(shù)學(xué)列向求和保存到變量ss中顯示ss打開(kāi)人機(jī)對(duì)話返回到命令窗口程序2:set talk offselect sum(數(shù)學(xué))from 成績(jī) into array ss?ss(1) && ?ss(1,1)set ta
16、lk onreturn程序2:關(guān)閉人機(jī)對(duì)話sql命令直接求數(shù)學(xué)列向和保存到數(shù)組sum中顯示元素ss(1)的值(即為數(shù)學(xué)總和)打開(kāi)人機(jī)對(duì)話返回到命令窗口*也可用calculate sum(數(shù)學(xué))to ss程序3:set talk offuse 成績(jī)ss=0do while .not.eof() ss=ss+數(shù)學(xué) skipenddo?ssset talk onreturn程序3:利用循環(huán),采取累加思想,求數(shù)學(xué)列向和關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)ss=0做循環(huán)(若指針沒(méi)有指向表尾)ss=ss+數(shù)學(xué) 即累加數(shù)學(xué)skip 1 指針下移返回到not eof()條件處判斷決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束
17、后,顯示變量ss的值(即數(shù)學(xué)的累加和)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序4:set talk offuse 成績(jī)copy to array sss=0i=1do while i<=reccount() ss=ss+s(i,2) i=i+1enddo?ssset talk onreturn程序4:采取間接辦法關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)把記錄保存到數(shù)組中(注意第二列)ss=0i=1做循環(huán)(若i<=記錄總數(shù)(行)ss=ss+s(i,2) 即累加數(shù)學(xué)列i增1(行增1)返回到條件處判斷,決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量ss的值(即數(shù)學(xué)的累加和)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序5
18、:set talk offs=0do while i<=10 input“輸入實(shí)數(shù):”to x s=s+x i=i+1enddo?sset talk onreturn程序5:關(guān)閉人機(jī)對(duì)話s=0i從1-10 循環(huán)10次輸入新的實(shí)數(shù)保存到變量x中s=s+x 即累加變量x的值返回到條件處判斷,決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量s的值打開(kāi)人機(jī)對(duì)話返回到命令窗口4. 求平均值問(wèn)題題目:求數(shù)學(xué)列向平均分;(對(duì)給定的表若滿足條件的平均分呢,請(qǐng)自己完善程序?)程序1:set talk offuse 成績(jī)average 數(shù)學(xué) to ss?ssset talk onreturn程序1:關(guān)閉人機(jī)對(duì)話打開(kāi)成
19、績(jī)表(指針指向top)average命令求數(shù)學(xué)列向平均值保存到變量ss中顯示ss打開(kāi)人機(jī)對(duì)話返回到命令窗口程序2:set talk offselect avg(數(shù)學(xué))from 成績(jī) into array ss?ss(1) && ?ss(1,1)set talk onreturn程序2:關(guān)閉人機(jī)對(duì)話sql命令直接求數(shù)學(xué)列向平均值保存到數(shù)組sum中顯示元素ss(1)的值(即為數(shù)學(xué)平均值)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序3:set talk offclearuse 成績(jī)ss=0n=0do while .not.eof() n=n+1skipenddo?“平均值為:”,ss/nset t
20、alk onreturn程序3:關(guān)閉人機(jī)對(duì)話清屏幕信息打開(kāi)成績(jī)表(指針指向top)ss=0n=0做循環(huán)(若指針沒(méi)有指向表尾)n記數(shù)(增1)即統(tǒng)計(jì)總?cè)藬?shù)skip 1指針下移返回到not eof()條件處判斷決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量ss/n的值(即數(shù)學(xué)的平均值)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序4:set talk offuse 成績(jī)copy to array sss=0i=1do while i<=reccount() ss=ss+s(i,2) i=i+1enddo?ss/(i-1)set talk onreturn程序4:關(guān)閉人機(jī)對(duì)話打開(kāi)成績(jī)表(指針指向top)把記錄保存到數(shù)組
21、中(注意第二列)ss=0i=1做循環(huán)(若i<=記錄總數(shù)(行)ss=ss+s(i,2) 即累加數(shù)學(xué)列i增1(行增1)返回到條件處判斷,決定是否執(zhí)行循環(huán)體循環(huán)結(jié)束后,顯示變量表達(dá)式的值(即數(shù)學(xué)的平均值)打開(kāi)人機(jī)對(duì)話返回到命令窗口5. 宏函數(shù)&的使用;函數(shù)格式:&字符型變量. 功能:取出字符型變量里邊的內(nèi)容代替函數(shù)的位置。程序1:x=“10”?& x+2程序1:將字符常量“10”保存到變量x中。保證x為c型顯示值:12程序2:set talk offm=10n=20c=“m”d=“n”?&c+ &dset talk onreturn程序2:等價(jià)于?m+n
22、命令,顯示值:30打開(kāi)人機(jī)對(duì)話返回到命令窗口程序3:從鍵盤(pán)輸入一個(gè)表的文件名字,判斷若有此文件,則打開(kāi)該表并顯示其所有記錄set talk offclearaccept“請(qǐng)輸入表文件的名字:”to nameif file (name) use& name listendifset talk onreturn程序3:函數(shù):file(“文件的路徑”)功能:測(cè)試文件是否存在,若存在,則.T.;否則為.F.關(guān)閉人機(jī)對(duì)話清屏幕信息從鍵盤(pán)輸入文件主名保存到name中判斷條件:name變量保存的文件是否存在,若存在打開(kāi)name保存的文件顯示所有記錄結(jié)束判斷如:file(“c:kk.prg”)功能:測(cè)
23、試c:kk.prg文件是否存在?程序4:連續(xù)顯示三個(gè)表k1.dbf、k2.dbf、k3.dbf、k4.dbf的所有記錄信息set talk offclearfor i=1 to 4 name=“k”+alltrim(str(i) use& name listendforset talk onreturn程序4:4個(gè)表文件名,很有規(guī)律k1“k”+“1”“k”+str(1,1)=>“k”+str(1,1)K2“k”+“2”“k”+str(2,1)K3“k”+“3”“k”+str(3,1)i從1到4執(zhí)行四次循環(huán)體i=1時(shí),name=“k1”,i=2時(shí),name=“k2”,每次use&a
24、mp; name等價(jià)于usek1.,usek2.顯示當(dāng)前表的所有記錄結(jié)束循環(huán)打開(kāi)人機(jī)對(duì)話返回到命令窗口程序5:從鍵盤(pán)輸入某人名,進(jìn)行查詢,若有此人,則顯示該記錄,否則顯示信息“無(wú)”set talk offclearuse 學(xué)生index on 姓名 to xmaccept“請(qǐng)輸入待查詢?nèi)说拿郑骸眛o nameif found() displayelse ?“無(wú)”endifset talk onreturn程序5:關(guān)閉人機(jī)對(duì)話清屏幕信息打開(kāi)學(xué)生表(指針指向top)按姓名進(jìn)行索引(后面使用find)name保存要查詢?nèi)说男彰?,為c型變量判斷:若找到了,即found()的值為.T.顯示當(dāng)前記錄否則
25、顯示“無(wú)”結(jié)束判斷打開(kāi)人機(jī)對(duì)話返回到命令窗口程序6:從鍵盤(pán)輸入查詢條件,并顯示滿足該記錄的記錄set talk offuse 學(xué)生accept“請(qǐng)輸入待查詢的條件:”to tjlist for &tjset talk onreturn程序6:關(guān)閉人機(jī)對(duì)話打開(kāi)學(xué)生表(指針指向top)把條件保存到tj中,如tj=“性別”=男顯示滿足條件的記錄。等價(jià):list for 性別=男打開(kāi)人機(jī)對(duì)話返回到命令窗口程序7:set talk offi=1s=0a1=10a2=a1+4a3=a1-4a4=a1+a2do while i<=3 store“a”+str(i,1)to q s=s+2*q
26、i=i+1enddo?sreturn程序7:a2=14a3=6a4=206. 調(diào)用過(guò)程(模塊/子程序)問(wèn)題 procedure.return/endproc7. 變量的作用域問(wèn)題 piblic/local/私有變量/private8. 調(diào)用自定義函數(shù)問(wèn)題 function.return 表達(dá)式程序1:求和s=1!+2!+.+10!set talk offs=0for i=1 to 10 s=s+jc(i)endfor?sreturnfunction jcparameter kp=1for i=1 to k p=p*iendforreturn p程序1:(1) 用戶自定義函數(shù)的格式functio
27、n 函數(shù)名字parameters 形式參數(shù)變量名表列return 表達(dá)式(2) 自定義函數(shù)的調(diào)用同普通函數(shù)一樣,出現(xiàn)在表達(dá)式中(3)調(diào)用函數(shù)時(shí),通過(guò)函數(shù)定義中“return 表達(dá)式”語(yǔ)句,把函數(shù)的值(即表達(dá)式的值)返回到函數(shù)調(diào)用語(yǔ)句處(即代替函數(shù)調(diào)用位置)說(shuō)明:主程序中jc(i)是調(diào)用函數(shù)語(yǔ)句自定義函數(shù)jc(k)函數(shù)功能是求k!程序2:從鍵盤(pán)輸入圓的半徑,調(diào)用函數(shù)求圓的面積set talk offarea=0input“請(qǐng)輸入圓的半徑=”to r?area(r)function areaparameters rs=pi()*r*rreturn s程序2:從鍵盤(pán)給定半徑r的值顯示自定義函數(shù)are
28、a(r)的值。即調(diào)用函數(shù)area(r)計(jì)算圓的面積把實(shí)參r的值傳遞給函數(shù)形式參數(shù)r接收把計(jì)算面積的值S返回到上層?area(r)處顯示程序3:set talk offa=5b=sqrt(6*a+6)c=2*qh(a)+qh(b)?creturnfunction qhparameters ks=0for i=1 to k s=s+iendforreturn s程序3:分別調(diào)用函數(shù)qh(a)和qh(b)通過(guò):return s把函數(shù)值返回到上層調(diào)用位置處9. 兩個(gè)表邏輯關(guān)聯(lián)/臨時(shí)聯(lián)系問(wèn)題 set relation o.additive程序1:根據(jù)上述兩個(gè)表,求每名學(xué)生總分*考核按照字段表
29、達(dá)式建立臨時(shí)關(guān)聯(lián)set talk offclose allselect 1use 成績(jī)index on 學(xué)號(hào) to xhselect 2use 學(xué)生set relation to 學(xué)號(hào) into areplace all 總分 with a->數(shù)學(xué)+a->物理+a->英語(yǔ)go 3?總分,a->數(shù)學(xué)return程序1:提示:邏輯關(guān)聯(lián)的目的,當(dāng)建立邏輯關(guān)聯(lián)后,主表移動(dòng)記錄指針時(shí),從表自動(dòng)調(diào)整相應(yīng)記錄指針按字段關(guān)聯(lián),從表必須按相應(yīng)字段建立索引學(xué)生表和成績(jī)表按學(xué)號(hào)建立邏輯關(guān)聯(lián)主表移動(dòng)指針,自動(dòng)帶動(dòng)從表指針移動(dòng)定位3號(hào)記錄,從表自動(dòng)執(zhí)行“find學(xué)號(hào)”命令顯示3號(hào)記錄總分的值:2
30、62程序2:根據(jù)上述兩個(gè)表,求每名學(xué)生總分*考核按照數(shù)值表達(dá)式建立臨時(shí)關(guān)聯(lián)set talk offselect 1use 成績(jī)select 2use 學(xué)生set relation to recno()into areplace all 總分 with a->數(shù)學(xué)+a->物理+a->英語(yǔ)go 3?總分,a->數(shù)學(xué)return程序2:按數(shù)值表達(dá)式recno()記錄號(hào)函數(shù),建立邏輯關(guān)聯(lián)主表移動(dòng)指針,自動(dòng)帶動(dòng)從表指針移動(dòng)主表定位3號(hào)記錄,從表自動(dòng)執(zhí)行“go 數(shù)值表達(dá)式”命令顯示3號(hào)記錄總分的值:262程序3:三個(gè)表建立關(guān)聯(lián)set talk offclose allselect
31、1use k1index on.select 2use k2index on.select 3use k3set relation to .into aset relation to .into b additivereturn程序3:通過(guò)k3分別和k1,k2建立臨時(shí)關(guān)聯(lián),可以實(shí)現(xiàn):提取(訪問(wèn)三個(gè)表的相關(guān)數(shù)據(jù))可以利用k1,k2表,來(lái)更新k3表中數(shù)據(jù)注意參數(shù):additive10. 兩個(gè)表橫向物理聯(lián)接問(wèn)題join with 別名/名稱 to 新表 for 連接條件 fields 字段名表列程序1:學(xué)生表和成績(jī)表物理連接close allset talk offselect 1use 成績(jī)sel
32、ect 2use 學(xué)生join with a to 新表 for 學(xué)生->學(xué)號(hào)=成績(jī)->學(xué)號(hào)use 新表listreturn程序1:按照學(xué)號(hào)物理連接成一個(gè)新表若主表m條記錄,從表n條記錄,則連接后的新表最多記錄數(shù)可能為:m*n條必須能夠?qū)懗鲂卤淼乃杏涗浛梢栽趈oin with命令后指定字段短語(yǔ)fields字段名表列,來(lái)指出新表的字段。若不帶fields短語(yǔ),則默認(rèn)新表結(jié)構(gòu)為主表字段前,從表字段在后,重名字段取主表一份*必須搞清楚物理連接產(chǎn)生第三張新表的具體過(guò)程程序2:主表“教師”和從表“系別”按系號(hào)物理連接close allset talk offselect 1use 系別in
33、dex on 系號(hào) to xhselect 2use 教師join with a to 新表 for 系號(hào)=系別->系號(hào)use 新表browsereturn程序2:主表為教師表從表為系別表主表指針指向第一條,從表從上到下逐條判斷for條件,一旦成立,就向新表追加一條記錄,直到從表指針指向表尾;主表指針下移一次指針,重復(fù)上述操作,直至主表指針指向表尾,連接結(jié)束!連接過(guò)程和結(jié)果:程序3:主表“系別”和從表“教師”按系號(hào)物理連接close allset talk offselect 1use 教師index on 系號(hào) to xhselect 2use 系別join with a to 新表
34、for 系號(hào)=教師->系號(hào)use 新表listreturn程序3:主表為系別表,從表為教師表主表指針指向第一條,從表從上到下逐條判斷for條件,一旦成立,就向新表追加一條記錄,直到從表指針指向表尾;主表指針下移一次指針,重復(fù)上述操作,直至主表指針指向表尾,連接結(jié)束!連接過(guò)程和結(jié)果:連接條件可以寫(xiě)成以下等價(jià)形式(1) for 系別->系號(hào)=教師->系號(hào)(2) for系號(hào)=教師->系號(hào)(3) for b->系號(hào)=a->系號(hào)(4) for 系號(hào)=a->系號(hào)其中:-> 可以用.代替11. 分類匯總total的使用問(wèn)題(分組求和)程序1:set talk
35、offuse 學(xué)生index on 性別 to xmtotal on 性別 to hzbuse hzbcount to k?kreturn程序1:按性別升序索引排序(男前女后)按性別每組的n型字段求和,其它字段保留每組中第一條記錄的相應(yīng)字段的值對(duì)新表統(tǒng)計(jì)記錄數(shù)顯示值(為原表性別字段的種類數(shù)2)*匯總后的表記錄數(shù)是原表中索引字段值種類數(shù)程序2:use 學(xué)生成績(jī)total on 學(xué)號(hào) to hzuse hzlistreturn程序2:請(qǐng)寫(xiě)出匯總后的新表hz.dbf的內(nèi)容?use hzlist &&顯示結(jié)果為記錄號(hào) 學(xué)號(hào) 課程號(hào) 成績(jī)1 080001 101 2582 080002
36、101 2553 080003 101 27612. SQL命令問(wèn)題程序1:select * from 表 where 條件select * from 表 where 條件 order by 字段名 descselect * from 表 where 條件 group by 字段名 having.select * from 表 where 字段 notin (值表列)select * from 表 into array 數(shù)組名select * from 表 into table 永久表名select * from 表 into dbf 永久表名select * from 表 into curs
37、or臨時(shí)表名select * from 表 to file 文本文件名select * from 表 to printer promptselect distinct 性別 for 表select top 3*from 表order by 字段名select max(數(shù)學(xué))as 最高分 from 成績(jī)程序1:明確sql各個(gè)命令的含義where 條件排序:desc 降序;asc 升序分組(having 條件 作用是從分的組中再選)字段值屬于保存到二維數(shù)組中 into array保存到永久表中 into table保存到永久表中 into dbf保存到臨時(shí)表中 into cursor保存到文本文件
38、中 to file打印機(jī)輸出,其中prompt參數(shù)是打印預(yù)覽distinct去掉該字段重復(fù)值,保留一份顯示前3名;必須和order by連用學(xué)習(xí)函數(shù):count()/max()/min()/avg()/sum()程序2:數(shù)據(jù)操縱 insert into/update 表名/delete frominsert into 成績(jī) values(“080001,70,93,87,0”)update 成績(jī) set 平均分=(數(shù)學(xué)+物理+英語(yǔ))/3delete from 成績(jī) where 數(shù)學(xué)>85程序2:插入記錄,注意對(duì)應(yīng)字段的數(shù)據(jù)類型更新記錄,注意和非sql命令replace比較邏輯刪除記錄,注
39、意和sql命令比較程序3:表結(jié)構(gòu)定義命令 create table表結(jié)構(gòu)修改命令 alter tablecreate table 表名(字段1類型(寬度).)create table 表名 free(字段1類型(寬度).)alter table 表名 alter 字段名 類型(長(zhǎng)度)alter table 表名 add 字段名 類型(寬度,小數(shù)位)alter table 表名drop column 字段名alter table 表名rename column 舊名 to 新名alter table 表名 drop unique tag 標(biāo)識(shí)alter table 表名 alter 字段名 dr
40、op defaultalter table 表名 alter 字段名 drop check程序3:用sql命令建立表結(jié)構(gòu)(同時(shí)設(shè)置各種參數(shù)等)建立自由表修改字段屬性 alter增加字段 add column 新字段名刪除字段 drop 字段名字段改名 rename.to.刪除候選索引 drop unique tag 標(biāo)識(shí)刪除字段默認(rèn)值 drop default刪除字段有效性規(guī)則 drop check建立永久聯(lián)系:foreign key.tag.references程序4:sql兩個(gè)表連接查詢select * from 表1,表2 where 聯(lián)接條件select * from 表1 join
41、表2 on 聯(lián)接條件 where 篩選條件程序4:格式1 where 表1.字段=表2.字段格式2 on 表1.字段=表2.字段 where 篩選條件程序5:內(nèi)外層互相嵌套查詢筆記第三章程序6:自連接查詢筆記第三章13. 表單控件代碼問(wèn)題(詳細(xì)內(nèi)容見(jiàn)筆記第五章)程序1:常用事件和方法事件:init/destroy/errorload/unload/gotfocusclick/dblclick/rightclickactivate/valid/keypress/interactivechange方法:release/show/hide/refresh/setfocusadditem()/remo
42、veitem()程序1:掌握事件觸發(fā)條件用戶可以定義新方法,但不可以定義新事件程序2:常見(jiàn)控件和屬性含義form1、label1、command1、command2、text1、gird1、list1考點(diǎn):控件屬性的含義事件和方法名稱及其含義事件和方法代碼屬性的描述表單界面如下,描述各個(gè)控件的屬性表單如圖:控件標(biāo)簽label1文本框text1命令按鈕計(jì)算command1命令按鈕計(jì)算command2s=0for i=1 to 100s=s+iendforthisform.text1.value=sreturn程序2:要掌握常見(jiàn)控件屬性名字和含義?主要控件:form1command1、comman
43、dgroup1text1label1gird1optiongroup1check1combollist1edit1timer1pageframe114. 圖案問(wèn)題(考核循環(huán)結(jié)構(gòu))程序1:輸出圖案(4行,每行5個(gè)*號(hào))*set talk off?“*”?“*”?“*”?“*”set talk onreturn程序2:輸出圖案(4行,每行分別1,2,3,4個(gè)*號(hào))*set talk off?“*”?“*”?“*”?“*”set talk onreturn程序3:上述問(wèn)題(單循環(huán)實(shí)現(xiàn))for i=1 to 4?“*”endforreturn程序4:上述三角形(雙重循環(huán)實(shí)現(xiàn))for i=1 to 4
44、for j=1 to 4 ?“*”endfor?endfor程序5:上述問(wèn)題for i=1 to 4 for j=1 to 4 ?“*” endfor?endforreturn程序6:上述問(wèn)題for i=4 to 1 step -1 for j=4 to i step -1 ?“*” endfor ?endforreturn程序7:三角形圖案如下圖*clearfor i=1 to 4 for j=1 to 2*i-1 ?“*” endfor ?endforreturn程序8:三角形圖案如下圖*clearfor i=1 to 4 for j=9-2*i to 1 step -1 ?“*” end
45、for?endforreturn程序9:三角形圖案如下圖 * * *for i=1 to 4 ?space(4-i)(&&分析每行*號(hào)前空格數(shù))for j=1 to 2*i-1 ?“*”endfor ?endforreturn程序10:三角形圖案如下圖 * * *for i=1 to 4 ?space(8-2*i)(&&分析每行*號(hào)前空格數(shù))for j=1 to 2*i-1 ?“*” endfor ?endforreturn程序11:倒三角形圖案如下圖 * * * *clearfor i=1 to 4 ?space(i-1)for j=1 to 9-2*i ?“
46、*” endfor ?endforset talk onreturn程序12:倒三角形圖案如下圖 * * * *clearfor i=1 to 4 ?space(2*i-2)for j=1 to 9-2*i ?“*” endfor ?endforset talk onreturn程序13:圖案如下圖1 0 0 0 01 1 0 0 01 1 1 0 01 1 1 1 01 1 1 1 1dimension a(5,5)for i=1 to 5for j=1 to 5 if i>=j a(i,j)=1else a(i,j)=0 endif endforendforfor i=1 to 5f
47、or j=1 to 5 ?a(i,j)endfor?endfor程序14:閱讀寫(xiě)結(jié)果set talk offcleardimension x(5,5)x=3for i=1 to 2 for j=1 to 2 if i=j x(i,j)=0 endif ?x(i,j) endfor?endforreturn結(jié)果: 0 3 3 015. 函數(shù)row(),col()的使用程序1:clearfor i=1 to 3 row(),col()say“A”endforreturn程序1:光標(biāo)在(0,0)點(diǎn)處結(jié)果:AAArow():測(cè)試當(dāng)前光標(biāo)的行坐標(biāo)col():測(cè)試當(dāng)前光標(biāo)的列坐標(biāo)程序2:set talk offclearrow(),col()say“A”row()+1,col()say“B”row()+1,col()say“C”set talk onreturn程序2:clear作用是將光標(biāo)定位在(0,0)點(diǎn)處結(jié)果:A B C注意:隨著信息的輸出,光標(biāo)所在的行和列的位置在時(shí)刻發(fā)生變化16. 數(shù)學(xué)問(wèn)題(如求質(zhì)數(shù)、水仙花數(shù)等)程序1:顯
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 典當(dāng)渠道合作合同范本
- 勞務(wù)砍草合同范本
- 賣(mài)房合同范本
- 公寓合作建房合同范本
- 印制租房協(xié)議合同范本
- x年夏秋季國(guó)航深航代碼共享航班列表
- 動(dòng)力浮橋采購(gòu)合同范本
- 儀器打包采購(gòu)合同范本
- 2025年江蘇省建筑安全員《B證》考試題庫(kù)及答案
- 單位聘請(qǐng)廚師合同范本
- 統(tǒng)編版五年級(jí)道德與法治下冊(cè)全冊(cè)完整版課件
- 熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)工作動(dòng)態(tài)PPT模板
- 生產(chǎn)管理的目標(biāo)QCDSM
- 戰(zhàn)地衛(wèi)生與救護(hù)教案培訓(xùn)講學(xué)
- 宮頸癌化療患者的護(hù)理
- 2022版《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測(cè)試題
- 車(chē)間主任考核表實(shí)用文檔
- 提高領(lǐng)導(dǎo)干部的溝通能力
- 《航空公司服務(wù)質(zhì)量改善研究8800字(論文)》
- GB/T 9124-2010鋼制管法蘭技術(shù)條件
- GB/T 4117-2008工業(yè)用二氯甲烷
評(píng)論
0/150
提交評(píng)論