![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2010春江蘇VFP上機(jī)考試試題 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2010春二級(jí)Visual FoxPro上機(jī)試卷 (本試卷完成時(shí)間為70分鐘) 考試說明: 1.首先登錄考生信息,然后啟動(dòng)VFP并在命令窗口中執(zhí)行下列命令,以設(shè)置默認(rèn)的工作目錄:SET DEFA TO T: 2.除非題目要求,否則不要對(duì)T盤上的文件進(jìn)行重命名、復(fù)制和刪除操作。 一、項(xiàng)目、數(shù)據(jù)庫(kù)和表操作(12分) 打開T盤根目錄中的項(xiàng)目文件JXGL,在該項(xiàng)目中已有一數(shù)據(jù)庫(kù)JXSJ。 1.在JXSJ數(shù)據(jù)庫(kù)中按如下表格中所示的結(jié)構(gòu)創(chuàng)建AB.DBF表,并按表格中的要求設(shè)置相關(guān)屬件。
(1)設(shè)置AB表的長(zhǎng)表名為:發(fā)表論文登記表; (2)設(shè)置BMBH字段的格式:刪除輸入的前導(dǎo)空格; (3)創(chuàng)建唯一索引,索引名為abcd,要求按作者姓名排序,姓名相同時(shí)再按論文名排序; (4)設(shè)置LX字段的顯示類為復(fù)選框控件類。 2.在AB表中輸入如下記錄: BMBH ZZXM LWM LX KWMC BO0002 李峰 電腦病毒預(yù)防 .T. 計(jì)算機(jī)世界 3.為KC表設(shè)置刪除觸發(fā)器:LX字段值為"專業(yè)核心課程"的記錄不允許刪除。 4.JS表已存在主索引GH,索引表達(dá)式為GH,KCAP表已存在普通索引GH,索引表達(dá)式 為GH,以JS表為主表、KCAP表為子表按GH建立永久關(guān)系,并設(shè)置兩表之間的參照完整性: 更新級(jí)聯(lián)。 二、設(shè)計(jì)查詢(8分) 課程表(KC)中含有課程代碼(kcdm,C)、課程名稱(kcmc,c)和學(xué)分(xf,N)等字段,在成 績(jī)表(CJ)中含有學(xué)生學(xué)號(hào)(xh,c)、成績(jī)(cj,N)、課程代碼(kcdm,c)等字段。按如下要求修 改JXGL項(xiàng)目中的查詢CHAXUN: 若成績(jī)不低于60分學(xué)生可以取得對(duì)應(yīng)課程的學(xué)分,總學(xué)分大于或等于20的學(xué)生可以畢 業(yè),則基于Kc表和cJ表查詢所有不能畢業(yè)的學(xué)生列表。要求查詢輸出字段為:學(xué)號(hào)、總學(xué) 分,查詢結(jié)果按總學(xué)分降序排序。 三、設(shè)計(jì)菜單(5分) JXGL項(xiàng)目中已存在菜單MENU,其中已定義了"文件"菜單欄及其中的"退出菜單"項(xiàng)。按如下要求設(shè)計(jì)菜單,完成后的運(yùn)行效果如圖1所示。 1.在"文件"菜單欄右側(cè)創(chuàng)建"教學(xué)管理"菜單欄; 2.在"教學(xué)管理"菜單欄下創(chuàng)建子菜單"學(xué)生"和"課程"; 3.為"學(xué)生"菜單項(xiàng)設(shè)置跳過條件:xs表打開時(shí)才可操作; 4.在菜單項(xiàng)"學(xué)生"和"課程"之間插入分組線; 5.設(shè)置整個(gè)菜單的清理代碼:CLOSE TABLES ALL。 四、設(shè)計(jì)表單(10分) JXGL項(xiàng)目中已經(jīng)存在表單Formj,該表單用來設(shè)置表單中表格控件Grd1的相關(guān)屬性,如圖2所示。按下列要求修改表單: 1.設(shè)置表單的標(biāo)題為"表格屬性設(shè)置"; 2.設(shè)置表格Grd1中的數(shù)據(jù)為只讀,但能獲得焦點(diǎn),表格的RecordSourceType屬性值為"0一表"; 3.在"數(shù)據(jù)源"標(biāo)簽控件右側(cè)添加一個(gè)組合框控件,并設(shè)置其Name屬性為"Cbo2"、RowSourceType屬性為"7一文件"、RowSource屬性為當(dāng)前目錄下的所有.DBF文件; 4.設(shè)置復(fù)選框控件Checkl的初始狀態(tài)為選中: 5.為組合框控件Cbo1編寫Init事件代碼,使它的初值等于"3(缺省值)水平滾動(dòng)條和垂直滾動(dòng)條"(即初始選中下拉列表中的第4條列表項(xiàng)); 6.為組合框控件Cbo2編寫InterActiveChange‘事件代碼,使表單中Grd1控件的RecordSource屬性與Cbo2中選定的值一致。 ‘ 五、程序改錯(cuò)(5分) 下列程序的功能是:輸入一個(gè)由ASCII碼字符和GB2312字符集中漢字字符組成的字符串后,統(tǒng)計(jì)并顯示出現(xiàn)次數(shù)最多的10個(gè)字符及其出現(xiàn)次數(shù)。要求: 1.將下列程序輸入到項(xiàng)目中的程序文件PCODE中,并對(duì)其中的2條錯(cuò)誤語(yǔ)句進(jìn)行修改; 2.在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語(yǔ)句數(shù)目。 CLEAR ACCEPT '請(qǐng)輸入:' TO cccc &&該語(yǔ)句功能是交互式地輸入數(shù)據(jù)(字符串) n=LEN(cccc) IF n=0 RETURN ENDIF CREATE CURSOR TEMP (cc c(2),nn i) &&創(chuàng)建臨時(shí)表存儲(chǔ)字符及出現(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 參考答案 一、項(xiàng)目、數(shù)據(jù)庫(kù)和表操作 AB表BMBH字段格式:T AB表索引表達(dá)式;zzxm+lwm KC表刪除觸發(fā)器:lx#"專業(yè)核心課程" 或!lx="專業(yè)核心課程" 二、設(shè)計(jì)查詢 SELECT cj.xh,SUM(IIF(CJ>=60,XF,O)) AS 總學(xué)分; FROM jxsj!kc INNER JOIN jxsj!cj; ON kc.kcdm=cj.kcdm; GROUP BY cj.xh; HAVING總學(xué)分<20; ORDER BY 2 DESC 三、設(shè)計(jì)菜單 跳過條件表達(dá)式:NOT USED("xs") 四.設(shè)計(jì)表單
五.程序改錯(cuò) 1.i=2 改為i=i+1 2.ohter 改為else
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||