

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 201 屆本科畢業(yè)論文(設(shè)計)</p><p> 基于Linux的聊天系統(tǒng)</p><p><b> 設(shè)計與實現(xiàn)</b></p><p> 姓 名:_______ ___________</p><p> 系 別:____計算機與信息技術(shù)____</p><p
2、> 專 業(yè):___信息管理與信息系統(tǒng)___</p><p> 學(xué) 號:_______xxxxxx_______</p><p> 指導(dǎo)教師:_______xx___________</p><p> 2015年4月20日</p><p><b> 目錄</b></p><p
3、><b> 摘要II</b></p><p> AbstractIII</p><p><b> 1 引言1</b></p><p><b> 1.1 背景1</b></p><p> 1.2 選課意義1</p><p> 1
4、.3 Linux與Windows操作系統(tǒng)1</p><p><b> 2 需求分析3</b></p><p> 2.1 需求性分析3</p><p> 2.1.1 編寫目的3</p><p> 2.2 對界面的需求3</p><p> 3 系統(tǒng)應(yīng)用技術(shù)3</p>
5、<p> 3.1 Gtk+界面設(shè)計3</p><p> 3.1.1 Gtk+基礎(chǔ)3</p><p> 3.1.2 Gtk+的主要特點4</p><p> 3.1.3 Gtk+的組成4</p><p> 3.2 socket通信4</p><p> 3.2.1 Socket簡述4<
6、;/p><p> 3.2.2 Socket的主要類型4</p><p> 3.2.3 Socket組要在如下兩類系統(tǒng)中使用4</p><p> 3.3 MySql數(shù)據(jù)庫4</p><p> 3.3.1 MySql發(fā)展歷史4</p><p> 3.3.2 MySql的常用命令5</p>&l
7、t;p> 3.3.3 MySql的重要特性6</p><p><b> 4 設(shè)計和實現(xiàn)6</b></p><p> 4.1 Gtk+界面設(shè)計6</p><p> 4.2 連接數(shù)據(jù)庫8</p><p> 4.3 網(wǎng)絡(luò)通信socket編程9</p><p> 4.3.1 s
8、ocket編程方法9</p><p> 4.3.2 客戶端/服務(wù)器工作流程9</p><p> 4.3.3 結(jié)果截圖11</p><p><b> 5 系統(tǒng)測試11</b></p><p> 5.1 實現(xiàn)Gtk+界面設(shè)計11</p><p> 5.2 實現(xiàn)連接數(shù)據(jù)庫13<
9、;/p><p> 5.3 實現(xiàn)socket通信13</p><p><b> 參考文獻(xiàn)15</b></p><p><b> 致謝15</b></p><p><b> 附錄16</b></p><p> 基于Linux的聊天系統(tǒng)設(shè)計與實現(xiàn)
10、</p><p><b> 摘要</b></p><p> Linux是一種能運行于多種平臺、源代碼公開、免費、功能強大、遵循POSIX標(biāo)準(zhǔn)、與UNIX兼容的操作系統(tǒng)。Linux自20世紀(jì)中期以來一直在突飛猛進(jìn)地發(fā)展,人們在計算機軟件開發(fā)和應(yīng)用中越來越離不開它。Linux的誕生和發(fā)展給全球的軟件業(yè)帶來了新的機遇,也使微軟的Windows操作系統(tǒng)面臨有史以來最大的挑
11、戰(zhàn)。由于Linux屬于自由軟件,它的源代碼是公開的,并遵循通用公司公共許可證(General Public Licence,GPL),所有用戶可以免費使用,從而使Linux在極短的時間內(nèi)就成了一套成熟而穩(wěn)定的操作系統(tǒng)。全世界成千上萬的程序?qū)<液蚅inux愛好者正在通過Internet不斷地對Linux進(jìn)行開發(fā)、完善和維護。</p><p> Linux操作系統(tǒng)核心最早是1991年由芬蘭的Linus Torval
12、ds在芬蘭赫爾辛大學(xué)上學(xué)時發(fā)布的(那年Torvalds年僅25歲),后來經(jīng)過眾多世界頂尖的軟件工程師的不斷修改和完善,Linux得以在全球普及開來,在服務(wù)器領(lǐng)域及個人桌面得到越來越多的應(yīng)用,在嵌入式開發(fā)方面更是具有其他操作系統(tǒng)無可比擬的優(yōu)勢,并以每年100%的影虎數(shù)遞增,顯示了Linux強大的實力。</p><p> 基于資源共享和軟件自由的思想,linux成為越來越多技術(shù)人員的理想之國。作為一個穩(wěn)定的多用戶類
13、unix網(wǎng)絡(luò)操作系統(tǒng),linux能提供完美的網(wǎng)絡(luò)解決方案,出色的勝任網(wǎng)絡(luò)構(gòu)建和維護。出于對unix技術(shù)優(yōu)勢的出色繼承和延續(xù),linux對多種網(wǎng)絡(luò)協(xié)議的支持使得網(wǎng)絡(luò)解決方案極大的豐富。</p><p> 在 Linux 中的網(wǎng)絡(luò)編程是通過socket接口來進(jìn)行的,Socket是TCP/IP網(wǎng)絡(luò)的API。不但是一種特殊的I/O,它也是一種文件描述符。socket有TCP和UDP兩個協(xié)議,TCP協(xié)議有數(shù)據(jù)的可靠性、應(yīng)
14、用的實時性、網(wǎng)絡(luò)的可靠性三個優(yōu)點。因此選擇TCP協(xié)議更為可靠。</p><p> 本系統(tǒng)實現(xiàn)了在Linux網(wǎng)絡(luò)聊天室的基本功能。在Linux下編寫并調(diào)試服務(wù)器端程序和客戶端程序,實現(xiàn)了客戶、服務(wù)器之間的連接和通信??梢栽趩螜C上開辟兩個窗口分別運行客戶、服務(wù)器端的程序,或者兩臺主機鏈接分別作為客戶和服務(wù)器的方式。該系統(tǒng)主要實現(xiàn)了編輯信息、換行、查詢歷史記錄、發(fā)送及關(guān)閉等主要功能。</p><p
15、> Linux是類UNIX計算機操作系統(tǒng)的名稱。Linux操作系統(tǒng)內(nèi)核的名稱也是“Linux”。Linux操作系統(tǒng)是自由軟件和開放源代碼發(fā)展中最著名的例子。嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但實際上,人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核并且用GNU工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。</p><p> 基于這些組件的Linux軟件被稱為Linux發(fā)行版。一般來說,一個Li
16、nux發(fā)行包包含大量的軟件,比如軟件開發(fā)工具、數(shù)據(jù)庫(如MySql)、網(wǎng)絡(luò)服務(wù)器、Xwindows、桌面環(huán)境、辦公包、腳本語言,等等。Linux現(xiàn)在是個人計算機和工作站上的UNIX類操作系統(tǒng)。它不僅繼承了UNIX的特征,而且在許多方面超過了UNIX。大量的高級程序設(shè)計語言已移植到Linux系統(tǒng)上,因而使它成為理想的應(yīng)用軟件開發(fā)平臺,而且,在Linux系統(tǒng)下開發(fā)的應(yīng)用程序具有良好的可移植性。Linux擁有廣泛的應(yīng)用前景。該聊天系統(tǒng)主要實現(xiàn)
17、功能有:編輯信息、換行、查詢歷史記錄、發(fā)送及關(guān)閉等主要功能。</p><p> 不同于之前分小組做過的系統(tǒng)的區(qū)別是,本次建立的系統(tǒng)是作者自己依據(jù)在洛陽惠普基地所學(xué)得的知識,結(jié)合平時所做的實驗,總結(jié)教訓(xùn)和失誤之處,自行完成的系統(tǒng)。本人覺得更有意義。</p><p> 關(guān)鍵字:Linux;Socket;C語言;TCP;GCC;MySQL.</p><p> Des
18、ign and implementation of the chat system based on Linux</p><p><b> Abstract</b></p><p> Linux is a kind of can run on a variety of platforms, open source, free, powerful, follow t
19、he POSIX standard, and UNIX compatible operating system. Linux since mid twentieth Century has been the development of make a spurt of progress, people are in the computer software development and application cannot do w
20、ithout it. The birth and development of Linux has brought new opportunities for the global software industry, also makes the Windows operating system Microsoft faces its biggest challenge. </p><p> Linux op
21、erating system is the core of the earliest Finland in 1991 by the Linus Torvalds in Finland Helsinki University School (Torvalds released that year only 25 years old), after many of the world's top software engineers
22、 constantly revised and improved, Linux was able to spread around the world, has been used more and more in the field of personal server and desktop, in embedded development is more with other operating system There is n
23、othing comparable to this advantage, and increase to the</p><p> On the basis of the thought with free resource-sharing and software, linux becomes more and more technical staff's ideal country.and is a
24、ttracting more persons to join in this ideal constantly.As a steady multi-user unix network operating system, linux can offer the perfect network solution and is competent of constructing and maintaining the network exce
25、llent.For the inheritting and extending splendidly of technological advantage to unix, the abundance that linux support to many kinds of procot</p><p> In Linux, network programming is carried out through t
26、he socket interface,Socket is the API of TCP/IP network.Not only Is a special I/O but also is a file descriptor.Socket has two protocols which are TCP and UDP,TCP protocol has three advantages of the eliability of data,
27、the application of real-time and the network reliability.So it is more reliable to choose TCP protocol.</p><p> The system Implementate the basic function of the network chat room under linux. Prepared and
28、debugging server and client program in the Linux. Can open up two windows In a single machine to run the server and client program respectively,or to connect twohosts, respectively, as the way of the client and server.Th
29、is system mainly realizes the editing information query, newline, main function of history, sending and close etc..</p><p> Keywords: Linux;Socket;C Language;TCP;GCC;MySQL.</p><p><b> 1
30、引言</b></p><p><b> 1.1 背景</b></p><p> 在這個人才如潮涌般的世界,系統(tǒng)界的先驅(qū)Windows系統(tǒng)已經(jīng)不能滿足越來越多的開發(fā)人員的需求。Linux系統(tǒng)由于其優(yōu)越的自身條件,能運行于多種平臺、源代碼公開、免費、功能強大、遵循POSIX標(biāo)準(zhǔn)、與UNIX兼容的操作系統(tǒng)等諸多優(yōu)勢,越來越受到開發(fā)人員的青睞。本次選課的內(nèi)容選
31、擇這個系統(tǒng)開開發(fā)聊天工具也是因為這個原因。</p><p><b> 1.2 選課意義</b></p><p> Linux是一種能運行于多種平臺、源代碼公開、免費、功能強大、遵循POSIX標(biāo)準(zhǔn)、與UNIX兼容的操作系統(tǒng)。Linux自20世紀(jì)中期以來一直在突飛猛進(jìn)地發(fā)展,人們在計算機軟件開發(fā)和應(yīng)用中越來越離不開它。Linux的誕生和發(fā)展給全球的軟件業(yè)帶來了新的機遇
32、,也使微軟的Windows操作系統(tǒng)面臨有史以來最大的挑戰(zhàn)。由于Linux屬于自由軟件,它的源代碼是公開的,并遵循通用公共許可證(General Public Licence,GPL),所以用戶可以免費使用,從而使Linux在極短的時間內(nèi)就成了一套成熟而穩(wěn)定的操作系統(tǒng)。全世界成千上萬的程序?qū)<液蚅inux愛好者正在通過Internet不斷地對Linux進(jìn)行開發(fā)、完善和維護【1】。</p><p> 1.3 Lin
33、ux與Windows操作系統(tǒng)</p><p> 和Linux一樣,Windows是完全的多任務(wù)操作系統(tǒng)。它們支持同樣的用戶接口、網(wǎng)絡(luò)和安全性。但Windows操作系統(tǒng)是商用的操作系統(tǒng),由微軟公司控制接口和設(shè)計。因此,用戶無法對Windows做任何改動。</p><p> 在穩(wěn)定性方面,Linux和Windows運行的穩(wěn)定性各有優(yōu)劣。但Linux的任何程序都是相對獨立的,哪怕GNOME和
34、KDE(窗口管理程序)也是獨立的。因此軟件的崩潰難以造成系統(tǒng)的癱瘓(死機)。此時,只要重新運行程序就可以恢復(fù)。Windows的死機頻率遠(yuǎn)遠(yuǎn)高于Linux。在多用戶方面,Linux是真正的多用戶系統(tǒng),可以有多個用戶真正登錄。而相對來說,Windows就很勉強;在對中文的支持方面,Windows的多個版本對于中文的支持是很強的,字體也很漂亮。而Linux雖然也支持中文,但要完全支持中文需要手動做很多設(shè)置。不過由于幾乎每個軟件都要設(shè)置字體和字
35、符編碼,即使做的再好,任然可能看到中文亂碼,而且開源的中文字體基本都不好看。因此,Linux在中文顯示上其效果不如Windows;在安全性方面,Windows的安全性是很有問題的,為此,必須安裝各種殺毒軟件、防火墻、防垃圾軟件、防間諜軟件等保證安全的軟件,而這些軟件的安裝占去了很多的系統(tǒng)資源。即使這樣,還是防不勝防。相對而言,Linux的安全性好很多;在應(yīng)用軟件方面,雖然Linux下的軟件有很多,但相比Windows,還是少很多。Lin
36、ux</p><p> 由于受知識產(chǎn)權(quán)的限制,所以無論是使用PC平臺上的Windows,還是使用應(yīng)用于大中型機的UNIX,都無法窺視到其內(nèi)部結(jié)構(gòu)。這些系統(tǒng)很可能存在不為我們所知的漏洞,如果這些漏洞為別有用心者所用,將會產(chǎn)生各種安全問題。操作系統(tǒng)不同于其他軟件產(chǎn)品,它是其他應(yīng)用程序得以運行的平臺。由于我們無法獲知這些系統(tǒng)的細(xì)節(jié),所以我們無法確保計算機應(yīng)用的安全,長此以往,將會對軟件產(chǎn)業(yè)發(fā)展產(chǎn)生深遠(yuǎn)的負(fù)面影響。&l
37、t;/p><p> Linux的出現(xiàn),一方面促進(jìn)了許多國家軟件產(chǎn)業(yè)的發(fā)展,另一方面,它也為廣大的學(xué)生提供了一份寶貴的學(xué)習(xí)資料。目前UNIX、Linux、Windows三種系統(tǒng)三分天下,最終誰能占領(lǐng)市場的主流而成為市場霸主,目前還沒有定論。但總的來說,Linux的發(fā)展前景是很廣闊的【1】。</p><p> (1)Linux的起源于發(fā)展</p><p> Linux
38、的發(fā)言為“Lin-noks”,中文發(fā)音為“利尼克斯”。它的標(biāo)志是可愛的企鵝,取自芬蘭的吉祥物。</p><p> Linux起源于1991年,Linus Torvalds為了編寫一個比Minix(由譚邦寧教授開發(fā)的一個用于操作系統(tǒng)教學(xué)、很小的UNIX操作系統(tǒng))更好的操作系統(tǒng),首次在Internet上發(fā)布了基于Intel 386 體系結(jié)構(gòu)、類似于UNIX的Linux源代碼,這就是最早的Linux版本。由于Linu
39、x具有結(jié)構(gòu)清晰、功能簡捷等特點,許多高等院校的學(xué)生和科研機構(gòu)的研究人員紛紛把它作為學(xué)習(xí)和研究的對象。</p><p> Linux的歷史是和GNU緊密聯(lián)系在一起的。從1983年開始的GNU計劃(該計劃致力于開發(fā)一個自由并且完整的類UNIX操作系統(tǒng),包括軟件開發(fā)工具和各種應(yīng)用程序)到1991年Linux內(nèi)核發(fā)布,GNU已經(jīng)幾乎完成了除了系統(tǒng)內(nèi)核之外的各種必備軟件的開發(fā)。在Linus Torvalds和其他開發(fā)人員
40、的努力下,GNU組件可以運行于Linux內(nèi)核之上。整個內(nèi)核是基于GNU通用公共許可,也就是GPL,但是Linux內(nèi)核并不是GNU計劃的一部分。1994年3月,Linux 1.0版正式發(fā)布,Marc Ewing成立了Red Hat軟件公司,成為最著名的Linux分銷商之一。</p><p> 現(xiàn)在,Linux的用戶群一般都是專業(yè)人士。他們愿意安裝并設(shè)置自己的操作系統(tǒng),因而往往比其他操作系統(tǒng)的用戶要花更多的時間。這
41、些用戶有時被稱作“黑客”或“極客”(geek)。</p><p> 使用Linux的主要成本為移植、培訓(xùn)和學(xué)習(xí)的費用,早期由于會使用Linux的人較少,并且在軟件設(shè)計時并未考慮到非專業(yè)者的使用,導(dǎo)致這方面的費用極高。這方面的費用已經(jīng)隨著Linux的日益普及和Linux上的軟件越來越多、越來越方便而降低,但這仍是使用Linux的主要成本。</p><p> 然而隨著Linux的慢慢開始流
42、行,有些原始設(shè)備制造商(OEM)開始在其銷售的電腦上預(yù)裝上Linux,Linux的用戶中也有了普通電腦用戶,Linux系統(tǒng)也開始慢慢出現(xiàn)在個人電腦操作系統(tǒng)市場。Linux在歐洲、美國和日本的流行程度比較高,歐美地區(qū)還發(fā)行Linux平臺的游戲和其他家用軟件。Linux開源社區(qū)也是以歐洲、美國、日本等發(fā)達(dá)國家及地區(qū)的人士居多。</p><p> 每個孩子擁有一臺筆記本電腦這一項目正在催生新的、更為龐大的Linux用
43、戶群,計劃將包括發(fā)展中國家的幾億學(xué)童、他們的家庭和社區(qū)。在2007年,已經(jīng)有6個國家分別訂購了至少一百萬臺的筆記本電腦免費發(fā)放給學(xué)生。谷歌、RedHat和eBay是該項目的主要支持者【2】。下面簡單地回顧一下Linux版本的變化過程:</p><p> 1991年10月,Linux第一個公開版0.02版發(fā)布。</p><p> 1994年3月,Linux 1.0 版發(fā)布。</p&
44、gt;<p> 1999年,Linux 2.2 發(fā)布:GNOME 1.0 發(fā)布;支持Linux 2.2 的Red Hat 6.0 發(fā)布;IBM推出全面支持Linux的計劃;HP宣布支持Linux。</p><p> 1999年至2003年,各種Linux版本不斷發(fā)布,在市場上的影響巨大。</p><p> Linux內(nèi)核最初是為Intel 386 微處理器設(shè)計的;現(xiàn)在,
45、Linux內(nèi)核支持從個人電腦到大型主機,甚至包括嵌入式系統(tǒng)在內(nèi)的各種硬件設(shè)備。</p><p> ?。?)Linux的內(nèi)核</p><p> Linux內(nèi)核的最初版本是由Linus Torvalds編寫的,為了能夠使Linux更加完善,Linus Torvalds在網(wǎng)絡(luò)鎖公開了Linux的源碼,邀請全世界的志愿者參與Linux的開發(fā)。由于許多專業(yè)用戶自愿地開發(fā)它的應(yīng)用程序,并借助Inte
46、rnet拿出來讓大家一起修改,所以它周邊的程序越來越多,Linux得到了不斷的完善,并在短時期內(nèi)迅速崛起,如今仍以相當(dāng)快的速度在不斷地發(fā)展著。Linux是一個很有發(fā)展前途的操作系統(tǒng),也是為數(shù)不多可以與Microsoft旗下操作系統(tǒng)相競爭的操作系統(tǒng)。</p><p> Linux內(nèi)核由5個主要的子系統(tǒng)組成。這5個子系統(tǒng)分別是進(jìn)程調(diào)度(SCHEN)、內(nèi)存管理(MM)、虛擬文件系統(tǒng)(VFS)、網(wǎng)絡(luò)接口(NET)和進(jìn)程
47、間通信(IPC)【3】。</p><p> 各個子系統(tǒng)之間的依賴關(guān)系如下:</p><p> 進(jìn)程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個子系統(tǒng)互相依賴。程序要在多道程序環(huán)境下運行,必須為之創(chuàng)建進(jìn)程,而創(chuàng)建進(jìn)程的第一件事,就是要將程序和數(shù)據(jù)裝入內(nèi)存。</p><p> 進(jìn)程間通信與內(nèi)存管理之間的關(guān)系:進(jìn)程間通信子系統(tǒng)要依賴內(nèi)存管理來支持共享內(nèi)存通信機制,這種機制允許兩
48、個進(jìn)程除了擁有自己的私有內(nèi)存外,還可存取共同的內(nèi)存區(qū)域。</p><p> 虛擬文件系統(tǒng)與網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口來支持網(wǎng)絡(luò)文件系統(tǒng)(NFS),利用內(nèi)存管理來支持RAMDISK設(shè)備。</p><p> 內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)來支持交換,交換進(jìn)程定期地由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進(jìn)程調(diào)度的唯一原因。當(dāng)一個進(jìn)程存取的內(nèi)存映射被
49、換出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時,掛起當(dāng)前正在運行的進(jìn)程。</p><p> 在這些子系統(tǒng)中,進(jìn)程調(diào)度子系統(tǒng)是其他子系統(tǒng)得以順利工作的關(guān)鍵。無論是文件系統(tǒng)的系統(tǒng)進(jìn)程還是網(wǎng)絡(luò)子系統(tǒng)的服務(wù)進(jìn)程,都需要通過進(jìn)程調(diào)度來獲得相應(yīng)的CPU時間以正常運行【4】。</p><p><b> 2 需求分析</b></p><p><b>
50、 2.1 需求性分析</b></p><p> 2.1.1 編寫目的</p><p> 隨著Linux操作系統(tǒng)的慢慢開始流行,將來會有越來越多的軟件運行于Linux操作系統(tǒng)上。本次課題就是以Linux操作系統(tǒng)為基礎(chǔ)設(shè)計的類似于Windows操作系統(tǒng)的聊天程序,使得很多安裝的是Linux操作系統(tǒng)的人士能夠像在Windows操作系統(tǒng)上聊天程序一樣,方便的進(jìn)行溝通。</p&
51、gt;<p> 使用已學(xué)完的Linux系統(tǒng)、Gtk+界面設(shè)計、連接數(shù)據(jù)庫和socket通信等功能來實現(xiàn)聊天系統(tǒng)。</p><p> 2.2 對界面的需求</p><p> 1)一個顯示框:用來顯示發(fā)送和接受的聊天信息。</p><p> 2)兩個復(fù)選框:(1)編輯:用來控制信息顯示框來輸入信息是否可編輯。
52、 </p><p> ?。?)換行:用來控制顯示框里面的文本是否可以換行。</p><p> 3)三個按鈕: (1)歷史記錄按鈕:查看歷史記錄的信息。(2)發(fā)送按鈕:發(fā) </p><p> 送需要發(fā)出的信息。(3)關(guān)閉按鈕:關(guān)閉窗口。</p><p> 4)一個錄入框: 功能是讓用戶可以輸入需要發(fā)送的信息。</p>
53、<p> 5)對通信的需求:(1)綁定服務(wù)器的IP地址。(2)客戶機可以實現(xiàn)發(fā)送接</p><p> 收信息。(3)服務(wù)器可以實現(xiàn)發(fā)送接收信息。</p><p> 6)對數(shù)據(jù)庫的需求:聊天信息插入數(shù)據(jù)庫,也可以從數(shù)據(jù)庫里面取出信息。</p><p> 7)運行環(huán)境:Windows 7系統(tǒng)、虛擬機、linux系統(tǒng)、MySql數(shù)據(jù)庫。</p&
54、gt;<p><b> 3 系統(tǒng)應(yīng)用技術(shù)</b></p><p> 3.1 Gtk+界面設(shè)計</p><p> Gtk+是Linux環(huán)境下用于圖形用戶界面開發(fā)的一個庫,現(xiàn)在已成為類UNIX系統(tǒng)下開發(fā)圖形界面應(yīng)用程序的主流開發(fā)工具之一,并已移植到Windows上了。通過這個庫,可以很方便地實現(xiàn)在Linux操作系統(tǒng)中開發(fā)圖形用戶界面【5】。</p
55、><p> 3.1.1 Gtk+基礎(chǔ)</p><p> 最初Gtk+是作為另一個著名的源碼項目GIMP(GNU Image Manipulation Program,wwww.gimp.com)的副產(chǎn)品而創(chuàng)建的。GIMP最初是類UNIX操作系統(tǒng)的圖像處理程序,現(xiàn)在也被移植到了Windows平臺。為了簡化GIMP的開發(fā),專門開發(fā)了GIMP ToolKit——一個生成GUI的工具庫(或者,實際
56、上是若干個密切相關(guān)的庫的集合),這就是Gtk。它是一套跨多種平臺的圖像工具包,支持創(chuàng)建于GUI的應(yīng)用程序(可以把Gtk+想象成一個工具包,從這個工具包中可以找到用來創(chuàng)建GUI的許多已經(jīng)準(zhǔn)備好的構(gòu)造塊)。 在增加了面向?qū)ο蟮奶匦灾螅拿Q后面添加了一個加號,于是就成為Gtk+。Gtk+是自由軟件,并且是GNU計劃的一部分,是按LGPL發(fā)布的。</p><p> 3.1.2 Gtk+的主要特點</p>
57、;<p> ?。?)Gtk+是一個小型而高效的控件庫;</p><p> ?。?)Gtk+應(yīng)用程序的國際化(i18n)、本地化(110n)提供了很好的處理工具;</p><p> ?。?)Gtk+是可移植的,而且具有多種語言前端;</p><p> ?。?)Gtk+為界面設(shè)計提供了配套的工具Glade;</p><p> ?。?
58、)提供不同的顯示引擎,使得最終用戶可以制定外觀和質(zhì)感;</p><p> ?。?)Gtk+的應(yīng)用廣泛;</p><p> (7)Gtk+對Windows的支持;</p><p> (8)Gtk+自身特性。</p><p> 3.1.3 Gtk+的組成</p><p> ?。?)Gtk+工具的應(yīng)用層次:GTK、GD
59、K、GLIB;</p><p> ?。?)Gtk+對象的層次結(jié)構(gòu):Gtk+中所有的窗口部件(Widgets)有共同的祖先——Gtk_Object,所有的可視對象有一個共同的祖先Gtk_Widget;</p><p> (3)Gtk+圖形庫構(gòu)件:提供了窗口、標(biāo)簽、命令按鈕、開發(fā)按鈕等【6】。</p><p> 3.2 socket通信</p><
60、;p> 3.2.1 Socket簡述</p><p> 應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時,TCP和UDP會遇到同事為多個應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個TCP連接或多個應(yīng)用程序進(jìn)程可能需要通過同一個TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計算機操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為Socket的接口【1】。</p><p> 3.2.2 So
61、cket的主要類型</p><p><b> (1)流式套接字</b></p><p> 提供一個面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯、無重復(fù)的發(fā)送,且按發(fā)送順序接收。</p><p><b> (2)數(shù)據(jù)報套接字</b></p><p> 提供一個無連接服務(wù)。數(shù)據(jù)包以獨立包形式被發(fā)送,
62、不提供無錯保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。</p><p><b> ?。?)原始式套接字</b></p><p> 該接口允許對較低層協(xié)議直接訪問,常用于檢驗新的協(xié)議實現(xiàn)或訪問現(xiàn)有服務(wù)中配置的新設(shè)備。</p><p> Socket()函數(shù)原型:int socket(int don=main,int type,int prot
63、ocol);</p><p> 3.2.3 Socket組要在如下兩類系統(tǒng)中使用</p><p> ?。?)Windows Socket.</p><p> (2)Linux Socket.</p><p> 3.3 MySql數(shù)據(jù)庫</p><p> 3.3.1 MySql發(fā)展歷史</p>&l
64、t;p> MySql的歷史最早可以追溯到1979年,有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,并用BASIC設(shè)計了一個報表工具,可以在4M主頻和16KB內(nèi)存的計算機上運行。過了不久,又將此工具,使用C語言重寫,移植到Unix平臺,當(dāng)時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。</p><p> 1990年,TcX的customer 中開始有人要求要為它
65、的API提供SQL支持,Monty決心自己重寫一個SQL支持。1996年,MySQL 1.0發(fā)布,相當(dāng)于內(nèi)部發(fā)布。</p><p> 1996年10月,MySQL 3.11.1發(fā)布了,沒有2.x版本。最開始,只提供了Solaris下的二進(jìn)制版本。一個月后,Linux版本出現(xiàn)了。MySql3.22應(yīng)該是一個標(biāo)志性的版本,提供了基本的SQL支持。</p><p> MySql關(guān)系型數(shù)據(jù)庫于
66、1998年1月發(fā)行第一個版本。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型并且提供了完整的操作符支持查詢中的SELECT和WHERE操作。</p><p> MySql是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個
67、性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。</p><p> 1999-2000年,有一家公司在瑞典成立了,叫MySQL AB,雇了幾個人,與Sleepycat合作,開發(fā)出了 Berkeley DB引擎, 因為BDB支持事務(wù)處理,所以,MySQL從此開始支持事務(wù)處理了。 </p><p> 2000年4月,MySQL對舊的存儲引擎進(jìn)行了整理,命名為MyIS
68、AM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務(wù)處理,還支持行級鎖。</p><p> MySql與InnoDB的正式結(jié)合版本是4.0。到了MySQL5.0,2003年12月,開始有View,存儲過程之類。在2008年1月16號 MySQL被Sun公司收購。</p><p> 3.3.2 MySql的常用
69、命令</p><p> (1)使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫 </p><p> mysql> SHOW DATABASES; </p><p> ?。?)創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA </p><p> mysql> CREATE DATABASE MYSQLDATA; </p><
70、;p> ?。?)選擇你所創(chuàng)建的數(shù)據(jù)庫 </p><p> mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!) </p><p> (4)查看現(xiàn)在的數(shù)據(jù)庫中存在什么表</p><p> mysql> SHOW TABLES; </p><p> ?。?)創(chuàng)建一個
71、數(shù)據(jù)庫表 </p><p> mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));</p><p> (6)顯示表的結(jié)構(gòu) </p><p> mysql> DESCRIBE MYTABLE; </p><p> ?。?)往表中加入記錄</p>
72、<p> mysql> insert into MYTABLE values (”hyq”,”M”); </p><p><b> ?。?)刪除表 </b></p><p> mysql>drop TABLE MYTABLE;</p><p><b> ?。?)清空表 </b></p>
73、<p> mysql>delete from MYTABLE;</p><p> ?。?0)更新表中數(shù)據(jù)</p><p> mysql>update MYTABLE set sex=”f” where name=’hyq’; </p><p> ?。?1)數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限</p><p> ① ALT
74、ER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。 </p><p> ?、?CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。 </p><p> ?、?DELETE: 刪除表的記錄。</p><p> ?、?DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。</p><p> ?、?INDEX: 建立或刪除索引。 </p><p> ?、?/p>
75、 INSERT: 增加表的記錄。</p><p> ?、?SELECT: 顯示/搜索表的記錄。</p><p> ?、?UPDATE: 修改表中已存在的記錄。</p><p> 3.3.3 MySql的重要特性</p><p> ?。?)內(nèi)部結(jié)構(gòu)和可移植性;</p><p> ?。?)極快的基于線程的內(nèi)存分配系統(tǒng);&
76、lt;/p><p><b> ?。?)列類型;</b></p><p><b> ?。?)語句和函數(shù);</b></p><p><b> ?。?)安全;</b></p><p><b> ?。?)連接性;</b></p><p><
77、;b> ?。?)本地化;</b></p><p> ?。?)客戶端和工具。</p><p><b> 4 設(shè)計和實現(xiàn)</b></p><p> 4.1 Gtk+界面設(shè)計</p><p> ?。?)服務(wù)器端運行結(jié)果如圖所示:</p><p><b> 圖4-1 服務(wù)
78、器端</b></p><p> ?。?)客戶端運行結(jié)果如圖所示:</p><p><b> 圖 4-2 客戶端</b></p><p> ?。?)控制擺放流程圖</p><p> 本次實驗設(shè)計到了hbox、vbox、text、entry以及button等控件的擺放及使用。首先在window窗口中放置一個h
79、box來方便后來其他控件的擺放??丶[放如下所示:</p><p> 圖 4-3 控制擺放流程圖</p><p><b> 4.2 連接數(shù)據(jù)庫</b></p><p><b> (1)連接成功截圖</b></p><p> 圖 4-4 連接成功截圖</p><p>&
80、lt;b> ?。?)流程圖</b></p><p><b> 圖 4-5 流程圖</b></p><p> 4.3 網(wǎng)絡(luò)通信socket編程</p><p> 4.3.1 socket編程方法</p><p><b> ?。?)網(wǎng)絡(luò)連接函數(shù)</b></p>&l
81、t;p> Socket 創(chuàng)建套接字</p><p> Bind 綁定本機端口</p><p> Connect 建立連接</p><p> Listen 監(jiān)聽端口</p><p> Accept
82、 接受連接</p><p> Recv,recvfrom 數(shù)據(jù)接收</p><p> Send,sendto 數(shù)據(jù)發(fā)送</p><p> Close,shutdown 關(guān)閉套接字</p><p><b> (2)連接流程圖</b></p><p>
83、; 圖 4-6 連接流程圖</p><p> 4.3.2 客戶端/服務(wù)器工作流程</p><p><b> 1)服務(wù)器</b></p><p> 首先,應(yīng)該在服務(wù)器端使用Socket()建立一個通信端口,再用bind()命令把一個地址綁定到這個端口上。然后,服務(wù)器端使用listen()監(jiān)聽連接請求,當(dāng)遠(yuǎn)程的客戶機試圖使用connect(
84、)連接listen()正在監(jiān)聽的端口時,連接將會在隊列中等待,直到使用accept()處理它。在accept()處理了連接請求之后,將會生成一個新的描述這個連接端口的套接字,利用這個套接字就可以發(fā)送和接收數(shù)據(jù)。如果listen()一直沒有監(jiān)聽到連接請求,那么服務(wù)器任務(wù)就會在accept()處阻塞,直到有連接請求到來為止。</p><p><b> 2)客戶端</b></p>
85、<p> 客戶端處首先用Socket()建立一個通信端口,然后直接用connect()向指定的服務(wù)器發(fā)送連接請求,如果請求被接收,下一步就可以進(jìn)行數(shù)據(jù)通信了。</p><p><b> 3)函數(shù)格式</b></p><p> ?。?)Socket() </p><p> 作用:socket函數(shù)為客戶機或服務(wù)器創(chuàng)建一個sokcet
86、</p><p> 格式:int socket(int family)</p><p> Family 表示地址族</p><p> ?。?)bind( )</p><p> 作用:bind函數(shù)是將套接字綁定到IP地址</p><p> 格式: int bind(int sockfd,struct sockad
87、dr *addr,int addrlen)</p><p> 參數(shù)說明:Sockfd:socket的文件描述符號;Sockaddr:表示名字所用的一個數(shù)據(jù)結(jié)構(gòu),用來保存地址(包括IP地址和端口);Addrlen:設(shè)置結(jié)構(gòu)大小長度。</p><p> ?。?)listen()</p><p> 作用:監(jiān)聽連接信號,和accepted函數(shù)合同。</p>
88、<p> 格式: int listen(int sockfd)</p><p> 參數(shù)說明:Sockfd:表示socket調(diào)用返回的文件描述符。</p><p> ?。?)accept()</p><p> 作用:與listen函數(shù)合用,監(jiān)聽信息、接收客戶端請求。</p><p> 格式: Int accept (int
89、sockfd, void *addr, int *addrlen)</p><p> 參數(shù)說明:Sockfd:表示socket的文件描述符;Addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu)struct sockaddr-in的指針;Addrlen:表示地址的長度。</p><p> (5) connect()</p><p> 作用:在面向連接的系統(tǒng)中客戶及連接服務(wù)器時使用,
90、connect必須在bind后使用。</p><p> 格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)</p><p> 參數(shù)作用:Sockfd:表示socket的文件描述符;Serv-addr:表示村訪目的端口和ip地址(套接字)的數(shù)據(jù)結(jié)構(gòu)。</p><p> (
91、6) send() 和 recv()</p><p> Send作用:發(fā)送信息。</p><p> 格式1:Int send (int sockfd)</p><p> Recv作用:用于流式socket、數(shù)據(jù)報socket內(nèi)部之間的通信。</p><p> 格式2:Int recv (int sockfd)</p>&
92、lt;p> (7)close( )</p><p> 格式:Close( int sockfd)</p><p> 4.3.3 結(jié)果截圖</p><p> 圖 4-6 結(jié)果截圖</p><p><b> 5 系統(tǒng)測試</b></p><p> 5.1 實現(xiàn)Gtk+界面設(shè)計<
93、/p><p> ?。?)測試時出現(xiàn)的錯誤</p><p> 在用Gtk+進(jìn)行界面設(shè)計時,出現(xiàn)了很多意想不到的錯誤,比如,剛開始擺放控件時竟然把Vbox和Hbox弄反了,結(jié)果出現(xiàn)的圖形從豎著變成了橫著。在放完基本的按鈕時發(fā)現(xiàn)控件全部聚集在了一起,后來把所有的控件都放進(jìn)去才出現(xiàn)了正常的界面。</p><p> 界面剛出來時,按鈕那一塊顯得特別擠,后來在同學(xué)的幫助下,知道
94、了需要改正一下后面的參數(shù),比如把0改為10,可以調(diào)節(jié)按鈕的外觀,使按鈕看上去顯得不那么小氣。在剛開始加圖片時,每次都是出來一個紅色的小叉叉,后來網(wǎng)上查了一下,原來是圖片放錯了位置,圖片可以直接放進(jìn)程序的那個文件夾里。</p><p><b> ?。?)修改后截圖</b></p><p> 圖5-1 正確的服務(wù)器</p><p> 圖5-2
95、正確的客戶端</p><p> 5.2 實現(xiàn)連接數(shù)據(jù)庫</p><p> ?。?)調(diào)試時出現(xiàn)的錯誤</p><p> 在完成程序進(jìn)行測試時,因為數(shù)據(jù)庫連接出現(xiàn)問題發(fā)送信息無法插入數(shù)據(jù)庫,經(jīng)過更改后進(jìn)行了解決。</p><p> 查詢聊天記錄時,顯示的聊天記錄一直向后排列,沒有換行顯示效果不好,解決方法:在每條數(shù)據(jù)顯示后插入換行,使其按發(fā)
96、送條數(shù)排列整齊。</p><p><b> ?。?)修改后截圖</b></p><p> 圖5-3 修改后截圖</p><p> 5.3 實現(xiàn)socket通信</p><p> (1)測試時出現(xiàn)的錯誤:運行后出現(xiàn)界面,但輸入信息發(fā)送信息時界面消失。</p><p><b> ?。?
97、)修改后截圖</b></p><p> 圖5-4 修改后截圖(服務(wù)器)</p><p> 圖5-4 修改后截圖(客戶端)</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 蔡建平.《軟件綜合開發(fā)案例教程》--Linux、GCC、MySQL、Socket、Gtk+與開發(fā)案例,2005
98、</p><p> [2] 趙敏哲.《64位Linux操作系統(tǒng)與應(yīng)用實例》. 北京機械工業(yè)出版社,2001</p><p> [3] 龐麗萍.《操作系統(tǒng)原理》(第三版). 武漢華中科技大學(xué)出版社,2000</p><p> [4] 張饒學(xué).《計算機下載系統(tǒng)教程》(第二版).習(xí)題解答與實驗指導(dǎo).北京清華大學(xué)出版社,2000</p><p>
99、; [5] 李勝利, 龐麗萍.《操作系統(tǒng)》.武漢華中科技大學(xué)出版社,2002</p><p> [6] 胡明慶, 高巍, 鐘梅.《操作系統(tǒng)教程與實驗》.北京清華大學(xué)出版社,2007</p><p><b> 致謝</b></p><p> 通過本次課程設(shè)計對Linux網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計,確實積累和總結(jié)了不少的經(jīng)驗,鍛煉了我的獨立工作和實
100、際動手能力,加深了對計算機網(wǎng)絡(luò)中socket工作原理及其相互聯(lián)系的認(rèn)識,提高了對復(fù)雜的綜合性實踐環(huán)節(jié)具有分析問題、解決問題、概括總結(jié)的實際工作能力,對網(wǎng)絡(luò)編程項目的開發(fā)、設(shè)計過程有初步認(rèn)識。</p><p> 經(jīng)過近了多次的設(shè)計和開發(fā),ZZ聊天界面的設(shè)計設(shè)計完畢。其功能基本符合規(guī)定需求,能夠簡單的網(wǎng)絡(luò)聊天功能。但是由于我學(xué)藝不精,還有許多不盡如人意的地方,還有待于我進(jìn)一步完善其功能。但我從中學(xué)到了不少的道理,真
101、正的理解到,理論與實踐之間還是有很大的距離,這必將有利于我以后的學(xué)習(xí)。使我明白,在以后的學(xué)習(xí)中,要不斷的完善自己的知識體系結(jié)構(gòu),注意理論與實踐的結(jié)合,學(xué)知識關(guān)鍵是要學(xué)活,而不能死記死搬書本上的知識,關(guān)鍵是要會靈活應(yīng)用,這樣所學(xué)到的東西才真正的學(xué)以致用,才達(dá)到了學(xué)習(xí)的真正目的!</p><p> 在本次課題程序設(shè)計中,我學(xué)到了很多東西,通過本次課題程序設(shè)計,無論在理論上還是在實踐中,我的計算機應(yīng)用水平得到了很大的
102、提升,這對于今后的工作和學(xué)習(xí)都是一種巨大的財富。 </p><p> 此次的課題設(shè)計讓我學(xué)到了很多知識,跨越了傳統(tǒng)方式下的教與學(xué)的體制束縛,在設(shè)計過程中,通過查資料和搜集有關(guān)的文獻(xiàn),培養(yǎng)了自學(xué)能力和動手能力,提升了知識利用率。</p><p><b> 附錄</b></p><p> Gtk+界面設(shè)計代碼:</p>&l
103、t;p> (1)服務(wù)器端代碼如下:</p><p> int main(int argc,char *argv[])</p><p><b> {</b></p><p> GtkWidget *window;</p><p> GtkWidget *vbox1,*vbox2;</p>&l
104、t;p> GtkWidget *hbox1,*hbox2,*hbox3,*hbox4,*hbox5,*hbox6,*hbox7;</p><p> GtkWidget *button1,*button2,*button3;</p><p> GtkWidget *entry,*separator1,*separator2,*separator3,*view;</p>
105、<p> GtkWidget *label1,*label2,*image1,*image2;</p><p> GtkWidget *checkbutton1,*checkbutton2;</p><p> gtk_init(&argc,&argv);</p><p> window=gtk_window_new(GTK_WI
106、NDOW_TOPLEVEL);//創(chuàng)建窗體</p><p> gtk_window_set_policy(GTK_WINDOW(window),FALSE,FALSE,TRUE);//窗口可變</p><p> gtk_window_set_title(GTK_WINDOW(window),"Chat Window Server");//窗口名稱</p>
107、<p> gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);//窗口位置</p><p> gtk_window_set_default_size (GTK_WINDOW(window), 460,400);//窗口初始化</p><p> gtk_container_set_border_wi
108、dth(GTK_CONTAINER(window),10);//邊框</p><p> hbox1=gtk_hbox_new(FALSE,0);</p><p> gtk_container_add(GTK_CONTAINER(window),hbox1);//將hbox1加入window </p><p> vbox1=gtk_vbox_new(FAL
109、SE,0);</p><p> gtk_box_pack_start(GTK_BOX(hbox1),vbox1,FALSE,FALSE,0);//將vbox1加入hbox1</p><p> separator1=gtk_vseparator_new();</p><p> gtk_box_pack_start(GTK_BOX(hbox1),separator
110、1,FALSE,FALSE,0);//將豎向分隔符放入hbox1中</p><p> vbox2=gtk_vbox_new(FALSE,0);</p><p> gtk_box_pack_start(GTK_BOX(hbox1),vbox2,FALSE,FALSE,0);//將vbox2加入hbox1</p><p> view=gtk_scrolled_wi
111、ndow_new(NULL,NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(view),GTK_POLICY_AUTOMATIC,GTK_POLICY_ALWAYS);//設(shè)置豎向滾動條</p><p> text=gtk_text_view_new();</p><p> gtk_box_pack_start(GTK
112、_BOX(vbox1),view,TRUE,TRUE,5);//將view放入vbox1中</p><p> gtk_container_add(GTK_CONTAINER(view),text);//將text放入view中</p><p> buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));</p><p&
113、gt; separator2=gtk_hseparator_new();</p><p> gtk_box_pack_start(GTK_BOX(vbox1),separator2,FALSE,FALSE,0);//將橫向分隔符放入vbox1中</p><p> hbox2=gtk_hbox_new(FALSE,0);</p><p> gtk_box_pa
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息管理與信息系統(tǒng)畢業(yè)論文查詢管理信息系統(tǒng)的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文小型酒店信息管理系統(tǒng)的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文
- 信息管理與信息系統(tǒng)畢業(yè)論文醫(yī)院住院部信息管理系統(tǒng)的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文庫存管理系統(tǒng)的設(shè)計與實現(xiàn)
- 基于web的小型電子商務(wù)系統(tǒng)設(shè)計與實現(xiàn)-信息管理與信息系統(tǒng)畢業(yè)論文
- 信息管理與信息系統(tǒng)專業(yè)畢業(yè)論文--庫存管理系統(tǒng)
- 信息管理與信息系統(tǒng)畢業(yè)論文學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)
- 基于web的小型電子商務(wù)系統(tǒng)設(shè)計與實現(xiàn)-信息管理與信息系統(tǒng)畢業(yè)論文
- 信息系統(tǒng)與信息管理畢業(yè)論文范文
- 信息管理與信息系統(tǒng)畢業(yè)論文學(xué)生宿舍管理系統(tǒng)的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文-網(wǎng)絡(luò)協(xié)議仿真軟件的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文-網(wǎng)絡(luò)協(xié)議仿真軟件的設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文醫(yī)院信息系統(tǒng)的效益分析與研究
- 信息管理與信息系統(tǒng)專業(yè)畢業(yè)論文、畢業(yè)設(shè)計參考
- 信息管理與信息系統(tǒng)畢業(yè)論文醫(yī)院分診系統(tǒng)的設(shè)計與應(yīng)用
- 畢業(yè)設(shè)計(論文)+信息管理與信息系統(tǒng)專業(yè)+基于jsp的花店管理系統(tǒng)設(shè)計與實現(xiàn)
- 信息管理與信息系統(tǒng)畢業(yè)論文體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文——超市信息管理系統(tǒng)設(shè)計與實現(xiàn)
- 學(xué)生信息管理系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)論文
評論
0/150
提交評論