vf練習題及答案_第1頁
vf練習題及答案_第2頁
vf練習題及答案_第3頁
vf練習題及答案_第4頁
vf練習題及答案_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VF練習題1新建商品數(shù)據(jù)表SB.DBF,字段有:商品號(C,5),商品名(C,8),單價(N,5,2),出廠單價(N,5,2),產(chǎn)地(C,6)。并添加如下記錄:商品號(C,5),商品名(C,8),單價(N,6,2),出廠單價(N,6,2),產(chǎn)地(C,6)。10001 電視機 800.0 500.0 青島20001 電子字典 360.0 200.0 深圳10002 手機8210 980.0 600.0 北京30001 MP3 800.0 560.0 廣州10003 商務通 890.0 460.0 深圳設計一個名稱為MY_FORM的表單,上面有“瀏覽”、“調(diào)整”、“備份”和“退出”四個命令按鈕,“

2、商品名稱”標簽和文本框text1。1)在text1中輸入文本,單擊“瀏覽”按鈕時,顯示商品名含有該文本的所有商品記錄。2)單擊“調(diào)整”按鈕時,將“商品號”前兩位編號為“10”的商品的“單價”修改為出廠單價的110%。3)單擊“備份”按鈕時,將“商品表”進行備份(使用命令COPY TO ),備份文件名為“商品表備份.DBF”,4)單擊“退出”按鈕時,關閉表單。答案:法一:(1)如圖:建表:建表單:(2)寫代碼:- 1 -Commandgroup1:瀏覽command1:clickn=thisform.text1.valueselect * from sb where 商品名=n調(diào)整command

3、2:clickupdate sb set 單價=出廠單價*1.1 where left(商品號,2)=10備份command3:clickcopy to d:晴天圖書館vfvf練習題商品表備份退出command4:clickThisform.release法二:代碼:“瀏覽”按鈕:clicka=thisform.text1.valuesele * from SB where 商品名 like allt(a) to screenthisform.text1.selstart=0thisform.text1.sellength=len(allt(thisform.text1.text)thisfo

4、rm.text1.setfocus“調(diào)整”按鈕:clickupdate sb set 單價=出廠單價*1.1 where left(商品號,2)=10“備份”按鈕:clickcopy to g:vfp上機考試練習第一題商品備份表.dbf“退出”按鈕:clickthisform.release3在建立“E:專業(yè)姓名”文件夾下,建立表單(bd2.scx),添加標簽“輸入字符串”、文本框,添加“輸出”、“退出”命令按鈕,并編寫代碼?!拜敵觥盋lick代碼:把文本框內(nèi)輸入的字符串,去掉左、右、中間所有空格字符后,在信息框顯示?!巴顺觥保航Y(jié)束表單運行。答案:法一:- 2 -(1)如圖:(2)代碼:輸出c

5、ommand1:clickn=thisform.text1.valuemessagebox(字符串為:+alltrim(n),0+64+0,輸出字符串)退出command2:clickthisform.release法二:代碼:“輸出”按鈕:clickx=thisform.text1.valuey=allt(x)z=chrt(y, ,)=messagebox(z,0+64+0,輸入值)thisform.text1.selstart=0thisform.text1.sellength=len(thisform.text1.text)thisform.text1.setfocus“退出”按鈕:cl

6、ickthisform.release4設計一個電話計費程序。假定每分鐘通話費用為0.12元。要求:表單窗口中用標簽形式列出開始時間、結(jié)束時間、通話時間及應付金額(元),再設計一個開始按鈕(按下后開始計時)和計費按鈕(按下后顯示結(jié)束時間、通話時間及費用)答案:(1)如圖:(2)寫代碼:開始command1:clickpublic a- 3 -a=time()thisform.label1.caption=開始時間:+a計時command2:clickb=time()thisform.label2.caption=結(jié)束時間:+time()c=ctot(b)-ctot(a)d=int(c/60)e

7、=c%60if e=0y=d*0.12elsey=(d+1)*0.12endifthisform.label3.caption=通話時間:+alltrim(str(d)+分+alltrim(str(e)+秒thisform.label4.caption=應付金額:+str(y,6,2)+元5建立“學生管理” 數(shù)據(jù)庫,在其中新建“成績”數(shù)據(jù)表并任意輸入3條記錄,結(jié)構(gòu)如下:學號C(8),姓名C(8),計算機N(5.1),英語N(5.1),數(shù)學N(5.1),總成績N(5.1)。建立表單(bd1.scx),用表格顯示該數(shù)據(jù)表,添加標簽“計算機平均成績”及顯示該數(shù)據(jù)的文本框。添加“計算”、“退出”命令按

8、鈕,并編寫代碼?!坝嬎恪盋lick代碼:計算“總成績”字段的值(總成績計算機+英語+數(shù)學),計算“計算機平均成績”的值并在文本框顯示?!巴顺觥保航Y(jié)束表單運行。答案:(1)如圖:建數(shù)據(jù)庫:建成績表:- 4 -建表單:(2)寫代碼:計算command1:click:update 成績 set 總成績=計算機+英語+數(shù)學select avg(計算機) from 成績 into array an=athisform.text1.value=n退出command2:click:thisform.release表格grid1:屬性Recordsource:成績Recordsourcetype:1-別名6建

9、“訂貨管理”數(shù)據(jù)庫。在其中新建數(shù)據(jù)表customer,表結(jié)構(gòu)如下:客戶號(C/8)、客戶名(C/10)、地址(C/20)、電話(C/12)。以客戶號建立主索引。新建數(shù)據(jù)表order_list,表結(jié)構(gòu)如下:客戶號(C/8)、訂單號(C/10)、日期(D)、總金額(N/12,2)。以客戶號建立普通索引,并與customer建立表間永久關系。1)兩個數(shù)據(jù)表各添加3條記錄(保證兩個表的客戶號存在一對一關系)。2)新建項目“訂單”并將數(shù)據(jù)庫添加到該項目中。3)在項目中新建表單。如下:當指針指向首記錄“上一條”不能用;當指針指向末記錄“下一條”不能用 - 5 -答案:(1)如圖:建數(shù)據(jù)庫:建表單:(2)寫

10、代碼:commandgroup1:代碼n=this.valuedo casecase n=1skip -1if bof()mand1.enabled=.f. mand2.enabled=.t. endifcase n=2skip 1if eof()mand2.enabled=.f. mand1.enabled=.t. endif- 6 -endcasethisform.refresh7首先創(chuàng)建一個student.dbf數(shù)據(jù)表 其結(jié)構(gòu)為學號(C,3),姓名(C,6),性別(C,2),出生日期(D,8)。記錄內(nèi)容自定。要求,根據(jù)輸入限制條件的上限和下限來查找數(shù)據(jù)表中的記錄,表單會顯示查找到的結(jié)果。

11、程序的演示效果如圖所示。答案:法一:(1)如圖:?(2)寫代碼:查找command1:clickthisform.grdstudent.recordsource=;select * from student where 學號=thisform.text1.value and 學號=thisform.text2.value into cursor temp關閉command2:clickThisform.release(3)表格grid1:屬性Recordsource:無Recordsourcetype:4-SQL說明法二:代碼:“查找”按鈕:clicka=thisform.text1.valu

12、eb=thisform.text2.valueif abthisform.grid1.recordsource=;select 學號,姓名,性別,出生日期 from student where val(a)val(學號) and val(學號)=80 and 成績80 and 成績=60update book!score set 學分=學分+3 where 高數(shù)=60update book!score set 學分=學分+4 where 英語=60select * from score.dbf order by 學分,學號 desc into dbf xf關閉command2:thisform

13、.release10 有一學生管理數(shù)據(jù)庫stu,該數(shù)據(jù)庫中有CHENGJI表和XUESHENG表,各表結(jié)構(gòu)如下:1) XUESHENG表(學號C(9)、姓名C(10)、平均分N(7,2), 該表是學生信息,個學生只有一個記錄,“學號”字段是表的主關鍵字。2) CHENGJI表(學號c(9)、課程號c(3)、成績N(7,2),該表用于記錄學生的考試成績, 一個學生可以有多項記錄,(登記一個學生的多門成績),其中,字段“學號”與“課程名”的組合構(gòu)成表CHENGJI的主關鍵字。請編寫符合下列要求的程序并運行程序。設計一個名為FORM_STU的表單、表單中有兩個命令按鈕,按鈕的名稱分別是CMDYES和

14、CMDNO,標題分別為“統(tǒng)計”和“關閉”。程序運行時,單擊“統(tǒng)計”按鈕應完成下列操作:1)根據(jù)CHENGJI表計算每個學生的平均分,并將結(jié)果存入XUESHENG表的平均分字段。2)根據(jù)上面的計算結(jié)果,生成一個新的表PINGJUN,該表的字段按順序取自XUESHENG表的學號、姓名和平均分3項,并按平均分升序排序,如果平均分相等,則按學號升序排序。單擊“關閉”按扭,程序終止運行。答案:(1)如圖:建數(shù)據(jù)表:(主索引)建表單:- 10 -(2)寫代碼: 統(tǒng)計command1:clickselect 學號,avg(成績) 平均分 from chengji group by 學號 into curso

15、r bbbdo while not eof()update xuesheng set 平均分=bbb.平均分 where xuesheng.學號=bbb.學號skipenddoselect * from xuesheng order by 平均分,學號 into dbf pingjun 關閉command2:clickThisform.release11 *設計一個能進行查詢的表單,界面如圖所示。當輸入學生姓名并單擊“查詢統(tǒng)計”按鈕時,會在右邊的表格內(nèi)顯示該同學所選各科的成績,并在左邊相應的文本框內(nèi)顯示其中的最高分、最低分以及平均成績。單擊“退出”按鈕將關閉表單。答案:(1)如圖:建數(shù)據(jù)表:建

16、表單:- 11 -(2)寫代碼:“查詢統(tǒng)計”按鈕:clicka=thisform.text1.valuesele 課程號,成績 from xuesheng,chengji where xuesheng.學號=chengji.學號 and xuesheng.姓名=a into cursor tempsele max(成績) from temp into array bsele min(成績) from temp into array csele avg(成績) from temp into array dthisform.text2.value=str(b,4,1)thisform.text3.

17、value=str(c,4,1)thisform.text4.value=str(d,4,1)thisform.grid1.recordsource=;sele * from temp into cursor bbb“退出”按鈕:clickthisform.release12 有“學生管理”數(shù)據(jù)庫。在其中新建數(shù)據(jù)表student,表結(jié)構(gòu)如下:學號(C/8)、姓名(C/10)、專業(yè)號(C/4)、成績(N/4)。以學號建立主索引,以專業(yè)號建立普通索引。建數(shù)據(jù)表class,表結(jié)構(gòu)如下:專業(yè)號(C/4)、專業(yè)名稱(C/10),以專業(yè)號建立主索引,并與student(專業(yè)號為外部關鍵字段)建立表間永久關

18、系。1)兩個數(shù)據(jù)表各添加3條記錄(要有”英語”專業(yè)的記錄)。2)新建項目“管理”并將數(shù)據(jù)庫添加到該項目中。3)在項目中新建表單FORM1。選擇選項按鈕后“運行”可以完成相應的操作。答案:(1)如圖:建數(shù)據(jù)表:建項目:建表單:- 12 -(2)寫代碼:“運行”按鈕:clickn=thisform.optiongroup1.valuedo casecase n=1sele student.姓名,class.專業(yè)名稱 from student,class where student.專業(yè)號=class.專業(yè)號 into dbf xzcase n=2sele class.專業(yè)名稱,count(*) 人

19、數(shù) from student,class group by 專業(yè)名稱 wherestudent.專業(yè)號=class.專業(yè)號 into cursor tempcase n=3sele 專業(yè)號 from class where 專業(yè)名稱=英語 into array bbbupdate student set 成績=成績+5 where student.專業(yè)號=bbbendcase13 新建“學生管理”數(shù)據(jù)庫。在其中新建數(shù)據(jù)表student,表結(jié)構(gòu)如下:學號(C/8)、姓名(C/10)、專業(yè)號(C/4)、成績(N/4)。以學號建立主索引,以專業(yè)號建立普通索引。新建數(shù)據(jù)表class,表結(jié)構(gòu)如下:專業(yè)號

20、(C/4)、專業(yè)名稱(C/10),以專業(yè)號建立主索引,并與student(專業(yè)號為外部關鍵字段)建立表間永久關系。1)兩個數(shù)據(jù)表各添加3條記錄(要有”英語”專業(yè)的記錄)。2)新建表單如下圖。選擇選項按鈕后“運行”可以完成相應的操作(用SQL語句實現(xiàn))。14 設計如圖表單,要求對于學生管理數(shù)據(jù)庫std.dbc用SQL語句完成如下功能:(1) 點擊學生名單顯示學號,姓名(若選中復選框顯示詳細信息,則顯示學號, 姓名,性別,出生日期,入學日期,專業(yè))。(2) 點擊計算成績,重新計算總成績。(3) 點擊顯示成績,按照總成績升序或降序顯示std_cj表所有字段。(4) 點擊選課統(tǒng)計,所有學生的學號,姓名

21、及選課的門數(shù)。- 13 -答案:(1)如圖:建表單:(2)寫代碼:學生名單command1:clickif thisform.check1.value=0select 學號,姓名 from std_daelseselect 學號,姓名,性別,出生日期,入校成績,專業(yè) from std_daendif計算成績command2:click?顯示成績command3:clickn= thisform.optiongroup1.valueif n=1select * from std_cj order by 總成績 ascelseselect * from std_cj order by 總成績 de

22、scendif選課統(tǒng)計command4:clickselect std_da.學號,std_da.姓名,count(*) as 選課門數(shù) from std_da,std_xk,tch_pk group by std_da.學號 wherestd_xk.課程代號=tch_pk.課程代號 and std_da.學號=std_xk.學號15 設計如上圖表單,要求用SQL語句完成如下功能:1)擊學生成績顯示學號,總成績(若選中復選框顯示詳細信息,則顯示學號, 姓名,性別,專業(yè),總成績)。2)點擊班級成績表,按照班級(學號字段的前4位為班級號)統(tǒng)計各班級平均成績。3)點擊課程列表,顯示所有選課的代碼,名稱及學生數(shù)。答案:(1)如圖:建表單:- 14 -(2)寫代碼:學生成績command1:clickif thisform.check1.value=0select 學號,總成績 from std_cjelseselect std_cj.學號,std_cj.姓名

溫馨提示

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

評論

0/150

提交評論