![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2010秋VFP上機典型試題 |
||||||||||||||||||||||||||||||||||
真正考試時, 啟動VFP軟件后,首先輸入Set Default to T:,注意:不能丟, 平時練習時應輸入set default to 考生文件夾 注意:項目管理器應從VFP軟件中打開,不能從別的地方打開,打開方式:啟動VFP軟件à文件à打開à項目 上機考試題型總結(jié): 題型1:對表進行設置 例題: 打開T盤根目錄中的項目文件JXGL,在該項目中已有一數(shù)據(jù)庫JXSJ。 1.在JXSJ數(shù)據(jù)庫中按如下表格中所示的結(jié)構(gòu)創(chuàng)建TAB.DBF表,并按表格后的要求設置相關屬性。
(1)設置TAB表的注釋:火炬?zhèn)鬟f城市信息表; 操作:在Tab表的”表”選項卡中的表注釋中輸入” 火炬?zhèn)鬟f城市信息表” (2)設置Cdrq字段的有效性規(guī)則及信息:傳遞日期必須在 操作:選中cdrq字段, 在有效性規(guī)則中輸入cdrq<{^ (3)將Cdrs字段的默認值設置為100,Cdcs設置為南京,Cdrq設置為 操作:選中cdrs,在默認值中輸入100,因為cdrs是數(shù)值型的,所以直接輸入100,選中cdcs,在默認值中直接輸入”南京”,因cdcs是字符型的,所以要加雙引號,選中cdrq,在默認值中輸入{^ (4)將cdcs自動刪除前導空格, 將cdcs拖放到表單時自動顯示文本框(TextBox),輸入cdcs中的值自動轉(zhuǎn)換為大寫字母,按Cdcs字段創(chuàng)建主索引,索引名為abcd。按Cdcs與Cdrq創(chuàng)建普通索引cdef 操作:選中cdcs,在格式中輸入T,在顯示類中選中TextBox,自動轉(zhuǎn)換為大寫,在格式原有的T之后增加!, 切換到索引選項卡,索引名輸入abcd,選中主索引,索引表達式輸入cdcs,增加一個索引,索引名輸入cdef,選中普通索引,索引表達式為cdcs+dtoc(cdrq,1),因為cdrq是日期型的所以要轉(zhuǎn)換成字符型 (5)設置xs表中的xh只能寫入數(shù)字,允許輸入空值 操作:選中xh字段,在輸入掩碼中輸入12個9,因為xh的寬度是12,一個9是一個數(shù)值字符 2.在TAB表中輸入如下記錄:
操作:表->追加新記錄,然后錄入,特別是在輸入cdrq時,應輸入 3.設置CJ表的更新觸發(fā)器,要求課程代碼為” 操作:在更新觸發(fā)器中輸入:kcdm!=” 4.已知JS表已存在主索引gh,索引表達式為gh,KCAP表已存在普通索引gh,索引表達式為gh,以JS表為主表,KCAP表為子表按gh建立永久關系,并設置兩表之間的參照完整性:插入限制,更新級聯(lián),刪除限制 操作:選中JXSJ數(shù)據(jù)庫,點擊修改,出現(xiàn)數(shù)據(jù)庫設計器,找到JS表與KCAP表,然后選中JS表的索引gh,拖放至KCAP表的索引gh,會出現(xiàn)一條連接線,即建立永久關系,選中連接線,右擊,選中參照完整性,出現(xiàn)參照完整性生成器,選擇”更新”選項卡,選中其中的級聯(lián),選中”刪除”選項卡,選中其中的限制,選中”插入”選項卡,選中其中的限制,按確定(注意:如果右擊參照完整性出現(xiàn)一個錯誤提示框,則要執(zhí)行系統(tǒng)菜單”數(shù)據(jù)庫”à清理數(shù)據(jù)庫) 5.更新xs表中籍貫為江蘇南京的更改為江蘇省南京 操作:在命令窗口輸入 :update xs set jg=”江蘇省南京” where jg=”江蘇南京” 6.將kc表移出jxsj數(shù)據(jù)庫,使其成為自由表 操作:選中kc,然后右擊刪除-->移去 7.修改項目test的信息,附加圖標pc.ico,城市為"南京" 操作:選中任意一個表-->右擊-->項目信息-->項目-->附加圖標 8.修改yxzy表設置yxzydm的inputMask屬性,使該字段的數(shù)值只能為數(shù)字字符 操作:打開yxzy,選中yxzydm,選中輸入掩碼: 輸入999999,因為yxzydm的寬度為6 9.利用項目管理器操作為xs編輯說明"人事表" 操作:選中xs表,右擊編輯說明-->輸入人事表 10.將js表設置為包含狀態(tài) 操作:選中js表,右擊-->包含 11.為js表增加一個備注型字段(bz),并將所有職稱(zc)為"教授"記錄的bz字段設置為"學科帶頭人" 操作:增加一個備注字段,在命令窗口輸入: update js set bz="學科帶頭人" where zc="教授" 12.將dmb表中lx字段值為"民族"的記錄復制到ab表,并添加到jxsj數(shù)據(jù)庫 操作:在命令窗口輸入 use dmb copy to ab for lx="民族" 在項目管理器中選擇"添加"-->ab 題型2查詢 查詢時最終要看查詢的生成命令是否與標準答案一致 例題:已知js表存儲了每名教師的基本信息, 包含文化程度代碼(whcd,c),出生日期(csrq,D),工作日期(gzrq,D)等字段,視圖whcd為文化程度代碼與名稱對照表,含文化程度代碼(dm,c)和文化程度名稱(mc,c)等字段,按如下要求修改jxgl項目中的查詢chaxun: 基于js表和whcd試圖,統(tǒng)計各類文化程度的男性人數(shù)和工作時的平均年齡,要求:輸出文化程度代碼、文化程度名稱、人數(shù)和工作時的平均年齡(字段名依次分別為dm,mc,rs和pjnl),查詢結(jié)果按平均年齡降序排序輸出前3條數(shù)據(jù),且僅輸出人數(shù)大于等于2個人的,輸出去向為表文件temp,(注:教師工作時的年齡為工作日期的年份減去出生日期的年份) 操作: (1)選中項目管理器中的chaxun,點擊”修改”,打開添加”表或試圖”,將js與視圖whcd(在右下方有視圖選項)加入到查詢設計器中,這時會彈出”聯(lián)接條件”,因為js表與whcd視圖都有文化程度代碼,所以要依次選中js表中的whcd和whcd視圖中的dm,類型為”內(nèi)部聯(lián)接”,單擊”確定” (2)在”字段”選項卡中的”可用字段”依次選中whcd.dm whcd.mcà添加至”選定字段” 因為人數(shù)要通過函數(shù)生成,所以在”函數(shù)和表達式”中輸入Count(*) as rs添加至”選定字段” 平均年齡也要通過函數(shù)生成,在”函數(shù)和表達式”中輸入Avg(year(gzrq)-year(csrq)) as pjnl添加至”選定字段” (3)在”聯(lián)接”選項卡中前面已經(jīng)設置了js表與whcd聯(lián)接起來的條件,所以無需再設置,如果在(1)中沒有設置”聯(lián)接條件”,那么就要進行設置,在類型中選中Inner join,字段名輸入js.whcd,條件輸入”=”,值輸入whcd.dm (4)在”篩選”選項卡中選擇js.xb,條件”=”,實例”男” (5)在”排序依據(jù)”選項卡中選擇pjnl添加至”選定字段”,在排序選項中選擇”降序” (6)在”分組依據(jù)”選項卡中選擇whcd.dm,因為要求人數(shù)大于2的顯示,在”滿足條件”中選擇rs >=,實例中輸入2 (7)”雜項”選項卡,將”列在前面的記錄”中的對號去掉,然后在記錄個數(shù)中輸入3 (8)右擊查詢設計器空白區(qū),選擇”輸出設置”,選中表,輸入temp, (注:有時候輸出文本文件,選擇”屏幕”à文本文件à輸入文件名) (9)右擊查詢設計器空白區(qū),選擇”查看SQL語句”,比對生成的語句是否與標準答案一樣 SELECT TOP 3 Whcd.*, count(*) as rs,; avg(year(gzrq)-year(csrq)) as pjnl ; FROM jxsj!js INNER JOIN jxsj!whcd ; ON Js.whcd = Whcd.dm; WHERE Js.xb = "男"; GROUP BY Whcd.dm; HAVING rs >= 2; ORDER BY 4 DESC; INTO TABLE temp.dbf 題型3:設計菜單 JXGL項目中已存在菜單MENU,已定義了”系統(tǒng)管理”菜單欄及其中的”恢復系統(tǒng)菜單”菜單項。按如下要求設計菜單,完成后的運行效果如圖1所示。 1.創(chuàng)建”教材信息”菜單欄,其訪問鍵為J,子菜單為”編輯”、”瀏覽”和”統(tǒng)計”,分組線如圖所示,在"系統(tǒng)管理"菜單欄中插入VFP系統(tǒng)菜單"導入"和"導出" 2.為”編輯”菜單項設置跳過條件,使該菜單項不可用; 3.為”統(tǒng)計”菜單創(chuàng)建子菜單”出版社”和”出版年月”; 4.為”出版社”菜單項設置快捷鍵CTRL+B,并為其設置過程代碼:首先清除屏幕(即主窗口),然后運行查詢文件CHAXUN.QPR,為瀏覽菜單設置命令Select * from jc 5.將下述代碼添加到菜單的適當位置,使運行該菜單時,首先執(zhí)行此代碼,代碼如下: if used(“js”) select js endif 6. 將下述代碼添加到菜單的適當位置,使運行該菜單時,最后執(zhí)行此代碼,代碼如下: close tables all 7.為"瀏覽"菜單設置命令,瀏覽xs表中jg為江蘇的全部數(shù)據(jù) 操作步驟: (1)在項目管理器的"其他"選項卡中選中菜單menu,單擊"修改",在"系統(tǒng)管理"下方添加"教材信息(\<J)",選擇"子菜單"-->創(chuàng)建,在打開的輸入欄中依次輸入編輯,瀏覽,\-,統(tǒng)計 (注:\-是分組標記),切換到”系統(tǒng)管理”選擇旁邊的"插入欄",依次選擇"導入"和"導出" (2)點擊"編輯"的"選項",進入新選項卡, 在跳過中輸入.t. (3)選中"統(tǒng)計",選擇"子菜單"-->創(chuàng)建,在打開的輸入欄中依次輸入出版社和出版年月 (4)點擊"出版社"的"選項",進入新選項卡, 選中快捷方式,直接按CTRL的同時在選中B,有時需要按F12,那么就直接按F12就可以了 選中"出版社",選擇"過程"-->創(chuàng)建,輸入 clear do chaxun.qpr (5)選擇”顯示”à常規(guī)選項à設置(出現(xiàn)空白框)à確定à在空白框中輸入代碼 (6) 選擇”顯示”à常規(guī)選項à清理(出現(xiàn)空白框)à確定à在空白框中輸入代碼 (7) 操作:選中"瀏覽",選擇"命令"-->創(chuàng)建,輸入select * from xs where jg="江蘇" 題型4:設計表單 表單F081E的功能是:用鼠標在表單上寫漢字等操作。按下列要求修改表單,修改后表單運行時如圖2所示。 1.設置表單的有關屬性,使其標題為”鼠標寫字”,字號為19,前景顏色為紅色,字體為華文行楷,邊框樣式屬性為”固定對話框”,背景顏色為”黃色”。無最小化,最大化按鈕,表單自動居中,設置表單的圖標為PC.ICO 2.如圖2所示在表單的上部添加一個標簽控件,用來顯示鼠標的位置,并將其對象名修改為COORD,背景樣式設置為“透明”。 3.在表單的下部添加一個文本框控件(對象名為Textl)和計時器控件(對象名為Timerl),并設置計時器控件的有關屬性,使得表單運行時觸發(fā)計時器事件的間隔時間為5秒。 4.編寫計時器控件的Timer事件代碼,實現(xiàn)在文本框中顯示當前的系統(tǒng)日期和時間。 5.在表單的下方加一個命令按鈕為,標題為”退出”,編寫其Click事件代碼,功能是釋放表單 6.拖放一個命令按鈕組至表單,按鈕個數(shù)為3個,然后設置其為水平布局 操作步驟: (1)在項目管理器打開文檔選項卡-->表單 (2)選中F081e,點擊旁邊的修改 (3)選中表單,然后在屬性窗口Caption輸入鼠標寫字,按回車鍵,再選中FontSize屬性,設置為19,FontName屬性設置為華文行楷,再選中 ForeColor(前景顏色),BackColor(背景顏色), BorderStyle屬性設置2為固定對話框,MaxButton設置為.F.無最大化,MinButton設置為.F.無最小化按鈕, AutoCenter設置.T.,ICO設置為PC.ICO (4)從表單控件工具欄將標簽控件拖放至表單上, 將Name屬性修改為Coord,將BackStyle屬性修改為透明 (5)從表單控件工具欄將文本框控件與計時器控件拖放至表單上,將計時器的InterVal屬性設置5000 (6)雙擊計時器,在Timer事件中輸入如下代碼 ThisForm.text1.value=datetime() (7)從表單控件工具欄將命令按鈕控件拖放至表單上, 將命令按鈕的Caption屬性改為退出,雙擊該命令按鈕 進入其Click事件,輸入如下代碼: ThisForm.Release (8)從表單控件工具欄將命令按鈕組控件拖放至表單上,選中該命令按鈕組,在屬性窗口設置其ButtonCount為3,右擊-->生成器-->布局-->水平 常見表單的設置: 常見表單屬性: AlwaysOnTop 總在打開窗口之上 AlwaysOnBottom 總在其他打開窗口之下 AutoCenter 居中對齊 BackColor 背景顏色 BorderStyle 0無邊框 1單線邊框 2固定對話框 3可調(diào)邊框 Caption 表單標題 ControlBox 無最大化、最小化、關閉按紐 Enabled 是否對事件觸發(fā),返回.t.能對事件觸發(fā) Fontname 字體 FontSize 字體大小 ForeColor 前景顏色 ICON 圖標 MaxButton 是否有最大化按紐,.t.表示有,.f.表示沒有 MinButton 是否有最小化按紐,.t.表示有,.f.表示沒有 Name 名稱 width 表單寬度 Height 表單高度 常見方法: thisform.release 釋放表單 題型5:程序改錯 操作:在項目管理器中選中代碼à程序àpcodeà修改,然后將代碼錄入,通過調(diào)試來進行修改,程序中設置了兩個錯誤點,錄入給1分,一個錯誤點2分 例題:下列程序的功能是:輸入一個由ASCII碼字符和GB2312字符集中漢字字符組成的字符串后,統(tǒng)計并顯示出現(xiàn)次數(shù)最多的10個字符及其出現(xiàn)次數(shù)。要求: 1.將下列程序輸入到項目中的程序文件PCODE中,并對其中的2條錯誤語句進行修改; 2.在修改程序時,不允許修改程序的總體框架和算法,不允許增加或減少語句數(shù)目。 CLEAR ACCEPT '請輸入:' TO cccc &&該語句功能是交互式地輸入數(shù)據(jù)(字符串) n=LEN(cccc) IF n=0 RETURN ENDIF CREATE CURSOR TEMP (cc c(2),nn i) &&創(chuàng)建臨時表存儲字符及出現(xiàn)的次數(shù) FOR i=1 TO n c=SUBS(CCCC,i,1) IF ASC(c)>127 &&漢字字符 c=SUBS(cccc,i,2) i=2 ENDIF LOCATE FOR cc=c IF EOF() INSERT INTO TEMP(cc,nn) VALUE(c,1) Other REPLACE nn WITH nn+1 ENDIF ENDFOR SELECT TOP 10 cc,nn FROM temp ORDER BY 2 DESC |
||||||||||||||||||||||||||||||||||