![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2005 年(春)二級Visual FoxPro上機(1) |
|||||||||||
江蘇省高等學校非計算機專業(yè)學生 (本試卷完成時間 70分鐘)
一、項目、數(shù)據(jù)庫和表操作(12分) 打開軟盤根目錄下的項目文件TEST,在該項目中已有一數(shù)據(jù)庫SJK。 1. 按如下要求修改SJK中工資(gz)表的結構: (1)為個人所得稅(grsds)字段設置標題:個人所得稅。 (2)設置個人所得稅(grsds)字段的注釋:基本工資1000元以上征稅; (3)設置gz表的記錄有效性(驗證)規(guī)則:如果jbgz小于1000元,grsds的值為0,否則grsds的值為jbgz的5%(該規(guī)則對表中已有的數(shù)據(jù)不做驗證); (4)設置gz表的記錄有效性信息:個人所得稅按基本工資的5%收; (5)創(chuàng)建一個普通索引gzjx,要求按jbgz降序排列。 2. 設置test項目信息:作者為”張勇”,單位為”南京大學”。 3. 向kc表中添加一條記錄,記錄內(nèi)容為:
4. 修改js表中簡歷(jl)字段的值,要求:所有xdh為”02”的記錄的簡歷都改為”計算機系的教師”。 5. 設置js表的插入觸發(fā)器:gh字段的值必須為5個字節(jié)的字符串(除去首尾空格),否則不允許插入。 6. JS表中已存在主索引jsgh,索引表達式為gh;rk表已存在普通索引rkgh,索引表達式為gh。以JS表為主表、rk表為子表,按gh 建立永久關系,并設置JS表和rk表之間的參照完整性:刪除級聯(lián)。 二、設計查詢(8分) 在TEST項目中已存在查詢chaxun,且在SJK中包含一個名為XSCJST的視圖,該視圖中包含學生的學號(xh),課程代號(kcdh)、課程名(kcm)和成績(cj)字段,另外在SJK的學生(xs)表含有學生的學號(xh)和所在班級編號(bjbh)字段。按如下要求修改查詢: 基于xs表和XSCJST視圖表查詢每個班課程代號為”01”的考試情況。要求輸出字段為:bjbh,kcdh,kcm,最高分,平均分,不及格人數(shù),查詢結果按bjbh的升序排序(注:成績低于60分為不及格)。 三、設計菜單(5分) 項目TEST中已存在菜單MenuK,利用菜單設計器按如下要求修改菜單: 1.按圖所示,在”表操作”菜單欄增加一個”記錄定位”菜單項,并為它設置子菜單; 2.為”追加記錄”菜單項編寫命令:當執(zhí)行該菜單項時,在學生表中增加一條記錄,且該記錄的學號等于它的記錄號(轉(zhuǎn)換為6位字符型); 3.在”文件”菜單欄下插入系統(tǒng)菜單項”退出”。 四、設計表單(10分) 項目TEST中已經(jīng)存在表單FormM。該表單的功能是根據(jù)選擇的班級與課程錄入學生成績,其基本思想是:單擊”錄入”命令按鈕,則根據(jù)所選班級編號生成一個含該班所有學生的臨時工作表TEMP(作為表格控件的數(shù)據(jù)源),以錄入成績;單擊”入庫”命令按鈕,則將TEMP表中的數(shù)據(jù)追加到cj表中,然后執(zhí)行”退出”命令按鈕的click事件代碼。按下列要求修改該表單,修改完成后運行表單,其效果如下圖所示。 1.修改表單的有關屬性,使得控制圖標和按鈕如圖2所示(控制圖標為軟盤上的net.ico文件); 2.修改表格控件第3列的標頭,顯示”成績”,且居中、字號為11號; 3.修改下列組合框combo2的有關屬性,使得下拉列表中顯示課程表(kc)的課程代號(kcdh)和課程名(kcm),要求不修改該控件的rowsourcetype屬性; 4.完善”錄入”命令按鈕的click事件代碼,要求在原代碼的基礎上添加2條語句,以實現(xiàn)功能:該命令按鈕不可用,表單上的”入庫”命令按鈕可用; 5.為表單的destroy事件編寫代碼,需要完成的功能是: 1)關閉所有表;2)如果存在表文件temp.dbf,則刪除之。 五、 程序改錯(5分) 下列程序的功能是:隨機出10道100以內(nèi)整數(shù)加減法算術題。如果是加法,則兩數(shù)的和不得大于100;如果是減法,則被減數(shù)不小于減數(shù)。要求: ① 項目中有一個程序文件Pcode,將下列程序輸入到其中并進行修改(注:注釋部分不需要輸入); ② 在修改程序時,不允許修改程序的總體框架和算法,不允許增加或減少語句數(shù)目。 Clear Ts=1 &&題數(shù)計數(shù) Do while ts<=10 Czf=iif(rand()>0.5, ”+”, ”-”) &&rand()函數(shù)的功能是返回一個0~1之間的隨機數(shù) Num1=rand()*100 Num2=rand()*100 If czf=”+” If num1+num2>100 Loop Endif Else If num1<num2 Exit Endif Endif ? ”(”+str(ts,2)+ ”) ”+str(num1,3)+czf+str(num2,2)+ ”=” ts=ts+1 endif |
|||||||||||