![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2003年(春)江蘇省等級(jí)考試上機(jī)試卷 (05) |
2003年(春)江蘇省等級(jí)考試上機(jī)試卷 二級(jí) Visual FoxPro (VFP05) 一、項(xiàng)目、數(shù)據(jù)庫和表操作(12分) 打開軟盤根目錄下的項(xiàng)目文件TEST,在該項(xiàng)目中已有一數(shù)據(jù)庫SJK。 1.按如下要求修改SJK中工資(GZ)表的結(jié)構(gòu): (1) 為住房公積金(zfgj)字段設(shè)置標(biāo)題:住房公積金; (2) 設(shè)置zfgj字段的有效性(驗(yàn)證)規(guī)則:它的值必須為基本工資(jbgz)的8% ,該規(guī)則對(duì)表中已有的數(shù)據(jù)不作對(duì)照; (3) 設(shè)置zfgj字段的有效性(驗(yàn)證)信息:住房公積金是基本工資的8%; (4) 增加一個(gè)邏輯型字段,其字段名為yhdf; (5) 創(chuàng)建一個(gè)普通索引jbgzzfgj,要求先按jbgz字段排序,jbgz相同的再按zfgj字段排序。 2. 為SJK添加編輯說明:教務(wù)管理數(shù)據(jù)庫。 3.把TEST項(xiàng)目中的自由表GZC的包含狀態(tài)設(shè)置為“排除”。 4. 調(diào)整GZC表中副教授的綜合津貼(zhjt),調(diào)整辦法是:1990年(含1990年)以前參加工作的副教授的綜合津貼增加120元。 5. 為KC表設(shè)置刪除觸發(fā)器:若某一記錄的學(xué)分(xf)字段的值為0,則允許刪除,否則不允許刪除。 6. SJK中KC表已存在主索引kcdh,索引表達(dá)式為kcdh:RK表已存在普通索引kcdh,索引表達(dá)式為kcdh。以KC表為主表,RK表為子表按kcdh建立永久關(guān)系,并設(shè)置KC表和RK表之間的參照完整性:刪除級(jí)聯(lián)。 二. 計(jì)查詢(8分) 在TEST項(xiàng)目中已存在查詢chaxun,且在SJK中包含一個(gè)名為RKVIEW的視圖,該視圖中包含教師的任課情況,其中有教師上的每一門課的課時(shí)數(shù)(kss)。假定教師的上課酬金為每學(xué)時(shí)20元,按如下要求修改查詢: 基于RKVIEW視圖和教師(JS)表查詢每個(gè)教師的上課總學(xué)時(shí)及上課酬金。要求輸出字段為:gh,xm、xb,總學(xué)時(shí),上課酬金,查詢結(jié)果按gh的升序排序。 三、設(shè)計(jì)菜單(5分) TEST項(xiàng)目中已存在菜單menu,其中已定義了“文件”菜單欄及其中的“恢復(fù)系統(tǒng)菜單”項(xiàng)。按如下要求設(shè)計(jì)菜單,完成后的運(yùn)行效果如圖1所示。 1. 創(chuàng)建“學(xué)生管理”菜單欄,并為“學(xué)生管理”菜單設(shè)置訪問鍵“ALT+M”; 2. 為“學(xué)生管理’’菜單創(chuàng)建子菜單“基本情況”、“統(tǒng)計(jì)”和“瀏覽學(xué)生表”: 3. 創(chuàng)建“統(tǒng)計(jì)”菜單的子菜單,其中包含“各課成績(jī)”和“學(xué)生總分”菜單項(xiàng); 4. 設(shè)置“瀏覽學(xué)生表”菜單項(xiàng)的廢止條件為: .NOT.USED(“XS”): 5. 設(shè)置“瀏覽學(xué)生表”菜單命令為:BROWSE。
四、設(shè)計(jì)表單(10分) TEST項(xiàng)目中已存在表單formM,它是一個(gè)通過計(jì)時(shí)器控件控制的倒記時(shí)程序。按如下要求修改表單,完成后表單剛運(yùn)行時(shí)的界面如圖2所示,單擊“開始”后界面如圖3所示。 1. 設(shè)置表單的有關(guān)屬性,使得表單運(yùn)行在所有的窗口之上,并作為頂層表單; 2. 設(shè)置表單中文本框的字號(hào)為12; 3. 在表單中添加一個(gè)記時(shí)器控件Timerl,設(shè)置其初始狀態(tài)為廢止、Timer事件的時(shí)間間隔為1秒(1000毫秒); 4. 4. 編寫Timerl記時(shí)器的Timer事件代碼,使用If...else...endif結(jié)構(gòu)完成如下功能:如果表單中文本框Textl的值大于0,則讓文本框的值減1,否則關(guān)閉表單。
五、程序改錯(cuò)(5分) 下列程序用于計(jì)算一個(gè)字符串中包括多少個(gè)漢字(假設(shè)這些漢字均屬于GB2312字符集)。其基本算法是從字符串中依次取一個(gè)字符,如果其AECII碼值大于127,則為一個(gè)漢字內(nèi)碼的第一個(gè)字節(jié)。要求: ① 項(xiàng)目中有一個(gè)程序文件Pcode,將下列程序輸入到其中并進(jìn)行修改; ② 在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語句數(shù)目。 cString=’微軟(Microsoft)公司開發(fā)的視窗(Windows)操作系統(tǒng)’ &&賦初值 nCount=0 n=LEN(cString) FOR m=1 tO n IF ASC(SUBSTR(cString,m,1))>127 nCount= nCount+1 n=n+1 ENDIF ENDFOR WAIT WINDOWS’漢字個(gè)數(shù)為’+nCount |