BBS論壇畢業(yè)設(shè)計論文_第1頁
BBS論壇畢業(yè)設(shè)計論文_第2頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-

PAGE

2

--

1

目錄

摘要-2-

緒論-3-

1.1BBS的發(fā)展背景-3-

1.2BBS對大學生學習生活的影響-3-

1.2.1BBS提供了豐富的網(wǎng)絡(luò)學習資源-3-

1.2.2BBS促進了協(xié)作學習-3-

1.2.3BBS提高了學生自主學習能力-4-

2軟件介紹及基本原理-5-

2.1ADO技術(shù)-5-

2.2開發(fā)環(huán)境及工具-6-

2.3 ASP有關(guān)的內(nèi)置對象的設(shè)置-6-

2.3.1 Request對象-6-

2.3.2 Response對象-6-

2.3.3 Server對象-6-

2.3.4 Session對象-7-

2.4與ADO 有關(guān)的設(shè)置-7-

3系統(tǒng)需求規(guī)劃-8-

3.1需求分析-8-

3.2功能設(shè)計-11-

3.2.1基本功能設(shè)計-11-

3.2.2擴展功能設(shè)計-12-

3.3設(shè)計可擴充功能的接口-13-

4功能模塊與數(shù)據(jù)庫設(shè)計-14-

4.1設(shè)計框架-14-

4.2模塊的劃分及設(shè)計-16-

4.2.1我所負責的頁面代碼-18-

首頁:-18-

4.3設(shè)計數(shù)據(jù)庫-23-

4.4創(chuàng)建數(shù)據(jù)庫-23-

5系統(tǒng)實現(xiàn)與測試-24-

5.1驗證性測試-24-

5.2添加、編輯和刪除功能測試 -27-

6結(jié)束語-28-

6.1系統(tǒng)的特點與局限性-28-

6.1.1特點-28-

6.1.2局限性-29-

6.2實施過程中的一些體會-29-

致謝-30-

參考文獻-31-

摘要

BBS已經(jīng)成為人們獲取信息、發(fā)表言論的重要場所。它由論壇注冊用戶所發(fā)表的大

量主題組成。近些年來,隨著校園網(wǎng)建設(shè)的發(fā)展,大學校園網(wǎng)BBS也越來越火,因此建設(shè)一個好的BBS顯得越來越有必要了.本文論述了開發(fā)一個簡單的BBS系統(tǒng)所用到的關(guān)鍵技術(shù)和方法。其中運用了VB技術(shù)、ACCESS數(shù)據(jù)庫等等,對上述技術(shù)的實現(xiàn)方法進行了詳細的討論,介紹了在WEB服務(wù)器上,利用VB技術(shù)和ADO等技術(shù),實現(xiàn)了一個簡單的BBS系統(tǒng)的設(shè)計與開發(fā),并詳細討論了該系統(tǒng)的實現(xiàn)過程及其結(jié)構(gòu)。

Abstract

BBShasbeenaccesstoinformation,animportantplaceofspeech.Itis

published bytheForumtoregistered userscomposedofalarge numberoftopics.Inrecentyears,withthedevelopmentofthecampusnetworkconstruction,the

Universitycampusnetworkmoreandmorefire,BBS,BBSthereforeseemsagoodbuildingmoreandmorenecessary.ThisarticlediscussesthedevelopmentofasimpleBBSsystemisthekeytechnologyusedinandmethods.OneuseoftheVBtechnique,ACCESSdatabase,etc.,therealizationofthesetechnicalmethodsare

discussed indetail,describes theWEBserver, using VBandADOtechnologies such

astechnology, asimple BBSsystemdesignanddevelopment,discussed in detail thesystemimplementationprocessanditsstructure.

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-

PAGE

5

--

3

緒論

BBS的發(fā)展背景

BBS是在1992年底隨著國際互聯(lián)網(wǎng)的開始流行而迅速發(fā)展起來的 .互聯(lián)網(wǎng)的產(chǎn)生使得以前只能在本地訪問的 BBS可以被全世界隨意訪問,這對大多數(shù)人來說是極具誘惑力

的.BBS是一個有多人參加的討論系統(tǒng),在BBS上大家可以對一個共同感興趣的問題進行討論,自由地發(fā)表自己的意見與觀點,并且能直接與其他的人進行溝通 .按照網(wǎng)站的性質(zhì)以及服務(wù)對象來分,迄今有以下幾種類型:一是校園BBS.校園BBS作為主要的集中地,在BBS領(lǐng)

域具有舉足輕重的地位.由于校園BBS的繁榮,吸引了很多的社會人士參與.二是專業(yè)BBS.一般是由各個著名的大公司組建,人們可以利用其交流自己對商品的看法 ,更為重要的是可以解決商品使用中的問題.三是商業(yè)BBS.它是由ISP建立的BBS站點,這類BBS站點各種信息比較多,內(nèi)容相當豐富.四是小型局域BBS.一般是由個人或小型集體建立,為小范圍信息交流服務(wù).五是業(yè)余BBS.一般由BBS愛好者個人利用一些免費空間辦的 BBS,目的是為廣大網(wǎng)友提供一個在某些專業(yè)上的交流場所 .六是新聞媒體BBS.是由新聞媒體網(wǎng)站設(shè)立的,為廣大網(wǎng)友提供對新聞信息進行評論、發(fā)表意見和觀點的場所 .隨著互聯(lián)網(wǎng)事業(yè)的蓬勃發(fā)展.BBS,這個具有強大實時交互功能,信息交流的平臺,使人們不再像電視觀眾、電臺聽眾、報紙雜志讀者一樣只是被動地觀看、收聽、閱讀 ,而是可以積極而及時地參與討論,在了解他人觀點意見的同時也可以發(fā)表自己的看法 .

BBS對大學生學習生活的影響

BBS提供了豐富的網(wǎng)絡(luò)學習資源

論壇是一個經(jīng)過學習者整理加工過的網(wǎng)絡(luò)資源匯 en集中心,從新聞、學習到娛樂、體育,從文字到視頻、音頻,BBS匯集了各種形式、內(nèi)容的網(wǎng)絡(luò)資源。不少 BBS都設(shè)有專門的NetResources(網(wǎng)絡(luò)資源)板塊;FTP技術(shù)和BT技術(shù)的發(fā)展更是為BBS站內(nèi)資源的更新、共享提供了方便。如今,大部分大學的 BBS論壇都有相應(yīng)的FTP服務(wù)器,不少BBS還與網(wǎng)絡(luò)新興的BT技術(shù)、Blog(博客)技術(shù)等連接起來BBS水木清華站就有“水木Blog”的欄目)。

BBS促進了協(xié)作學習

基于網(wǎng)絡(luò)的論壇社區(qū)也是各種學習資源組合的場所,為學習者提供了學習環(huán)境。作為一個學生參與論壇的網(wǎng)絡(luò)活動可包括許多種學習的意義,在特定板塊內(nèi),論壇參與者圍繞某個話題或者問題,通過發(fā)表、回復(fù)話題、版面討論、站內(nèi)信件等方式進行互動討論、相互探討,形成了一種以學習者為中心的學習方式。從教育網(wǎng)內(nèi)人氣排名前十名的論壇的網(wǎng)友參與的情況來看,在各大學習板塊里,基本上每張?zhí)犹岢龅膯栴}都可以得到網(wǎng)友友好的、認真的回復(fù)解答,有著濃郁的協(xié)作探討的學習氣氛和良好的學習效果。

BBS提高了學生自主學習能力

網(wǎng)絡(luò)學習的本質(zhì)是一種自主學習,論壇提供了豐富的網(wǎng)絡(luò)學習資源,使學習者能自主選擇和控制學習地點、學習時間、學習方法和學習內(nèi)容。在論壇里,學生可以自主地圍繞學習問題,通過發(fā)帖、回復(fù)的形式提出討論,尋求解答幫助,提高了學習的積極性和自主學習的能力。

ADO 技術(shù)

2軟件介紹及基本原理

ADO(ActiveXDataObjects) 是微軟公司提供給網(wǎng)頁開發(fā)者在網(wǎng)頁中存取數(shù)據(jù)庫的最新技術(shù), 它也是ASP內(nèi)置的重要組件,ADO主要的目的是為了存取或修改數(shù)據(jù)源的數(shù)據(jù)、或增加數(shù)據(jù)到指定的數(shù)據(jù)源, 數(shù)據(jù)源不僅包括數(shù)據(jù)庫,而且包括dBase、Excel、Foxpro、Access或文本文件等一些小型的數(shù)據(jù)表 , 所以, 只要是ODBC驅(qū)動程序所能存取的數(shù)據(jù)源皆是ADO 存取的對象。ADO主要是由Connection對象、Command對象、Parameter對象、Dataset對象、Field對象、Property對象及Error對象等七個對象與Fields數(shù)據(jù)集合、Properties數(shù)據(jù)集合、Parameters數(shù)據(jù)集合及Errors數(shù)據(jù)集合等四個數(shù)據(jù)集合所組合而成,其功能概述如下:

ADO 提供的七個對象:

Connection對象負責對指定的數(shù)據(jù)源進行連接,除此之外,它還可以通過事物(Transaction)

來確保在事物中所有的數(shù)據(jù)源變更的全部成功。

Command對象負責對數(shù)據(jù)庫提供請求,也就是傳遞指定的SQL使命,除此之外,也可能通過Command對象對數(shù)據(jù)庫發(fā)出數(shù)據(jù)定義語言 (DDL,DataDefinitionLanguage)。(3)Parameter對象負責傳遞Command對象所需要的SQL命令參數(shù)。

(4)DataSet對象負責瀏覽和操作從數(shù)據(jù)庫取出的數(shù)據(jù)。(5)Field對象表示指定DataSet對象的數(shù)據(jù)字段。(6)Property對象表示ADO 的各項對象屬性值。(7)Error對象負責記錄連接過程所發(fā)生的錯誤信息。ADO的七個對象及四個數(shù)據(jù)集合相互的關(guān)系圖如圖

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-

PAGE

10

--

6

ActiveXDataObject關(guān)系圖

開發(fā)環(huán)境及工具

軟件:InternetInformationServer(IIS)5.0,DreamweaverMX,

ACCESS2000。

ASP有關(guān)的內(nèi)置對象的設(shè)置

Request對象

HTTP通訊協(xié)議是一種請求與響應(yīng)(Request/Respons)e的通訊協(xié)議,因此通常由客戶端向Web服務(wù)器提出請求,Web服務(wù)器才會響應(yīng)信息。因此在ASP中,特別將“客戶端提出的要求”與“Web服務(wù)器響應(yīng)的信息”等動作封裝成Request對象與Response對象。換言之,Request對象通常包含了用戶端的相關(guān)信息,如瀏覽器的種類、表頭信息、表單參數(shù)及cookies等等。

Response對象

每一種程序語言或開發(fā)工具一定都有與用戶溝通的界面或函數(shù) , ASP也不例外。在

ASP中負責將信息傳達到用戶的對象就是Response對象。

Server對象

Server對象允許用戶取得服務(wù)器提供的各項功能 ,例如Server對象CreateObject方法允許客戶端用戶建立一個 ActiveXServer組件實例,其建立組件實例會隨著服務(wù)器端完成ASP網(wǎng)頁的處理而自動被釋放。如果希望此對象實例可以跨多個 ASP網(wǎng)頁,就要用到Session對象保留該組件實例,直到Session對象的運行時間到了,或是在其他ASP網(wǎng)頁調(diào)用Session對象的Abandon方法,此組件實例才會被釋放。

Session對象

Session對象在ASP程序編寫中占了相當重的份量, 由于網(wǎng)頁是一種無狀態(tài)的程序 ,因此幾乎無法知道用戶的瀏覽狀態(tài)。必須通過 Session對象記錄用戶的相關(guān)信息, 以供用戶再次對此 Web服務(wù)器提出要求時作確認, 例如, 在某些特定的網(wǎng)頁中, 常需要用戶輸入確認的賬號和密碼, 假如這些身份確認的結(jié)果無法保留, 那豈不是每一個網(wǎng)頁都需要重新輸入一次密碼。必須說明,Session對象只能適用于具備Cookie功能的瀏覽器。

與ADO 有關(guān)的設(shè)置

在本BBS系統(tǒng)中主要對ADO 提供的四個數(shù)據(jù)集合進行了設(shè)置 :

Connection對象包含Errors數(shù)據(jù)集合, 在Errors數(shù)據(jù)集合中包含數(shù)據(jù)源響應(yīng)失敗時所建立的Errors對象.

Command對象包含Parameters數(shù)據(jù)集合, 在Parameters數(shù)據(jù)集合中包括Command對象所有的Parameters對象.

DataSet對象包含F(xiàn)ields數(shù)據(jù)集合, 在Fields數(shù)據(jù)集合中包含DataSet對象的所有

Field數(shù)據(jù)字段對象.

Connection對象、Command對象、DataSet對象與Field對象皆包含一個Properties數(shù)據(jù)集合, 在Properties數(shù)據(jù)集合中包含所對應(yīng)Connection對象、Command對象、DataSet對象與Field對象的Property對象.

3系統(tǒng)需求規(guī)劃

用戶使用論壇,有一定的流程:用戶注冊登陸進入論壇,就某個話題(主題帖)展開討論,通過發(fā)帖功能發(fā)布新的話題,通過回帖的功能回復(fù)已有的話題,通過搜索功能查找已有的話題;管理員通過管理功能創(chuàng)建、編輯、刪除論壇的板塊,管理注冊用戶,管

理帖子,設(shè)置論壇基本參數(shù)。這樣的流程就決定了論壇的需求,如圖所示:

需求分析

論壇流程圖

從流程圖上可以看到論壇完成的走向,其實每一個流程的節(jié)點處都有許多功能,如下

表:

論壇功能列表

論壇板塊列表

瀏覽帖子

發(fā)帖回帖

搜索帖子

編輯帖子

刪除帖子

精華帖

置頂帖子

轉(zhuǎn)移帖子

用戶注冊

用戶登陸

控制用戶權(quán)限

修改注冊信息

設(shè)置論壇參數(shù)

管理板塊

管理用戶

在這十六個凌亂無序的需求進行整理、歸納、再構(gòu)建系統(tǒng)的整體框架,設(shè)計處數(shù)據(jù)實體、接口、用戶界面,最終將所有功能需求裝化為可以編碼實現(xiàn)的程序框架。首先,通過觀察論壇所有功能需求,可以發(fā)現(xiàn)在這十六個功能需求中,如果按照不同事務(wù)分類,可以分為四類對象:板塊、帖子、用戶和論壇。這四類對象,可以設(shè)計為四個數(shù)據(jù)實體,如果用數(shù)據(jù)庫存儲它們,即可以設(shè)計四個基本數(shù)據(jù)表。如圖:

論壇配置信息表 模塊信息表

帖子信息表 用戶信息表

板塊類有瀏覽列表和管理兩個方法,管理方法又可以分為創(chuàng)建、修改和刪除 3個子方

法,如圖:

板塊對象的相關(guān)用例圖

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-1-0-

1

帖子類有瀏覽、發(fā)帖、回帖、搜索和管理

5個方法,瀏覽方法又可以分為列表和查看

2個子方法,管理方法又可以分為編輯、刪除、置頂、轉(zhuǎn)移、指定精華

5個子方法,如

圖:

帖子對象的相關(guān)用例圖

用戶類有注冊、登陸和管理3個子方法,管理方法又分為添加、刪除和設(shè)置權(quán)限 3個子方法,如圖:

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-1-

PAGE

3

-

1

用戶對象的相關(guān)用例圖

論壇一般存在兩種用戶,分別為注冊用戶和管理員。用戶的權(quán)限是向下覆蓋的,即上級權(quán)限包含下級權(quán)限,在本論壇中,管理員的權(quán)限是上級權(quán)限。與注冊用戶相關(guān)的功

能,其實就是論壇前臺的主要功能。論壇系統(tǒng)的前臺,是用戶討論問題的平臺,發(fā)帖、回帖一直貫穿用戶整個的前臺活動。同時,由于論壇系統(tǒng)的帖子管理是管理員在帖子瀏覽時進行的,所以編輯帖子、刪除帖子、轉(zhuǎn)移帖子、置頂帖子和指定精華帖等功能也安排在前臺實現(xiàn)。其他與管理員相關(guān)的功能,包括板塊管理、用戶管理和論壇設(shè)置等都是管理員在后臺進行的操作。

功能設(shè)計

基本功能設(shè)計

通過需求分析,論壇的基本功能可以從眾多的需求中篩選出來。顧名思義,基本功能就是構(gòu)成論壇系統(tǒng)的必要功能,具備這些功能的 Web系統(tǒng)即是論壇。

基本功能:

發(fā)帖。論壇最初是為了相互討論話題而誕生的,發(fā)表帖子就是表達自己的看法,與他人進行討論,因此發(fā)帖是論壇首要的功能。

瀏覽帖子。發(fā)表了帖子,就要供他人瀏覽查看,與他人分享自己的想法和經(jīng)驗。

回帖。瀏覽了他人發(fā)表的帖子,想要發(fā)表自己的想法,參與討論,就可以回復(fù)這個帖子。

其實,發(fā)帖→瀏覽帖子→回帖三大功能周而復(fù)始的循環(huán)進行,就構(gòu)成論壇。每個參與

論壇的人,主要目的就是發(fā)帖,查看已經(jīng)發(fā)表的帖子,針對自己感興趣的帖子進行回帖,參與討論。三大基本功能的相互關(guān)系如圖:

擴展功能設(shè)計

除了基本功能之外,其他的論壇功能都是擴展功能。

注冊登陸。原先的論壇在發(fā)帖回帖時,需要填寫自己的筆名。這樣,經(jīng)常發(fā)帖的人總是要重復(fù)填寫筆名,比較麻煩。因此,論壇擴展了用戶注冊登陸功能,參與論壇的注冊自己的筆名以及個人信息,擁有論壇中的身份,發(fā)言時就不需要重復(fù)填寫個人信息了。

分板塊瀏覽帖子。隨著論壇帖子數(shù)量的增多,討論相同話題的帖子聚集在一起,

引出了論壇新的擴展功能,即分板塊瀏覽帖子,屬于同一板塊的帖子討論同樣的話題。這樣,就使得對某一話題感興趣的用戶不會被其他帖子干擾,也有利于相同興趣的用戶相互間討論,不易跑題。

編輯帖子。發(fā)帖回帖的用戶,如果需要修改更新自己發(fā)表的帖子內(nèi)容,就引出了編輯帖子內(nèi)容這個擴展功能,提供給用戶更新自己發(fā)言的選擇。對于論壇管理員,可以編輯任何帖子的內(nèi)容,也算是提供給管理員進行管理的選擇。

刪除帖子。如果用戶發(fā)表了不符合論壇規(guī)則的帖子,則需要管理員刪除這些帖子,這就引出了刪除帖子的擴展功能。

轉(zhuǎn)移帖子。論壇劃分了板塊,如果帖子內(nèi)容不屬于所在板塊的關(guān)注話題,那么管理員可以選擇將此帖移動到所屬話題的板塊中去,這就引出了移動帖子的擴展功能。這個功能是隨著板塊功能的出現(xiàn)而出現(xiàn)的,板塊將帖子進行了分組,從而提出了隨板塊移動帖子的要求。

置頂帖子。帖子一般是根據(jù)發(fā)表以及回復(fù)時間到序排列的,這樣先發(fā)的帖子就慢慢排到后面,管理員如果需要強調(diào)某些帖子重要,又必看性,就要打亂默認的排列順序,將這些帖子放在列表的最前端,不再按照時間進行順序的變化,但是還

要保證其他帖子按照時間變化順序進行排列,這就引出了置頂帖子的擴展功能。指定精華帖。如果管理員認為某個帖子的內(nèi)容非常好,可以打上標記,推薦給看帖的用戶,這就引出了指定精華帖的擴展功能。用戶可以選擇只看打上標記的精華帖。

搜索帖子。論壇中的帖子越來越多,用戶需要從大量的帖子中找到自己需要的內(nèi)

容,這就引出了搜索帖子的擴展功能。

管理板塊。論壇板需要先創(chuàng)建,才能被使用,管理員還可以刪除修改板塊的相關(guān)信息,因此管理板塊是管理員使用的擴展功能。

設(shè)置參數(shù)。論壇一般有一些初始化信息,比如論壇名稱,每頁顯示帖子數(shù)量等參數(shù)信息,管理員也可以在后臺界面自行設(shè)置,這頁屬于擴展功能。

管理用戶。管理員可以對論壇的注冊用戶進行管理,直接添加用戶,賦予相關(guān)權(quán)

限,也可以修改已注冊用戶權(quán)限,對違規(guī)用戶可以刪除,這個擴展功能便于管理員對論壇用戶的管理。

論壇的擴展功能如圖:

設(shè)計可擴充功能的接口

列出了所有基本的和擴展功能之后,在設(shè)計時需要考慮以后擴充的余地,即在給論壇添加新的功能的時候,原有的功能正??捎?,不受影響?;蛘哓S富擴展某個功能時,

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

能夠方便銜接。

這就要求在設(shè)計程序時,每個功能保留開放的接口,通過接口可以對功能進行擴充,也可以與新功能進行掛接。其實現(xiàn)的原理及思路如圖:

功能的可擴充接口實現(xiàn)原理

設(shè)計框架

4功能模塊與數(shù)據(jù)庫設(shè)計

在確定了論壇系統(tǒng)的設(shè)計思路之后,還需要歸納成系統(tǒng)的相關(guān)模塊,每個模塊實際上就是功能的合理組合。

由于已經(jīng)將功能做了前臺與后臺的分類,因此模塊也應(yīng)該分為兩大類:前臺模塊和后臺模塊。用戶在前臺的注冊、登陸,以及修改個人的注冊信息組合成注冊信息組合成注冊登陸模塊。用戶瀏覽板塊、瀏覽主題帖列表、查看帖子組合成瀏覽模塊。用戶發(fā)帖、

-1-4-

1

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-1-

PAGE

9

-

1

回帖、編輯自己發(fā)布的帖子組合成發(fā)帖回帖模塊。管理員編輯帖子、刪除帖子、轉(zhuǎn)移帖

子、置頂帖子和精華帖子組合成管理帖子模塊。以上

4個模塊是前臺模塊。后臺模塊都是

與管理員相關(guān)的,設(shè)置論壇參數(shù)單獨為論壇設(shè)置模塊;創(chuàng)建、修改和刪除板塊為管理板

塊模塊;添加、刪除和設(shè)置權(quán)限為管理用戶模塊。

BBS的模塊體系圖:

從用戶角度分析問題,首先區(qū)分系統(tǒng)中有幾種用戶,目前的論壇系統(tǒng),為了使其清楚易懂,簡化了用戶體系,論壇中只有兩種用戶:注冊用戶和管理員。一般論壇中的版主權(quán)限,劃分為管理員,這也是為了使讀者容易分清論壇的使用者和管理者。對于注冊用戶,在論壇中的行為可歸納如下:

注冊個人身份,登陸論壇,登陸成功后可以修改自己的注冊信息。這些行為只與用戶自身相關(guān),功能獨立,設(shè)計成注冊登陸模塊。

瀏覽板塊列表,選擇某板塊,瀏覽其下的主題帖列表,查看帖子內(nèi)容,搜索需要的帖子。這些行為是用戶讀取論壇的板塊及其帖子的相關(guān)信息,設(shè)計成瀏覽模塊。

可以發(fā)表新帖子,也可以回復(fù)已有的帖子,同時可以編輯自己寫的帖子內(nèi)容。這些行為

是用戶參與論壇討論,發(fā)表自己見解的行為,設(shè)計為發(fā)帖回帖模塊。

管理員需要負責整個論壇的正常運轉(zhuǎn),因此他需要更多的管理功能,可以歸納為如下行為:

具備注冊用戶的所有功能。因為管理員也是論壇用戶,可以參與論壇中的討論。管理帖子。管理員對論壇的帖子有監(jiān)督的權(quán)利,好的帖子要獎勵,搗亂的帖子要刪

除,標識精華帖,置頂帖子,轉(zhuǎn)移發(fā)錯板塊的帖子,這些行為都是針對帖子的操作,設(shè)計成管理帖子模塊。

管理板塊。論壇中的板塊,需要管理員進行創(chuàng)建、管理板塊信息,這些針對板塊的操

作,設(shè)計成管理板塊模塊。

管理用戶。用戶注冊成功后,需要管理員賦予權(quán)限,才能使用論壇的相關(guān)功能。同時,管理員可以自主添加、刪除用戶,這些針對用戶信息的操作,設(shè)計成管理用戶模塊。

模塊的劃分及設(shè)計

每個模塊的功能都真實反映需求,通過對需求的認真分析,可以設(shè)計出符合要求的單獨模塊。但是,對于一個論壇系統(tǒng)來說,要很好地把握系統(tǒng)地構(gòu)架,把零散地功能模塊用一條主線串連起來,構(gòu)建完整的系統(tǒng)。

對論壇系統(tǒng)來說,聯(lián)系各個模塊的主線是使用者的權(quán)限,用戶能夠使用論壇的哪些功能是由用戶的權(quán)限決定的。論壇的每個功能都與相應(yīng)的權(quán)限對應(yīng)。例如,注冊用戶具有瀏覽帖子、發(fā)帖、回帖的權(quán)限,那么他就能使用論壇中的瀏覽、發(fā)帖、回帖功能。同一類用戶使用的功能模塊,是以使用者為中心連接起來的。另外,操作同類事務(wù)的功能模塊,也是有相互關(guān)系的。

因此,瀏覽模塊與發(fā)帖回帖模塊、管理帖子模塊關(guān)聯(lián),是由論壇的系統(tǒng)流程決定

的,如圖:

帖子相關(guān)模塊關(guān)系圖

管理板塊模塊與瀏覽模塊關(guān)聯(lián),是由帖子與板塊的父子關(guān)系決定的。帖子依附于板

塊,先有板塊,后有帖子,帖子必須發(fā)表在某個板塊中,如圖:

管理板塊模塊于瀏覽模塊關(guān)系圖

管理用戶模塊與注冊登陸模塊關(guān)聯(lián),是由同一類對象 ——用戶決定的。注冊后獲得論壇的身份,成為用戶,所有的用戶需要接受管理員的管理,用戶登陸證明自己在論壇

中的身份,如圖:

管理用戶模塊與注冊登陸模塊關(guān)系圖

弄清楚模塊間的相互關(guān)系,就可以設(shè)計出論壇系統(tǒng)的整體架構(gòu)了,如圖:

系統(tǒng)整體架構(gòu)圖

系統(tǒng)因入口的不同而分為前臺系統(tǒng)與后臺系統(tǒng)。前臺系統(tǒng)包括注冊登陸模塊、瀏覽模塊、發(fā)帖回帖模塊、管理帖子模塊;后臺包括管理用戶模塊、管理板塊模塊。之所以要把屬于管理員權(quán)限的管理帖子模塊歸屬于前臺,是因為,對于一個論壇系統(tǒng),帖子是最主要的,為了方便管理,管理員需要一邊瀏覽查看一邊進行管理,管理時需要了解帖子的詳細內(nèi)容,以及相關(guān)回帖信息,因此將帖子的管理界面融合在前臺的瀏覽界面中。至于其他的模塊則比較清楚,是根據(jù)用戶的權(quán)限劃分的。

我所負責的頁面代碼

首頁:

相關(guān)事件重要代碼

Imports System.DataImports System.Data.OleDbPartial Classbbs_Default

Inherits System.Web.UI.Page

DimcnData AsNewOleDbConnectionDimcmdSQLAsNewOleDbCommandDimtypeID AsString

Protected SubbtnLogin_Click( ByValsenderAsObject,ByValeAsSystem.EventArgs) HandlesbtnLogin.ClickIf btnLogin.Text= "登陸" Then

If txtName.Text= "" OrtxtPass.Text= "" ThenExit Sub

EndIf

cmdSQL.Parameters.Clear()

cmdSQL.Parameters.Add( "@name,"OleDbType.WChar).Value=txtName.TextcmdSQL.Parameters.Add( "@pass",OleDbType.WChar).Value=txtPass.Text

cmdSQL.CommandText= "SELECTuserID,lastTimefrom[user]WHEREuserID=@nameAND[passWord]

=@pass"

TrycnData.Open()

Dimrd AsOleDbDataReader

rd=cmdSQL.ExecuteReader

Dimlast AsDate

If Notrd.Read Thenrd.Close()

cnData.Close()

Response.Write( "<script>window.alert("" 登陸失敗!用戶名或密碼錯誤 "");</script>" )Exit Try

Else

last=rd.GetDateTime(1)

Response.Cookies(

"userInfo"

)("name")=txtName.Text

Response.Cookies(

"userInfo"

)("pass")=txtPass.Text

Session( "name")=txtName.Text

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-2-0-

2

If chkAuto.Checked Then

Response.Cookies( "userInfo" ).Expires=DateTime.Now.AddMonths(1)Else

Response.Cookies( "userInfo" ).Expires=DateTime.Now.AddHours(1)EndIf

rd.Close()

EndIf

cmdSQL.Parameters.Clear()

cmdSQL.Parameters.Add( "@name,"OleDbType.WChar).Value=txtName.Text

=?"

If last.Date=Now.Date Then

cmdSQL.CommandText= "UPDATE[user]SETlastTime='" &Now.ToString& "'WHEREuserID

Else

cmdSQL.CommandText= "UPDATE[user]SETscoreKy=scoreKy+20,lastTime='" &

Now.ToString& "'WHEREuserID=?"

EndIfcmdSQL.ExecuteNonQuery()

Catchex AsException

FinallycnData.Close()

EndTry

Else

Session( "name")= Nothing

EndIf

Response.Write( "<script>window.location.href=window.location.href;</script>" )

EndSub

Protected SubPage_Init( ByValsender AsObject, ByVale AsSystem.EventArgs) Handles Me.InitcnData.ConnectionString= "JetOLEDB:GlobalPartialBulkOps=2;JetOLEDB:RegistryPath=;Jet

OLEDB:DatabaseL"&_

"ockingMode=0;DataSource=""" &Server.MapPath( "~\App_data\" )& "BBSdata.mdb"";JetOLEDB:E" &_"ngineType=5;Provider=""Microsoft.Jet.OLEDB.4.0"";JetOLEDB:Systemdatabase=;JetO" &_"LEDB:SFP=False;persistsecurityinfo=False;ExtendedProperties=;Mode=ShareDeny" &_

"None;JetOLEDB:EncryptDatabase=False;JetOLEDB:CreateSystemDatabase=False;Jet" &_

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-2-

PAGE

2

-

2

"OLEDB:Don'tCopyLocaleonCompact=False;JetOLEDB:CompactWithoutReplicaRepa" &_"ir=False;UserID=Admin;JetOLEDB:GlobalBulkTransactions=1"

cmdSQL.Connection=cnData

EndSub

Protected SubPage_Load(ByValsender AsObject, ByVale AsSystem.EventArgs) Handles Me.LoadtypeID=CMyFunc.GetTypeID(TreeView1.SelectedValue)

If Session( "name")IsNot Nothing ThenlbName.Text=Session( "name").ToStringpnLogin.Visible= False

btnLogin.Text= "注銷"

rblMy.Visible= TrueElse

lbName.Text= "客人"pnLogin.Visible= True

btnLogin.Text= "登陸"

rblMy.Visible= False

EndIf

MyDataBind()

hlkAsk.NavigateUrl= "~/bbs/AddTopic.aspx?type=" &typeID.ToString

If typeID= "00" Then

hlkAsk.Text= "提問請先選擇子論壇"hlkAsk.Enabled= False

rblMy.Enabled= FalseElse

hlkAsk.Text= "我要提問"

hlkAsk.Enabled= True

rblMy.Enabled= TrueEndIf

DimstrType AsString

strType=CMyFunc.GetTypeName(typeID)

If strType= "NoThisType" ThenlbType.Text= "社區(qū)起點"

Else

lbType.Text=strTypeEndIf

EndSub

SubMyDataBind()

DimstrSQL AsString

If typeID= "00" Thenrbl1.Visible= False

strSQL= "SELECTTOP30ID,[text],[user],score,rep,lasttime,stateFROM(topic)ORDERBYlasttimeDESC"

Else

rbl1.Visible= TrueDimstrState AsString

If rbl1.SelectedIndex=0 Then

strState= "AND(state='1'ORstate='3')"

Else

strState= "AND(state='2')"EndIf

If Session( "name")IsNot Nothing ThenIf rblMy.SelectedIndex=1 Then

strState&= "AND([user]='" &Session( "name").ToString& "')"

EndIfEndIf

strSQL= "SELECTTOP300ID,[text],[user],score,rep,lasttime,stateFROM(topic)" &_

"WHERE[type]='" &typeID.ToString& "'" &strState& "ORDERBYlasttimeDESC"

EndIf

Dimdap AsNewOleDbDataAdapter(strSQL,cnData)

Dimds AsNewDataSetdap.Fill(ds, "main")

Dimdt AsDataTable=ds.Tables( "main")

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-2-

PAGE

9

-

2

dgv1.DataSource=dtdgv1.DataBind()

EndSub

Protected SubTreeView1_SelectedNodeChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs) HandlesTreeView1.SelectedNodeChanged

EndSubEndClass

設(shè)計數(shù)據(jù)庫

本系統(tǒng)所使用的數(shù)據(jù)庫服務(wù)器為 ACCESS2000,它在ACCESS2000的基礎(chǔ)上, 擴展了ACCESS的總體功能與性能、工具界面更加方便合理、全面的數(shù)據(jù)完整性保護、系統(tǒng)安

全性更高。ACCESS2000的數(shù)據(jù)庫空間不會受限于Device空間大小, 方便了數(shù)據(jù)空間的擴展, 使ACCESS2000作為一個網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng),其擴展已超出了單個物理計算機的限制,并且多服務(wù)器“分布式”事物的內(nèi)在支持更加充分 .本系統(tǒng)主要使用了存儲過程StoredProcedure, 所謂StoredProcedure實際上就是一段保存在數(shù)據(jù)庫中的程序 , 通過一個名稱的命名,其中包含有處理數(shù)據(jù)庫存取與運算的SQL語句, 并且將這樣的程序文件緊密結(jié)合在數(shù)據(jù)庫中,這樣我們的前臺應(yīng)用系統(tǒng)在執(zhí)行過程中,可以直接執(zhí)行數(shù)據(jù)庫中設(shè)置好的StoredProcedure,甚至可以傳遞參數(shù)。

創(chuàng)建數(shù)據(jù)庫

ACCESS2000的Manager管理工具是一個非常好用的可視化管理工具 ,ACCESS2000中提供的datetime和text兩種字段類型,其中datetime是用來保存日期和時間數(shù)據(jù)的,text是用來保存不定長度的備注說明內(nèi)容的, 有了這兩個數(shù)據(jù)類型, 應(yīng)用系統(tǒng)中就不用再為輸出格式和限制字符串長度而增加額外代碼了。

數(shù)據(jù)表間關(guān)系:

序 號 數(shù)據(jù)表名稱 說 明

T_Operator 操作員(用戶)表

T_Forum 論壇回帖表

T_Topic 論壇主題表

4

T_UserPara

系統(tǒng)參數(shù)表

5

T_Mark

積分頭銜表

6

T_OperatorFunction

用戶功能權(quán)限關(guān)聯(lián)表

7

T_Function

功能表

之所以這樣設(shè)計數(shù)據(jù)表間關(guān)系,主要是考慮論壇中各個對象得相互關(guān)系,帖子屬于板塊,回復(fù)帖從屬于主題帖,帖子的作者屬于用戶,因此板塊、主題帖、回復(fù)帖是一層層的從屬依賴關(guān)系,帖子的作者必須是論壇的用戶,帖子不能脫離板塊、用戶而單獨存在。

5系統(tǒng)實現(xiàn)與測試

本論壇系統(tǒng)完成之后,就必須設(shè)計許多的測試用例來驗證本系統(tǒng)的正確性,容錯能力/恢復(fù)能力,信息安全性,可靠性等,盡可能多地找出系統(tǒng)的錯誤所在。

驗證性測試

在登錄論壇之前,論壇首頁上顯示 “您的當前狀態(tài)是:未登錄!”(如圖1)此時,該用戶除了能夠進行用戶注冊之外,沒有任何權(quán)限訪問論壇的任何一個模塊。當點擊任

何一個功能按鈕時,頁面將會顯示:“您沒有登錄,請返回!”

當用戶點擊“注冊”按鈕,頁面便跳轉(zhuǎn)到用戶注冊界面(如圖 2),若注冊成功,則顯示“注冊成功”(如圖3),否則顯示“發(fā)生錯誤···返回”。

圖1

圖2 圖3

當點擊登錄按鈕,則頁面跳轉(zhuǎn)到登錄界面(如圖 4)用戶成功登陸之后,頁面即顯示您的當前狀態(tài)為“已登錄”(如圖5)。只有當用戶登錄之后才能夠修改該用戶的信息,否則,當用戶點擊“修改注冊信息”按鈕時,頁面會顯示“沒有登錄,取不到用戶信息。

請返回”。

圖4 圖5

添加、編輯和刪除功能測試

當管理員點擊“新建論壇”按鈕,頁面即跳轉(zhuǎn)到圖 9,管理員可以根據(jù)需要添加某些論壇,若添加成功則顯示“添加成功”,否則顯示錯誤信息。

圖9

有了論壇的添加當然也少不了論壇的編輯和刪除(如圖 10),點擊編輯按鈕,則論

壇信息全部變?yōu)榫庉嫚顟B(tài),當編輯完成,則點擊更新,否則點取消。若要刪除某個論

壇,在點擊刪除按鈕時會有確認信息提示,以防錯誤操作 (如圖11)。若這些操作成功,則頁面顯示更新過的數(shù)據(jù),否則提示錯誤信息。

圖10

圖11

6結(jié)束語

系統(tǒng)的特點與局限性

特點

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-2-

PAGE

10

-

2

本系統(tǒng)最大的特點就是結(jié)構(gòu)簡單,界面清晰、簡潔,一目了然。它不同于網(wǎng)絡(luò)上的其他論壇的地方在于,主界面只顯示每個板塊的名稱,板塊描述,建立時間以及版主,而不細列出每個板塊里的主題情況,這樣就使原本繁雜的主界面大大簡化,層層分明,給人一種很干凈清新的感覺,不會象其他網(wǎng)絡(luò)論壇一樣使人眼花繚亂,不知從何處進入板塊才好。

本系統(tǒng)還有一個特點就是可擴展性非常強。由于采用的是原型法的開發(fā)模式,一開

始只是對論壇的基本功能,即瀏覽帖子、發(fā)帖和回帖這三個功能進行了設(shè)計,而后來的注冊登陸、分板塊瀏覽帖子、編輯帖子、刪除帖子、轉(zhuǎn)移帖子、置頂帖子、指定精華帖、搜索帖子、管理板塊、設(shè)置參數(shù)、管理用戶以及文件的上傳和下載等功能則是在后來的開發(fā)中陸續(xù)添加進去的。

局限性

事物總是一分為二的,本論壇系統(tǒng)的優(yōu)點也就導(dǎo)致了它的局限性,由于界面簡潔,每個板塊沒有列出所包含的主題,用戶必須點擊進入才能看到該板塊中的所有主題,然后點擊回復(fù),這樣就加大了用戶的工作量,令他們的操作有些許累贅。第二,用戶在發(fā)帖之后,并不能馬上對自己發(fā)的帖子進行修改或刪除,要想進行這些操作,必須進入管理登錄界面,這樣使得登錄過的用戶必須又要再登錄一遍,又一次增加了用戶操作的復(fù)雜性。這一點還有待改進。第三,由于最初的設(shè)計沒有考慮到頭銜的顯示,因此在對用戶進行管理的時候,頭銜的管理和用戶其他信息及權(quán)限的管理是分開的,這樣就導(dǎo)致了管理員的工作量有所增加。最后,由于時間的關(guān)系,本論壇沒有實現(xiàn)系統(tǒng)自動對發(fā)帖的用戶增加積分的功能,這是本論壇的一大瑕疵。

實施過程中的一些體會

為期多月的畢業(yè)設(shè)計已經(jīng)接近尾聲了,本系統(tǒng)的整個實施過程中,遇到了很多很多的困難??粗约旱脑O(shè)計從無到有,從最初的雛形到如今的完整系統(tǒng),雖說算不上完善,但也基本符合需求,這不僅僅是自己這幾個月來辛勤勞動的結(jié)晶,更是對自己學習

成果的一個檢驗。在最初選擇VB和ACCESS2000作為開發(fā)工具的時候,我考慮到 VB的強大功能和ACCESS良好的可移植性很適合做Web開發(fā),但是也考慮到我以前從來沒有使用過這兩種工具來開發(fā)項目,也就是說對于這兩種工具的使用我沒有任何的經(jīng)驗,這無形

之中就增加了我做畢業(yè)設(shè)計的難度,我必須從頭開始學習 VB和ACCES。S我的感覺是VB跟

海南軟件職業(yè)技術(shù)學院畢業(yè)設(shè)計(論文)

-3-0-

3

JAVA很相似,而ACCES上S手很難,但是一旦學懂了,就會發(fā)現(xiàn)它真的很有用,并且越來

越覺得所掌握的知識遠遠不夠用。在我開發(fā)的整個過程中我在不斷的學習,一邊學一邊做,很多時候在一個問題上要花好幾個小時甚至一兩天,當我好不容易將這個問題解決時才發(fā)現(xiàn)其實這是個很小的問題,也許只是由于不了解它的一個對象或者時一個函數(shù)的功能。但是,每當我費盡心思解決了一個關(guān)鍵問題時,那種成功的喜悅和茅塞頓開的感覺是沒有辦法來形容的,它不僅讓我感受到自己知識的淺薄也會激勵我更加努力的去學習更多的東西,好把我的設(shè)計做的更完善更好,因為我根本就不會知道自己在接下來的設(shè)計中又會遇到怎樣的挫折。

從我的畢業(yè)設(shè)計上很容易看出來這個系統(tǒng)的稚嫩,很多地方的需求沒有考慮到,很多功能實現(xiàn)的也很不完善,這可能跟我平時很少上網(wǎng)逛論壇有很大的關(guān)系。雖說在老師的指導(dǎo)下已經(jīng)改進了很多,一些我覺得不必要而實際上很必要

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論