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