11達(dá)內(nèi)DMS數(shù)據(jù)挖掘項(xiàng)目系統(tǒng)準(zhǔn)備_第1頁
11達(dá)內(nèi)DMS數(shù)據(jù)挖掘項(xiàng)目系統(tǒng)準(zhǔn)備_第2頁
11達(dá)內(nèi)DMS數(shù)據(jù)挖掘項(xiàng)目系統(tǒng)準(zhǔn)備_第3頁
11達(dá)內(nèi)DMS數(shù)據(jù)挖掘項(xiàng)目系統(tǒng)準(zhǔn)備_第4頁
11達(dá)內(nèi)DMS數(shù)據(jù)挖掘項(xiàng)目系統(tǒng)準(zhǔn)備_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)挖掘系統(tǒng)Data Mining System系 統(tǒng) 準(zhǔn) 備 說 明撰寫人:組 號:組 長:組 員: 完成日期: TOC o 1-5 h z 1、背景32、知識準(zhǔn)備3 HYPERLINK l bookmark31 o Current Document 2.1 C/C+3 HYPERLINK l bookmark34 o Current Document 2.1.1、C 語言3 HYPERLINK l bookmark37 o Current Document 2.1.2、C+3 HYPERLINK l bookmark41 o Current Document 2.1.3、準(zhǔn)備3 HYPER

2、LINK l bookmark44 o Current Document 2.2 socket 網(wǎng)絡(luò)編程42.2.1、通信原理42.2.2、基本流程42.2.3、使用的接口4 HYPERLINK l bookmark59 o Current Document 2.2.4、準(zhǔn)備5 HYPERLINK l bookmark62 o Current Document 2.3多線程5 HYPERLINK l bookmark65 o Current Document 2.3.1、Qt線程的創(chuàng)建52.3.2、線程同步5 HYPERLINK l bookmark70 o Current Document

3、2.4 QT62.4.1、信號和槽的原理62.4.2、信號和槽的關(guān)聯(lián)6 HYPERLINK l bookmark75 o Current Document 2.4.3、界面7 HYPERLINK l bookmark78 o Current Document 2.5數(shù)據(jù)庫72.5.1、連接數(shù)據(jù)庫72.5.2、創(chuàng)建數(shù)據(jù)庫的基本操作7 HYPERLINK l bookmark96 o Current Document 2.5.2、準(zhǔn)備82.6 J2EE8 HYPERLINK l bookmark99 o Current Document 2.6.1、創(chuàng)建web工程8 HYPERLINK l boo

4、kmark108 o Current Document 2.6.2、導(dǎo)航8 HYPERLINK l bookmark120 o Current Document 2.6.3、受管 Bean82.6.4、遠(yuǎn)程操作數(shù)據(jù)庫9 HYPERLINK l bookmark126 o Current Document 2.7生產(chǎn)者消費(fèi)者問題9 HYPERLINK l bookmark129 o Current Document 2.7.1、問題描述9 HYPERLINK l bookmark133 o Current Document 2.7.2、解決9基于UC的數(shù)據(jù)挖掘系統(tǒng)的業(yè)務(wù)背景為:有一個Unix實(shí)驗(yàn)

5、室出租業(yè)務(wù),該 業(yè)務(wù)主要是用戶向電信運(yùn)營商申請一個Unix帳號,就可以遠(yuǎn)程登錄Unix實(shí)驗(yàn)室, 并使用Unix系統(tǒng)。當(dāng)然,用戶使用電信運(yùn)營商提供的Unix實(shí)驗(yàn)室的服務(wù)需要繳 納一定的費(fèi)用,電信運(yùn)營商需要一套數(shù)據(jù)采集系統(tǒng),把用戶登錄實(shí)驗(yàn)室的時(shí)間長 度數(shù)據(jù)采集起來并將數(shù)據(jù)發(fā)送到總部,便于在指定的時(shí)間范圍內(nèi)作為對用戶的收 費(fèi)依據(jù)。故在本項(xiàng)目中需要用到的知識有:C/C+、網(wǎng)絡(luò)編程技術(shù)、多線程技術(shù)、QT 技術(shù)、數(shù)據(jù)庫技術(shù)、J2EE技術(shù)以及生產(chǎn)者消費(fèi)者模型。2、系統(tǒng)準(zhǔn)備2.1 C/C+整個項(xiàng)目使用C/C+編寫。2.1.1、 C 語言c語言語法簡單,內(nèi)容基礎(chǔ),外加平時(shí)使用較多,所以在這塊簡單復(fù)習(xí)即可重新掌握

6、相 關(guān)函數(shù)、語法。windows下的C和Linux下的是有區(qū)別的,雖然C語言標(biāo)準(zhǔn)都一樣,但在不 同的操作系統(tǒng)中有不同的系統(tǒng)API調(diào)用,代碼編寫、調(diào)試、編譯也不同,習(xí)慣 了使用codeblocks的我們要學(xué)習(xí)Linux下的編譯環(huán)境,包括用什么編輯代碼、怎 樣調(diào)試、怎樣編譯運(yùn)行,特別要學(xué)習(xí)與windows系統(tǒng)下不一樣的東西,如多線 程等。2.1.2、C+C+大一的時(shí)候?qū)W過,但平時(shí)編程的時(shí)候并不常用遺忘了很多,需要從基礎(chǔ) 的語法學(xué)起,重新掌握。2.1.3、準(zhǔn)備為熟悉C/C+,使用C語言編寫了猜數(shù)字游戲、發(fā)撲克、五子棋、鏈表等 程序,并不斷提出新要求提高程序難度;使用C+根據(jù)現(xiàn)有設(shè)計(jì)文檔完成企業(yè)管 理

7、系統(tǒng),通過這些程序很好的復(fù)習(xí)了以前的知識,特別是通過企業(yè)管理系統(tǒng)對 C+基礎(chǔ)語法有了全面的復(fù)習(xí)。2.2 socket網(wǎng)絡(luò)編程客戶端與服務(wù)器之間的通信是通過socket來實(shí)現(xiàn)的,需要學(xué)習(xí)socket編程 的基本流程,所使用的接口、函數(shù)等。2.2.1、通信原理1、服務(wù)器端步驟:(1)建立服務(wù)器端的Socket,開始偵聽整個網(wǎng)絡(luò)中的連接請求。(2)當(dāng)檢測到來自客戶端的連接請求時(shí),向客戶端發(fā)送收到連接請求的信息, 并建立與客戶端之間的連接。(3)當(dāng)完成通信后,服務(wù)器關(guān)閉與客戶端的Socket連接。2、客戶端的步驟如下。(1)建立客戶端的Socket,確定要連接的服務(wù)器的主機(jī)名和端口。(2)發(fā)送連接請求

8、到服務(wù)器,并等待服務(wù)器的回饋信息。(3)連接成功后,與服務(wù)器進(jìn)行數(shù)據(jù)的交互。(4)數(shù)據(jù)處理完畢后,關(guān)閉自身的Socket連接。222、基本流程接收信息和發(fā)送信息Soc ke i () 建立流式荏接字Send ()和Re” () 發(fā)送信息和接收信息Socket () 建立流式套接字Connect () 與遠(yuǎn)端服務(wù)器連接服務(wù)器端Close 關(guān)閉套接字客戶端Bind ()配置本地端口和IP1、Accecpt ()2.救受使用的接建立連接IL i s t en () 監(jiān)聽和接收服務(wù)器請求Rind ( 配置本地的端口和IPClose 關(guān)閉套接字、#include #include int socket(

9、int domain, int type, int protocol);2、bind()函數(shù):int bind(int sockfd, struct sockaddr *my_addr, int addrlen);sockfd是調(diào)用socket返回的文件描述符。my_addr是指向數(shù)據(jù)結(jié)構(gòu) struct sockaddr的指針,它保存你的地址(即端口和IP地址)信息。addrlen 設(shè)置為 sizeof(struct sockaddr) o3、connect()函數(shù):int connect(int sockfd, struct sockaddr *serv_addr, int addrlen)

10、;sockfd是系統(tǒng)調(diào)用socket()返回的套接字文件描述符。serv_addr是 保 存著目的地端口和IP地址的數(shù)據(jù)結(jié)構(gòu)struct sockaddro addrlen設(shè)置為 sizeof(struct sockaddr)o2.2.4、準(zhǔn)備實(shí)現(xiàn)一個文本聊天程序,向同祖者發(fā)送文本,同組者接收到消息后可以回復(fù)文本。客戶 端兩兩通信,通過服務(wù)器把一個客戶端的消息轉(zhuǎn)發(fā)到另一個客戶端,服務(wù)器可以同時(shí)供多組 用戶使用。2.3多線程由于是多個客戶端向服務(wù)器發(fā)送信息,所以服務(wù)器端需要用到多線程的問 題,如何利用互斥量實(shí)現(xiàn)對共享緩沖池的訪問問題(鎖定和解鎖的過程)。2.3.1、Qt線程的創(chuàng)建Qt線程中有一個

11、公共的抽象類,所有的線程都是從這個QThread抽象類中 派生的,要實(shí)現(xiàn)QThread中的純虛函數(shù)run(),run()函數(shù)是通過start()函數(shù)來 實(shí)現(xiàn)調(diào)用的。2.3.2、線程同步多個線程在運(yùn)行的時(shí)候,可以看作是并行的。當(dāng)線程之間有共享數(shù)據(jù)時(shí),為 了使得數(shù)據(jù)狀態(tài)能夠保持連貫性而不被破壞,需要使用線程同步來保護(hù)某數(shù)據(jù)或 者某段代碼(即把某數(shù)據(jù)的存取或者某段代碼的執(zhí)行由并行變成串行,從而達(dá)到 保護(hù)的目的)。而線程中對數(shù)據(jù)或代碼的保持一般使用“鎖”(在QT中叫mutex) 來把它們“鎖”住,使得在每個時(shí)刻這個數(shù)據(jù)/代碼只能被一個線程訪問。QT中的mutex使用有下面幾種:QMutex :提供相互

12、排斥的鎖,或互斥量QMutexLocker:自動對QMutex加鎖與解鎖QReadWriteLock:提供了一個可以同時(shí)讀操作的鎖QReadLocker / QWriteLocker:自動對 QReadWriteLock 加鎖與解鎖QSemaphore :提供了一個整型信號量,是互斥量的泛化2.4 QT需要使用QT為所做的系統(tǒng)編寫界面,當(dāng)接收到數(shù)據(jù)后需要在界面上顯示出 來,了解丁的核心是信號和槽,了解它的機(jī)制。2.4.1、信號和槽的原理在Qt中我們有一種可以替代回調(diào)的技術(shù)。我們使用信號和槽,當(dāng)一個特定 事件發(fā)生的時(shí)候,一個信號被發(fā)射。Qt的窗口部件有很多預(yù)定義的信號,但是 我們總是可以通過繼承

13、來加入我們自己的信號。槽就是一個可以被調(diào)用處理特定 信號的函數(shù)。Qt的窗口部件又很多預(yù)定義的槽,但是通常的習(xí)慣是你可以加入 自己的槽,這樣你就可以處理你所感興趣的信號。2.4.2、信號和槽的關(guān)聯(lián)通過調(diào)用QObject對象的connect函數(shù)來將某個對象的信號與另外一個對 象的槽函數(shù)相關(guān)聯(lián),這樣當(dāng)發(fā)射者發(fā)射信號時(shí),接收者的槽函數(shù)將被調(diào)用。該函 數(shù)的定義如下:bool QObject:connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) stati

14、c這個函數(shù)的作用就是將發(fā)射者sender對象中的信號signal與接收者 receiver中的member槽函數(shù)聯(lián)系起來。當(dāng)指定信號signal時(shí)必須使用QT的 宏SIGNAL(),當(dāng)指定槽函數(shù)時(shí)必須使用宏SLOT()。如果發(fā)射者與接收者屬于 同一個對象的話,那么在connect調(diào)用中接收者參數(shù)可以省略。在每接收到一條數(shù)據(jù)后在界面及時(shí)顯示中需要定義自己的信號和槽。2.4.3、界面QT有單獨(dú)的界面創(chuàng)建方法,通過直接拖動相關(guān)組件即可完成,方便快捷。2.5數(shù)據(jù)庫使用mysql數(shù)據(jù)庫,要把所有的數(shù)據(jù)存儲到數(shù)據(jù)庫中,方便對之進(jìn)行管理, 并整合出日報(bào)表、月報(bào)表、年報(bào)表,如何創(chuàng)建數(shù)據(jù)庫,如何對之實(shí)現(xiàn)增、刪、

15、改、 查等操作。2.5.1、連接數(shù)據(jù)庫mysql_real_connect 函數(shù)說明:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned intclient_flag)參數(shù)說明:Host:值可以是一個主機(jī)名或一個IP地址。如果host是NULL或字符串localhost, 假定是到本地主機(jī)的一個連接。User:參數(shù)包含用

16、戶的MySQL登錄ID。如果user是NULL,假定是當(dāng)前用戶。在Unix 下,它是當(dāng)前登錄名。Passwd:參數(shù)為user包含口令。如果passwd是NULL,只有在user表中對于有一個空 白口令字段的用戶的條目將被檢查一個匹配。Db:是數(shù)據(jù)庫名。Post:如果port不是0,值對于TCP/IP連接將用作端口號。注意host參數(shù)決定連接的 類型。unix_socket:如果unix_socket不是NULL,字符串指定套接字或應(yīng)該被使用的命名管 道。client_flag:值通常是 0,2.5.2、創(chuàng)建數(shù)據(jù)庫的基本操作1、創(chuàng)建一個名稱為DMS的數(shù)據(jù)庫:create database DMS

17、;2、查看所有數(shù)據(jù)庫:show databases;3、創(chuàng)建一個表(以其中一個為例):create table DailyReport(num int primary key auto_increment,userName varchar(20),totalTime varchar(32),dayDate varchar(32),LIP varchar(20),day varchar(32) NOT NULL);4、刪除表中的內(nèi)容:delete from DetailTable;5、插入一條數(shù)據(jù)Insert into table values();6、更新一條數(shù)據(jù)update employee

18、 set ;2.5.2、準(zhǔn)備學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)對學(xué)生信息的增刪改查。2.6 J2EE2.6.1、創(chuàng)建web工程1)右鍵創(chuàng)建Web工程2)為工程添加JSF支持右單擊項(xiàng)目名稱-Myeclipse-Add JSF Facelets, -finish3)創(chuàng)建包和類建 DMS.JSF 包建類Dboperate類:屬于模型,數(shù)據(jù)庫的增、刪、改、查SelectBean類和LoginBean類:控制跳轉(zhuǎn),要為這些類的成員變量添加get()、set()方法, 同時(shí)添加此類的構(gòu)造函數(shù)。2.6.2、導(dǎo)航打開配置文件“faces-config.xml”,添加web頁面,本系統(tǒng)的頁面有:1)登錄頁面Login.jsp2)選擇頁面Select.jsp3)日報(bào)表頁面Day.jsp4)月報(bào)表頁面Month.jsp5)年報(bào)表頁面Year.jsp6)日報(bào)表查詢明細(xì)表頁面dayDetail.jsp7)月報(bào)表查詢明細(xì)表頁面monthDetail.jsp8)年報(bào)表查詢明細(xì)表頁面yearDetail.jsp2.6.3、受管 Bean1)在 “ faces-config.xml ” 頁面的 “ outline ” 視圖下右單擊 ManagedBean,創(chuàng)建ManagedBean。(Scope 選 session; Class*寫 .jsf.UserBean; fi

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論