自考“數(shù)據(jù)庫及其應(yīng)用Foxpro”實(shí)驗(yàn)題(3)

字號(hào):

第3組實(shí)驗(yàn)題
    上機(jī)步驟和操作說明
    (1)Windows NT用戶注冊,用戶名為個(gè)人賬號(hào),口令欄直接按回車。
    (2)進(jìn)入Visual FoxPro(VFP)系統(tǒng)環(huán)境,中途不要退出。
    (3)在VFP命令窗口中鍵入以下兩條命令:
    SET DEFAULT TO Z:\<目錄名> (目錄名即你的賬號(hào),目錄已建好)
    SET SAFETY OFF
    第一條命令的目的是設(shè)置你的缺省工作目錄,這樣,操作命令中就不要再帶路徑名。
    (4)按題目要求創(chuàng)建數(shù)據(jù)庫,錄入數(shù)據(jù),編寫程序。
    (5)在程序編輯器窗口錄入、修改程序,編輯完畢,保存后再執(zhí)行。
    (6)第3題和第4題的各小題,都要分別保存為一個(gè)程序文件。文件名要用“賬號(hào)+題號(hào)”命名,例如:C100_3,表示是C100賬戶的第3題的程序。C108_4_2表示是C108賬戶的第4題的第(2)小題的程序。
    (7)做題次序不限,實(shí)現(xiàn)方法不限。題目中所謂的“表”即指“數(shù)據(jù)庫文件”。為減少錄入的負(fù)擔(dān),表名、字段名、變量名等盡量不要用漢字,可用英文或漢語拼音。
    現(xiàn)有關(guān)于工資管理數(shù)據(jù)庫的模式如下:
    職工(職工號(hào),姓名,出生日期,職級(jí))
    職務(wù)(職級(jí),職務(wù),工資,補(bǔ)貼)
    扣除(職工號(hào),房租,水費(fèi),電費(fèi))
    職工的收入與職級(jí)直接掛鉤。職級(jí)與職務(wù)一一對(duì)應(yīng),假設(shè)1級(jí)干部為處長,2級(jí)干部為副處長,等等。每個(gè)職工收入的扣除部分每月更新一次。
    要求完成如下操作:
    1.按題目要求建立表結(jié)構(gòu),各表各個(gè)字段的名字、數(shù)據(jù)類型、長度等根據(jù)語義和查詢的需要自行決定。根據(jù)查詢需要建立索引。 (15分)
    2.利用你所熟悉的方法向各表錄入適量的、滿足題目需要的數(shù)據(jù)。各數(shù)據(jù)項(xiàng)的取值范圍應(yīng)該合理、有效,并與查詢要求相呼應(yīng)。 (10分)
    3.編寫一個(gè)工資單打印程序。假設(shè)各項(xiàng)數(shù)據(jù)已計(jì)算完畢,并存放于表payroll.dbf中。工資單格式如下。表格線可只畫橫線,不畫豎線。 (20分)
    部門號(hào)  職工號(hào)  姓名  工資  補(bǔ)貼  扣除  實(shí)發(fā)工資 
    01  01  WANG             
    ……                   
    02  05  CHEN             
    ……                   
    4.用FoxPro語言或SQL語言編寫程序完成以下查詢。(15分、20分、20分)
    (1)列出職工名單,要包含所有職工的全部屬性,且在最后一行顯示:
    處級(jí)干部的平均年齡為 xx 歲。
    (處級(jí)干部是指職務(wù)為處長、副處長的職工)
    (2)為打印工資單準(zhǔn)備好數(shù)據(jù),存入表payroll.dbf中。其中“扣除”一欄的數(shù)據(jù),用“扣除”關(guān)系所提供的數(shù)據(jù)來更新。
    (3)列出按部門工資匯總清單,格式如下:
    部門號(hào)  工資  補(bǔ)貼  扣除  實(shí)發(fā)工資 
    01             
    02             
    ……             
    總合計(jì)             
    第3組實(shí)驗(yàn)題
    現(xiàn)有關(guān)于工資管理數(shù)據(jù)庫的模式如下:
    職工(職工號(hào),姓名,出生日期,職級(jí))
    職務(wù)(職級(jí),職務(wù),工資,補(bǔ)貼)
    扣除(職工號(hào),房租,水費(fèi),電費(fèi))
    職工的收入與職級(jí)直接掛鉤。職級(jí)與職務(wù)一一對(duì)應(yīng),假設(shè)1級(jí)干部為處長,2級(jí)干部為副處長,等等。每個(gè)職工收入的扣除部分每月更新一次。
    要求完成如下操作:
    1.按題目要求建立表結(jié)構(gòu),各表各個(gè)字段的名字、數(shù)據(jù)類型、長度等根據(jù)語義和查詢的需要自行決定。根據(jù)查詢需要建立索引。(15分)
    答:見第3組實(shí)驗(yàn)題答案文件夾。
    2.利用你所熟悉的方法向各表錄入適量的、滿足題目需要的數(shù)據(jù)。各數(shù)據(jù)項(xiàng)的取值范圍應(yīng)該合理、有效,并與查詢要求相呼應(yīng)。(10分)
    答:見第3組實(shí)驗(yàn)題答案文件夾。
    3.編寫一個(gè)工資單打印程序。假設(shè)各項(xiàng)數(shù)據(jù)已計(jì)算完畢,并存放于表payroll.dbf中。工資單格式如下。表格線可只畫橫線,不畫豎線。(20分)
    部門號(hào)  職工號(hào)  姓名  工資  補(bǔ)貼  扣除  實(shí)發(fā)工資 
    01  01  WANG             
    ……                   
    02  05  CHEN             
    ……                   
    答:程序清單如下
    clear
    set talk off
    use 第3組實(shí)驗(yàn)題答案文件夾\payroll
    @ 0,1 say “─────────────────────────────”
    @ 1,1 say “部門號(hào)”
    @ 1,8 say “職工號(hào)”
    @ 1,15 say “姓名”
    @ 1,23 say “工資”
    @ 1,33 say “補(bǔ)貼”
    @ 1,43 say “扣除”
    @ 1,52 say “實(shí)發(fā)工資”
    @ 2,1 say “─────────────────────────────”
    i=1
    scan
    i=i+2
    @ i,1 get 部門號(hào)
    @ i,8 get 職工號(hào)
    @ i,15 get 姓名
    @ i,23 get 工資
    @ i,33 get 補(bǔ)貼
    @ i,43 get 扣除
    @ i,52 get 實(shí)發(fā)工資
    @ i+1,1 say “─────────────────────────────”
    endscan
    use
    set talk on
    return
    4.用FoxPro語言或SQL語言編寫程序完成以下查詢。(15分、20分、20分)
    (1)列出職工名單,要包含所有職工的全部屬性,且在最后一行顯示:
    處級(jí)干部的平均年齡為 xx 歲。
    (處級(jí)干部是指職務(wù)為處長、副處長的職工)
    答:程序清單如下
    clear
    set talk off
    select 2
    use 第3組實(shí)驗(yàn)題答案文件夾\zhiwu index 第3組實(shí)驗(yàn)題答案文件夾\zhiwu0
    select 1
    use 第3組實(shí)驗(yàn)題答案文件夾\zhigong index 第3組實(shí)驗(yàn)題答案文件夾\zhigong1
    set relation to 職級(jí) into b
    average date()-出生日期 for 職級(jí)=“1級(jí)” or 職級(jí)=“2級(jí)” to ave
    list 職工號(hào),姓名,出生日期,職級(jí),b.職務(wù),b.工資,b.補(bǔ)貼
    ? “ 處級(jí)干部的平均年齡為”+str(ave/365,2)+“歲”
    close databases
    set talk on
    return