![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2003年(春)江蘇省等級考試上機(jī)試卷 |
2003年(春)江蘇省等級考試上機(jī)試卷 二級 Visual FoxPro (VFP04) 一、 項(xiàng)目、數(shù)據(jù)厙和表操作(12分) 打開軟盤根目錄下的項(xiàng)目文件TEST, 在該項(xiàng)目中已有一數(shù)據(jù)庫SJK。 1.按如下要求修改SJK中工資(GZ)表的結(jié)構(gòu): (1) 為住房補(bǔ)貼(zfbt)字段設(shè)置標(biāo)題:住房補(bǔ)貼; (2) 設(shè)置zfbt字段的有效性(驗(yàn)證)規(guī)則:它的值或者為0,或者為基本工資(jbgz)的19%; (3) 設(shè)置zfbt字段的字段注釋:1998年以后參加工作的教師才有住房補(bǔ)貼; (4) 增加一個(gè)備注型字段,字段名為bz; (5) 創(chuàng)建一個(gè)普通索引ghsfgz,要求先按工號(gh)字段排序,工號相同的再按實(shí)發(fā)工資(sfgz)字段排序。 2.為GZ表添加編輯說明:教師工資信息表。 3.把TEST項(xiàng)目中的自由表GZC的包含狀態(tài)沒置為“排除”。 4.修改GZC表中所有記錄的實(shí)發(fā)工資(sfgz),計(jì)算實(shí)發(fā)工資的公式為: sfgz=yfgz(應(yīng)發(fā)工資)—zfgj(住房公積金)—ylbx(醫(yī)療保險(xiǎn))—grsds(個(gè)人所得稅) 5.為GZ表設(shè)置刪除觸發(fā)器:工號為空的記錄允許刪除,否則不允許刪除。 6. SJK中JS表已存在主索引jsgh,索引表達(dá)式為gh; GZ表已存在普通索引gzgh,索引表達(dá)式為gh。以JS表為主表,GZ表為子表按gh建立永久關(guān)系,并設(shè)置JS表和GZ表之間的參照完整性:更新級聯(lián)。 二、設(shè)計(jì)查詢(8分) 在TEST項(xiàng)目中已存在查洵chaxun,按如下要求修改該查詢: 基于成績(CJ)表和課程(KC)表查詢每門課有多少學(xué)生選修、最高成績、平均成績。要求輸出字段為:kcdh,kcm、選課人數(shù)、最高成績、平均成績,結(jié)果按kcdh的升序排序。 三、設(shè)計(jì)菜單(5分) TEST項(xiàng)目中已存在菜單menu,其中已定義了“文件”菜單欄及其中的“恢復(fù)系統(tǒng)菜單”項(xiàng)。按如下要求設(shè)計(jì)菜單,完成后的運(yùn)行效果如圖1所示。 1. 創(chuàng)建“系統(tǒng)”菜單欄,并為“系統(tǒng)”菜單設(shè)置訪問鍵“ALT+S”; 2. 在“系統(tǒng)”菜單中添加“數(shù)據(jù)錄入”、“數(shù)據(jù)維護(hù)”和“選項(xiàng)”菜單項(xiàng); 3. 創(chuàng)建“數(shù)據(jù)錄入”菜單的子菜單,其中包含“成績”和“教師工資”菜單項(xiàng); 4. 設(shè)置“選項(xiàng)”菜單項(xiàng)為廢止。 5. 在“數(shù)據(jù)維護(hù)”和“選項(xiàng)”菜單項(xiàng)之間插入分組線。
四、設(shè)計(jì)表單(10分) TEST項(xiàng)目中已存在表單formK,功能是從學(xué)生表中選擇部分字段進(jìn)行瀏覽,如圖2所示。當(dāng)從左側(cè)列表中選擇部分或全部字段到右側(cè)列表,單擊“瀏覽”按紐后,表單向右側(cè)擴(kuò)展,并在表格控件中顯示選定字段的記錄,如圖3所示。按如下要求修改表單,完成后表單剛運(yùn)行時(shí)的界面如圖2所示,選取部分字段單擊“瀏覽”按扭后,界面如圖3所示。 1. 設(shè)置表單的標(biāo)題為“選字段瀏覽表”,邊框類型為“固定對話框”; 2. 2. 兩個(gè)列表框和四個(gè)移動列表項(xiàng)的按鈕都包含在同一個(gè)容器控件MoverLists1中。設(shè)置左側(cè)列表框(lstSource)的RowSourceType屬性為“結(jié)構(gòu)”,RowSource屬性值為“xs”; 3. 在“瀏覽”按鈕的左側(cè)添加一個(gè)標(biāo)題為“重選”的命令按鈕,對象名為“cmdReset”; 4. 編寫cmdReset的單擊事件代碼,以將表單恢復(fù)到如圖2所示的初始狀態(tài),即, ①將表格設(shè)置為不可見;②將表單的寬度恢復(fù)為初始值(238);③調(diào)用MoverListsl容器中的第四個(gè)按鈕cmdRemoveAll的Click事件代碼,以將選在右側(cè)列表中的字段全部移回到左側(cè)列表中。
五、程序改錯(cuò)(5分) 下列程序的功能是對一個(gè)字符串進(jìn)行加密。其基本算法是對字符串中的每一個(gè)字符進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的字符的ASCII碼等于原字符的ASCII碼值加該字符在字符串中的位置值,例如,字符串“ABC”加密后為“BDF”,其中A—B(第1個(gè)字符)、B—D(第2個(gè)字符)、C—F(第3個(gè)字符),要求: ① 項(xiàng)目中有一個(gè)程序文件Pcode,將下列程序輸入到其中并進(jìn)行修改; ② 在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語句數(shù)目。 CString=’12345cz’ &&賦初值 cResult=SPACE(0) IF LEN(CString)=0 FOR n=l T0 Cstring c=SUBSTR(CString,n,1) cResult=cResult十CHR(ASC(C)+1) ENDFOR ENDIF WAIT WINDOWS ’加密后為’+cResult |