![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2005 年(春)二級Visual FoxPro上機(2) |
|
江蘇省高等學(xué)校非計算機專業(yè)學(xué)生 (本試卷完成時間 70分鐘)
一、項目、數(shù)據(jù)庫和表操作(12分) 打開軟盤根目錄下的項目文件TEST,在該項目中已有一數(shù)據(jù)庫SJK。 1. 按如下要求修改SJK中課程(XS)表的結(jié)構(gòu): 。1) 設(shè)置學(xué)號(xh)字段設(shè)置為只接受8個數(shù)字字符。 。2) 設(shè)置xm字段的有效性(驗證)規(guī)則:xm的有效寬度(不含首尾空格)必須4個字節(jié)以上,且首字符必須為漢字(漢字的首字節(jié)的ASCLL碼值大于127); 。3) 設(shè)置xm字段的字段注釋:姓名的首字符必須為漢字; 。4) 刪除zp字段。 。5) 創(chuàng)建一個普通索引xbrq,要求先按性別(xb)字段升序排序,性別相同再按出生日期(csrq)字段降序排序; 2. 將軟盤中xs.txt文件添加到項目中,并將其包含狀態(tài)設(shè)置為“排除”。 3. 修改軟盤中jsb表的所有記錄的工號(gh)字段值:用系代號(xdh)的值替換原工號中的第2與第3位。例如:工號為“E0001”,系代號為“05”,則替換后的工號就是“E0501”。 4. 設(shè)置xs表的插入觸發(fā)器:只有學(xué)號開頭兩位是“00”至“03”的記錄允許插入,否則不允許插入。 5. xs表中已存在主索引xsxh,索引表達式為xh;cj表已存在普通索引cjxh,索引表達式為xh。以xs表為主表、cj表為子表,按xh 建立永久關(guān)系,并設(shè)置xs表和cj表之間的參照完整性:更新級聯(lián)。 二、設(shè)計查詢(8分) 在TEST項目中已存在查詢chaxun,且在SJK中學(xué)生(xs)表包含學(xué)號(xh)、姓名(xm)、性別(xb)、班級編號(bjbh)、系代號(xdh)和專業(yè)代號(zydh)字段,專業(yè)(zy)表含有專業(yè)代號(zydh)和專業(yè)名稱()zymc)字段,按如下要求修改查詢: 基于xs表和zy表查詢“01”年級每個專業(yè)女生所占比例。要求輸出字段為:zydh,zymc,年級,女生人數(shù)和女生所占比例,查詢結(jié)果按女生所占比例從高到低排序(假定bjbh字段值的前二位表示年級)。 三、設(shè)計菜單(5分) 項目TEST中已存在菜單MenuL,利用菜單設(shè)計器按如下要求修改菜單: 1. 按圖所示,在“表操作”菜單欄增加一個“顯示”菜 單項,并為它設(shè)置子菜單; 2. 為“表操作”菜單欄下的“刪除記錄”菜單項編寫SQL命令:當(dāng)執(zhí)行該菜單項時,刪除學(xué)生表(xs)中所有姓名(xm)為空(指均為空格字符)的記錄; 將下列代碼添加到菜單的適當(dāng)位置,使菜單程序運行是首先執(zhí)行它。 IF USED(“XS”) SELECT XS ELSE USE XS IN 0 ENDIF 四、設(shè)計表單(10分) 項目TEST中已經(jīng)存在表單FormN。該表單的功能是根據(jù)選擇的班級與課程錄入學(xué)生成績,其基本思想是:單擊“錄入”命令按鈕,則根據(jù)所選班級編號生成一個含該班所有學(xué)生的臨時工作表TEMP(作為表格控件的數(shù)據(jù)源),以錄入成績;單擊“入庫”命令按鈕,則將TEMP表中的數(shù)據(jù)追加到cj表中;單擊“作廢”命令按鈕,則TEMP表中的成績總清。按下列要求修改該表單,修改完成后運行表單,其效果如圖所示。 1.修改表單的有關(guān)屬性,使得標(biāo)題為“成績錄入”,表單的控制圖標(biāo)和按鈕為系統(tǒng)默認(rèn)值; 2.修改表格控件的前2列有關(guān)屬性,使得其數(shù)據(jù)只讀; 3.修改下列組合框combo2的有關(guān)屬性,使得下拉列表中顯示課程表(kc)的課程代號(kcdh)和課程名(kcm),要求不允許修改該控件的rowsourcetype屬性; 4.添加一個“作廢”命令按鈕(其外觀和大概位置如圖所示),并為該命令按鈕編寫click事件代碼,需要完成的功能是:TEMP表中的成績均替換為0; 5.為表單的destroy事件編寫代碼,需要完成的功能是: (1)關(guān)閉所有表;(2)如果存在表文件temp.dbf,則刪除之。 五、 程序改錯(5分) 下列程序的功能是:隨機產(chǎn)生一個10至100之間的整數(shù),然后分解質(zhì)因數(shù),例如:45=3*3*5。要求: ① 項目中有一個程序文件Pcode,將下列程序輸入到其中并進行修改(注:注釋部分不輸入); ②在修改程序時,不允許修改程序的總體框架和算法,不允許增加或減少語句數(shù)目。 Nint=int(rand()*100) Do while between(nint,10,100) Nint=int(rand()*100) Enddo Cresult=str(nint,3)+”=” N=2 Do while nint>1 If mod(nint,n)=1 Cresult=cresult+ltrim(str(n))+”*” &<rim()函數(shù)的功能是刪除字符串的前導(dǎo)空格 Nint=nint/n Else N=n+1 If nint<n Exit Endif Endif Enddo Cresult=left(cresult,len(cresult)-1) =messagebox(cresult) |
|