圖書借閱數(shù)據(jù)挖掘課程設(shè)計_第1頁
已閱讀1頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  課 程 設(shè) 計 說 明 書</p><p>  課程名稱 __ 軟件項目綜合實踐 __</p><p>  題 目 __圖書借閱數(shù)據(jù)挖掘系統(tǒng)__</p><p>  院 系 _電子信息工程學院計算機系_</p><p>  班 級 ____計科***__ __</p><

2、;p>  學生姓名 __ __*** __ ___</p><p>  軟件項目綜合實踐任務(wù)書</p><p><b>  目錄</b></p><p>  第一章需求分析1</p><p>  1.1 課程設(shè)計題目1</p><p>  1.2 課程設(shè)計任務(wù)及要求1</p

3、><p>  1.3 軟硬件運行環(huán)境及開發(fā)工具1</p><p>  第二章概要設(shè)計2</p><p>  2.1 系統(tǒng)用戶分析2</p><p>  2.2 系統(tǒng)功能分析2</p><p>  2.3 系統(tǒng)算法分析2</p><p>  第三章詳細設(shè)計3</p>&l

4、t;p>  3.1 數(shù)據(jù)管理3</p><p>  3.1 數(shù)據(jù)采集的方法3</p><p>  3.3 數(shù)據(jù)預(yù)處理的方法3</p><p><b>  3.4算法描述3</b></p><p>  3.5個人模塊詳細設(shè)計4</p><p>  第四章系統(tǒng)調(diào)試與操作說明6<

5、;/p><p>  4.1 系統(tǒng)調(diào)試6</p><p>  4.2 操作說明6</p><p>  第五章課程設(shè)計總結(jié)與體會7</p><p><b>  致謝8</b></p><p><b>  參考文獻9</b></p><p>  附錄

6、 個人設(shè)計界面程序代碼10</p><p>  圖書借閱系統(tǒng)主界面代碼:10</p><p>  借閱信息數(shù)據(jù)挖掘代碼:11</p><p>  借閱信息查詢界面代碼:18</p><p><b>  需求分析</b></p><p>  1.1 課程設(shè)計題目</p>&l

7、t;p>  圖書借閱數(shù)據(jù)挖掘系統(tǒng)</p><p>  自八十年到中期開始,關(guān)系數(shù)據(jù)庫技術(shù)被普遍采用,新一輪研究與開發(fā)新型強大的數(shù)據(jù)庫喜用悄然興起,并提出了許多先進的數(shù)據(jù)模型:擴展關(guān)系模型、面向?qū)ο竽P汀⒀堇[模型等;以及應(yīng)用數(shù)據(jù)庫系統(tǒng):空間數(shù)據(jù)庫、時序數(shù)據(jù)庫、多媒體數(shù)據(jù)庫等;日前異構(gòu)數(shù)據(jù)庫系統(tǒng)和基于互聯(lián)網(wǎng)的全球信息系統(tǒng)也已開始出現(xiàn)并在信息工業(yè)中開始扮演重要角色。</p><p>  1

8、.2 課程設(shè)計任務(wù)及要求</p><p>  在這次圖書借閱數(shù)據(jù)挖掘課程設(shè)計中,我們要從數(shù)據(jù)管理、數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理等方面來完成圖書借閱課程設(shè)計。</p><p>  采用關(guān)聯(lián)規(guī)則中的Apriori算法對圖書借閱事務(wù)集合進行數(shù)據(jù)挖掘。挖掘出的結(jié)果形如:數(shù)據(jù)庫原理==> SQL Server 支持度2%,置信度 30%,或數(shù)據(jù)庫原理、SQL Server==>Delphi 支持

9、度0.5%,置信度 1%</p><p>  結(jié)果顯示與解釋評估。把挖掘出的結(jié)果以一種直觀的方式顯示出來,并對挖掘出的結(jié)果進行評價。</p><p>  1.3 軟硬件運行環(huán)境及開發(fā)工具</p><p><b>  一、軟硬件運行環(huán)境</b></p><p>  本數(shù)據(jù)挖掘開發(fā)環(huán)境為window xp系統(tǒng),80x86處理

10、器,內(nèi)存大于512M</p><p><b>  二、開發(fā)工具</b></p><p>  本實驗所采用的開發(fā)工具為C++Builder</p><p>  數(shù)據(jù)庫采用的是Microsoft Server2000</p><p><b>  概要設(shè)計</b></p><p>

11、  2.1 系統(tǒng)用戶分析</p><p>  利用數(shù)據(jù)挖掘技術(shù)可以幫助獲得決策所需的多種知識。在許多情況下,用戶并不知道數(shù)據(jù)存在哪些有價值的信息知識,因此對于一個數(shù)據(jù)挖掘系統(tǒng)而言,它應(yīng)該能夠同時搜索發(fā)現(xiàn)多種模式的知識,以滿足用戶的期望和實際需要。此外數(shù)據(jù)挖掘系統(tǒng)還應(yīng)能夠挖掘出多種層次(抽象水平)的模式知識。數(shù)據(jù)挖掘系統(tǒng)還應(yīng)容許用戶指導挖掘搜索有價值的模式知識。</p><p>  2.2

12、系統(tǒng)功能分析</p><p>  我們組所開發(fā)的圖書借閱數(shù)據(jù)挖掘系統(tǒng)是采用關(guān)聯(lián)規(guī)則挖掘的方法來挖掘出讀者希望得到的借閱信息。關(guān)聯(lián)規(guī)則挖掘就是從大量的數(shù)據(jù)中挖掘出有價值描述數(shù)據(jù)項之間相互聯(lián)系的有關(guān)知識。我們開發(fā)的圖書借閱數(shù)據(jù)挖掘系統(tǒng)主要應(yīng)用就是圖書借閱的分析。根據(jù)所放圖書存在的關(guān)聯(lián)知識無疑將會幫助讀者更方便的借閱圖書。</p><p>  2.3 系統(tǒng)算法分析</p><

13、p><b>  一、關(guān)聯(lián)規(guī)則算法</b></p><p>  利用關(guān)聯(lián)規(guī)則算法挖掘出所借閱圖書間的關(guān)聯(lián)。</p><p>  1.數(shù)據(jù)管理:對數(shù)據(jù)庫中的數(shù)據(jù)進行管理和維護工作。</p><p>  2.數(shù)據(jù)采集:從數(shù)據(jù)庫中采集數(shù)據(jù),形成事務(wù)集合。</p><p>  3.數(shù)據(jù)預(yù)處理:將采集到的數(shù)據(jù)轉(zhuǎn)換為可進行數(shù)據(jù)挖

14、掘的形式。</p><p>  4.數(shù)據(jù)挖掘:采用關(guān)聯(lián)規(guī)則中的Apriori算法對圖書借閱事務(wù)集合進行數(shù)據(jù)挖掘。</p><p>  5.結(jié)果顯示與解釋評估。把挖掘出的結(jié)果以一種直觀的方式顯示出來,并對挖掘出的結(jié)果進行評價。</p><p><b>  二、決策樹方法</b></p><p>  利用決策時方法挖掘出所借

15、閱圖書和整理圖書間的關(guān)聯(lián)。</p><p>  1.對數(shù)據(jù)進行采集:從數(shù)據(jù)庫中采集數(shù)據(jù),形成事務(wù)集合。</p><p>  2. 數(shù)據(jù)預(yù)處理:將采集到的數(shù)據(jù)轉(zhuǎn)換為可進行數(shù)據(jù)挖掘的形式。如:借閱量<10 可轉(zhuǎn)換為1, 10<借閱量<20 可轉(zhuǎn)換為2…整理圖書 是 可轉(zhuǎn)換為1,否 可轉(zhuǎn)換為2</p><p>  3.數(shù)據(jù)挖掘:采用決策樹對圖書借閱集合進

16、行數(shù)據(jù)挖掘,形成決策樹,并形成分類。決策樹略。分類規(guī)則形如:計算機類>50,20<文學類<30 ==>整理圖書</p><p><b>  詳細設(shè)計</b></p><p><b>  3.1 數(shù)據(jù)管理</b></p><p>  軟件的開發(fā)是離不開數(shù)據(jù)庫的,本次圖書借閱數(shù)據(jù)挖掘系統(tǒng)共使用到5張數(shù)據(jù)

17、表來存儲數(shù)據(jù)幫助軟件完成相關(guān)的功能。分別是:圖書表,借閱表,圖書存放表,讀者表,圖書采購表。對數(shù)據(jù)的管理主要有對數(shù)據(jù)表的增、刪、改和對各個數(shù)據(jù)表數(shù)據(jù)結(jié)構(gòu)的設(shè)計以及對內(nèi)容的增、刪、改操作,當然具體到每一個數(shù)據(jù)表時管理辦法略有區(qū)別。</p><p>  3.1 數(shù)據(jù)采集的方法</p><p>  本軟件在開發(fā)中,數(shù)據(jù)采集主要是借用程序和人工來實現(xiàn)的。通過人工的錄入來輸入超市的銷售記錄數(shù)據(jù),然后

18、再借用所編寫的程序來篩選出所要挖掘的銷售物品的信息,以備后期數(shù)據(jù)預(yù)處理和數(shù)據(jù)挖掘所使用。</p><p>  3.3 數(shù)據(jù)預(yù)處理的方法</p><p>  本軟件在開發(fā)中,數(shù)據(jù)預(yù)處理主要是借用程序和人工來實現(xiàn)的。通過人工的錄入來檢查超市的銷售記錄數(shù)據(jù),去除或者修改錯誤數(shù)據(jù)(物品名),實現(xiàn)數(shù)據(jù)的完整性、一致性、正確性。然后再借用所編寫的程序來轉(zhuǎn)換成滿足軟件挖掘的數(shù)據(jù)形式或類型,以備后期數(shù)據(jù)挖

19、掘所使用。</p><p><b>  3.4算法描述</b></p><p>  Apriori算法是挖掘產(chǎn)生布爾關(guān)聯(lián)規(guī)則所需頻繁項集的基本算法;它也是一個很有影響的關(guān)聯(lián)規(guī)則挖掘算法。Apriori算法就是根據(jù)有關(guān)頻繁項集特性的先驗知識(prior knowledge)而命名的。該算法利用了一個層次順序搜索的循環(huán)方法來完成頻繁項集的挖掘工作。這一循環(huán)方法就是利用k-

20、項集來產(chǎn)生(k+1)-項集。具體做法就是:首先找出頻繁1-項集,記為L1;然后利用L1來挖掘L2,即頻繁2-項集;不斷如此循環(huán)下去直到無法發(fā)現(xiàn)更多的頻繁k-項集為止。每挖掘一層Lk就需要掃描整個數(shù)據(jù)庫一遍。為提高按層次搜索并產(chǎn)生相應(yīng)頻繁項集的處理效率。Apriori算法利用了一個重要性質(zhì),又稱為Apriori性質(zhì)來幫助有效縮小頻繁項集的搜索空間。</p><p>  Apriori性質(zhì):一個頻繁項集中任一子集也應(yīng)

21、是頻繁項集。</p><p>  Apriori性質(zhì)是根據(jù)以下觀察而得出結(jié)論。根據(jù)定義:若一個項集I不滿足最小支持度閾值s,那么該項集I就不是頻繁項集,即P(I)<s;若增加一個項A到項集I中,那么所獲得的新項集I∪A在整個交易數(shù)據(jù)庫所出現(xiàn)的次數(shù)也不可能多原項集I出現(xiàn)的次數(shù),因此I∪A也不可能是頻繁的,即P(I∪A)<s。這樣就可以根據(jù)逆反公理:即若一個集合不能通過測試,該集合所有超集也不能通過同樣的

22、測試。因此很容易確定Apriori性質(zhì)成立。</p><p>  為了解釋清楚Apriori性質(zhì)是如何應(yīng)用到頻繁項集的挖掘中的,這里就以用 Lk-1來產(chǎn)生Lk為例來說明具體應(yīng)用方法。利用Lk-1來獲得Lk主要包含兩個處理步驟,即連接和刪除操作步驟。</p><p> ?。?) 連接步驟。為發(fā)現(xiàn)Lk,可以將Lk-1中兩個項集相連接以獲得一個Lk的候選集合Ck。設(shè)l1和l2為Lk-1中的兩個項

23、集(元素),記號表示li[j] 中的第j個項;如li[k-2]就表示li中的倒數(shù)第二項。為方便起見,假設(shè)交易數(shù)據(jù)庫中各交易記錄中各項均已按字典排序。若Lk-1的連接操作記為Lk-1⊕Lk-1 ,它表示若l1和l2中的前(k-2)項是相同的,也就是說若有(l1[1]=l2[1])∧…∧(l1[k-2]=l2[k-2]) ∧(l1[k-1]<l2[k-1]),則Lk-1中l(wèi)1和l2的內(nèi)容就可以連接到一起。而條件(l1[k-1]<

24、l2[k-1])可以確保不產(chǎn)生重復(fù)的項集。</p><p> ?。?) 刪除步驟。Ck是Lk的一個超集,它其中的各元素(項集)不一定都是頻繁項集,但所有的頻繁-項集一定都在Ck中,即有Lk包含于Ck。掃描一遍數(shù)據(jù)庫就可以決定Ck中各候選項集(元素)的支持頻度,并由此獲得Lk中各個元素(頻繁k-項集)。所有頻度不小于最小支持頻度的候選項集就是屬于Lk的頻繁項集。然而由于Ck中的候選項集很多,如此操作所涉及的計算量(

25、時間)是非常大的,為了減少Ck的大小,就需要利用Apriori性質(zhì):“一個非頻繁(k-1)-項集不可能成為頻繁k-項集的一個子集”。因此若一個候選k-項集中任一子集((k-1)-項集)不屬于Lk-1,那么該候選k-項集就不可能成為一個頻繁k-項集,因而也就可以將其從Ck中刪去。</p><p>  在從數(shù)據(jù)庫D中挖掘出所有的頻繁項集后,就可以較為容易獲得相應(yīng)的關(guān)聯(lián)規(guī)則。也就是要產(chǎn)生滿足最小支持度和最小信任度的強關(guān)

26、聯(lián)規(guī)則,可以利用公式Confidence(A=>B)=P(B|A)=support_count(A∪B)/support_count(A)來計算所獲關(guān)聯(lián)規(guī)則的信任度。</p><p>  3.5個人模塊詳細設(shè)計</p><p>  圖書借閱系統(tǒng)主界面:</p><p>  圖3.1 圖書借閱系統(tǒng)主界面</p><p>  該界面是圖書借

27、閱系統(tǒng)的主界面,用戶可通過該界面進入不同的界面,可實現(xiàn)借閱信息的數(shù)據(jù)挖掘、圖書借閱量的數(shù)據(jù)挖掘、圖書信息的維護等。</p><p>  借閱信息的數(shù)據(jù)挖掘界面:</p><p>  圖3.1 借閱信息的數(shù)據(jù)挖掘界面</p><p>  該界面可對圖書借閱信息進行數(shù)據(jù)挖掘,輸入0到1之間的數(shù)后,點擊數(shù)據(jù)挖掘按鈕,則可以得到挖掘后的界面,如圖3.1所示。</p&g

28、t;<p><b>  借閱信息查詢界面:</b></p><p>  圖3.1 借閱信息查詢界</p><p>  該界面是對借閱圖書的信息查詢,當輸入圖書的編號后,點擊查詢則可以得到所查圖書的信息。設(shè)計界面如3.3圖所示。</p><p><b>  系統(tǒng)調(diào)試與操作說明</b></p>&l

29、t;p><b>  4.1 系統(tǒng)調(diào)試</b></p><p>  本系統(tǒng)運行在window 操作系統(tǒng)中,采用C++Builder開發(fā),數(shù)據(jù)庫采用SQL Server2000進行設(shè)計。</p><p>  根據(jù)系統(tǒng)提示用戶可進行數(shù)據(jù)挖掘,若輸入數(shù)據(jù)后進行數(shù)據(jù)挖掘數(shù)據(jù)不出來,則可能是數(shù)據(jù)庫并沒有關(guān)聯(lián),可打開企業(yè)管理器進行查看是否數(shù)據(jù)庫是否已經(jīng)附加上去或數(shù)據(jù)庫服務(wù)是否

30、開啟。</p><p>  將該系統(tǒng)運行在C++Builder上,生成exe文件,雙擊exe文件則可運行該系統(tǒng)</p><p><b>  4.2 操作說明</b></p><p>  將開發(fā)好的系統(tǒng)運行起來,根據(jù)界面提示進行各項的數(shù)據(jù)開發(fā),程序啟動后可看到如下界面:</p><p>  圖4.1圖書借閱系統(tǒng)主界面<

31、;/p><p>  至此,可選擇界面的各個選項,對該系統(tǒng)進行操作。</p><p><b>  課程設(shè)計總結(jié)與體會</b></p><p>  在我們組的課程設(shè)計中,我主要負責圖書借閱數(shù)據(jù)挖掘系統(tǒng)的整體設(shè)計和對借閱信息的數(shù)據(jù)挖掘的具體開發(fā)工作。</p><p>  從當初的閱讀相關(guān)文檔到網(wǎng)上搜集有關(guān)數(shù)據(jù)挖掘的資料再到動手對該

32、課程設(shè)計的具體設(shè)計,經(jīng)過將近兩個星期努力,終于按老師的要求完成了各項任務(wù),作為該小組的組長,我不僅完成了自己的工作,而且還協(xié)助我們小組的其他成員完成他們的工作。在整個課程設(shè)計階段,不僅學會了怎么協(xié)調(diào)分工,讓每個組員能夠參與到課程設(shè)計中來,而且還學會了很多書本上沒有的東西。</p><p>  設(shè)計過程中,我們遇到了很多的問題,比如對數(shù)據(jù)挖掘并不能深入理解、很難讀懂那些關(guān)于數(shù)據(jù)挖掘方面的相關(guān)概念,這些在我們數(shù)據(jù)挖掘

33、開發(fā)的過程中都是很讓人沮喪的難題,因為無法理解數(shù)據(jù)挖掘的相關(guān)概念,就不能真正開發(fā)出符合要求的課程設(shè)計。但通過百度百科以及查閱相關(guān)文檔或者和同學交流,我們克服種種困難,終于按時完成了我們的工作,開發(fā)出了符合老師要求的課程設(shè)計。</p><p>  在整個課程設(shè)計階段,發(fā)現(xiàn)自己還是有很多不足的地方的,比如一旦遇到很難解決的問題,陷入困境后,就會產(chǎn)生退縮的念頭甚至想要放棄,這是絕對不可取的,一定要通過各個方面不斷地完善

34、自己,要多利用互聯(lián)網(wǎng)搜索相關(guān)知識,更要多和同學進行交流。</p><p><b>  致謝</b></p><p>  在這篇論文即將完成之時,我要在這里特別的感謝一下在我的畢業(yè)設(shè)計過程中幫助和關(guān)心過我的老師和同學。</p><p>  在畢業(yè)設(shè)計的整個實驗過程中,孫士保、白秀玲、趙海霞三位老師給了我很多的關(guān)心和幫助。特別是孫士保老師,他嚴謹?shù)?/p>

35、治學態(tài)度、親和的工作作風以及深厚的科研知識,都給我留下了深刻的印象。從孫老師身上,我學到了很多東西,不僅是學術(shù)知識,還有工作方式、治學態(tài)度等。</p><p>  最后,再一次向所有關(guān)心過我、幫助過我的老師和同學送上最深的謝意和最真摯的祝福!</p><p><b>  參考文獻</b></p><p>  毛國君等,數(shù)據(jù)挖掘原理與算法. 北京

36、: 清華大學出版社</p><p>  王珊等 數(shù)據(jù)庫系統(tǒng)概論 高等教育出版社</p><p>  附錄 個人設(shè)計界面程序代碼</p><p>  圖書借閱系統(tǒng)主界面代碼:</p><p>  //圖書借閱系統(tǒng)主界面------------------------- -----------------------</p>&l

37、t;p>  #include <vcl.h></p><p>  #pragma hdrstop</p><p>  #include "Unit1.h"</p><p>  #include "Unit3.h"</p><p>  #include "Unit2.h&quo

38、t;</p><p>  #include "Unit4.h"</p><p>  //---------------------------------------------------------------------------</p><p>  #pragma package(smart_init)</p><p

39、>  #pragma resource "*.dfm"</p><p>  TForm1 *Form1;</p><p>  //---------------------------------------------------------------------------</p><p>  __fastcall TForm1::T

40、Form1(TComponent* Owner)</p><p>  : TForm(Owner)</p><p><b>  {</b></p><p><b>  }</b></p><p>  //------------------------------------------------

41、---------------------------</p><p>  void __fastcall TForm1::Button1Click(TObject *Sender)</p><p><b>  {</b></p><p>  Form3->Show();</p><p><b>  }&

42、lt;/b></p><p>  //---------------------------------------------------------------------------</p><p>  void __fastcall TForm1::Button2Click(TObject *Sender)</p><p><b>  {&l

43、t;/b></p><p>  Form2->Show();</p><p><b>  }</b></p><p>  //---------------------------------------------------------------------------</p><p>  void _

44、_fastcall TForm1::Button4Click(TObject *Sender)</p><p><b>  {</b></p><p>  Form1->Close();</p><p><b>  }</b></p><p>  //---------------------

45、------------------------------------------------------</p><p>  void __fastcall TForm1::Button3Click(TObject *Sender)</p><p><b>  {</b></p><p>  Form4->Show();</p&

46、gt;<p><b>  }</b></p><p>  //---------------------------------------------------------------------------</p><p>  借閱信息數(shù)據(jù)挖掘代碼:</p><p>  //------借閱信息數(shù)據(jù)挖掘代碼---------

47、---------------------- --------</p><p>  #include <vcl.h></p><p>  #pragma hdrstop</p><p>  #include "Unit3.h"</p><p>  #include "Unit7.h"<

48、/p><p>  //---------------------------------------------------------------------------</p><p>  #pragma package(smart_init)</p><p>  #pragma resource "*.dfm"</p><p

49、>  TForm3 *Form3;</p><p>  int i=0,a=0;</p><p>  bool t1=false,t2=false,t3=false;</p><p>  //---------------------------------------------------------------------------</p>

50、<p>  __fastcall TForm3::TForm3(TComponent* Owner)</p><p>  : TForm(Owner)</p><p><b>  {</b></p><p><b>  }</b></p><p>  //---------------

51、------------------------------------------------------------</p><p>  void __fastcall TForm3::creat()</p><p><b>  {</b></p><p><b>  i=0;</b></p><p

52、><b>  a=0;</b></p><p>  TADOQuery *query=new TADOQuery(NULL);</p><p>  query->Connection=Form3->ADOConnection1;</p><p>  query->SQL->Clear();</p>&

53、lt;p>  query->SQL->Add("select readerid,bookid,bookname from borrow ");</p><p>  query->ExecSQL();</p><p>  query->Open();</p><p>  AnsiString str1,str2,str

54、3,str4;</p><p>  ListBox1->Items->Add("readerid bookid bookname");</p><p>  while(!query->Eof)</p><p><b>  {</b></p><p>  str1=query-

55、>FieldByName("readerid")->AsString;</p><p>  str2=query->FieldByName("bookid")->AsString;</p><p>  str3=query->FieldByName("bookname")->AsString;&

56、lt;/p><p>  str4=str1+" "+str2+" "+str3;</p><p>  ListBox1->Items->Add(str4);</p><p>  query->MoveBy(1);</p><p>&l

57、t;b>  i++;</b></p><p><b>  }</b></p><p>  ListBox1->Items->Add("================================");</p><p>  ListBox1->Items->Add("&q

58、uot;);</p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select count(bookid) countt from book ");</p><p>  query->ExecSQL();</p><p>  qu

59、ery->Open();</p><p>  if(!query->Eof)</p><p>  a=StrToInt(query->FieldByName("countt")->AsString);</p><p>  delete query;</p><p><b>  }</

60、b></p><p>  void __fastcall TForm3::fun1()</p><p><b>  {</b></p><p>  TADOQuery *query=new TADOQuery(NULL);</p><p>  query->Connection=Form3->ADOCo

61、nnection1;</p><p>  int j=0,m,n;</p><p>  int *num=new int[a];</p><p>  j=Edit1->Text*i;</p><p>  AnsiString str1="",str2="";</p><p>

62、;  str1="候選集1";</p><p>  str2="頻選集1";</p><p>  ListBox1->Items->Add(str1);</p><p>  for(m=1;m<=a;m++)</p><p><b>  {</b></p&g

63、t;<p><b>  str1="";</b></p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select count(readerid) countt from borrow where bookid='"+I

64、ntToStr(m)+"'");</p><p>  query->ExecSQL();</p><p>  query->Open();</p><p>  if(!query->Eof)</p><p><b>  {</b></p><p>  

65、num[m-1]=StrToInt(query->FieldByName("countt")->AsString);</p><p>  if(num[m-1]!=0)</p><p><b>  {</b></p><p>  str1+=IntToStr(m)+" "+query-&

66、gt;FieldByName("countt")->AsString;</p><p>  ListBox1->Items->Add(str1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

67、  }</b></p><p>  ListBox1->Items->Add(str2);</p><p>  for(m=0;m<a;m++)</p><p>  if(num[m]>=j)</p><p><b>  {</b></p><p><b&

68、gt;  t1=true;</b></p><p><b>  str2="";</b></p><p>  str2+=IntToStr(m+1)+" "+IntToStr(num[m]);</p><p>  ListBox1->Items->Add(str2);<

69、/p><p><b>  }</b></p><p>  ListBox1->Items->Add("");</p><p>  ListBox1->Items->Add("");</p><p>  delete[] num;</p><p

70、>  delete query;</p><p><b>  }</b></p><p>  void __fastcall TForm3::fun2()</p><p><b>  {</b></p><p>  TADOQuery *query=new TADOQuery(NULL);&l

71、t;/p><p>  query->Connection=Form3->ADOConnection1;</p><p>  int j=0,m,n;</p><p>  int **num1=new int*[a];</p><p>  for(int b=0;b<a;b++)</p><p>  num

72、1[b]=new int[a];</p><p>  j=Edit1->Text*i;</p><p>  AnsiString str1="",str2="";</p><p>  str1="候選集2";</p><p>  str2="頻選集2";&l

73、t;/p><p>  ListBox1->Items->Add(str1);</p><p>  for(m=1;m<=a;m++)</p><p>  for(n=m+1;n<=a;n++)</p><p><b>  {</b></p><p><b>  str

74、1="";</b></p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select count(readerid) countt from borrow where bookid='"+IntToStr(m)+"'and

75、readerid in (select readerid from borrow where bookid='"+IntToStr(n)+"')");</p><p>  query->ExecSQL();</p><p>  query->Open();</p><p>  if(!query->Eo

76、f)</p><p><b>  {</b></p><p>  num1[m-1][n-1]=StrToInt(query->FieldByName("countt")->AsString);</p><p>  if(num1[m-1][n-1]!=0)</p><p><b&g

77、t;  {</b></p><p>  str1+=IntToStr(m)+" "+IntToStr(n)+" "+query->FieldByName("countt")->AsString;</p><p>  ListBox1->Items->Add(str1);<

78、/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ListBox1->Items->Add(str2);</p><p>  for(m=0;m<a;m

79、++)</p><p>  for(n=m+1;n<a;n++)</p><p>  if(num1[m][n]>=j)</p><p><b>  {</b></p><p><b>  t2=true;</b></p><p><b>  str2=

80、"";</b></p><p>  str2+=IntToStr(m+1)+" "+IntToStr(n+1)+" "+IntToStr(num1[m][n]);</p><p>  ListBox1->Items->Add(str2);</p><p><

81、b>  }</b></p><p>  ListBox1->Items->Add("");</p><p>  ListBox1->Items->Add("");</p><p>  delete[] num1;</p><p>  delete query;&

82、lt;/p><p><b>  }</b></p><p>  void __fastcall TForm3::fun3()</p><p><b>  {</b></p><p>  TADOQuery *query=new TADOQuery(NULL);</p><p> 

83、 query->Connection=Form3->ADOConnection1;</p><p>  int j=0,m,n,h,b,c;</p><p>  int ***num3=new int**[a];</p><p>  for(b=0;b<a;b++)</p><p>  num3[b]=new int*[a]

84、;</p><p>  for(b=0;b<a;b++)</p><p>  for(c=0;c<a;c++)</p><p>  num3[b][c]=new int[a];</p><p>  j=Edit1->Text*i;</p><p>  AnsiString str1="&qu

85、ot;,str2="";</p><p>  str1="候選集3";</p><p>  str2="頻選集3";</p><p>  ListBox1->Items->Add(str1);</p><p>  for(m=1;m<=a;m++)</p>

86、;<p>  for(n=m+1;n<=a;n++)</p><p>  for(h=n+1;h<=a;h++)</p><p><b>  {</b></p><p><b>  str1="";</b></p><p>  query->SQL

87、->Clear();</p><p>  query->SQL->Add("select count(readerid) countt from borrow where bookid='"+IntToStr(m)+"'and readerid in (select readerid from borrow where bookid='&q

88、uot;+IntToStr(n)+"' and readerid in (select readerid from borrow where bookid='"+IntToStr(h)+"'))");</p><p>  query->ExecSQL();</p><p>  query->Open();</

89、p><p>  if(!query->Eof)</p><p><b>  {</b></p><p>  num3[m-1][n-1][h-1]=StrToInt(query->FieldByName("countt")->AsString);</p><p>  if(num3[m-

90、1][n-1][h-1]!=0)</p><p><b>  {</b></p><p>  str1+=IntToStr(m)+" "+IntToStr(n)+" "+IntToStr(h)+" "+query->FieldByName("countt")

91、->AsString;</p><p>  ListBox1->Items->Add(str1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

92、  ListBox1->Items->Add(str2);</p><p>  for(m=0;m<a;m++)</p><p>  for(n=m+1;n<a;n++)</p><p>  for(h=n+1;h<a;h++)</p><p>  if(num3[m][n][h]>=j)</p>

93、;<p><b>  {</b></p><p><b>  t3=true;</b></p><p><b>  str2="";</b></p><p>  str2+=IntToStr(m+1)+" "+IntToStr(n+1)+&

94、quot; "+IntToStr(h+1)+" "+IntToStr(num3[m][n][h]);</p><p>  ListBox1->Items->Add(str2);</p><p><b>  }</b></p><p>  ListBox1->Items->

95、Add("");</p><p>  ListBox1->Items->Add("");</p><p>  delete[] num3;</p><p>  delete query;</p><p><b>  }</b></p><p> 

96、 void __fastcall TForm3::guanlian()</p><p><b>  {</b></p><p>  TADOQuery *query=new TADOQuery(NULL);</p><p>  query->Connection=Form3->ADOConnection1;</p>&

97、lt;p>  int j=0,m,n,h,f,g;</p><p><b>  float k;</b></p><p>  j=Edit1->Text*i;</p><p>  k=StrToFloat(Edit2->Text);</p><p>  AnsiString str1="&qu

98、ot;,str2="";</p><p>  str1="關(guān)聯(lián)規(guī)則";</p><p>  ListBox1->Items->Add(str1);</p><p>  for(m=1;m<=a;m++)</p><p><b>  {</b></p>

99、<p><b>  f=0;</b></p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select count(readerid) countt from borrow where bookid='"+IntToStr(m)+"

100、;'");</p><p>  query->ExecSQL();</p><p>  query->Open();</p><p>  f=StrToInt(query->FieldByName("countt")->AsString);</p><p><b>  i

101、f(f!=0)</b></p><p><b>  {</b></p><p>  for(n=1;n<=a;n++)</p><p><b>  {</b></p><p><b>  if(m!=n)</b></p><p><

102、;b>  {</b></p><p><b>  g=0;</b></p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select count(readerid) countt from borrow where bookid

103、='"+IntToStr(m)+"'and readerid in (select readerid from borrow where bookid='"+IntToStr(n)+"')");</p><p>  query->ExecSQL();</p><p>  query->Open()

104、;</p><p>  g=StrToInt(query->FieldByName("countt")->AsString);</p><p>  if(100*g/f>=(k*100))</p><p><b>  {</b></p><p><b>  str2=&qu

105、ot;";</b></p><p>  query->SQL->Clear();</p><p>  query->SQL->Add("select bookname from book where bookid='"+IntToStr(m)+"'");</p><p&

106、gt;  query->ExecSQL();</p><p>  query->Open();</p><p>  str2+=query->FieldByName("bookname")->AsString;</p><p>  query->SQL->Clear();</p><p>

107、;  query->SQL->Add("select bookname from book where bookid='"+IntToStr(n)+"'");</p><p>  query->ExecSQL();</p><p>  query->Open();</p><p>  s

108、tr2+="=========>"+query->FieldByName("bookname")->AsString+" "+FloatToStr(100*g/f)+"%";</p><p>  ListBox1->Items->Add(str2);</p><p>

109、;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  de

110、lete query;</p><p><b>  }</b></p><p>  void __fastcall TForm3::FormCreate(TObject *Sender)</p><p><b>  {</b></p><p><b>  creat();</b>

111、;</p><p><b>  }</b></p><p>  //---------------------------------------------------------------------------</p><p>  void __fastcall TForm3::Button1Click(TObject *Sender)

112、</p><p><b>  {</b></p><p>  if(Edit1->Text<1&&Edit2->Text<1&&Edit3->Text!="")</p><p><b>  {</b></p><p>

113、  int l=StrToInt(Edit3->Text);</p><p><b>  if(l<=3)</b></p><p><b>  {</b></p><p><b>  if(l==1)</b></p><p><b>  {</b&g

114、t;</p><p>  ListBox1->Clear();</p><p><b>  creat();</b></p><p><b>  fun1();</b></p><p><b>  }</b></p><p>  else if(l

115、==2)</p><p><b>  {</b></p><p>  ListBox1->Clear();</p><p><b>  creat();</b></p><p><b>  fun1();</b></p><p>  if(t1==

116、true)</p><p><b>  fun2();</b></p><p><b>  }</b></p><p>  else if(l==3)</p><p><b>  {</b></p><p>  ListBox1->Clear();

117、</p><p><b>  creat();</b></p><p><b>  fun1();</b></p><p>  if(t1==true)</p><p><b>  {</b></p><p><b>  fun2();<

118、/b></p><p>  if(t2==true)</p><p><b>  fun3();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  guanlian();</p>

119、<p><b>  }</b></p><p><b>  else</b></p><p>  ShowMessage("挖掘深度請輸入0到3之間的整數(shù)!");</p><p><b>  }</b></p><p><b>  e

120、lse</b></p><p>  ShowMessage("請輸入0到1之間的數(shù)!");</p><p><b>  }</b></p><p>  //---------------------------------------------------------------------------<

121、/p><p>  void __fastcall TForm3::Button2Click(TObject *Sender)</p><p><b>  {</b></p><p>  Form3->Close();</p><p><b>  }</b></p><p>

122、  //---------------------------------------------------------------------------</p><p>  void __fastcall TForm3::Button3Click(TObject *Sender)</p><p><b>  {</b></p><p> 

123、 Form7->Show();</p><p><b>  }</b></p><p>  //---------------------------------------------------------------------------</p><p>  借閱信息查詢界面代碼:</p><p>  //

124、借閱信息查詢界面代碼---------------------------------------------</p><p>  #include <vcl.h></p><p>  #pragma hdrstop</p><p>  #include "Unit7.h"</p><p>  //------

125、---------------------------------------------------------------------</p><p>  #pragma package(smart_init)</p><p>  #pragma resource "*.dfm"</p><p>  TForm7 *Form7;</p&

126、gt;<p>  //---------------------------------------------------------------------------</p><p>  __fastcall TForm7::TForm7(TComponent* Owner)</p><p>  : TForm(Owner)</p><p>&l

127、t;b>  {</b></p><p><b>  }</b></p><p>  //---------------------------------------------------------------------------</p><p>  void __fastcall TForm7::Button1Cli

128、ck(TObject *Sender)</p><p><b>  {</b></p><p>  if(Edit1->Text!=""&&Edit1->Text<5)</p><p><b>  {</b></p><p>  ListBox1

129、->Clear();</p><p>  AnsiString str1="";</p><p>  TADOQuery *query=new TADOQuery(NULL);</p><p>  query->Connection=Form7->ADOConnection1;</p><p>  que

130、ry->SQL->Clear();</p><p>  query->SQL->Add("select bookname from borrow where readerid='"+Edit1->Text+"'");</p><p>  query->ExecSQL();</p>&l

131、t;p>  query->Open();</p><p>  ListBox1->Items->Add("編號 圖書 應(yīng)還時間");</p><p>  while(!query->Eof)</p><p><b>  {</b></p><p>&

132、lt;b>  str1="";</b></p><p>  str1+=Edit1->Text+" "+query->FieldByName("bookname")->AsString+"2012-11-11";</p><p>  ListBox1-&

133、gt;Items->Add(str1);</p><p>  query->MoveBy(1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論