畢業(yè)論文(設(shè)計(jì))基于web的畢業(yè)設(shè)計(jì)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文(設(shè)計(jì))</b></p><p>  學(xué)院: 計(jì)算機(jī)科學(xué)學(xué)院 </p><p>  專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 年級(jí): </p><p>  題目: 基于WEB的畢業(yè)設(shè)計(jì)管理系統(tǒng) </p><p>  學(xué)生姓名: 學(xué)號(hào): </p><

2、;p>  指導(dǎo)教師姓名: 職稱(chēng): </p><p><b>  年 月 日</b></p><p><b>  目 錄</b></p><p>  1 緒 論 - 1 -</p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景及現(xiàn)狀- 1 -</p><p&g

3、t;  1.2 系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)與開(kāi)發(fā)環(huán)境- 1 -</p><p>  1.2.1 Linux操作系統(tǒng)簡(jiǎn)介- 1 -</p><p>  1.2.2 Apache服務(wù)器簡(jiǎn)介- 1 -</p><p>  1.2.3 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介- 1 -</p><p>  1.2.4 PHP語(yǔ)言簡(jiǎn)介- 1 -</p>&l

4、t;p>  1.3 全文體系- 2 -</p><p>  2 基于Web的數(shù)據(jù)庫(kù)技術(shù)分析- 3 -</p><p>  2.1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)層次體系- 3 -</p><p>  2.1.1 終端/主機(jī)體系結(jié)構(gòu)- 3 -</p><p>  2.1.2 客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu)- 3 -</p><p&g

5、t;  2.1.3 瀏覽器/服務(wù)器體系結(jié)構(gòu)- 4 -</p><p>  2.1.4 C/S結(jié)構(gòu)與B/S結(jié)構(gòu)比較- 5 -</p><p>  2.2 Web數(shù)據(jù)庫(kù)管理系統(tǒng)介紹- 6 -</p><p>  2.2.1 Web數(shù)據(jù)庫(kù)管理系統(tǒng)工作原理- 6 -</p><p>  2.2.2 利用WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)- 6 -<

6、;/p><p>  2.3 本章小結(jié)- 7 -</p><p>  3 系統(tǒng)分析與設(shè)計(jì)- 8 -</p><p>  3.1 系統(tǒng)功能需求- 8 -</p><p>  3.2 系統(tǒng)功能特點(diǎn)- 8 -</p><p>  3.3 系統(tǒng)設(shè)計(jì)- 9 -</p><p>  3.3.1 系統(tǒng)開(kāi)發(fā)

7、原理- 9 -</p><p>  3.3.2 系統(tǒng)功能設(shè)計(jì)- 9 -</p><p>  3.3.3 系統(tǒng)總體設(shè)計(jì)- 10 -</p><p>  3.4 系統(tǒng)功能概述- 11 -</p><p>  3.5 本章小結(jié)- 11 -</p><p>  4 系統(tǒng)功能實(shí)現(xiàn)- 12 -</p>&

8、lt;p>  4.1 系統(tǒng)結(jié)構(gòu)和流程- 12 -</p><p>  4.1.1 學(xué)生模塊結(jié)構(gòu)- 12 -</p><p>  4.1.2 教師模塊結(jié)構(gòu)- 12 -</p><p>  4.1.3 管理員模塊結(jié)構(gòu)- 13 -</p><p>  4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)和構(gòu)建- 14 -</p><p>  

9、4.3 主要功能分析與實(shí)現(xiàn)- 17 -</p><p>  4.3.1 用戶(hù)登陸- 17 -</p><p>  4.3.2 文件上傳- 19 -</p><p>  4.4 安全控制技術(shù)- 21 -</p><p>  4.5 本章小結(jié)- 21 -</p><p>  5 結(jié)束語(yǔ) - 22 -&l

10、t;/p><p>  致 謝 - 23 -</p><p>  參考文獻(xiàn) - 24 -</p><p>  附 錄 - 25 -</p><p>  基于WEB的畢業(yè)設(shè)計(jì)管理系統(tǒng)</p><p>  摘要:本系統(tǒng)是針對(duì)現(xiàn)代高校計(jì)算機(jī)技術(shù)的發(fā)展,為了應(yīng)對(duì)以往畢業(yè)生畢業(yè)設(shè)計(jì)中遇到的工作

11、效率低,交互性差等問(wèn)題而采用軟件工程的設(shè)計(jì)思想設(shè)計(jì)的。本文的基礎(chǔ)就是利用PHP技術(shù)與MySQL數(shù)據(jù)庫(kù)和Apache服務(wù)器的結(jié)合,開(kāi)發(fā)出的一個(gè)基于WEB技術(shù)的B/S結(jié)構(gòu)的畢業(yè)設(shè)計(jì)管理系統(tǒng)。</p><p>  首先,本文探討了數(shù)據(jù)庫(kù)運(yùn)行的體系結(jié)構(gòu),介紹了瀏覽器/服務(wù)器模式的工作方式及特點(diǎn);比較了主機(jī)/終端、客戶(hù)機(jī)/服務(wù)器和瀏覽器/服務(wù)器等三種模式各自的優(yōu)缺點(diǎn)。比較結(jié)果表明,瀏覽器/服務(wù)器模式繼承了客戶(hù)機(jī)/服務(wù)器模式

12、的優(yōu)點(diǎn)并克服了它的缺點(diǎn),不受操作系統(tǒng)和硬件的制約,而且能防止“胖客戶(hù)機(jī)”現(xiàn)象的發(fā)生,比較容易實(shí)現(xiàn)不同網(wǎng)絡(luò)間的連接。瀏覽器/服務(wù)器模式是目前廣泛使用的主體結(jié)構(gòu)。因此,我們開(kāi)發(fā)的本系統(tǒng)也將采用了瀏覽器/服務(wù)器模式。在此基礎(chǔ)上,本文還探討了實(shí)現(xiàn)WEB數(shù)據(jù)庫(kù)的不同方法。</p><p>  本次設(shè)計(jì)是應(yīng)用LAMP技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下的本科畢業(yè)生畢業(yè)設(shè)計(jì)管理。利用VIM工具結(jié)合使用MySQL數(shù)據(jù)庫(kù),PHP等技術(shù)的工作原理及特

13、點(diǎn),并以此為理論技術(shù)依據(jù)闡述了基于WEB的畢業(yè)設(shè)計(jì)管理系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)和具體的實(shí)現(xiàn)過(guò)程。</p><p>  關(guān)鍵詞: B/S; C/S; 畢業(yè)設(shè)計(jì)管理系統(tǒng); LAMP; Linux ; PHP; MySQL; Apache</p><p>  Graduation Thesis Management System Based on Web</p><p>  Abs

14、tract : This system is designed in allusion to the development of modern computer technology in universities and colleges. It adopts the design ideology of software engineering, in order to answer the problems that had b

15、een faced by the graduates in their graduation projects, such as low work efficiency, and poor interaction. The foundation of this text was combining the skill of PHP with Web Database, and exploiting a management system

16、 based on the skill of Web and the structure of B/S.</p><p>  Firstly, this text discusses the system and structure run by database, introduces the working and characteristic of the B/S pattern, and also com

17、pares with three kind of patterns respective advantage and disadvantage among Mainframe/Terminal,Client/Server and Browser/Server. The result indicates that the mode of B/S inherits the merit of C/S, and conquers its sho

18、rtcoming. This mode is not conditioned by OS and hardware, and also can prevent "the fat client" happening, even it can easily connect </p><p>  This design applies LAMP technology to solve practic

19、e of graduation project management in the network environment. Using the tool of VIM and combining with MySQL Database, the working elements of PHP, etc. It takes this for the foundation of academic technique, and expati

20、ates the structural design and the detailed process of carrying out the graduation project management based on Web.</p><p>  Keyword: B/S ; C/S ; Graduation Thesis Management System; LAMP; Linux; PHP; MySQL

21、; Apache </p><p><b>  1緒 論</b></p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景及現(xiàn)狀</p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,給信息時(shí)代的人們帶來(lái)了很大的方便。如今在Internet上,你隨處都可以看到很多的各類(lèi)信息管理系統(tǒng),如企業(yè)信息管理系統(tǒng),電子商務(wù)系統(tǒng),學(xué)校教務(wù)管理系統(tǒng)等各類(lèi)信息管理系統(tǒng)的普及。而針對(duì)本科

22、畢業(yè)設(shè)計(jì)的選題等相關(guān)事項(xiàng),涉及到導(dǎo)師給出課題或?qū)W生自選課題,以及在各個(gè)階段需要上交或是提交相關(guān)的文檔資料等問(wèn)題,目前主要還是由人為來(lái)處理操作,需要花費(fèi)一定人力,這給整個(gè)工作帶來(lái)了很多不便,而且容易出錯(cuò)。因此就需要一個(gè)對(duì)此流程進(jìn)行管理的電子系統(tǒng),使得此過(guò)程更加方便,更加透明,更加高效,以節(jié)省更多的人力和不必要的工作。</p><p>  而目前的此類(lèi)系統(tǒng)或多或少的存在以下的問(wèn)題:</p><p&

23、gt;  1、不清楚建立網(wǎng)站的目的或沒(méi)有根據(jù)自己的目的詳細(xì)策劃網(wǎng)站的功能,只適應(yīng)一時(shí)之需;結(jié)果頁(yè)面的設(shè)計(jì),包括系統(tǒng)內(nèi)的鏈接和功能未能真正提供方便;</p><p>  2、缺少一個(gè)針對(duì)有效管理本科畢業(yè)設(shè)計(jì)(論文)工作的基于Web技術(shù)的B/S的管理系統(tǒng),所以很多的管理系統(tǒng)遠(yuǎn)遠(yuǎn)達(dá)不到標(biāo)準(zhǔn),沒(méi)能很好地發(fā)揮管理系統(tǒng)應(yīng)有的效果;</p><p>  3、現(xiàn)實(shí)還沒(méi)有一個(gè)適合我校關(guān)于畢業(yè)設(shè)計(jì)管理工作的管

24、理系統(tǒng),或是直接針對(duì)我校的畢業(yè)設(shè)計(jì)管理工作而編寫(xiě)的管理系統(tǒng)。</p><p>  通過(guò)對(duì)畢業(yè)設(shè)計(jì)管理工作的初步了解,從系統(tǒng)結(jié)構(gòu)的組織,功能的實(shí)現(xiàn),技術(shù)的要求以及可行性等多方面進(jìn)行考慮,認(rèn)為本課題是一個(gè)適應(yīng)現(xiàn)今畢業(yè)設(shè)計(jì)管理工作需求的計(jì)算機(jī)信息管理系統(tǒng),具有一定的實(shí)際開(kāi)發(fā)價(jià)值和使用價(jià)值。</p><p>  1.2 系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)與開(kāi)發(fā)環(huán)境</p><p>  1.2

25、.1 Linux操作系統(tǒng)簡(jiǎn)介[1]</p><p>  Linux 是一個(gè)免費(fèi)的類(lèi)Unix操作系統(tǒng),Linux操作系統(tǒng)是可以運(yùn)行在許多不同類(lèi)型的計(jì)算機(jī)上的一種操作系統(tǒng)的“內(nèi)核”,它是提供命令行或者程序與計(jì)算機(jī)硬件之間接口的軟件的核心部分。</p><p>  1.2.2 Apache服務(wù)器簡(jiǎn)介[1]</p><p>  Apache是世界使用排名第一的Web服務(wù)器軟

26、件,可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上。因?yàn)樗亲杂绍浖?,所以不斷有人?lái)為它開(kāi)發(fā)新的功能、新的特性、修改原來(lái)的缺陷。Apache的特點(diǎn)是簡(jiǎn)單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來(lái)使用。</p><p>  1.2.3 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介[1]</p><p>  MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速

27、度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。</p><p>  1.2.4 PHP語(yǔ)言簡(jiǎn)介[1]</p><p>  PHP獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法,用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CG

28、I要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。</p><p><b>  1.3 全文體系</b></p><p>  第一章簡(jiǎn)述了系統(tǒng)的開(kāi)發(fā)背景、發(fā)展現(xiàn)狀及目的,介紹LAMP的相關(guān)技術(shù)。</p><p&

29、gt;  第二章介紹了基于Web的數(shù)據(jù)庫(kù)技術(shù)的發(fā)展情況,并詳細(xì)介紹了瀏覽器用及務(wù)器模式的工作方式及特點(diǎn),同時(shí)詳細(xì)還介紹了實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的不同方法及PHP技術(shù)在性能方面的優(yōu)越性。</p><p>  第三章討論了運(yùn)用軟件工程的思想,做畢業(yè)設(shè)計(jì)管理的系統(tǒng)功能需求、以及整個(gè)系統(tǒng)的設(shè)計(jì)與分析。</p><p>  第四章主要介紹畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能結(jié)構(gòu)和具體實(shí)現(xiàn),以及所采取的安全控制技術(shù)。&l

30、t;/p><p>  第五章是結(jié)束語(yǔ)??偨Y(jié)了全文的主要思想,分析了今后繼續(xù)努力的方向。</p><p>  國(guó)際互聯(lián)網(wǎng)技術(shù)日新月異,極大地推動(dòng)了基于Internet的應(yīng)用技術(shù)的發(fā)展。支持Web數(shù)據(jù)庫(kù)訪問(wèn)的新技術(shù)也層出不窮。隨著校園網(wǎng)的發(fā)展,基于Internet的各種教學(xué)管理系統(tǒng)、學(xué)生管理系統(tǒng)也在不斷地深入和發(fā)展。本文所介紹的“基于Web的畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”僅僅是高校管理信息系統(tǒng)的一

31、個(gè)小模塊,今后我們將進(jìn)一步努力,不斷地學(xué)習(xí)新知識(shí),爭(zhēng)取將這個(gè)系統(tǒng)做到更加完善。</p><p>  2 基于Web的數(shù)據(jù)庫(kù)技術(shù)分析</p><p>  當(dāng)計(jì)算機(jī)的應(yīng)用開(kāi)始從數(shù)值計(jì)算向數(shù)據(jù)庫(kù)方面發(fā)展的時(shí)候,許多公司和機(jī)構(gòu)都致力于建立一種完美的數(shù)據(jù)庫(kù)運(yùn)行的體系結(jié)構(gòu)。網(wǎng)絡(luò)的出現(xiàn)給計(jì)算機(jī)帶來(lái)一次重大的改革,為了適應(yīng)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫(kù)應(yīng)用,人們依據(jù)計(jì)算機(jī)的應(yīng)用特點(diǎn)和應(yīng)用功能的劃分方式,提出了一系列應(yīng)

32、用框架—主機(jī)/終端模式、客戶(hù)機(jī)/服務(wù)器模式以及隨后的瀏覽器/服務(wù)器模式。在構(gòu)造一個(gè)應(yīng)用系統(tǒng)時(shí),我們首先要考慮的是系統(tǒng)的體系結(jié)構(gòu),采用哪種結(jié)構(gòu)取決于系統(tǒng)的網(wǎng)絡(luò)環(huán)境、應(yīng)用需求等因素。</p><p>  2.1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)層次體系</p><p>  2.1.1 終端/主機(jī)體系結(jié)構(gòu)</p><p>  這是一種早期處理數(shù)據(jù)所采用的模式,如圖2.1所示,這種模式中,服

33、務(wù)器存儲(chǔ)所有數(shù)據(jù),進(jìn)行所有處理運(yùn)算,資源也得到了充分的共享。但是用戶(hù)界面不友好,主機(jī)負(fù)載過(guò)大。</p><p>  圖2.1 終端/主機(jī)體系結(jié)構(gòu)</p><p>  2.1.2 客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu)[7]</p><p>  傳統(tǒng)的C/S結(jié)構(gòu)是兩層的,為了應(yīng)用客戶(hù)機(jī)/服務(wù)器這種體系結(jié)構(gòu),原來(lái)完全放在主機(jī)上的應(yīng)用程序被分成了兩部分:客戶(hù)機(jī)端的應(yīng)用程序和服務(wù)器端的應(yīng)

34、用程序,如圖2.2所示。</p><p>  圖2.2 客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu)</p><p>  由于兩層結(jié)構(gòu)的C/S系統(tǒng)本身固有的缺陷,使得它不能應(yīng)用于一些大型的、結(jié)構(gòu)復(fù)雜的系統(tǒng)中,由此出現(xiàn)了三層結(jié)構(gòu)的C/S系統(tǒng),典型的數(shù)據(jù)庫(kù)應(yīng)用可分成三部分:即表示部分、應(yīng)用邏輯部分和數(shù)據(jù)訪問(wèn)部分。與兩層C/S結(jié)構(gòu)相比,其應(yīng)用邏輯部分被明確地劃分出來(lái)。在硬件實(shí)現(xiàn)上,有兩種方式:</p>

35、<p>  1、客戶(hù)位于客戶(hù)機(jī)上,應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器位于同一主機(jī)上。這種方式在主機(jī)具有良好性能的前提下,能保證應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間的通信效率,減少客戶(hù)和應(yīng)用服務(wù)器之間網(wǎng)絡(luò)上的數(shù)據(jù)傳輸,使系統(tǒng)具有好的性能。如圖2.3所示。</p><p>  2、客戶(hù)位于客戶(hù)機(jī)上,應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器位于不同主機(jī)上。這種方式更加靈活,能夠適應(yīng)客戶(hù)機(jī)數(shù)目的增加和應(yīng)用處理負(fù)荷的變動(dòng)。在增加新的應(yīng)用邏輯時(shí),

36、可以追加新的應(yīng)用服務(wù)器。系統(tǒng)規(guī)模越大,這種方式的優(yōu)點(diǎn)體現(xiàn)得越明顯。如圖2.4所示。</p><p>  兩種方式在復(fù)雜應(yīng)用下,使系統(tǒng)達(dá)到高性能的關(guān)鍵是應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器間的數(shù)據(jù)通信效率,它對(duì)于應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器位于不同主機(jī)上的第二種方式來(lái)說(shuō)尤為重要。</p><p>  三層C/S模式的功能:</p><p>  1、客戶(hù):是應(yīng)用的用戶(hù)接口部分,負(fù)責(zé)用戶(hù)

37、與應(yīng)用程序的交互。它接受用戶(hù)的輸入請(qǐng) 求,將結(jié)果以適當(dāng)?shù)男问椒祷赜脩?hù),常以圖形用戶(hù)界面(GUI)表現(xiàn)出來(lái)。客戶(hù)的GUI界面應(yīng)當(dāng)易于生成和修改,并盡量與其他兩層保持獨(dú)立,以適應(yīng)應(yīng)用的變化。</p><p>  2、應(yīng)用服務(wù)器:是應(yīng)用邏輯處理的核心,是具體業(yè)務(wù)的實(shí)現(xiàn)。它與客戶(hù)間的數(shù)據(jù)交往應(yīng)盡量簡(jiǎn)潔,客戶(hù)將請(qǐng)求信息發(fā)送給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器返回?cái)?shù)據(jù)和結(jié)果。</p><p>  3、數(shù)據(jù)庫(kù)服務(wù)

38、器:以傳統(tǒng)的基于SQL的DBMS實(shí)現(xiàn),它接收應(yīng)用服務(wù)器提出的SQL請(qǐng)求,完成數(shù)據(jù)的存儲(chǔ)、訪問(wèn)和完整性約束等。</p><p>  2.1.3 瀏覽器/服務(wù)器體系結(jié)構(gòu)[7、8]</p><p>  在典型的客戶(hù)機(jī)服務(wù)器體系中,那種為客戶(hù)安裝前端應(yīng)用程序的方法已不再現(xiàn)實(shí)。于是基于瀏覽器/服務(wù)器模式的系統(tǒng)應(yīng)運(yùn)而生,它繼承了客戶(hù)機(jī)/服務(wù)器模式的所有優(yōu)點(diǎn)而克服了它的缺點(diǎn)。防止了“胖客戶(hù)機(jī)”現(xiàn)象的產(chǎn)生

39、,非常容易實(shí)現(xiàn)不同網(wǎng)絡(luò)間的連接。</p><p>  瀏覽器/服務(wù)器的工作原理和過(guò)程:</p><p>  在瀏覽器/服務(wù)器模式中,客戶(hù)端的標(biāo)準(zhǔn)配置是瀏覽器,WEB服務(wù)器成為應(yīng)用處理的標(biāo)準(zhǔn)配置,數(shù)據(jù)處理仍然由數(shù)據(jù)庫(kù)服務(wù)器完成。圖2.5為瀏覽器/服務(wù)器模式構(gòu)成及數(shù)據(jù)處理方式。瀏覽器/服務(wù)器模式是三層分布結(jié)構(gòu),即瀏覽器—Web服務(wù)器—數(shù)據(jù)庫(kù)服務(wù)器。</p><p>  

40、一般情況下的工作流程為:</p><p>  1、用戶(hù)輸入所要啟動(dòng)的主頁(yè)URL(統(tǒng)一資源定位),瀏覽器將生成一個(gè)HTTP請(qǐng)求并把它發(fā)送到指定的web服務(wù)器。</p><p>  2、服務(wù)器把主頁(yè)發(fā)回給瀏覽器,瀏覽器將其顯示在屏幕上。</p><p>  3、用戶(hù)閱讀相關(guān)信息,可繼續(xù)查找有關(guān)信息,向?yàn)g覽器發(fā)出請(qǐng)求。</p><p>  4、瀏覽

41、器發(fā)送一個(gè)請(qǐng)求給相應(yīng)的服務(wù)器,并把由URL標(biāo)識(shí)的文檔/文件返回屏幕。</p><p>  5、服務(wù)器收到請(qǐng)求后,查看本站點(diǎn)是否有該文檔:若有,則把該文檔放入響應(yīng)信息中返回瀏覽器。</p><p>  6、瀏覽器收到響應(yīng),查看頭文件格式,判斷是否能直接顯示。若能就顯示出來(lái),否則,調(diào)用對(duì)應(yīng)的幫助應(yīng)用程序或外掛程序處理。</p><p>  7、瀏覽器等待用戶(hù)的下一條指令

42、,而服務(wù)器準(zhǔn)備接受來(lái)自瀏覽器的下一條請(qǐng)求。</p><p>  2.1.4 C/S結(jié)構(gòu)與B/S結(jié)構(gòu)比較[13]</p><p>  與C/S相比,B/S在許多方面體現(xiàn)了很大的優(yōu)勢(shì),主要體現(xiàn)在以下幾個(gè)方面:</p><p><b>  1、開(kāi)發(fā)和維護(hù)成本</b></p><p>  C/S開(kāi)發(fā)和維護(hù)成本較高,對(duì)不同的客戶(hù)端

43、要開(kāi)發(fā)不同程序,編程工作量大,對(duì)于B/S,只需在客戶(hù)端安裝通用的瀏覽器,所有的維護(hù)和升級(jí)工作都是在服務(wù)器上執(zhí)行的,不需對(duì)客戶(hù)端進(jìn)行任何改變,故而大大降低了開(kāi)發(fā)和維護(hù)成本。</p><p><b>  2、客戶(hù)端任務(wù)</b></p><p>  C/S的客戶(hù)端具有顯示和處理數(shù)據(jù)的功能,任務(wù)過(guò)重,B/S的客戶(hù)端把事務(wù)邏輯部分分給了服務(wù)器,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問(wèn)等關(guān)

44、鍵事務(wù),只負(fù)責(zé)顯示部分,任務(wù)大大減輕。</p><p><b>  3、采用的標(biāo)準(zhǔn)</b></p><p>  C/S所采用的標(biāo)準(zhǔn)只在內(nèi)部統(tǒng)一,其應(yīng)用通常是專(zhuān)用的。B/S所采用的標(biāo)準(zhǔn)是開(kāi)放的、非專(zhuān)用的,保證了其應(yīng)用的通用性和跨平臺(tái)性。</p><p><b>  4、靈活性</b></p><p>

45、  C/S系統(tǒng)模塊中每一部分的變動(dòng)均要影響到其它模塊的變動(dòng),系統(tǒng)升級(jí)困難,靈活性差。B/S各層之間相互獨(dú)立,任何一層的改變不影響其它層的功能,系統(tǒng)改進(jìn)非常容易,靈活性好。</p><p><b>  5、安全性</b></p><p>  C/S系統(tǒng)中的客戶(hù)機(jī)直接與服務(wù)器相連,非法用戶(hù)可以很容易地通過(guò)應(yīng)用程序侵入系統(tǒng),并對(duì)服務(wù)器數(shù)據(jù)庫(kù)進(jìn)行操作,這給系統(tǒng)的安全性帶來(lái)極大

46、的隱患。B/S系統(tǒng)在客戶(hù)機(jī)和服務(wù)器之間增加了一層Web服務(wù)器,是兩者不在相連,客戶(hù)機(jī)無(wú)法直接對(duì)數(shù)據(jù)庫(kù)操作,可有效地防止用戶(hù)的非法入侵。</p><p><b>  6、移植性</b></p><p>  C/S系統(tǒng)對(duì)不同工具開(kāi)發(fā)的應(yīng)用程序,一般來(lái)說(shuō)互不兼容,難以移植到其它平臺(tái)上運(yùn)行,移植性差。B/S系統(tǒng)在客戶(hù)端安裝的是通用瀏覽器,不存在移植性問(wèn)題。</p>

47、<p><b>  7、用戶(hù)界面風(fēng)格</b></p><p>  C/S用戶(hù)的界面由客戶(hù)端應(yīng)用程序決定,用戶(hù)界面各不相同。B/S只需在客戶(hù)端安裝通用的瀏覽器就可以訪問(wèn)應(yīng)用程序,瀏覽器的界面統(tǒng)一友好,易于使用。</p><p>  通過(guò)以上對(duì)C/S和B/S的介紹和比較,B/S的優(yōu)點(diǎn)非常明顯,因此,本系統(tǒng)將采用B/S模式來(lái)開(kāi)發(fā)畢業(yè)設(shè)計(jì)管理系統(tǒng)。</p&

48、gt;<p>  2.2 Web數(shù)據(jù)庫(kù)管理系統(tǒng)介紹</p><p>  Web數(shù)據(jù)庫(kù)管理系統(tǒng)是指基于Web模式的DBMS的信息服務(wù),充分發(fā)揮DBMS高效的數(shù)據(jù)存儲(chǔ)和管理能力,以Web這種瀏覽器用民務(wù)器(B/S)模式為平臺(tái),將客戶(hù)端融入統(tǒng)一的Web瀏覽器,為Internet用戶(hù)提供使用簡(jiǎn)便、內(nèi)容豐富的服務(wù)。更好的實(shí)現(xiàn)不同地域的其他人使用這些信息。</p><p>  2.2.1

49、 Web數(shù)據(jù)庫(kù)管理系統(tǒng)工作原理[13、14、15]</p><p>  在WWW中,瀏覽器是用戶(hù)可見(jiàn)的存在界面,在該界面中,用戶(hù)輸入信息,瀏覽器將該輸入信息發(fā)送到服務(wù)器端。由服務(wù)器通過(guò)外部程序訪問(wèn)數(shù)據(jù)庫(kù),并將結(jié)果返回給瀏覽器。其工作原理如圖2.6所示。</p><p>  基于Web的數(shù)據(jù)庫(kù)采用3層的客戶(hù)端/服務(wù)器結(jié)構(gòu):第一層是瀏覽器,第二層是Web服務(wù)器,第三層包括一些應(yīng)用程序及相關(guān)的數(shù)

50、據(jù)庫(kù)。瀏覽器作為用戶(hù)輸入查詢(xún)條件和顯示查詢(xún)結(jié)果的交互界面,用戶(hù)可以通過(guò)填寫(xiě)表單或輸入關(guān)鍵字的方式來(lái)與Web交互。當(dāng)用戶(hù)單擊表單上的按鈕時(shí),表單中的數(shù)據(jù)便被發(fā)送到Web服務(wù)器。Web服務(wù)器負(fù)責(zé)用戶(hù)輸入信息的接收,它將數(shù)據(jù)傳送至要被處理的腳本或應(yīng)用程序,并在數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)。最后,Web服務(wù)器將返回結(jié)果插入到HTML頁(yè)面,傳送至瀏覽器以響應(yīng)用戶(hù)。</p><p>  2.2.2 利用WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)</p

51、><p>  與傳統(tǒng)方式相比,通過(guò)WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)在于:</p><p>  1、借用瀏覽器軟件,無(wú)需開(kāi)發(fā)數(shù)據(jù)庫(kù)前端;如果能夠通過(guò)WWW來(lái)訪問(wèn)數(shù)據(jù)庫(kù),我們就不需要開(kāi)發(fā)客戶(hù)端的程序,使用的數(shù)據(jù)庫(kù)應(yīng)用都可以通過(guò)瀏覽器來(lái)實(shí)現(xiàn),界面統(tǒng)一,降低了成本,能使廣大用戶(hù)很方便地訪問(wèn)數(shù)據(jù)庫(kù)信息.</p><p>  2、標(biāo)準(zhǔn)統(tǒng)一,開(kāi)發(fā)過(guò)程簡(jiǎn)單:HTML是WWW信息的組織方式,是一種

52、國(guó)際標(biāo)準(zhǔn),使用的www服務(wù)器與瀏覽器均遵循這個(gè)標(biāo)準(zhǔn)。使用HTML標(biāo)準(zhǔn),開(kāi)發(fā)者甚至只需學(xué)習(xí)HTML一種語(yǔ)言,使用者只需學(xué)習(xí)一種界面—瀏覽器界面。</p><p>  3、交叉平臺(tái)支持,幾乎在各種操作系統(tǒng)上都有現(xiàn)成的瀏覽器可供使用,為一個(gè)www服務(wù)器書(shū)寫(xiě)的HTML文件,可以被所有平臺(tái)的瀏覽器所瀏覽,實(shí)現(xiàn)了跨平臺(tái)操作。 實(shí)現(xiàn)www數(shù)據(jù)庫(kù)的方法有很多,如中間件技術(shù)、JAVA技術(shù)、下載到客戶(hù)端訪問(wèn)技術(shù)、ASP技術(shù)、ASP.

53、NET技術(shù)、PHP技術(shù)等。</p><p><b>  2.3 本章小結(jié)</b></p><p>  本章首先介紹了數(shù)據(jù)庫(kù)運(yùn)行的三種不同的體系結(jié)構(gòu),即主機(jī)/終端結(jié)構(gòu)、客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)、瀏覽器/服務(wù)器結(jié)構(gòu),并詳細(xì)介紹了瀏覽器/服務(wù)器的工作原理、工作流程及其在性能方面的優(yōu)勢(shì)。隨后,介紹了Web數(shù)據(jù)庫(kù)管理系統(tǒng)的概念,描述了其工作原理。</p><p&g

54、t;<b>  3 系統(tǒng)分析與設(shè)計(jì)</b></p><p>  系統(tǒng)分析和設(shè)計(jì)是信息系統(tǒng)開(kāi)發(fā)的一個(gè)重要環(huán)節(jié)。本章將主要介紹一個(gè)基于WEB的B/S結(jié)構(gòu)的畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能需求、總體框架、以及系統(tǒng)開(kāi)發(fā)原理等做系統(tǒng)的分析研究,并介紹系統(tǒng)所擁有的特點(diǎn)。</p><p>  3.1 系統(tǒng)功能需求</p><p>  該系統(tǒng)一般包括對(duì)選題的發(fā)布、更新、

55、刪除,學(xué)生畢業(yè)設(shè)計(jì)文檔信息、導(dǎo)師文檔信息的上傳(在指導(dǎo)時(shí)間前才可提交)和相關(guān)信息的發(fā)布、查詢(xún)、更新、輸出等功能。如果人工直接操作的話(huà),工作量將十分龐大,特別是,如果學(xué)生人數(shù)有幾千或上萬(wàn)時(shí),人工操作將變得相當(dāng)繁雜。用計(jì)算機(jī)可使人們從繁重而又單調(diào)的工作中解脫出來(lái),僅用一些簡(jiǎn)單的操作便可及時(shí)準(zhǔn)確地獲得需要的信息。畢業(yè)設(shè)計(jì)管理系統(tǒng)是一個(gè)為適應(yīng)當(dāng)前畢業(yè)設(shè)計(jì)管理工作的需求而設(shè)計(jì)開(kāi)發(fā)的軟件系統(tǒng)。該系統(tǒng)的前臺(tái)采用的是VIM開(kāi)發(fā)系統(tǒng),后臺(tái)數(shù)據(jù)庫(kù)采用的是M

56、ySQL數(shù)據(jù)庫(kù)。</p><p>  對(duì)系統(tǒng)功能的規(guī)定:該系統(tǒng)的角色是學(xué)生、教師(導(dǎo)師)和系統(tǒng)管理員。學(xué)生和教師是系統(tǒng)的用戶(hù),而系統(tǒng)管理員是系統(tǒng)管理者,雖然系統(tǒng)管理者也是一個(gè)用戶(hù),但并不影響本系統(tǒng)的功能。</p><p>  該系統(tǒng)的分析可以用UML來(lái)描述,如下圖3.1所示。</p><p>  3.2 系統(tǒng)功能特點(diǎn)</p><p>  1、

57、操作簡(jiǎn)單、界面友好:完全控件式的頁(yè)面布局,使得所有的錄入工作更簡(jiǎn)便;另外,跟蹤出現(xiàn)的提示信息也讓用戶(hù)隨時(shí)清楚自己的操作情況。</p><p>  2、即時(shí)可見(jiàn):對(duì)操作的處理(包括上傳、修改、刪除等)將立即在頁(yè)面的對(duì)應(yīng)欄目顯示出來(lái),達(dá)到"即時(shí)發(fā)布、即時(shí)見(jiàn)效"的功能。</p><p>  3、功能完善:包括常見(jiàn)網(wǎng)站的管理的各個(gè)方面:錄入、瀏覽、刪除、修改、檢索等各個(gè)方面,完

58、整地實(shí)現(xiàn)了系統(tǒng)對(duì)各項(xiàng)工作的管理要求。</p><p>  4、方便移植:針對(duì)不同的學(xué)院,只需要稍作修改就可以開(kāi)發(fā)出適合本學(xué)院特點(diǎn)的畢業(yè)設(shè)計(jì)管理系統(tǒng)。</p><p><b>  3.3 系統(tǒng)設(shè)計(jì)</b></p><p>  3.3.1 系統(tǒng)開(kāi)發(fā)原理</p><p>  PHP結(jié)構(gòu)是一個(gè)三層系統(tǒng):UI層、業(yè)務(wù)邏輯層和數(shù)據(jù)層

59、,如圖3.3所示。</p><p>  UI層負(fù)責(zé)與用戶(hù)交互,接收用戶(hù)的輸入并將服務(wù)器端傳來(lái)的數(shù)據(jù)呈現(xiàn)給客戶(hù)。</p><p>  業(yè)務(wù)邏輯層負(fù)責(zé)接收瀏覽器傳來(lái)的請(qǐng)求并將請(qǐng)求傳給數(shù)據(jù)層,同時(shí)將請(qǐng)求處理結(jié)果發(fā)給瀏覽器。它由Web表單、XML Web服務(wù)和組件服務(wù)組成。其中Web表單是PHP應(yīng)用程序的核心所在,它是向客戶(hù)呈現(xiàn)數(shù)據(jù)和信息的基礎(chǔ),也是響應(yīng)和處理客戶(hù)與顯示的Web表單交互生成的信息和

60、數(shù)據(jù)的基礎(chǔ)。</p><p>  數(shù)據(jù)層是通過(guò)PHP操縱數(shù)據(jù)為事務(wù)邏輯層提供數(shù)據(jù)服務(wù),如存儲(chǔ)數(shù)據(jù)操作結(jié)果、返回?cái)?shù)據(jù)檢索結(jié)果等。</p><p>  3.3.2 系統(tǒng)功能設(shè)計(jì)</p><p>  本系統(tǒng)的主要功能結(jié)構(gòu)如下:</p><p>  該畢業(yè)管理系統(tǒng)可以在Windows XP 或Linux操作系統(tǒng)平臺(tái)上運(yùn)行,Web服務(wù)器為Apache,

61、數(shù)據(jù)庫(kù)服務(wù)器為MySQL,開(kāi)發(fā)工具采用的BlueFish和Vim。圖3.4給出系統(tǒng)的功能結(jié)構(gòu)圖。其工作流程為:用戶(hù)登錄通過(guò)權(quán)限判斷,游客只能瀏覽首頁(yè)內(nèi)容,注冊(cè)用戶(hù)除了可以完成游客的操作外,還可以閱讀和查詢(xún)新聞、下載相關(guān)資料、進(jìn)入學(xué)生(或教師)管理模塊進(jìn)行上傳、修改和刪除等操作。注冊(cè)用戶(hù)除系統(tǒng)管理員外只能對(duì)自己錄入的內(nèi)容進(jìn)行刪改操作。系統(tǒng)管理員具有最高權(quán)限,包括審核注冊(cè)用戶(hù)信息、發(fā)布信息等。</p><p>  3

62、.3.3 系統(tǒng)總體設(shè)計(jì)</p><p>  本系統(tǒng)的用戶(hù)通過(guò)首頁(yè),進(jìn)入登陸頁(yè)面,通過(guò)用戶(hù)身份驗(yàn)證(系統(tǒng)根據(jù)用戶(hù)權(quán)限)進(jìn)入不同的管理頁(yè)面,用戶(hù)通過(guò)管理頁(yè)面進(jìn)行具體的操作。如圖3.5所示:</p><p>  3.4 系統(tǒng)功能概述</p><p>  系統(tǒng)的主要功能是通過(guò)幾個(gè)功能模塊來(lái)實(shí)現(xiàn)的。具體的設(shè)計(jì)過(guò)程如下:</p><p>  1、系統(tǒng)登錄

63、:該模塊負(fù)責(zé)將用戶(hù)分為學(xué)生、教師和管理員來(lái)實(shí)現(xiàn)用戶(hù)權(quán)限的管理。</p><p>  2、信息發(fā)布模塊主要包括以下:</p><p>  (1)信息瀏覽(這里的信息包括新聞公告、規(guī)章制度、設(shè)計(jì)安排、推薦范文、表格下載、優(yōu)秀論文、課題的發(fā)布等):該模塊負(fù)責(zé)分頁(yè)列出網(wǎng)站所有的信息,包括標(biāo)題、類(lèi)型、來(lái)源部門(mén)字段及發(fā)布日期,每條新聞的標(biāo)題被做成一個(gè)超鏈接,點(diǎn)擊它們就能跳轉(zhuǎn)頁(yè)面進(jìn)行信息閱讀。</

64、p><p>  (2)信息閱讀:在其他頁(yè)面中點(diǎn)擊標(biāo)題鏈接即進(jìn)入信息閱讀頁(yè)面,此時(shí),每條信息的詳細(xì)信息將被取出,包括內(nèi)容、標(biāo)題、關(guān)鍵字等,并按照相對(duì)固定的格式放置在頁(yè)面的不同區(qū)域,所有信息使用大致相同的頁(yè)面布局,只是各字段對(duì)應(yīng)的內(nèi)容不同而已。</p><p> ?。?)信息查詢(xún):該模塊提供了信息查詢(xún)功能,輸入待查找的內(nèi)容及選定分類(lèi)信息可以快速地找到符合條件的信息,并輸出查詢(xún)結(jié)果。</p&g

65、t;<p> ?。?)信息管理:該模塊負(fù)責(zé)分頁(yè)羅列管理員曾發(fā)布過(guò)且未刪除的信息,并可以對(duì)該條信息進(jìn)行刪除、修改。此信息除系統(tǒng)管理員外其他用戶(hù)不具有對(duì)該信息的處理權(quán)限(除教師有發(fā)布選題的權(quán)限外)。</p><p>  (5)信息錄入和修改:管理員錄入一條信息所需要的內(nèi)容,包含標(biāo)題、關(guān)鍵字、類(lèi)型、來(lái)源部門(mén)、發(fā)布日期等,同時(shí)從登錄模塊得到用戶(hù)名,這些信息將被寫(xiě)入數(shù)據(jù)庫(kù)中保存。</p><

66、;p>  3、文檔上傳:該模塊負(fù)責(zé)所有用戶(hù)的文檔上交工作。每個(gè)用戶(hù)注冊(cè)后有自己?jiǎn)为?dú)的文件夾,登陸后上傳的文檔(在指定時(shí)間前上傳)將會(huì)被保留在此文件夾中。</p><p>  4、消息處理:主要負(fù)責(zé)各個(gè)用戶(hù)之間相互發(fā)送消息使用。用戶(hù)可輸入對(duì)方的用戶(hù)名發(fā)送消息給對(duì)方。</p><p>  5、用戶(hù)注冊(cè):包括學(xué)生和教師的注冊(cè)(需在指定時(shí)間段內(nèi)注冊(cè)或是直接由管理員添加)。</p>

67、<p><b>  3.5 本章小結(jié)</b></p><p>  本章主要運(yùn)用軟件工程的基本方法,介紹了畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能需求,并對(duì)系統(tǒng)進(jìn)行了詳細(xì)的介紹和分析,給出了系統(tǒng)各個(gè)功能模塊的主要功能和設(shè)計(jì)指標(biāo),使整個(gè)系統(tǒng)的設(shè)計(jì)思路更加清晰,使用戶(hù)和軟件測(cè)試等人員對(duì)系統(tǒng)有了更加深刻的理解。為系統(tǒng)的具體實(shí)現(xiàn)和代碼的編寫(xiě)工作做了很好的鋪墊。</p><p>&l

68、t;b>  4 系統(tǒng)功能實(shí)現(xiàn)</b></p><p>  《基于WEB的畢業(yè)設(shè)計(jì)管理系統(tǒng)》的任務(wù)是對(duì)學(xué)校畢業(yè)設(shè)計(jì)管理中的工作進(jìn)行集中處理,使教師與教師之間,教師與學(xué)生之間能更快、更方便的交流,取代原來(lái)的電話(huà)(或Email)通知和聯(lián)系,材料紙的發(fā)送等諸多不便,也使學(xué)院能更好、更快的發(fā)布最新的關(guān)于畢業(yè)設(shè)計(jì)(論文)的相關(guān)信息和通知,及監(jiān)督學(xué)生畢業(yè)設(shè)計(jì)(論文)的完成情況和文檔上交情況。該系統(tǒng)主要內(nèi)容包括

69、: 用戶(hù)注冊(cè)(包括學(xué)生和教師)、教師出題、學(xué)生選題、文檔上交、相互留言等。通過(guò)這個(gè)系統(tǒng),可以使廣大師生從繁雜瑣碎的事情中解脫出來(lái),專(zhuān)心投入畢業(yè)設(shè)計(jì)(論文)的工作中去,提高整個(gè)畢業(yè)設(shè)計(jì)工作的工作效率。</p><p>  4.1 系統(tǒng)結(jié)構(gòu)和流程</p><p>  4.1.1 學(xué)生模塊結(jié)構(gòu)</p><p>  學(xué)生在注冊(cè)通過(guò)管理員審核后,登錄系統(tǒng)進(jìn)行相關(guān)操作,包括根據(jù)

70、自己的導(dǎo)師進(jìn)行畢業(yè)設(shè)計(jì)(論文)的選題或是自選課題,也可以瀏覽本站的所有信息,包括公告、工作安排等、下載設(shè)計(jì)表格、往年優(yōu)秀論文范文以及系統(tǒng)本站提供的其它資料下載等。修改自己的基本資料和密碼,以及上傳和管理自己的文檔資料,還可以給自己的導(dǎo)師留言等。</p><p>  其具體結(jié)構(gòu)如下圖4.1所示:</p><p>  4.1.2 教師模塊結(jié)構(gòu)</p><p>  教師用

71、戶(hù)同樣需要注冊(cè),并通過(guò)管理員審核后方可登錄本系統(tǒng)進(jìn)行操作。具體包括如下操作:</p><p>  1、可以給自己所帶的學(xué)生出畢業(yè)設(shè)計(jì)(論文)的課題,供學(xué)生選擇。以及審核學(xué)生的選題情況。</p><p>  2、可以瀏覽本站的所有信息,包括通知、工作安排、規(guī)章制度等信息。</p><p>  3、可以查看自己學(xué)生的信息,以及文檔上交情況。</p><

72、;p>  4、上交自己的文檔和修改本人的資料、密碼等。</p><p>  5、可以給自己的學(xué)生、其他教師和管理員進(jìn)行留言,并查閱自己的留言。</p><p>  其具體如下圖4.2所示:</p><p>  4.1.3 管理員模塊結(jié)構(gòu)</p><p>  管理員擁有系統(tǒng)的最高權(quán)限,其權(quán)限包括對(duì)注冊(cè)用戶(hù)進(jìn)行審核、查看所有用戶(hù)的資料信息、

73、對(duì)總體選題情況進(jìn)行查詢(xún)(包括總體選題情況、已選情況和未選情況)、監(jiān)督學(xué)生和教師的各種文檔上交情況、審核學(xué)生申請(qǐng)、發(fā)布學(xué)院最新消息和其他信息的添加、刪除和更新,上傳相關(guān)表格等,還可以對(duì)“系統(tǒng)內(nèi)容進(jìn)行設(shè)置”、和“數(shù)據(jù)庫(kù)備份”等管理權(quán)限。</p><p>  其具體結(jié)構(gòu)如下圖4.3所示:</p><p>  4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)和構(gòu)建</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)是項(xiàng)目開(kāi)

74、發(fā)中的系統(tǒng)設(shè)計(jì)中非常重要的一個(gè)關(guān)鍵環(huán)節(jié),之所以強(qiáng)調(diào)數(shù)據(jù)庫(kù)的重要性,是因?yàn)閿?shù)據(jù)庫(kù)設(shè)計(jì)就像在建設(shè)高樓大廈的根基一樣,如果設(shè)計(jì)不好,在后來(lái)的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時(shí),甚至在系統(tǒng)開(kāi)發(fā)過(guò)程中,將會(huì)引起比較大的問(wèn)題,會(huì)遇到非常大的困難,大量工作將會(huì)重新進(jìn)行。</p><p>  在本系統(tǒng)中所需要設(shè)計(jì)的數(shù)據(jù)庫(kù)表如下表4.1所示。</p><p>  表4.2 注冊(cè)用戶(hù)基本信息表 User</p&

75、gt;<p>  表4.3 學(xué)生用戶(hù)詳細(xì)信息表 Student</p><p>  表4.4 教師用戶(hù)詳細(xì)信息表 Teacher</p><p>  注冊(cè)用戶(hù)基本信息表保存的是后臺(tái)用戶(hù)的基本信息。其中“用戶(hù)ID”和“用戶(hù)密碼”是用于以后登陸,為了不引起混亂,要求“用戶(hù)ID”是本人的學(xué)生ID或教師編號(hào)在表中唯一;電話(huà)、電子郵件、所在學(xué)院、所學(xué)專(zhuān)業(yè)等是用戶(hù)的基本信息。</p

76、><p>  表4.5 管理員信息表 Admin</p><p>  表4.6 消息管理表 Message</p><p>  表4.7 選題信息表 Subject</p><p>  表4.8 上傳文檔表 Upfile</p><p>  表4.9 學(xué)生成績(jī)信息表 Mark</p><p>  4

77、.3 主要功能分析與實(shí)現(xiàn)</p><p>  4.3.1 用戶(hù)登陸</p><p>  在一個(gè)系統(tǒng)中,用戶(hù)登錄驗(yàn)證是非常重要的,要考慮的問(wèn)題也比較多,比如該用戶(hù)是否存在、用戶(hù)名和密碼是否正確等等,在本系統(tǒng)中我們用如下代碼進(jìn)行用戶(hù)登錄的實(shí)現(xiàn)。</p><p>  if(strlen($user_ID)=="8")</p><p&

78、gt;<b>  {</b></p><p>  if($degree == '學(xué)生')</p><p><b>  {</b></p><p>  $sql = "select * from $Student where student_ID='$user_ID'";&

79、lt;/p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows($count);</p><p>  if($num==0)</p><p><b>  {</b></p><p>  echo "<scr

80、ipt>alert('此用戶(hù)不存在,請(qǐng)檢查!');history.back();</script>";</p><p><b>  exit();</b></p><p><b>  }//if</b></p><p><b>  else</b></

81、p><p><b>  {</b></p><p>  $sql = "select * from $Student where student_ID='$user_ID' and sex='$sex'";</p><p>  $count = mysql_query($sql);</p&g

82、t;<p>  $num = mysql_num_rows($count);</p><p>  if($num==0)</p><p><b>  {</b></p><p>  echo "<script>alert('性別不符,請(qǐng)檢查!');history.back();</scr

83、ipt>";</p><p><b>  exit();</b></p><p><b>  }//if</b></p><p>  $sql = "select * from $Student where student_ID='$user_ID' and college=

84、9;$college' and major='$major'";</p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows($count);</p><p>  if($num==0)</p><p><b>  {&

85、lt;/b></p><p>  echo "<script>alert('所在學(xué)院或所學(xué)專(zhuān)業(yè)不符,請(qǐng)檢查!');history.back();</script>";</p><p><b>  exit();</b></p><p><b>  }//if </

86、b></p><p><b>  }//else</b></p><p><b>  }//if</b></p><p>  if($degree == '教師')</p><p><b>  {</b></p><p>  $sq

87、l = "select * from $Teacher where teacher_ID='$user_ID'";</p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows($count);</p><p>  if($num==0)</p&g

88、t;<p><b>  {</b></p><p>  echo "<script>alert('此用戶(hù)不存在,請(qǐng)檢查!');history.back();</script>";</p><p><b>  exit();</b></p><p>&

89、lt;b>  }//if</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  $sql = "select * from $Teacher where teacher_ID='$user_ID' and sex=

90、9;$sex'";</p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows($count);</p><p>  if($num==0)</p><p><b>  {</b></p><p> 

91、 echo "<script>alert('性別不符,請(qǐng)檢查!');history.back();</script>";</p><p><b>  exit();</b></p><p><b>  }//if</b></p><p>  $sql = &quo

92、t;select * from $Teacher where teacher_ID='$user_ID' and college='$college' and major='$major'";</p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows(

93、$count);</p><p>  if($num==0)</p><p><b>  {</b></p><p>  echo "<script>alert('所在學(xué)院或?qū)I(yè)不符,請(qǐng)檢查!');history.back();</script>";</p><p&

94、gt;<b>  exit();</b></p><p><b>  }//if</b></p><p><b>  }//else</b></p><p><b>  }//if</b></p><p>  $sql = "select * f

95、rom $User where user_ID='$user_ID'";</p><p>  $count = mysql_query($sql);</p><p>  $num = mysql_num_rows($count);</p><p>  if($num!=0)</p><p><b>  {&

96、lt;/b></p><p>  echo "<script>alert('此用戶(hù)已經(jīng)注冊(cè),請(qǐng)檢查!');history.back();</script>";</p><p><b>  exit();</b></p><p><b>  }//if</b>

97、</p><p><b>  else</b></p><p>  if($user_ID!="" && $user_passwd!="" && $sex!="" && $email!="" && $tel_num!=&quo

98、t;" && $degree!="" && $address!="")</p><p><b>  {</b></p><p>  $QUERY=mysql_query("INSERT INTO $User VALUES ('$user_ID','$us

99、er_passwd','$question','$answer','$sex','$email','$tel_num','$college','$major','$degree','$address')");</p><p>  if($QUERY)

100、 //注意</p><p><b>  {</b></p><p>  if($degree == '學(xué)生')</p><p><b>  {</b></p><p>  $SQL = "SELECT student_name FROM $Student WHERE

101、 student_ID='$user_ID'";</p><p>  $QUERY = mysql_query($SQL);</p><p>  $row = mysql_fetch_array($QUERY);</p><p>  $student_name = $row['student_name'];</p>

102、;<p>  echo "<p align=\"center\"><b><big>學(xué)生: $student_name 感謝您的注冊(cè)!<br><font color='red'><a href='index.php'>點(diǎn)此返回登錄</a></font></big&

103、gt;</b></p>";</p><p><b>  }//if'學(xué)生'</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  $SQL = "SELECT

104、 * FROM $Teacher WHERE teacher_ID='$user_ID'";</p><p>  $QUERY = mysql_query($SQL);</p><p>  $row = mysql_fetch_array($QUERY);</p><p>  $teacher_name = $row['teache

105、r_name'];</p><p>  echo "<p align=\"center\"><b><big>教師:$teacher_name 感謝您的注冊(cè)!<br><font color='red'><a href='index.php'>點(diǎn)此返回登錄</a>&

106、lt;/font></big></b></p>";</p><p>  }//else'教師'</p><p><b>  }//if</b></p><p><b>  }//if</b></p><p><b>  e

107、lse</b></p><p><b>  {</b></p><p>  echo "<script>history.back();</script>";</p><p><b>  }//else</b></p><p><b>

108、  }//if</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  echo "<script>history.back();</script>";</p><p><b>

109、;  }//else</b></p><p><b>  }//if</b></p><p>  4.3.2 文件上傳</p><p>  在開(kāi)發(fā)PHP項(xiàng)目時(shí),經(jīng)常遇到要上傳文件的情況,出于安全考慮,我們不但要對(duì)上傳文件的擴(kuò)展名進(jìn)行判斷,同時(shí)還要避免上傳文件的重名現(xiàn)象等問(wèn)題,所以在本系統(tǒng)中采用如下代碼進(jìn)行實(shí)現(xiàn)。</p>

110、<p>  $upload_file=$_FILES['upload_file']['tmp_name'];</p><p>  /*存儲(chǔ)文件名稱(chēng)*/</p><p>  $upload_file_name=$_FILES['upload_file']['name'];</p><p>  

111、/*上傳文件大小*/</p><p>  $upload_file_size = $_FILES['upload_file']['size'];</p><p>  if($upload_file)</p><p><b>  {</b></p><p>  $file_size_max

112、= 2*1024*1024; //2M限制文件上傳最大容量</p><p>  $store_dir = "/var/www/gms/UPLOADS/"; //上傳文件的存儲(chǔ)位置</p><p>  $accept_overwrite = 1; //是否允許覆蓋相同文件</p><p>

113、;  if($upload_file_size > $file_size_max)</p><p><b>  {</b></p><p>  echo "<script>alert ('對(duì)不起,您的文件容量太大!');history.back();</script>";</p><

114、p><b>  exit();</b></p><p><b>  }//if</b></p><p>  if(file_exists($store_dir.$upload_file_name)&& !$accept_overwrite)</p><p><b>  {</b>

115、</p><p>  echo "<script>alert ('存在相同文件名的文件!');history.back();</script>"; </p><p><b>  exit();</b></p><p><b>  }//if</b></p&g

116、t;<p>  if(!move_uploaded_file($upload_file, $store_dir.$upload_file_name))</p><p><b>  {</b></p><p>  echo "<script>alert ('文件上傳失敗,請(qǐng)重新上傳!');history.back();

117、</script>";</p><p><b>  exit();</b></p><p><b>  }//if</b></p><p><b>  else</b></p><p><b>  {</b></p>&

118、lt;p>  $from = $_COOKIE['cookie_user_ID'];</p><p>  $time = date("Y-m-d H:i:s");</p><p>  $sql = "insert into $Upfile (upfile_name,upfile_size,upfile_path,upfile_from,u

119、pfile_time) value ('$upload_file_name','$upload_file_size','$store_dir','$from','$time')";</p><p>  $query = mysql_query($sql) or die ('連接錯(cuò)誤!');</p>

120、<p>  if($query)</p><p><b>  {</b></p><p>  echo "<script>alert ('文件上傳成功!');</script>";</p><p>  echo "<html><meta htt

121、p-equiv=\"refresh\" content=\"0; url=send.php \"></html>";</p><p><b>  exit();</b></p><p><b>  }//if</b></p><p><b>  

122、}//else</b></p><p><b>  }//if</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  echo "<script>alert ('沒(méi)有發(fā)現(xiàn)文件!

123、');history.back();</script>";</p><p><b>  exit();</b></p><p><b>  }//else</b></p><p>  4.4 安全控制技術(shù)</p><p>  Web 窗體框架包含一組驗(yàn)證服務(wù)器控件,這些

124、控件提供易用但功能強(qiáng)大的方法檢查輸入窗體的錯(cuò)誤,并在必要時(shí)向用戶(hù)顯示消息,這樣可以提高用戶(hù)輸入數(shù)據(jù)的正確性和可靠性,避免因?yàn)檩斎脲e(cuò)誤數(shù)據(jù)而使系統(tǒng)出現(xiàn)不必要的錯(cuò)誤。</p><p>  同時(shí)Web服務(wù)器不僅要為用戶(hù)設(shè)置登錄密碼,以限制用戶(hù)查看、運(yùn)行和操作PHP頁(yè)面的方式,還應(yīng)對(duì)目錄有訪問(wèn)控制,可限制特定人對(duì)特定目錄的訪問(wèn),如某特定學(xué)生只能訪問(wèn)存放有自己文檔的目錄。采用Session和Cookies等技術(shù)對(duì)非登陸用戶(hù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論