亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        計(jì)算機(jī)等級(jí)考試二級(jí)VFP上機(jī)試題及解題思路(20)

        字號(hào):

        計(jì)算機(jī)等級(jí)考試二級(jí)VFP上機(jī)試題及解題思路(20)

            第二十套
            一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
            在考生文件夾下的"訂貨管理"數(shù)據(jù)庫中完成如下操作:
            1. 將order_detail、order_list和customer表添加到數(shù)據(jù)庫。
            2. 為order_list表創(chuàng)建一個(gè)主索引,索引名和索引表達(dá)式均是"訂單號(hào)"
            3. 建立表order_list和表order_detail間的永久聯(lián)系(通過"訂單號(hào)"字段)。
            4. 為以上建立的聯(lián)系設(shè)置參照完整性約束:更新規(guī)則為"限制",刪除規(guī)則為"級(jí)聯(lián)",插入規(guī)則為"限制"。
            本題主要考核點(diǎn):
            將一個(gè)自由表添加到數(shù)據(jù)庫中、表索引的建立、表之間的永久聯(lián)系的建立、參照完整性約束的編輯等知識(shí)點(diǎn)
            本題解題思路:
            第一步:打開考生文件夾下的"訂貨管理"數(shù)據(jù)庫
            第二步:打開數(shù)據(jù)庫菜單選擇"添加表(A)",在彈出的"打開"對(duì)話框中,選定考生文件夾下的order_detail表,再點(diǎn)擊"確定"即可,這樣表order_detail就添加到了"訂貨管理"數(shù)據(jù)庫中,用同樣的方法,將order_lsit和customer表也添加到"訂貨管理"數(shù)據(jù)庫中
            第三步:在數(shù)據(jù)庫設(shè)計(jì)器中選中表order_list,在主菜單中選擇"修改(Y)",彈出表設(shè)計(jì)器,選擇表設(shè)計(jì)器"索引"標(biāo)簽,在索引名列中填入"訂單號(hào)",在索引類型列中選擇"主索引",在索引表達(dá)式列中填入" 訂單號(hào)",點(diǎn)擊"確定"按鈕,保存表結(jié)構(gòu)
            第四步:在數(shù)據(jù)庫設(shè)計(jì)器中,選中order_list表中的索引"訂單號(hào)"并拖動(dòng)到表order_detail的"訂單號(hào)"的索引上并松開,這樣兩個(gè)表之間就建立起了永久聯(lián)系。
            第五步:在第四步建立好永久聯(lián)系之后,在兩處表的"訂單號(hào)"索引之間有一條線,單擊這條表示兩個(gè)表之間聯(lián)系的線,線會(huì)加粗,此時(shí)在主菜單中選擇"數(shù)據(jù)庫"中的"編輯參照完整性(I)",系統(tǒng)彈出"參照完整性生成器"對(duì)話框,,在"更新規(guī)則"標(biāo)簽中,選擇"限制"規(guī)則,在"刪除"規(guī)則中選擇"級(jí)聯(lián)",在"插入規(guī)則"中選擇"限制",單擊"確定"保存所編輯的參照完整性。
            二、簡單應(yīng)用(2小題,每題20分,計(jì)40分)
            在考生文件夾下完成如下簡單應(yīng)用:
            1. 列出客戶名為"三益貿(mào)易公司"的訂購單明細(xì)(order_detail)記錄將結(jié)果先按"訂單號(hào)"升序排列,同一訂單的再按"單價(jià)"降序排列),并將結(jié)果存儲(chǔ)到results表中(表結(jié)構(gòu)與order_detail表結(jié)構(gòu)相同)。
            2. 考生文件夾下有一個(gè)form1表單文件,其中三個(gè)命令按鈕click事件下的語句都是錯(cuò)誤的,請(qǐng)按如下要求進(jìn)行修改(最后保存所做的修改)
            (1) 單擊"刷新標(biāo)題"命令按鈕時(shí),使表單的標(biāo)題為"簡單應(yīng)用";
            (2) 單擊"訂單記錄" 命令按鈕時(shí),使表格控件中顯示order_list表中的記錄;
            (3) 單擊"關(guān)閉表單" 命令按鈕時(shí),關(guān)閉表單。
            注意:每處錯(cuò)誤只能在原語句上進(jìn)行修改,不可以增加語句。
            本題主要考核點(diǎn):
            SQL中的查詢SELECT查詢、聯(lián)接查詢、查詢的排序、查詢的結(jié)果的去向、子查詢等;控件的屬性、表單的操作等知識(shí)點(diǎn)。
            解題思路:
            第一小題:由于要查詢客戶名為"三益貿(mào)易公司"的訂購單明細(xì),而在訂購單明細(xì)表order_detail中卻沒有客戶名的字段,所以要通過聯(lián)接查詢來實(shí)現(xiàn)。因?yàn)橐?lián)接三個(gè)表,所以將三個(gè)依次放在FROM子句的后面,互相之間用逗號(hào)隔開:FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;聯(lián)接的條件是CUSTOMER.客戶號(hào)=ORDER_LIST.客戶號(hào) AND ORDER_LIST.訂單號(hào)=ORDER_DETAIL.訂單號(hào)放在WHERE子句的后面,另外還有一個(gè)查詢的條件上:CUTOMER.客戶名="三益貿(mào)易公司"也要放在WHERE的后面并與上面的條件用AND連接起來;查詢的排序是通過子句ORDER BY來實(shí)現(xiàn)的,將排序的依據(jù)依次放在ORDER BY子句的后面,用逗號(hào)隔開:ORDER BY ORDER_DETAIL. 訂單號(hào),單價(jià) DESC;結(jié)果集要放入一個(gè)永久表中要用INTO TABLE子句:INTO TABLE RESULTS。
            這樣一個(gè)完整的SQL查詢語句便可以寫出來:
            SELECT ORDER_DETAIL.*;
            FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;
            WHERE CUSTOMER.客戶號(hào)=ORDER_LIST.客戶號(hào) ;
            AND ORDER_LIST.訂單號(hào)=ORDER_DETAIL.訂單號(hào);
            AND CUSTOMER.客戶名="三益貿(mào)易公司";
            ORDER BY ORDER_DETAIL.訂單號(hào),單價(jià) DESC;
            INTO TABLE RESULTS
            第二小題:打開考生文件夾下的"form1.scx",在表單設(shè)計(jì)器中雙擊"刷新標(biāo)題"控件打開代碼編輯器,此處是對(duì)form對(duì)象的caption的屬性進(jìn)行賦值,所以此處應(yīng)改為:thisform.caption="簡單應(yīng)用"; 在表單設(shè)計(jì)器中雙擊"訂單記錄"控件打開代碼編輯器,此處是要在表格控件中顯示表"ORDER_LIST.DBF",所以要對(duì)grid1控件的RecordSource屬性進(jìn)行賦值,此處應(yīng)改為:
            thisform.grid1.RecordSource="order_list.dbf";
            在表單設(shè)計(jì)器中雙擊"關(guān)閉表單"控件打開代碼編輯器,此處的功能是關(guān)閉表單,關(guān)閉表單要用到表單的Release方法,所以此處應(yīng)改為:thisform.release退出保存。
            三、綜合應(yīng)用(1小題,計(jì)30分)
            首先為order_detail表增加一個(gè)新字段:新單價(jià)(類型與原來的單價(jià)字段相同),然后編寫滿足如下要求的程序:根據(jù)order_list 表中的"訂購日期"字段的值確定order_detail表的"新單價(jià)"字段的值,原則是:訂購日期為2001年的"新單價(jià)"字段的值為原單價(jià)的90%,訂購日期為2002年的"新單價(jià)"字段的值為原單價(jià)的110%(注意:在修改操作過程中不要改變order_detail表記錄的順序),將order_detail表中的記錄存儲(chǔ)到od_new表中(表結(jié)構(gòu)與order_detail表完全相同);最后將程序保存為prog1.prg,并執(zhí)行該程序。
            接著再利用 Visual Foxpro的"快速報(bào)表"功能建立一個(gè)的簡單報(bào)表,該報(bào)表內(nèi)
            容按順序含有order_detail表的訂單號(hào)、器件號(hào)、器件名、新單價(jià)和數(shù)量字段的值,將報(bào)表文件保存為report1.frx。
            本題主要考核點(diǎn):
            程序的建立方法、程序中循環(huán)結(jié)構(gòu)的使用、SQL查詢語句的使用、記錄的修改方法;報(bào)表的建立方法等知識(shí)點(diǎn)
            本題解題思路:
            第一步:在VisualFoxPro主窗口下按組合鍵Ctrl+N,系統(tǒng)彈出"新建"對(duì)話框,在"文件類型"中選擇"程序",再點(diǎn)擊"新建文件"按鈕,則系統(tǒng)彈出程序編輯窗口;
            第二步:在彈出的窗中中輸入以下代碼:
            SET TALK OFF &&在程序運(yùn)行時(shí)關(guān)閉命令結(jié)果的顯示
            SELECT 訂單號(hào) FROM ORDER_LIST WHERE YEAR(訂購日期)=2001;
            INTO CURSOR CurTable
            &&從ORDER_LIST中得到訂購日期是2001年的所有訂單號(hào),
            &&并將結(jié)果集放入臨時(shí)表CurTable中
            DO WHILE NOT EOF() &&遍歷臨時(shí)表CurTable中的每一個(gè)訂單號(hào)
            UPDATE ORDER_DETAIL SET 新單價(jià)=單價(jià)*0.9;
            WHERE 訂單號(hào)=CurTable.訂單號(hào)
            &&如果ORDER_DETAIL中的訂單號(hào)與臨時(shí)表的記錄號(hào)相同時(shí);
            &&對(duì)新單價(jià)進(jìn)行更新
            SKIP
            ENDDO
            SELECT 訂單號(hào) FROM ORDER_LIST WHERE YEAR(訂購日期)=2002;
            INTO CURSOR CurTable
            DO WHILE NOT EOF()
            UPDATE ORDER_DETAIL SET 新單價(jià)=單價(jià)*0.9;
            WHERE 訂單號(hào)=CurTable.訂單號(hào)
            SKIP
            ENDDO
            CLOSE ALL
            SET TALK ON
            第三步:單擊"保存"工具欄按鈕,以文件名prog1.prg保存程序文件在考生文件夾下,并運(yùn)行程序。
            第四步:在Visual FoxPro主窗口按下組合鍵Ctrl+N,系統(tǒng)彈出"新建"對(duì)話框,在"文件類型"中選擇"報(bào)表",再點(diǎn)擊新建文件按鈕,系統(tǒng)彈出報(bào)表設(shè)計(jì)器
            第五步:單擊主窗口"報(bào)表"菜單下的"快速報(bào)表(Q)",系統(tǒng)彈出"打開"對(duì)話框,選擇考生文件夾下的order_detail.dbf表,單擊"確定",系統(tǒng)彈出"快速報(bào)表"對(duì)話框,單擊"字段(F)"按鈕,系統(tǒng)彈出"字段選擇器"對(duì)話框,將訂單號(hào)、器件號(hào)、器件名、新單價(jià)、數(shù)量依次放入"選定字段"中,單擊"確定",返回"快速報(bào)表"對(duì)話框,單擊"確定"按鈕后便生成了一個(gè)報(bào)表,將報(bào)表文件以文件名report1.frx保存在考生文件夾下。