亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        NCRE二級VFP機(jī)試邏輯陷阱分析與思考

        2008-12-31 00:00:00
        計算機(jī)教育 2008年20期

        文章編號:1672-5913(2008)20-0148-03

        摘 要:本文簡要介紹了當(dāng)前VFP教學(xué)和NCRE考試的現(xiàn)狀,通過具體實例詳細(xì)闡述NCRE二級VFP機(jī)試中部分邏輯陷阱,探討VFP教學(xué)的特點(diǎn),并由此深入分析如何及時發(fā)現(xiàn)并避免犯錯。

        關(guān)鍵詞:NCRE;VFP;邏輯陷阱;實踐教學(xué);數(shù)據(jù)校驗

        中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B

        全國計算機(jī)等級考試(National Computer Rank Examin-

        ation,簡稱NCRE)是由教育部考試中心主辦,面向社會考查計算機(jī)應(yīng)用知識與能力的全國性計算機(jī)水平考試體系。NCRE二級證書是具有基本計算機(jī)使用能力的社會通用標(biāo)準(zhǔn),是職務(wù)晉升、職稱評定、崗位競聘的重要依據(jù)。VFP是NCRE二級考試語種之一,由于部分VFP上機(jī)考題中隱藏了很深的邏輯陷阱,所以它成了阻礙獲取證書的主要因素,因此認(rèn)真分析考題、反復(fù)校驗結(jié)果來避免落入邏輯陷阱已經(jīng)成為數(shù)據(jù)處理的基本方法。

        1 VFP教學(xué)和考試現(xiàn)狀簡介

        1.1 VFP教學(xué)現(xiàn)狀

        數(shù)據(jù)庫技術(shù)是計算機(jī)專業(yè)的基礎(chǔ)課程之一,它所研究的問題就是如何科學(xué)地組織和存儲數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù),如何更廣泛、更安全地共享數(shù)據(jù)。VFP是目前最流行的數(shù)據(jù)庫管理系統(tǒng)之一,是一種支持面向?qū)ο蟪绦蛟O(shè)計的可視化高級程序設(shè)計語言,是大學(xué)非工科專業(yè)學(xué)生必修的計算機(jī)課程,也是目前NCRE二級報考人數(shù)最多的語種。

        1.2 VFP二級考試特點(diǎn)

        報考VFP的絕大部分是非工科的考生,他們普遍缺乏計算機(jī)編程思維,部分考生在考試結(jié)束后自我感覺良好,最終卻沒有通過考試,除了粗心大意犯低級錯誤以外,如何及時發(fā)現(xiàn)并避免邏輯錯誤成為能否通過考試的重要因素。

        在VFP二級考試中,SQL語句占了很大的比例,部分考題在需要用SQL語句處理的綜合大題中設(shè)置了很多邏輯陷阱。很多同學(xué)很容易落入陷阱,原因是這部分同學(xué)均用固定的思維去解題,沒有深入理解知識點(diǎn),再加上邏輯錯誤不像語法錯誤那樣有錯誤提示,往往他們會認(rèn)定初步得到的結(jié)果一定會是正確結(jié)果。但是在部分有邏輯陷阱的考題中,初步求出的結(jié)果并非正確的結(jié)果,這種解題思路很不科學(xué)。下面,我們用兩個具體實例來加以說明。

        2 實例及其邏輯陷阱分析

        實例一:在選課表Sc.dbf(見圖1)中查詢既選修了kc0001課程,又選修了kc0002課程的學(xué)生的學(xué)號。

        圖1 選課表Sc.dbf

        從題意經(jīng)過初步分析,考生會認(rèn)為這是一個對課程求條件的邏輯“與”關(guān)系,由此運(yùn)用平時所學(xué)知識馬上就可以得到以下代碼:

        select 學(xué)號 from Sc where 課程號=\"kc0001\" and 課程號=\"kc0002\"

        執(zhí)行這段代碼的結(jié)果是一個空表,即沒有一個學(xué)生同時選修了kc0001和kc0002這兩門課。然而,回頭再去仔細(xì)地去觀察一下選課表Sc,從表的第一條和第二條記錄發(fā)現(xiàn)學(xué)號為“010303”的學(xué)生明顯同時選修了kc0001和kc0002這兩門課,所以這是一段有邏輯陷阱的錯誤的代碼,如果不仔細(xì)校驗分析的話,很有可能會落入一個事先設(shè)計好的邏輯陷阱中。下面再來分析一下代碼的執(zhí)行過程,在VFP的查詢過程中記錄指針是從第一條記錄掃描到最后一條的,當(dāng)記錄指針指向第一條記錄時,條件“課程號=’kc0001’”滿足,但是條件“課程號=’kc0002’”并不滿足,兩個條件只滿足一個,不符合代碼中的and“與”條件,所以沒有查詢結(jié)果;同理,記錄指針掃描到第二條時也只滿足“課程號=’kc0002’”這一個條件,同樣會沒有查詢結(jié)果。于是學(xué)號為“010303”的這個同學(xué)就被忽略掉,所以這種解題思路是完全錯誤的。正確的解題思路是分別查找出選修了kc0001和kc0002這兩門課的學(xué)生,得到兩個查詢結(jié)果集合,如果有一個學(xué)號同時在兩個集合中出現(xiàn)的話就證明這個學(xué)生一定選修了這兩門課。具體可以用以下這個SQL嵌套語句來實現(xiàn)以上思路:

        Select 學(xué)號 from sc where 課程號=\"kc0001\" and 學(xué)號 in (select 學(xué)號 from sc where 課程號=\"kc0002\")

        運(yùn)行以上代碼,查詢得到學(xué)號為“010303”的這個同學(xué)滿足考題要求。

        實例二:用SQL語句查詢訂單表Orders.dbf(見圖2)中每個職工所經(jīng)手的具有最高金額的訂單信息。

        圖2 訂單表Orders.dbf

        對于這個考題,首先會想到將所有數(shù)據(jù)按職工號進(jìn)行分組,然后在每個小組內(nèi)利用最大值函數(shù)max()求出小組內(nèi)最高金額的相關(guān)記錄信息,經(jīng)過簡單的分析,寫出下列代碼:

        select 職工號,供應(yīng)商號,訂購單號,訂購日期,max(金額) as 金額 from orders group by 職工號

        運(yùn)行代碼后得到圖3的查詢結(jié)果?,F(xiàn)在回到圖2訂單表Orders中去觀察一下,好像查詢結(jié)果沒有任何的錯誤,訂單表中只有兩種職工號,而且查詢得到的結(jié)果也是每個職工的最高金額。的確,職工號為e1的職工記錄沒有問題,但是經(jīng)過仔細(xì)對比查詢結(jié)果和訂單表就會發(fā)現(xiàn)e2的最高金額為23000,是訂單表的第二條記錄,這條記錄所對應(yīng)的元組是(e2,s1,or18,2000/07/20,23000),在查詢結(jié)果中e2所對應(yīng)的元組卻是(e2,s2,or11,2001/02/10,23000),可以清楚地看出兩個元組中供應(yīng)商號、訂購單號、訂購日期是不匹配的,而查詢結(jié)果中的這個元組記錄在訂單表里根本就沒有出現(xiàn)過,所以在這個錯誤的查詢結(jié)果中也有一個很深的邏輯陷阱。

        圖3 查詢結(jié)果

        現(xiàn)在來分析一下,已知VFP查詢時記錄指針是從第一條記錄掃描到最后一條的,在分組以后,每個小組內(nèi),記錄指針同理也是從第一條記錄掃描到最后一條,所以,最后的查詢結(jié)果中顯示的“職工號,供應(yīng)商號,訂購單號,訂購日期”相關(guān)信息一定是小組內(nèi)最后一條記錄的相關(guān)信息,即是訂單表Orders中第四條記錄的部分信息,而max(金額)則是選出職工e3的所有記錄中金額字段的最大值23000,然后與前面的查詢出來的部分信息拼合成了一條元組,很明顯,如果最大金額不存在于組內(nèi)的最后一條記錄中時,查詢出來的結(jié)果一定是一個錯誤的拼合元組。

        正確的解題思路是,首先查出每個職工的最高金額生成一個臨時表temp(見圖4),然后用這個臨時表和原來的訂單表作一個內(nèi)聯(lián)結(jié)查詢(見圖5)。代碼如下:

        select 職工號,max(金額) as 最高金額 from orders group by 職工號 into table temp

        圖4 臨時表temp.dbf

        select orders.* from orders inner join temp on orders.職工號= temp.職工號 where 金額=最高金額

        圖5 查詢結(jié)果

        3 經(jīng)驗總結(jié)

        從以上兩個實例分析發(fā)現(xiàn),在開始的錯誤代碼中是沒有語法錯誤的,它也會得到一個結(jié)果,而且這個結(jié)果和正確的結(jié)果很近似,但在考試中這個錯誤的結(jié)果會使整個大題全部丟分,而在今后的工作生活中,錯誤的結(jié)果會使生產(chǎn)蒙受巨大損失,因此為了發(fā)現(xiàn)代碼中的這些邏輯陷阱,避免在數(shù)據(jù)處理時犯錯,應(yīng)從以下幾個方面進(jìn)行改進(jìn)。

        3.1 保障學(xué)風(fēng),提高學(xué)生學(xué)習(xí)興趣

        好的開端是成功的一半!在VFP這門課開課之初老師必須告訴學(xué)生,這門課和其他課程不一樣,對待它不能只是期末考試60分萬歲,要正確認(rèn)識這門課和NCRE之間的關(guān)系,端正學(xué)習(xí)態(tài)度,樹立優(yōu)良的學(xué)風(fēng),在學(xué)習(xí)這門課的伊始就抱著去參加NCRE的心態(tài)去學(xué)習(xí)基礎(chǔ)知識。同時還要告訴學(xué)生這門課程對于絕大部分人來說起點(diǎn)都是一樣的,很多內(nèi)容大家都是從零開始學(xué)習(xí),不存在基礎(chǔ)好壞的因素,通過鼓勵來調(diào)動學(xué)生學(xué)習(xí)的主動性和自覺性,以達(dá)到學(xué)生能真正用心、主動地自主學(xué)習(xí)。有條件的學(xué)校還可以嘗試在學(xué)校利用評優(yōu)、課程免修等多個方面的行政方式去進(jìn)一步激勵學(xué)生的學(xué)習(xí)興趣。

        3.2 加強(qiáng)實踐練習(xí),提高學(xué)生邏輯思維能力

        這門課除了要學(xué)習(xí)課本上的基礎(chǔ)知識點(diǎn)外,還必須注重上機(jī)實踐能力的練習(xí),這樣才能與二級考試的特點(diǎn)實踐性、操作性相吻合。在NCRE中程序設(shè)計和SQL語句已是考試的難點(diǎn),再用其解決實際問題更是不易,唯有通過大量的練習(xí)反復(fù)的上機(jī)實踐操作才能真正地理解掌握。

        在平時實踐教學(xué)課中,提醒學(xué)生在每次上機(jī)實踐課前必須先復(fù)習(xí)學(xué)過的知識點(diǎn),預(yù)習(xí)本次上機(jī)實踐的相關(guān)知識點(diǎn),做到有的放矢,不浪費(fèi)上機(jī)實踐的每一分鐘。在充分利用實踐課的同時,在課外也要加強(qiáng)實踐課程的練習(xí),對上課時沒學(xué)懂的知識加以理解深化,分析錯誤原因,總結(jié)編程的經(jīng)驗,這樣就一定能夠?qū)W好這門課程。除此之外,老師還應(yīng)該系統(tǒng)地引入與本次實踐課相關(guān)聯(lián)的部分NCRE二級考試真題,用剛剛教學(xué)的知識去詳細(xì)地加以歸納講解,讓學(xué)生在學(xué)習(xí)各個章節(jié)的內(nèi)容時就有了解決具體問題的邏輯思維能力,在課程教學(xué)結(jié)束后能夠綜合各方面的知識,用獨(dú)立的思路去嘗試解決相類似的問題,提高邏輯思維能力。

        3.3 學(xué)會檢查,養(yǎng)成良好習(xí)慣

        從前面的兩個實例中還可以看出數(shù)據(jù)處理是一項非常重要的工作,必須小心謹(jǐn)慎,稍不留神就會造成非常嚴(yán)重的錯誤,特別是在用SQL語句處理多個表的數(shù)據(jù)時會有一些意想不到的邏輯錯誤隱藏在語句中。由于數(shù)據(jù)模型的原因,非常有經(jīng)驗的程序員都可能會陷入這些邏輯陷阱中,更別說剛剛才學(xué)VFP的學(xué)生,這個邏輯錯誤會使最終的數(shù)據(jù)表發(fā)生錯誤,這就是為什么有很多考生自我感覺良好卻沒有及格的原因。因此,為了有效地避免落入這些邏輯陷阱,只有先分析羅列出數(shù)據(jù)的不同組織形態(tài),然后對算出的結(jié)果進(jìn)行反復(fù)地校驗,這樣才能確保代碼的正確性。

        在具體的NCRE二級考題中,數(shù)據(jù)表的數(shù)量有限、內(nèi)容也不龐大,可以先打開考題所涉及到的幾個表,然后通過仔細(xì)觀察分析得到一個正確的結(jié)果。經(jīng)過仔細(xì)地對比分析兩種結(jié)果后,如果發(fā)現(xiàn)通過執(zhí)行代碼生成的結(jié)果和分析的結(jié)果不一樣,那就可以確定這段代碼一定有邏輯陷阱隱藏在里面,這時考生就可以重新分析這幾個表的結(jié)構(gòu),通過觀察代碼的執(zhí)行過程,結(jié)合平時所學(xué)知識分析邏輯陷阱的位置,更新代碼以獲得正確結(jié)果。

        總的來說,數(shù)據(jù)處理的步驟分以下兩步:先靜觀默察,嫻熟于心,一揮而就;再仔細(xì)校驗結(jié)果,避免落入邏輯陷阱!

        參考文獻(xiàn)

        [1] 薩師煊,王珊.?dāng)?shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,1997.

        [2] 王利.全國計算機(jī)等級考試二級教程—VFP程序設(shè)計[M].北京:高等教育出版社,2005.

        [3] 張洪舉.Visual FoxPro程序設(shè)計參考手冊[M].北京:人民郵電出版社,2004.

        国产高跟黑色丝袜在线| 一区二区三区日韩毛片| 国产成av人在线观看| 久久综合国产精品一区二区| 女色av少妇一区二区三区| 亚洲av中文无码乱人伦在线咪咕 | 国产激情免费观看视频| 色婷婷av一区二区三区久久| 成人午夜福利视频| 久久www免费人成人片| 亚洲首页一区任你躁xxxxx| 亚洲乱码一区二区三区成人小说| 日韩av中文字幕亚洲天| 毛片精品一区二区二区三区| 日产一区二区三区免费看| 97人人超碰国产精品最新| 另类欧美亚洲| 国产免费午夜福利蜜芽无码| 国产一区二区三区十八区| 日本护士xxxx视频| 999国内精品永久免费视频| 欧美色图50p| 亚洲a级视频在线播放| 韩国av一区二区三区不卡| 东北妇女肥胖bbwbbwbbw| 伊人影院综合在线| 99久久免费精品色老| 亚洲一区二区三区免费网站| 亚洲av无码国产精品草莓在线| a毛片全部免费播放| 亚洲无码中文字幕日韩无码| 国产国语一级免费黄片| 国产精品久久久久久妇女| 色综合色狠狠天天综合色| 无码的精品免费不卡在线| 日韩Va亚洲va欧美Ⅴa久久| 国产精品亚洲在线播放| 日韩女同视频在线网站| 国产做a爱片久久毛片a片 | 久久久久久久久久免免费精品| 白白色青青草视频免费观看|