2001年(秋)江蘇省等級(jí)考試上機(jī)試卷 二級(jí) Visual FoxPro (VFP05)
(本試卷上機(jī)考試時(shí)間為70分鐘)
說(shuō)明:1.考試語(yǔ)言環(huán)境為Visual FoxPro 5.0/6.0 2.運(yùn)行考試軟盤(pán)A中的“上機(jī)考試”應(yīng)用程序文件以輸入考生的準(zhǔn)考證號(hào)、姓名、試卷代號(hào)。 3.啟動(dòng)VFP系統(tǒng)后,首先在命令窗口中執(zhí)行命令: set default to A: 以設(shè)置默認(rèn)的工作目錄,然后再開(kāi)始作題。 |
一、項(xiàng)目、數(shù)據(jù)庫(kù)和表操作
打開(kāi)軟盤(pán)根目錄中的項(xiàng)目文件TESTE,在該項(xiàng)目中已有一數(shù)據(jù)庫(kù)SJK。 1. 按如下要求修改SJK中JS(教師)表的結(jié)構(gòu); (1) 將jg字段的標(biāo)題設(shè)置為"籍貫",默認(rèn)值設(shè)置為"江蘇"; (2) 將gl字段(工齡)的有效性規(guī)則文本設(shè)置為:工齡應(yīng)在1至50之間,并設(shè)置相應(yīng)的有效性規(guī)則; (3) 添加一個(gè)通用型字段photo; (4) 創(chuàng)建一個(gè)名為gg的普通索引,要求先按gl(工齡)排序,工齡相同時(shí)按工號(hào)(gh)排序。 2.把軟盤(pán)根目錄中的表文件JSB.DBF添加為T(mén)ESTE項(xiàng)目中的自由表。 3. 修改JSB表中的記錄數(shù)據(jù):將所有的工齡(gl)字段值加1。 4. 在ZY表(專業(yè))中以zydh字段為索引表達(dá)式創(chuàng)建主索引zydh,在XS(學(xué)生)表中以zydh字段為索引表達(dá)式創(chuàng)建普通索引zydh,并以此建立ZY 表和XS表的永久性關(guān)系。 5. 已知JS表和RK表以按gh建立永久性關(guān)系,設(shè)置兩個(gè)表之間的參照完整性規(guī)則:更新級(jí)聯(lián)。
二.設(shè)計(jì)查詢 1. 在TESTE項(xiàng)目中已存在查詢chaxuna,按如下要求設(shè)計(jì)該查詢:
基于XS表(學(xué)生)查詢所以籍貫(jg)為非江蘇籍的各地學(xué)生人數(shù),要求輸出字段為:jg,人數(shù),查詢結(jié)果按人數(shù)的升序排序。
2. 在TESTE項(xiàng)目中以存在查詢chaxunb,按如下要求設(shè)計(jì)該查詢:
在SJK數(shù)據(jù)庫(kù)中存在XS表(學(xué)生)和CJ表(學(xué)生成績(jī)),由于各種可能的原因,造成了CJ表中孤立記錄的存在,即CJ表中的學(xué)號(hào)(xh)字段值是XS表中所沒(méi)有的,試基于這兩個(gè)表查詢出CJ 表中所有孤立記錄的學(xué)號(hào),要求查詢結(jié)果中沒(méi)有重復(fù)的學(xué)號(hào),查詢結(jié)果按學(xué)號(hào)的升序排列,查詢結(jié)果輸出到臨時(shí)表TMP。
三.設(shè)計(jì)菜單 TESTE項(xiàng)目中已存在菜單MENUE,利用菜單設(shè)計(jì)器按如下要求修改菜單; 1. 在"編輯"菜單欄下插入系統(tǒng)中的"查找"功能,將"查找"菜單項(xiàng)插在"瀏覽"菜單項(xiàng)的后面,并用分組線隔開(kāi); 2. 為"瀏覽"菜單項(xiàng)創(chuàng)建下級(jí)子菜單,子菜單包含下列幾項(xiàng);
菜單名稱 |
結(jié)果 |
快捷鍵 |
學(xué)生表 |
過(guò)程 |
CTRL+S |
成績(jī)表 |
過(guò)程 |
|
3. 在A盤(pán)根目錄下已經(jīng)存在表文件XS.DBF,為上述"學(xué)生表"菜單項(xiàng)編制相應(yīng)的過(guò)程,當(dāng)執(zhí)行該菜單時(shí),在瀏覽窗口顯示xs表的內(nèi)容; 4. 在"記錄定位"菜單欄后面增加一個(gè)"退出"菜單欄,并為它設(shè)置相應(yīng)的命令,要求當(dāng)執(zhí)行"退出"菜單時(shí),將VFP主菜單設(shè)置為系統(tǒng)默認(rèn)菜單。
四. 設(shè)計(jì)表單 已知表單forme中有兩個(gè)列表LIST1和LIST2,當(dāng)單擊ADD按鈕時(shí),將LIST1中當(dāng)前選定的行加到LIST2中,當(dāng)單擊MOVE按鈕時(shí),將LIST2中當(dāng)前選定的行重新移回到LIST1中。根據(jù)下列要求對(duì)表單進(jìn)行修改: 1. 將表單中ADD按鈕和MOVE按鈕的標(biāo)題分別用大于號(hào)">"和小于號(hào)"<"表示; 2. 將LIST1中顯示的的列改成A-F共6個(gè)字母; 3. 該表單不能最大化和最小化; 4. 為L(zhǎng)IST1編制相應(yīng)的事件代碼,使得當(dāng)在LIST1中雙擊時(shí),將LIST1中當(dāng)前選定的行加到LIST2中; 5. 為L(zhǎng)IST2編制相應(yīng)的事件代碼,使得當(dāng)在LIST2中雙擊時(shí),將LIST2中當(dāng)前選定的行重新移動(dòng)到LIST2中; 6. 在">"按鈕的Click事件代碼中增加適當(dāng)代碼,用來(lái)根據(jù)LIST1中列表項(xiàng)的項(xiàng)數(shù)(ListCount屬性)啟用和廢止">"按鈕:如果LIST1中的項(xiàng)數(shù)為0,則廢止按鈕,否則啟用按鈕。修改"<"按鈕的Click事件代碼,使之具有類似的功能。 完成上述修改后運(yùn)行表單,屏幕顯示如下所示:
 |