版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙畢業(yè)設(shè)計(jì)(論文)資料設(shè)計(jì)(論文)題目:足球直播論壇的設(shè)計(jì)與實(shí)現(xiàn)指導(dǎo)老師班級(jí):1014班姓名:論壇開(kāi)發(fā)背景選題背景隨著網(wǎng)絡(luò)的不斷發(fā)展,作為世界的第一運(yùn)動(dòng)足球,喜歡他的球迷不計(jì)其數(shù),由于時(shí)差地域問(wèn)題很多球迷沒(méi)法現(xiàn)場(chǎng)看球,有一個(gè)好的發(fā)布直播鏈接的論壇是很有必要的。再者雖然現(xiàn)下中國(guó)足壇不景氣,但是球迷的人數(shù)和熱情度依舊不減,各大直播機(jī)構(gòu),如pptv,sina等等在比賽期間收視率居高不下,而在espn打拼多年的詹俊解說(shuō)也因?yàn)榍蛎缘臒崆閬?lái)到sina做解說(shuō)服務(wù)廣大球迷,為了實(shí)時(shí),準(zhǔn)確的發(fā)布這些如俊哥這樣球迷喜歡的解說(shuō)解說(shuō)的比賽也是很多球迷的需求。再者鑒于天下球迷是一家的準(zhǔn)則,在論壇進(jìn)行聊球,議球也是球迷們喜聞樂(lè)見(jiàn)的一個(gè)重要組成部分,經(jīng)常一片評(píng)球的美文,可以引起很多人的共鳴。故本次畢業(yè)設(shè)計(jì)的內(nèi)容是開(kāi)發(fā)一個(gè)優(yōu)秀的足球直播論壇,并且對(duì)足球直播論壇的測(cè)試,以達(dá)到完善,并且掌握軟件測(cè)試的基本流程,尋找論壇的測(cè)試規(guī)律,總結(jié)其測(cè)試點(diǎn)。同時(shí),通過(guò)畢業(yè)設(shè)計(jì)研究,將畢業(yè)設(shè)計(jì)與畢業(yè)實(shí)習(xí)相結(jié)合,培養(yǎng)從文檔中獲得信息的能力,綜合運(yùn)用所學(xué)知識(shí)分析問(wèn)題和解決問(wèn)題的能力;養(yǎng)成認(rèn)真的工作態(tài)度、良好的工作作風(fēng),樹(shù)立高尚的職業(yè)道德,爭(zhēng)取為將來(lái)從事軟件測(cè)試方面的工作打下良好的基礎(chǔ),為掌握軟件測(cè)試積累寶貴的經(jīng)歷和經(jīng)驗(yàn)。設(shè)計(jì)(研究)現(xiàn)狀和發(fā)展趨勢(shì):相對(duì)于國(guó)外軟件測(cè)試的悠久發(fā)展歷史,我國(guó)的軟件測(cè)試的起步較晚。由于起步時(shí)間上的差距,我國(guó)目前不論是在軟件測(cè)試?yán)碚撗芯?,還是在軟件測(cè)試的實(shí)踐上,和國(guó)外發(fā)達(dá)國(guó)家都有不小的差距。技術(shù)研究貧乏,測(cè)試實(shí)踐與服務(wù)也未形成足夠規(guī)模,從業(yè)人員數(shù)量少,水平層次也不夠高。從總體上說(shuō),國(guó)內(nèi)的軟件行業(yè)的發(fā)展還很不成熟,軟件測(cè)試更是處于弱勢(shì)地位。目前,中國(guó)軟件產(chǎn)業(yè)在產(chǎn)品功能和性能測(cè)試領(lǐng)域都存在著嚴(yán)重不足,中國(guó)軟件企業(yè)已開(kāi)始認(rèn)識(shí)到,軟件測(cè)試的廣度和深度決定了中國(guó)軟件企業(yè)的前途命運(yùn)。國(guó)內(nèi)軟件測(cè)試人才緊缺的現(xiàn)狀也已經(jīng)凸現(xiàn)出來(lái)。未來(lái)軟件測(cè)試技術(shù)會(huì)進(jìn)入快速發(fā)展軌道,自動(dòng)化軟件測(cè)試技術(shù)應(yīng)用將會(huì)越來(lái)越普遍,測(cè)試技術(shù)將不斷細(xì)分.研究意義互聯(lián)網(wǎng)正在融入我們的生活,影響和改變著我們的生活。網(wǎng)絡(luò)提供給我們的不只是一個(gè)獲取信息的來(lái)源,而且還是一個(gè)可以相互交流的空間,足球直播論壇正是一種供人們進(jìn)行交流的網(wǎng)絡(luò)空間。目前,網(wǎng)上論壇已不是新事物,許許多多的別具特色的論壇在網(wǎng)絡(luò)上隨處可見(jiàn)。為了體現(xiàn)論壇的特色,我搜索各式各樣的論壇版面,為了改變網(wǎng)上現(xiàn)存論壇的普遍風(fēng)格,追加功能,更便于管理,于是開(kāi)發(fā)出一套界面友好美觀(guān)的論壇系統(tǒng)。足球直播論壇是一個(gè)注冊(cè)用戶(hù)登錄后能夠?yàn)g覽論壇上的帖子,并且游客能夠注冊(cè)成為用戶(hù)。研究現(xiàn)狀國(guó)內(nèi)的BBS站,單線(xiàn)站還占大多數(shù)。隨著計(jì)算機(jī)的普及,特別是調(diào)制解調(diào)器的大量使用,BBS的活動(dòng)將會(huì)進(jìn)一步高漲。但是,隨之而來(lái)的撥號(hào)難和搶線(xiàn)難的問(wèn)題將會(huì)加劇。盡管BBS站臺(tái)的數(shù)量在不斷增長(zhǎng),但這種增長(zhǎng)的幅度總也趕不上用戶(hù)群的增長(zhǎng)。許多人同時(shí)撥號(hào)一個(gè)站臺(tái),不可避免地發(fā)生沖突。每回要撥上幾十次乃至上百次才能成功連上一個(gè)BBS站的狀況已經(jīng)成為困擾今日中國(guó)BBS用戶(hù)的一個(gè)難題。隨著B(niǎo)BS活動(dòng)的深入,國(guó)內(nèi)已經(jīng)出現(xiàn)了一些多線(xiàn)站,一次可以允許2人以上同時(shí)訪(fǎng)問(wèn)。
BBS的發(fā)展過(guò)程中,也出現(xiàn)了一些問(wèn)題。由于國(guó)內(nèi)使用的BBS架站軟件,都是從國(guó)外引進(jìn)的,因此沒(méi)有必要的中文說(shuō)明。雖然一些熱心的站長(zhǎng)翻譯了一些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺(tái)的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。
1999年是中國(guó)網(wǎng)絡(luò)的發(fā)展年。但是,我們應(yīng)該清醒地認(rèn)識(shí)到,目前一些BBS站并沒(méi)有走上“簡(jiǎn)單、易用”這一層次。包括一些廠(chǎng)商架設(shè)的BBS站,實(shí)用性還需要加強(qiáng)。今后,國(guó)內(nèi)的BBS站將向著個(gè)性化和專(zhuān)業(yè)化的方向發(fā)展?,F(xiàn)如今國(guó)內(nèi)外最常用的三種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言是PHP(personalhomepage)、ASP(activeserverpage)和JSP(javaserverpage)。PHP可以在Windows、UNIX、Linux的web服務(wù)器上正常執(zhí)行,支持IIS和Apache等一般的web服務(wù)器。微軟開(kāi)發(fā)的ASP功能強(qiáng)大,簡(jiǎn)單易學(xué),但是只能在Windows系統(tǒng)下運(yùn)行。UNIX下有Chilisoft的組件來(lái)支持ASP,但是ASP本身功能有限,必須通過(guò)與com的群組合來(lái)擴(kuò)充功能。JSP基于平臺(tái)和服務(wù)器的互相獨(dú)立,出入支持來(lái)自廣泛的、專(zhuān)門(mén)的工具包,服務(wù)器組件和數(shù)據(jù)庫(kù)產(chǎn)品由開(kāi)發(fā)商提供。這三種語(yǔ)言各有優(yōu)缺點(diǎn),根據(jù)BBS的用途不同,可以選擇合適的語(yǔ)言來(lái)開(kāi)發(fā)?,F(xiàn)在,計(jì)算機(jī)與互聯(lián)網(wǎng)的普及已經(jīng)逐漸進(jìn)入了機(jī)關(guān)、學(xué)校、企業(yè)和普通百姓家庭,互聯(lián)網(wǎng)是一個(gè)新媒體,網(wǎng)絡(luò)論壇是一種新的交流形式,這種交流形式被廣大的用戶(hù)接受是需要一個(gè)時(shí)間段的,在這個(gè)時(shí)間段中間,它的價(jià)值必然會(huì)被低估。而在這個(gè)時(shí)間段中,會(huì)有越來(lái)越多的用戶(hù)意識(shí)到網(wǎng)絡(luò)論壇的重要性,會(huì)越來(lái)越重視網(wǎng)絡(luò)論壇,所以在這個(gè)階段中,網(wǎng)絡(luò)論壇的價(jià)格會(huì)不斷的提升。享受不出門(mén)就能與人交談的方便生活。論壇憑借它的實(shí)時(shí)性和真實(shí)性積累了大批的用戶(hù)。網(wǎng)絡(luò)論壇(BulletinBoardService簡(jiǎn)稱(chēng):BBS)的是英特網(wǎng)上的一種用于信息服務(wù)系統(tǒng)。它提供一塊電子公告板,每個(gè)用戶(hù)都可以在上面輸寫(xiě),可發(fā)布信息或提出個(gè)人看法。大部分論壇都是由研究、教育、商業(yè)機(jī)構(gòu)建立和管理.電子公告按照不同的主題、把主題分成很多個(gè)布告欄,布告欄的設(shè)立的依據(jù)是大多數(shù)BBS使用者的要求和喜好及回答,使用者可以閱讀他人對(duì)某個(gè)主題的最新看法,也可以將自己的想法寫(xiě)到公告欄中。例已經(jīng)不計(jì)其數(shù),而且已經(jīng)應(yīng)用到各種站點(diǎn)上,可以說(shuō),各行各業(yè)的絕大部分的網(wǎng)站都使用到了網(wǎng)絡(luò)論壇,大量的用戶(hù)涌現(xiàn)在網(wǎng)絡(luò)論壇上發(fā)表自己的意見(jiàn)等,給論壇更佳的規(guī)范管理提出了更高的要求。開(kāi)發(fā)工具及技術(shù)開(kāi)發(fā)工具此次設(shè)計(jì)主要采用MyEclipse加Tomcat后臺(tái)服務(wù)器進(jìn)行,設(shè)計(jì)過(guò)程中頁(yè)面主要使用JSP技術(shù)完成,下面對(duì)MyEclipse、Tomcat和oracle數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)要介紹。MyEclipseMyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)元產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱(chēng)MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。TomcatTomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪(fǎng)問(wèn)用戶(hù)不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選??梢赃@樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apahce服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪(fǎng)問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。OracleORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶(hù)/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類(lèi)型的機(jī)器上使用它。JSPJSP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪(fǎng)問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。Web服務(wù)器在遇到訪(fǎng)問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶(hù)。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶(hù)端就是一個(gè)HTML文本,因此客戶(hù)端只要有瀏覽器能瀏覽。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶(hù)端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶(hù)端的瀏覽器。Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。JSP技術(shù)的優(yōu)點(diǎn):(1)一次編寫(xiě),到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/.net的局限性是顯而易見(jiàn)的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。(4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVABEANS組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。內(nèi)部對(duì)象說(shuō)明:request客戶(hù)端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù);response網(wǎng)頁(yè)傳回客戶(hù)端的響應(yīng);pageContext網(wǎng)頁(yè)的屬性是在這里管理;session與請(qǐng)求有關(guān)的會(huì)話(huà);applicationservlet正在執(zhí)行的內(nèi)容;out用來(lái)傳送響應(yīng)的輸出流;config代碼片段配置對(duì)象;pageJSP網(wǎng)頁(yè)本身;exception針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外B/S架構(gòu)B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶(hù)界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專(zhuān)用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。B/S模式的優(yōu)點(diǎn):(1)具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢(xún)、瀏覽等業(yè)務(wù)處理。(2)業(yè)務(wù)擴(kuò)展簡(jiǎn)單方便,通過(guò)增加網(wǎng)頁(yè)即可增加服務(wù)器功能。(3)維護(hù)簡(jiǎn)單方便,只需要改變網(wǎng)頁(yè),即可實(shí)現(xiàn)所有用戶(hù)的同步更新。(4)開(kāi)發(fā)簡(jiǎn)單,共享性強(qiáng)。JavascriptJavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶(hù)端腳本語(yǔ)言。同時(shí)也是一種廣泛用于客戶(hù)端Web開(kāi)發(fā)的腳本語(yǔ)言,常用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶(hù)的各種操作。JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?,通過(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀(guān)、模塊化和可重復(fù)使用的方式進(jìn)行程序開(kāi)發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開(kāi)發(fā)交互式Web網(wǎng)頁(yè)。Javascript的出現(xiàn)使得網(wǎng)頁(yè)和用戶(hù)之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁(yè)包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了javascript技術(shù),比如說(shuō),檢驗(yàn)用戶(hù)輸入數(shù)據(jù)的有效性,是否重復(fù),是否為空等等。Struts2簡(jiǎn)介Struts最早是作為ApacheJakarta項(xiàng)目的組成部分問(wèn)世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServerPages、Servlet、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。它的目的是為了減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。Struts是Apache軟件基金會(huì)(ASF)贊助的一個(gè)\o"開(kāi)源"開(kāi)源項(xiàng)目。它最初是Jakarta項(xiàng)目中的一個(gè)子項(xiàng)目,并在2002年3月成為ASF的頂級(jí)項(xiàng)目。它通過(guò)采用Java\o"Servlet"Servlet/JSP技術(shù),實(shí)現(xiàn)了基于JavaEE\o"Web"Web應(yīng)用的Model-View-Controller〔MVC〕設(shè)計(jì)模式的應(yīng)用框架〔Web\o"Framework"Framework〕,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。而Struts2則是Struts的升級(jí)版本。它的優(yōu)點(diǎn)在于:Struts2基于MVC架構(gòu),框架結(jié)構(gòu)清晰,開(kāi)發(fā)流程一目了然,開(kāi)發(fā)人員可以很好的掌控開(kāi)發(fā)的過(guò)程;使用OGNL進(jìn)行參數(shù)傳遞;強(qiáng)大的攔截器;易于測(cè)試;易于擴(kuò)展的插件機(jī)制;系統(tǒng)需求分析功能需求本論壇具備一般論壇的功能,提供一個(gè)簡(jiǎn)單實(shí)用的足球直播論壇。具體的功能模塊如下所示:(1)注冊(cè)登陸。參與論壇的人注冊(cè)自己的用戶(hù)名及個(gè)人信息(詳細(xì)一點(diǎn)),擁有論壇中的身份,可以獲得更多的權(quán)限。(2)分版塊瀏覽帖子。隨著帖子數(shù)量的增多,話(huà)題相同或類(lèi)似的帖子聚集在一起,引出了論壇系統(tǒng)新的擴(kuò)展功能,即分版塊瀏覽,屬于同一版塊的帖子討論相同的話(huà)題。這樣就使得對(duì)某一話(huà)題感興趣的用戶(hù)不會(huì)被其他帖子干擾,也有利于相同興趣的用戶(hù)互相討論,不易跑題。(3)編輯帖子。發(fā)帖回帖的用戶(hù),如果需要修改更新自己發(fā)表的帖子內(nèi)容,就引出了編輯帖子內(nèi)容的這個(gè)擴(kuò)展功能,提供給用戶(hù)更新自己發(fā)言的選擇。對(duì)于論壇管理員,可以編輯任何帖子的內(nèi)容,有利于論壇的文明建設(shè)。(4)刪除帖子。如果用戶(hù)發(fā)表了不符合論壇規(guī)則的帖子,則需要管理員刪除這些帖子,這就引出了刪除帖子的擴(kuò)展功能。(5)轉(zhuǎn)移帖子。論壇劃分了版塊,如果帖子內(nèi)容不屬于所在版塊的關(guān)注話(huà)題,管理員可以選擇將此帖移動(dòng)到所屬話(huà)題的版塊中去,這就引出了移動(dòng)帖子的擴(kuò)展功能,這個(gè)功能是隨著版塊功能的出現(xiàn)而出現(xiàn)的,版塊將帖子進(jìn)行了分組,從而提出了隨版塊移動(dòng)帖子的要求。(6)置頂帖子。帖子一般是根據(jù)發(fā)表及回復(fù)時(shí)間倒序排列的,這樣先發(fā)的帖子慢慢就排到后面,管理員如果需要強(qiáng)調(diào)某些帖子重要,有必看性,就要打亂默認(rèn)的排列順序,將這些帖子放在列表的最前端,不再按照時(shí)間進(jìn)行順序的變化,但是還要保證其他帖子按照時(shí)間變化順序進(jìn)行排序,這就引出了置頂帖子的擴(kuò)展功能。(7)指定精華帖。如果管理員認(rèn)為某個(gè)帖子的內(nèi)容非常好,可以打上標(biāo)記,推薦給看帖的用戶(hù),這就引出了指定精華帖的擴(kuò)展功能。用戶(hù)可以選擇只看打上標(biāo)記的精華帖。(8)管理版塊。論壇版塊需要先創(chuàng)建,才能被使用,管理員還可以修改版塊的相關(guān)信息,因此管理版塊是管理員使用的擴(kuò)展功能。(9)設(shè)置參數(shù)。論壇一般有一些初始化信息,比如每頁(yè)顯示帖子數(shù)量等參數(shù)信息,管理員可以在后臺(tái)界面自行設(shè)置。管理用戶(hù)。管理員可以對(duì)論壇的注冊(cè)用戶(hù)進(jìn)行管理,直接添加用戶(hù),賦予相關(guān)權(quán)限,也可以修改已注冊(cè)用戶(hù)的權(quán)限,對(duì)于違規(guī)用戶(hù)可以刪除,這個(gè)功能便于管理員對(duì)論壇用戶(hù)的管理。可行性分析開(kāi)發(fā)任何一個(gè)系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在每一個(gè)項(xiàng)目開(kāi)發(fā)之前,都要進(jìn)行可行性分析,可以減少項(xiàng)目的開(kāi)發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。下面就技術(shù)、經(jīng)濟(jì)、運(yùn)行三個(gè)方面來(lái)介紹。技術(shù)可行性本系統(tǒng)開(kāi)發(fā)工具是MyEclipse和MySQL數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言是Java,主要使用了J2EE的技術(shù),java是一種面向?qū)ο缶幊陶Z(yǔ)言,簡(jiǎn)單易學(xué)而且靈活方便。大三時(shí)就學(xué)習(xí)了java課程,大四期間也系統(tǒng)的了解了J2EE的知識(shí),鐵路售票系統(tǒng)總體上開(kāi)發(fā)難度不高,數(shù)據(jù)庫(kù)的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心。在大學(xué)期間學(xué)習(xí)過(guò)軟件工程,軟件測(cè)試,UML統(tǒng)一建模語(yǔ)言等課程,每個(gè)學(xué)期也會(huì)完成對(duì)應(yīng)的課程設(shè)計(jì),具備一定的系統(tǒng)分析、設(shè)計(jì)和測(cè)試能力。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。經(jīng)濟(jì)可行性軟件的經(jīng)濟(jì)可行性是指軟件所能帶來(lái)的經(jīng)濟(jì)效益與開(kāi)發(fā)設(shè)計(jì)所需要的投資相比,是否相適宜,同時(shí)還要看此軟件能否真正給用戶(hù)帶來(lái)足夠的經(jīng)濟(jì)效益。我所開(kāi)發(fā)的足球直播論壇正是基于為用戶(hù)提高工作效率、節(jié)省工作時(shí)間、方便操作與管理的目的而設(shè)計(jì)的。本系統(tǒng)的開(kāi)發(fā)在經(jīng)濟(jì)上是完全可行的。開(kāi)發(fā)此軟件不需要大量的經(jīng)費(fèi),而且是個(gè)人獨(dú)立設(shè)計(jì),可以節(jié)省許多費(fèi)用,同時(shí)也可提高個(gè)人的實(shí)際動(dòng)手能力。運(yùn)行可行性自從人類(lèi)社會(huì)進(jìn)入九十年代后,以及計(jì)算機(jī)技術(shù)的飛速發(fā)展,各種應(yīng)用軟件已日益為人們所接受。管理形式的計(jì)算機(jī)化是社會(huì)發(fā)展的必然趨勢(shì),各種智能化的軟件層出不窮,而面對(duì)二十一世紀(jì)智能管理的挑戰(zhàn),減少了原來(lái)人工操作的費(fèi)時(shí)費(fèi)力的狀況。并且可以避免人為的經(jīng)濟(jì)犯罪,管理層容易做出及時(shí)的決策。本系統(tǒng)用戶(hù)平臺(tái)直接面向普通用戶(hù),界面簡(jiǎn)單、明了,采用可視化界面,普通用戶(hù)只需用鼠標(biāo)就可以完成相應(yīng)的數(shù)據(jù)操作;少量的數(shù)據(jù)輸入是由后臺(tái)管理員用戶(hù)完成的。對(duì)于初次使用此系統(tǒng)的用戶(hù),不必經(jīng)過(guò)復(fù)雜的培訓(xùn)和學(xué)習(xí)就可以掌握本系統(tǒng)的操作流程。由此可見(jiàn),開(kāi)發(fā)此系統(tǒng)在操作上是可行的。系統(tǒng)重要流程登陸界面的主要功能是驗(yàn)證用戶(hù)的合法性和載入用戶(hù)信息,按照常規(guī)個(gè)人軟件的設(shè)置,每套軟件僅供一個(gè)用戶(hù)使用,因此登錄名稱(chēng)和密碼是唯一的,僅用戶(hù)自己可更改。登錄的流程圖如下:圖3-1用戶(hù)登錄流程圖論壇發(fā)帖功能模塊是本網(wǎng)站重要的功能模塊,前臺(tái)會(huì)員登陸之后可以再網(wǎng)站中發(fā)布帖子信息,然后可以對(duì)帖子進(jìn)行回復(fù)操作。發(fā)帖的流程圖如下:圖3-2會(huì)員發(fā)帖流程圖搜索帖子是論壇的主要功能之一,用戶(hù)可以通過(guò)帖子的類(lèi)別和關(guān)鍵字進(jìn)行搜索查找帖子信息。搜索帖子的流程圖如下:圖3-3搜索帖子流程圖用戶(hù)注冊(cè)的流程圖如圖3-4。圖3-4用戶(hù)注冊(cè)流程圖硬件環(huán)境在運(yùn)行本系統(tǒng)前,請(qǐng)檢查以下計(jì)算機(jī)是否滿(mǎn)足以下要求。服務(wù)器要求的配置為:CPU:Intel賽揚(yáng)Ⅳ以上,建議IntelPentiumⅣ以上內(nèi)存:1G以上,建議2G以上硬盤(pán):20G以上的可用硬盤(pán)安裝空間操作系統(tǒng):Windows2000以上,Internet信息服務(wù)器6.0(IIS6.0)軟件:MicrosoftSQLServer2008以上版本客戶(hù)機(jī)硬件配置要求為:CPU:Intel賽揚(yáng)Ⅲ以上,建議IntelPentiumⅢ以上內(nèi)存:32M以上,建議64M以上操作系統(tǒng):Windows2000以上,IE5.0以上版本系統(tǒng)設(shè)計(jì)分析總體設(shè)計(jì)系統(tǒng)設(shè)計(jì)目標(biāo)本系統(tǒng)的開(kāi)發(fā)目標(biāo)是利用JSP技術(shù)開(kāi)發(fā)一個(gè)關(guān)于足球直播討論的論壇實(shí)現(xiàn)一般論壇具備功能,包括前臺(tái)會(huì)員可以注冊(cè),登陸,發(fā)布信息,回復(fù)信息,查詢(xún)信息等功能,后臺(tái)管理員可以對(duì)整個(gè)的論壇數(shù)據(jù)信息進(jìn)行管理的足球直播論壇。系統(tǒng)設(shè)計(jì)思想系統(tǒng)采用了B/S結(jié)構(gòu),因?yàn)樗藗鞒蠧/S結(jié)構(gòu)的優(yōu)點(diǎn)外,還具有以下的優(yōu)勢(shì):首先,維護(hù)工作量大大減少了,降低了總體擁有的成本。C/S結(jié)構(gòu)的每一個(gè)用戶(hù)端都必須安裝和配置軟件,當(dāng)軟件哪怕進(jìn)行了微小的改動(dòng)后,系統(tǒng)維護(hù)員都必須將服務(wù)器更新到最新的版本;將用戶(hù)端原有的軟件卸載,再安裝新的版本,然后進(jìn)行設(shè)置,最為可怕的是必須對(duì)每個(gè)用戶(hù)端都進(jìn)行更新,當(dāng)用戶(hù)端很多時(shí),維護(hù)量可想而知了。然而B(niǎo)/S結(jié)構(gòu),由于它只需要用戶(hù)端有瀏覽器就可以,不用安裝其它軟件,用戶(hù)端運(yùn)行軟件就像瀏覽網(wǎng)頁(yè)一樣。所有的維護(hù)、升級(jí)工作都只在服務(wù)器上進(jìn)行,用戶(hù)端始終能獲得最新版本的軟件。無(wú)論用戶(hù)的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,這對(duì)人力、時(shí)間、費(fèi)用的節(jié)省是相當(dāng)驚人的。其次,平臺(tái)的依賴(lài)性小,可以在多個(gè)不同的操作系統(tǒng)上運(yùn)行。B/S結(jié)構(gòu)的應(yīng)用軟件只需安裝在服務(wù)器上,所以服務(wù)器操作系統(tǒng)的選擇是很多的,不管選用的是哪種操作系統(tǒng)都可以讓大部分人使用windows作為桌面操作系統(tǒng)的情況不受影響,大大提高了程序的可移植性。傳統(tǒng)的C/S結(jié)構(gòu)要求針對(duì)不同的操作系統(tǒng)開(kāi)發(fā)不同版本的軟件。由于產(chǎn)品的更新?lián)Q代是非常快的,所以這么高的代價(jià)和低效率越來(lái)越不適應(yīng)了,特別是在Java這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S結(jié)構(gòu)具有了更多的優(yōu)勢(shì)。通過(guò)高效能的B/S架構(gòu),透過(guò)IE瀏覽器就可以進(jìn)行操作,沒(méi)有任何程序更新的問(wèn)題。易操作性,便于用戶(hù)操作,因此,本系統(tǒng)利用普遍流行的B/S架構(gòu),利用Asp.Net建立前端界面,C#來(lái)進(jìn)行編程實(shí)現(xiàn)系統(tǒng)中的功能部分,實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互。系統(tǒng)功能模塊系統(tǒng)主要功能包括網(wǎng)站前臺(tái)和網(wǎng)站后臺(tái)管理2個(gè)功能模塊。(1)直播論壇的整體布局:由于論壇數(shù)據(jù)庫(kù)未實(shí)時(shí)更新以及過(guò)于簡(jiǎn)單,需要進(jìn)行加工重新整合(2)足球比賽直播鏈接的發(fā)布:測(cè)試該準(zhǔn)確性,實(shí)時(shí)性,這是該論壇的核心,所包含的鏈接需要具有兼容性,譬如手機(jī)平臺(tái)的觀(guān)看,各種播放器的播放等(3)用戶(hù)登錄發(fā)帖:這是暢所欲言的場(chǎng)所,需要測(cè)試發(fā)字?jǐn)?shù),安全性,以及不同等級(jí)用戶(hù)的權(quán)限等等(4)游客與用戶(hù)的留言互動(dòng);在實(shí)現(xiàn)聊天留言的同時(shí)需注意球迷立場(chǎng)不同,肯定會(huì)導(dǎo)致口水等,需要有和諧功能(5)管理員后臺(tái)登陸維護(hù):數(shù)據(jù)庫(kù)的維護(hù),以及查看用戶(hù)發(fā)帖的內(nèi)容是否合法合規(guī)(6)對(duì)論壇的整體測(cè)試:這是測(cè)試整個(gè)論壇的可運(yùn)行性,兼容性,穩(wěn)定性等整體擴(kuò)要(7)其他功能的完善與測(cè)試:許多問(wèn)題需要著手之后才可以更好的發(fā)現(xiàn)與改進(jìn)整體的結(jié)構(gòu)圖如圖4-1:圖4-1系統(tǒng)功能模塊圖系統(tǒng)流程論壇前臺(tái)是會(huì)員或者普通瀏覽人員的管理模塊,用戶(hù)要想在論壇中進(jìn)行參與就必須注冊(cè)會(huì)員并進(jìn)行登陸,會(huì)員登陸后可以查看論壇帖子信息,搜索帖子信息,發(fā)布帖子信息,回復(fù)帖子信息,管理自己的帖子信息,修改自己的注冊(cè)信息等功能。前臺(tái)會(huì)員的流程圖如圖4-2所示。圖4-2前臺(tái)管理流程圖網(wǎng)站后臺(tái)管理模塊是管理員操作的功能模塊,管理員可以對(duì)所有論壇信息進(jìn)行管理,包括賬號(hào)管理,用戶(hù)信息管理,論壇分類(lèi)管理,對(duì)帖子信息進(jìn)行管理包括修改帖子,轉(zhuǎn)帖,刪貼等功能。后臺(tái)管理員的流程圖如圖4-3所示。圖4-3后臺(tái)管理流程圖數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)概念設(shè)計(jì)E-R圖也即實(shí)體-聯(lián)系圖(EntityRelationshipDiagram),提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系。實(shí)體型(Entity)用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名;屬性(Attribute)用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);聯(lián)系(Relationship)用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類(lèi)型(1:1,1:n或m:n)。直播信息實(shí)體圖如圖4-4。圖4-4直播信息實(shí)體圖管理員信息實(shí)體圖如圖4-5。圖4-5管理員信息實(shí)體圖會(huì)員信息實(shí)體圖如圖4-6。圖4-6會(huì)員信息實(shí)體圖帖子信息實(shí)體圖如圖4-7。圖4-7帖子信息實(shí)體圖版面信息實(shí)體圖如圖4-8。圖4-8版面信息實(shí)體圖分類(lèi)信息實(shí)體圖如圖4-9。圖4-9分類(lèi)信息實(shí)體圖數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)通過(guò)對(duì)系統(tǒng)的需求和功能的分析我將系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)主要分為四個(gè)部分,包括用戶(hù)信息,專(zhuān)區(qū)信息,主題信息以及回復(fù)信息。用戶(hù)信息包括:用戶(hù)id,用戶(hù)名,真實(shí)姓名,用戶(hù)密碼,密碼確認(rèn),用戶(hù)性別,用戶(hù)聯(lián)系方式,用戶(hù)頭像,E_mail,聯(lián)系地址。tb_bbsAnswer用于存放會(huì)員留言。tb_bbs用于存放會(huì)員發(fā)表的帖子信息。tb_user用于存放論壇用戶(hù)信息。tb_class用于存放論壇類(lèi)別介紹。tb_board用于存放版面信息。建立數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖:用戶(hù)表tb_user表如下表:表4_1tb_user字段描述類(lèi)型空值長(zhǎng)度id注冊(cè)用戶(hù)Varchar2非2user_name用戶(hù)名Varchar2是20user_password密碼Varchar2是20User_face頭像Varchar2是2000user_sex性別Varchar2是2user_phone手機(jī)號(hào)Varchar2是12user_QICQQICQVarchar2是20user_email郵箱Varchar2是100User_from用戶(hù)地區(qū)Varchar2是200user_able頭像Varchar2是11T帖子表b_bbs表如下表:表4_2b_bbs字段描述類(lèi)型空值長(zhǎng)度bbs_id帖子編號(hào)Varchar2非4bbs_boardid版面編號(hào)Varchar2是200bbs_title帖子標(biāo)題Varchar2是70bbs_content帖子內(nèi)容Varchar2是2000bbs_sender發(fā)帖人Varcha2r是20bbs_sendTime發(fā)帖時(shí)間Varchar2是8bbs_face發(fā)帖人頭像Varchar2是10bbs_opTime置頂時(shí)間Varchar2是8bbs_isTop是否置頂Varchar2是8bbs_toGoodTime成為精華時(shí)間Varchar2是8bbs_isGood是否精華Varchar2是8分區(qū)表tb_class表如下表:表4_3tb_class字段描述類(lèi)型空值長(zhǎng)度class_id分區(qū)編號(hào)int非2class_name分區(qū)名稱(chēng)nvarchar是50class_intro分區(qū)信息nvarchar是200留言表tb_bbsAnswer表如下表:表4_4tb_bbsAnswer字段描述類(lèi)型空值長(zhǎng)度bbsAnswer_id留言編號(hào)int4bbsAnswer_rootid留言者編號(hào)int是4bbsAnswer_title回帖標(biāo)題varchar是70bbsAnswer_content回帖內(nèi)容varchar是2000bbsAnswer_sender回帖者姓名varchar是20bbsAnswer_sentime留言時(shí)間datetime是8bbsAnswer_face留言者頭像varchar是50板塊表tb_border表如下表:表4_5tb_border字段描述類(lèi)型空值長(zhǎng)度board_id版塊編號(hào)int非4board_classId板塊編號(hào)smalint是2board_name版塊名稱(chēng)nvarchar是40board_master斑竹datetime是20board_pcard版塊提醒nvarchar是200系統(tǒng)詳細(xì)設(shè)計(jì)我開(kāi)發(fā)的這個(gè)足球直播論壇功能很豐富我們對(duì)主要的功能模塊進(jìn)行界面和關(guān)鍵代碼的介紹。主界面設(shè)計(jì)首頁(yè)是網(wǎng)站的第一個(gè)頁(yè)面,也是打開(kāi)網(wǎng)站的第一個(gè)頁(yè)面,本網(wǎng)站首頁(yè)顯示了很多信息,包括界面的導(dǎo)航信息,用戶(hù)登陸,用戶(hù)注冊(cè),直播信息,帖子搜索,用戶(hù)中心,等鏈接,頁(yè)面左側(cè)顯示了精華帖子和置頂帖子信息,右側(cè)顯示了論壇的主要版面信息。網(wǎng)站首頁(yè)的運(yùn)行效果如圖5-1。圖5-1網(wǎng)站前臺(tái)網(wǎng)站首頁(yè)的關(guān)鍵代碼如下:<%@pagecontentType="text/html;charset=gb2312"%><%@tagliburi="struts-html"prefix="html"%><%@tagliburi="struts-bean"prefix="bean"%><%@tagliburi="struts-logic"prefix="logic"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><title>前臺(tái)登錄</title><basehref="<%=basePath%>"><linkstyle="text/css"rel="stylesheet"href="css/style.css"></head><bodybgcolor="#AA8D60"><center><html:formaction="user/login.do"focus="userName"><inputtype="hidden"name="method"value="login"><tablebackground="images/login/loginB.jpg"width="500"height="300"border="0"cellspacing="0"cellpadding="0"style="margin-top:90"><trheight="175"><tdcolspan="2"style="text-indent:145"><html:errors/><logic:presentname="message"><bean:writename="message"filter="false"/></logic:present></td></tr><trheight="45"><tdalign="right"width="35%">用戶(hù)名:</td><td> <html:textproperty="userName"size="30"/> <ahref="user/reg.do?method=userReg">[用戶(hù)注冊(cè)]</a></td></tr><trheight="30"><tdalign="right">密 碼:</td><td> <html:passwordproperty="userPassword"redisplay="false"size="30"/> <ahref="index.jsp">[返回首頁(yè)]</a></td></tr><tr><td></td><td> <html:imagesrc="images/login/bsup.gif"onmousedown="this.src='images/login/bsdown.gif'"onmouseup="this.src='images/login/bsup.gif'"/><html:imagesrc="images/login/brup.gif"onmousedown="this.src='images/login/brdown.gif'"onmouseup="this.src='images/login/brup.gif'"/> </td></tr></table><tablewidth="500"border="0"width="350"cellspacing="0"cellpadding="0"><tr><tdcolspan="2"><imgsrc="images/login/loginE.jpg"></td></tr></table></html:form></center></body>登陸功能及注冊(cè)功能的設(shè)計(jì)會(huì)員模塊包括會(huì)員的注冊(cè),會(huì)員登錄,管理員對(duì)會(huì)員信息進(jìn)行管理。會(huì)員注冊(cè)信息包括會(huì)員登錄賬號(hào),會(huì)員密碼,會(huì)員性別,會(huì)員真實(shí)姓名,會(huì)員電話(huà),會(huì)員住址,會(huì)員郵編等信息。會(huì)員注冊(cè)界面如圖5-2。圖5-2會(huì)員注冊(cè)界面會(huì)員登錄界面如圖5-3。圖5-3會(huì)員登錄界面會(huì)員注冊(cè)的關(guān)鍵代碼如下:publicActionForwarduserReg(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ ActionMessagesmessages=newActionMessages(); HttpSessionsession=request.getSession(); session.setAttribute("mainPage","../pages/userReg.jsp"); Stringvalidate=request.getParameter("validate"); if(validate==null||validate.equals("")||!validate.equals("yes")){ returnmapping.findForward("result"); } else{ UserFormregForm=(UserForm)form; Stringpass1=regForm.getUserPassword(); Stringpass2=regForm.getAginPassword(); if(!pass1.equals(pass2)){ System.out.println("兩次輸入的密碼不一致!"); messages.add("userPassword",newActionMessage("luntan.user.reg.pass.noEquals")); saveErrors(request,messages); } else{ StringuserName=Change.HTMLChange(regForm.getUserName()); Object[]params=null; Stringsql=""; sql="select*fromtb_userwhereuser_name=?"; params=newObject[1]; params[0]=userName; OpDBmyOp=newOpDB(); UserFormuser=myOp.OpUserSingleShow(sql,params); if(user!=null){ System.out.println(userName+"用戶(hù)已經(jīng)存在!"); messages.add("userOpR",newActionMessage("luntan.user.reg.exist",userName)); } else{ StringuserPassword=Change.HTMLChange(regForm.getUserPassword()); StringuserFace=regForm.getUserFace(); StringuserSex=regForm.getUserSex(); StringuserPhone=regForm.getUserPhone(); StringuserOICQ=regForm.getUserOICQ(); StringuserEmail=regForm.getUserEmail(); StringuserFrom=Change.HTMLChange(regForm.getUserFrom()); StringuserAble="0"; sql="insertintotb_uservalues(?,?,?,?,?,?,?,?,?,?)"; params=newObject[10]; intid=newRandom().nextInt(99); params[0]=id; params[1]=userName; params[2]=userPassword; params[3]=userFace; params[4]=userSex; params[5]=userPhone; params[6]=userOICQ; params[7]=userEmail; params[8]=userFrom; params[9]=userAble; inti=myOp.OpUpdate(sql,params); if(i<=0){ System.out.println("用戶(hù)注冊(cè)失敗!"); messages.add("userOpR",newActionMessage("luntan.user.reg.E")); } else{ System.out.println("用戶(hù)注冊(cè)成功!"); regForm.clear(); messages.add("userOpR",newActionMessage("luntan.user.reg.S")); } saveErrors(request,messages); } } returnmapping.findForward("result"); } } }發(fā)帖及回帖分享等功能的設(shè)計(jì)會(huì)員登陸后才能在網(wǎng)站中進(jìn)行發(fā)帖操作,同樣的只要登錄會(huì)員才能回復(fù)帖子信息。會(huì)員點(diǎn)擊任意論壇版面進(jìn)入之后填寫(xiě)帖子的主題信息和內(nèi)容信息,點(diǎn)擊發(fā)布就成功發(fā)布一條帖子信息,點(diǎn)擊任何一條帖子信息,在下面進(jìn)行回復(fù)帖子的操作。在帖子的內(nèi)容下面又一個(gè)分享的按鈕圖標(biāo),可以把論壇的帖子分享到QQ空間,開(kāi)心網(wǎng)等網(wǎng)站增加帖子的閱讀次數(shù)。會(huì)員發(fā)帖的效果圖如圖5-4所示。圖5-4會(huì)員發(fā)帖界面會(huì)員回復(fù)帖子的效果圖如圖5-5所示。圖5-5會(huì)員回復(fù)帖子界面會(huì)員發(fā)帖的關(guān)鍵代碼如下: publicActionForwardaddBbs(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ HttpSessionsession=request.getSession(); session.setAttribute("mainPage","/pages/add/bbsAdd.jsp"); Stringvalidate=request.getParameter("validate"); if(validate==null||validate.equals("")||!validate.equals("yes")){ returnmapping.findForward("showAddJSP"); } else{ BbsFormbbsForm=(BbsForm)form; String boardId=(String)session.getAttribute("boardId"); String bbsTitle=Change.HTMLChange(bbsForm.getBbsTitle()); String bbsContent=Change.HTMLChange(bbsForm.getBbsContent()); String bbsSender=((UserForm)session.getAttribute("logoner")).getUserName(); String bbsSendTime=Change.dateTimeChange(newDate()); String bbsFace=bbsForm.getBbsFace(); String bbsOpTime=bbsSendTime; String bbsIsTop="0"; String bbsToTopTime=""; String bbsIsGood="0"; String bbsToGoodTime=""; Stringsql="insertintotb_bbsvalues(?,?,?,?,?,?,?,?,?,?,?,?)"; Stringbbsid=String.valueOf(newRandom().nextInt(99)); Object[]params={bbsid,boardId,bbsTitle,bbsContent,bbsSender,bbsSendTime,bbsFace,bbsOpTime,bbsIsTop,bbsToTopTime,bbsIsGood,bbsToGoodTime}; ActionMessagesmessages=newActionMessages(); OpDBmyOp=newOpDB(); inti=myOp.OpUpdate(sql,params); if(i<=0){ System.out.println("發(fā)表帖子失??!"); messages.add("userOpR",newActionMessage("luntan.bbs.add.E")); saveErrors(request,messages); returnmapping.findForward("error"); } else{ System.out.println("發(fā)表帖子成功!"); session.setAttribute("currentP","1"); messages.add("userOpR",newActionMessage("luntan.bbs.add.S")); bbsForm.clear(); saveErrors(request,messages); returnmapping.findForward("success"); } } } 搜索功能的設(shè)計(jì)前臺(tái)會(huì)員可以實(shí)現(xiàn)搜索帖子的功能,選擇論壇的分類(lèi),然后輸入要搜索信息的關(guān)鍵字如果存在相關(guān)的記錄就會(huì)被搜索出來(lái)顯示到頁(yè)面中。搜索帖子的界面效果如圖5-6所示。圖5-6搜索帖子信息界面搜素帖子的關(guān)鍵代碼如下: intperR=5; StringcurrentP=request.getParameter("showpage"); if(currentP==null||currentP.equals("")) currentP=(String)session.getAttribute("currentP"); else session.setAttribute("currentP",currentP); Stringgowhich="user/listShow.do?method=rootListShow"; myOp.setMark(true); //進(jìn)行分頁(yè)顯示 myOp.setPageInfo(perR,currentP,gowhich); //設(shè)置進(jìn)行分頁(yè)顯示需要的信息 sql="select*fromtb_bbswherebbs_boardID=?and(bbs_isTop='0'orbbs_isGood='1')orderbybbs_toTopTimeDESC"; Listotherbbslist=myOp.OpBbsListShow(sql,params); CreatePagepage=myOp.getPage(); session.setAttribute("otherbbslist",otherbbslist); session.setAttribute("page",page); returnmapping.findForward("success"); } 版塊管理功能的設(shè)計(jì)論壇板塊管理是后臺(tái)管理員的功能模塊包括對(duì)論壇分類(lèi)的管理,對(duì)版面的管理,對(duì)帖子信息的管理。管理員可以再后臺(tái)添加論壇分類(lèi)信息,添加版面信息,相關(guān)的界面如圖5-7所示。圖5-7添加論壇版面界面論壇類(lèi)別管理的界面如圖5-8所示。圖5-8帖子信息管理界面帖子管理的關(guān)鍵代碼如下:publicActionForwardaddBoard(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ HttpSessionsession=request.getSession(); session.setAttribute("backMainPage","../board/boardAdd.jsp"); OpDBmyOp=newOpDB(); Stringvalidate=request.getParameter("validate"); if(validate==null||validate.equals("")||!validate.equals("yes")){ ListclassList=myOp.OpClassListShow(); session.setAttribute("backClassList",classList); returnmapping.findForward("result"); } else{ BoardFormboardform=(BoardForm)form; StringclassId=boardform.getBoardClassID(); StringboardName=Change.HTMLChange(boardform.getBoardName()); StringboardMaster=Change.HTMLChange(boardform.getBoardMaster()); StringboardPcard=Change.HTMLChange(boardform.getBoardPcard()); ActionMessagesmessages=newActionMessages(); Stringsql="select*fromtb_boardwhereboard_name=?andboard_classID=?"; Object[]params={boardName,classId}; if(myOp.OpBoardSingleShow(sql,params)!=null){ System.out.println("添加版面-"+boardName+"版面已經(jīng)存在!"); messages.add("adminOpR",newActionMessage("luntan.admin.add.board.exist",boardName)); } else{ sql="select*fromtb_userwhereuser_name=?"; Object[]params1={boardMaster}; UserFormuserform=myOp.OpUserSingleShow(sql,params1); if(userform==null){ System.out.println("添加版面-"+boardMaster+"版主不存在!"); messages.add("adminOpR",newActionMessage("luntan.admin.update.board.no.user",boardMaster)); } elseif(userform.getUserAble().equals("0")){ System.out.println("添加版面-"+boardMaster+"不是版主!"); messages.add("adminOpR",newActionMessage("luntan.admin.update.board.user.able",boardMaster)); } else{ sql="insertintotb_boardvalues(?,?,?,?,?)"; Stringboardid=String.valueOf(newRandom().nextInt(99)); Object[]params2={boardid,classId,boardName,boardMaster,boardPcard}; inti=myOp.OpUpdate(sql,params2); if(i<=0){ System.out.println("添加版面失敗!"); messages.add("adminOpR",newActionMessage("luntan.admin.add.board.E")); } else{ boardform.clear(); System.out.println("添加版面成功!"); messages.add("adminOpR",newActionMessage("luntan.admin.add.board.S")); } } } saveErrors(request,messages); returnmapping.findForward("result"); }}系統(tǒng)測(cè)試系統(tǒng)測(cè)試概述測(cè)試目標(biāo)軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序)中的錯(cuò)誤和缺陷。明確測(cè)試的目的是一件非常重要的事,因?yàn)樵诂F(xiàn)實(shí)世界中對(duì)測(cè)試工作存在著許多模糊或者錯(cuò)誤的看法,這些看法嚴(yán)重影響著測(cè)試工作的順利進(jìn)行。有人認(rèn)為測(cè)試是為了證明程序是正確的,也就是說(shuō)程序不再有錯(cuò)誤,事實(shí)證明這是不現(xiàn)實(shí)的。因?yàn)橐ㄟ^(guò)測(cè)試來(lái)發(fā)現(xiàn)程序中的所有錯(cuò)誤就要窮舉所有可能的輸入數(shù)據(jù),檢查它們是否產(chǎn)生正確的結(jié)果。測(cè)試方法測(cè)試的關(guān)鍵是測(cè)試用例的設(shè)計(jì),其方法可分成兩類(lèi):白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試是把程序看成裝在一只透明的白盒子里,測(cè)試者完全了解程序的結(jié)構(gòu)和處理過(guò)程。它根據(jù)程序的內(nèi)部邏輯來(lái)設(shè)計(jì)測(cè)試用例,檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作。黑盒測(cè)試是把程序看成一只黑盒子,測(cè)試者完全不了解(或不考慮)程序的結(jié)構(gòu)和處理過(guò)程。它根據(jù)規(guī)格說(shuō)明書(shū)規(guī)定的功能來(lái)設(shè)計(jì)測(cè)試用例,檢查程序的功能是否符合規(guī)格說(shuō)明的要求。軟件測(cè)試的主要步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。1.單元測(cè)試(UnitTesting)單元測(cè)試也稱(chēng)模塊測(cè)試。通常單元測(cè)試可放在編碼階段,程序員在編寫(xiě)好一個(gè)模塊后,總會(huì)對(duì)自己編寫(xiě)的模塊進(jìn)行測(cè)試,檢查它是否實(shí)現(xiàn)了詳細(xì)設(shè)計(jì)說(shuō)明書(shū)中規(guī)定的模塊功能和算法。單元測(cè)試主要發(fā)現(xiàn)編碼和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤,通常采用白盒測(cè)試。2.集成測(cè)試(IntegrationTesting)集成測(cè)試也稱(chēng)組裝測(cè)試,它是對(duì)由各模塊組裝而成的程序進(jìn)行測(cè)試,主要檢查模塊間的接口和通信。集成測(cè)試主要發(fā)現(xiàn)設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,通常采用黑盒測(cè)試。3.確認(rèn)測(cè)試(ValidationTesting)確認(rèn)測(cè)試的任務(wù)是檢查軟件的功能、性能及其他特征與用戶(hù)的需求一致,它是以需求規(guī)格說(shuō)明書(shū)(即需求規(guī)約)作為依據(jù)的測(cè)試。確認(rèn)測(cè)試通常采用黑盒測(cè)試。確認(rèn)測(cè)試產(chǎn)生測(cè)試程序是否滿(mǎn)足需求規(guī)格說(shuō)明書(shū)所列的各項(xiàng)要求,然后要進(jìn)行軟件配置復(fù)查,特別是文檔是否齊全,各方面的質(zhì)量是否符合要求等。如果一個(gè)軟件是為某個(gè)客戶(hù)定制的,那么最后由客戶(hù)來(lái)實(shí)施驗(yàn)收測(cè)試(acceptancetesting),以便客戶(hù)確認(rèn)該軟件是他所需要的。如果一個(gè)軟件是作為產(chǎn)品被許多客戶(hù)使用的話(huà),那不可能為每個(gè)客戶(hù)進(jìn)行驗(yàn)收測(cè)試。大多數(shù)軟件生產(chǎn)者使用一種Alpha測(cè)試和Beta測(cè)試的過(guò)程,僅由最終用戶(hù)才能發(fā)現(xiàn)的錯(cuò)誤。測(cè)試方案測(cè)試要點(diǎn)分析我們對(duì)系統(tǒng)的主要功能模塊進(jìn)行測(cè)試,測(cè)試是否滿(mǎn)意系統(tǒng)的要求。是否達(dá)到我們的開(kāi)發(fā)需求分析的要求。我們主要對(duì)會(huì)員注冊(cè),會(huì)員登陸,會(huì)員發(fā)帖等功能模塊進(jìn)行測(cè)試。測(cè)試內(nèi)容我們對(duì)系統(tǒng)登錄進(jìn)行測(cè)試,首先打開(kāi)登錄界面登錄界面如圖6-1。圖6-1系統(tǒng)登錄界面我們輸入正確的登陸賬號(hào)和登陸密碼系統(tǒng)會(huì)顯示當(dāng)前登陸用戶(hù)的賬號(hào)名稱(chēng)以及注銷(xiāo)按鈕和進(jìn)入用戶(hù)中心按鈕。圖6-2登陸成功測(cè)試我們對(duì)會(huì)員注冊(cè)進(jìn)行測(cè)試,首先打開(kāi)會(huì)員注冊(cè)界面如圖6-4。圖6-3會(huì)員注冊(cè)頁(yè)面會(huì)員注冊(cè)賬號(hào),登陸密碼,電子郵件等信息是必須輸入的信息,我們不輸入任何信息直接點(diǎn)擊注冊(cè)系統(tǒng)會(huì)提示那些信息是必須輸入的。提示信息界面如圖6-5。圖6-5測(cè)試不輸入信息直接注冊(cè)我們對(duì)輸入的信息也是要按照規(guī)定的格式進(jìn)行輸入的例如電子郵件信息,比如按照電子郵件的格式進(jìn)行輸入否則給出相應(yīng)的提示。電子郵件格式錯(cuò)誤提示信息如圖6-6所示。圖6-6電子郵件格式測(cè)試測(cè)試結(jié)果分析評(píng)價(jià)通過(guò)對(duì)會(huì)員注冊(cè)和會(huì)員登錄2個(gè)功能模塊的測(cè)試我們測(cè)試出系統(tǒng)符合開(kāi)始我們?cè)O(shè)計(jì)的要求,對(duì)輸入輸出信息要求比較嚴(yán)格,符合一般用戶(hù)的要求。結(jié)論本文研究了基于B/S模式的足球直播論壇的開(kāi)發(fā)過(guò)程和方法。在系統(tǒng)開(kāi)發(fā)的過(guò)程中,體會(huì)到了編程的辛苦,同時(shí)也學(xué)習(xí)了新的知識(shí),加深了對(duì)oracle數(shù)據(jù)庫(kù)和對(duì)JSP這種新的開(kāi)發(fā)語(yǔ)言的認(rèn)識(shí)。主要收獲有如下幾點(diǎn):(1)完成了足球直播論壇基本功能模塊的開(kāi)發(fā)。(2)學(xué)習(xí)了使用oracle數(shù)據(jù)庫(kù),通過(guò)調(diào)用視圖,來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作。(3)對(duì)在實(shí)際項(xiàng)目中如何選擇、確定對(duì)象等做了一次嘗試和分析??梢哉f(shuō),在這次設(shè)計(jì)中,學(xué)到了不少東西,尤其是對(duì)軟件工程和Myeclipse平臺(tái)的相關(guān)技術(shù)做了以比較深入的探索。參考文獻(xiàn)張桂珠劉麗陳愛(ài)國(guó)Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)北京郵電大學(xué)出版社畢廣吉.Java程序設(shè)計(jì)實(shí)例教程[M].北京:冶金工業(yè)出版社,2007年王保羅.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2003年劉騰紅,孫細(xì)明.信息系統(tǒng)分析與設(shè)計(jì)[M].北京:科學(xué)出版社,2003年林邦杰.徹底研究java.北京:電子工業(yè)出版社,2002年[美]RogersCadenhead.Java編程入門(mén)經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,2007[美]BruceEckel,陳昊鵬譯,Java編程思想(第三版)[M].北京:機(jī)械工業(yè)出版社,2007.6[英]FLANAGAN.《Java技術(shù)手冊(cè)》.中國(guó)電力出版社,2002趙文靖.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006趙毅.跨平臺(tái)程序設(shè)計(jì)語(yǔ)言——Java.西安:西安電子科技大學(xué)出版社,2006王路群.Java高級(jí)程序設(shè)計(jì).北京:中國(guó)水利水電出版社,2006雍俊海.Java程序設(shè)計(jì)習(xí)題集.北京:清華大學(xué)出版社,2006朱福喜.Java語(yǔ)言習(xí)題與解析.北京:清華大學(xué)出版社,2006吳其慶.Java程序設(shè)計(jì)實(shí)例教程.北京:冶金工業(yè)出版社,2006柳西玲.許斌.Java語(yǔ)言應(yīng)用開(kāi)發(fā)基礎(chǔ).北京:清華大學(xué)出版社,2006施霞萍等.Java程序設(shè)計(jì)教程第2版.北京:機(jī)械工業(yè)出版社,2006致謝在老師和同學(xué)的幫助下,我所開(kāi)發(fā)的系統(tǒng)得到順利的完成與實(shí)現(xiàn)。感謝我所有的同學(xué)和朋友。在學(xué)習(xí)生涯中,他們給了我許多幫助,帶給我無(wú)限的快樂(lè)。是他們陪我一起走過(guò)學(xué)生時(shí)代,和我同舟共濟(jì),共同迎接困難和挑戰(zhàn),他們對(duì)我的種種支持和幫助,最是感激不盡。最后,感謝所有的老師。是他們傳授給我了寶貴知識(shí),是他們使我學(xué)會(huì)了奮斗與拼搏,同樣是他們使我懂得了堅(jiān)強(qiáng)與自信。他們?cè)谖业拇髮W(xué)期間付出了很多的心血與精力,在我的學(xué)習(xí)道路中,他們孜孜不倦的教誨和鼓舞是促進(jìn)我不斷進(jìn)取的重要精神動(dòng)力。外文文獻(xiàn)1.WhatisstrutsStrutsisopensourcesoftwarethathelpsdevelopersbuildwebapplicationsquicklyandeasily.Strutsreliesonstandardtechnologies—suchasJavaBeans,Javaservlets,andJavaServerPages(JSP)—thatmostdevelopersalreadyknowhowtouse.Bytakingastandards-based,“fill-in-the-blanks”approachtosoftwaredevelopment,Strutscanalleviatemuchofthetime-consuminggruntworkthatcomeswitheverynewproject.2.WhomakestheStrutssoftwareStrutsishostedbytheApacheSoftwareFoundation(ASF)aspartofitsJakartaproject.BesidesStruts,Jakartahostsseveralsuccessfulopensourceproducts,includingTomcat,Ant,andVelocity.TheinitialStrutscodebasewasdevelopedbetweenMay2000andJune2001whenversion1.0wasreleased.Morethan30developerscontributedtotheStrutsdistribution,andthousandsmorefollowtheStrutsmailinglists.TheStrutscodebaseismanagedbyateamofvolunteer“Committers.”By2002,theStrutsteamincludednineactiveCommitters.TheprimaryarchitectanddeveloperoftheStrutsframeworkisCraigR.McClanahan.CraigisalsotheprimaryarchitectofTomcat4andtheimplementationarchitectoftheJavaWebServicesDeveloperPack.HeisnowSun’sspecificationleadforJavaServerFaces(JSR-127)aswellastheWebLayerArchitectfortheJava2EnterpriseEdition(J2EE)platform.StrutsisavailabletothepublicatnochargeundertheApacheSoftwareLicense[ASF,License].Therearenoacquisitionorotherrecurringcostsforusingthesoftware.Unlikesomeotheropensourcelicenses,theApacheSoftwareLicenseisbusiness-friendly.YoucanuseStrutstocreateacommercialprojectanddistributetheStrutsbinarywithoutanyredtape,fees,orotherhassles.YoucanalsointegratetheStrutscomponentsintoyourownframeworkjustasiftheywerewrittenin-house.For
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版市政道路砍割樁施工項(xiàng)目合同2篇
- 2025年度生態(tài)農(nóng)業(yè)餐飲食材配送框架協(xié)議3篇
- 梧州職業(yè)學(xué)院《推拿學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版醫(yī)療機(jī)構(gòu)餐飲服務(wù)合作協(xié)議版B版
- 二零二五版醫(yī)療設(shè)備檢驗(yàn)試劑配套供應(yīng)協(xié)議2篇
- 2024版行政人員合同
- 二零二五版單位食堂餐飲服務(wù)設(shè)施升級(jí)改造合同3篇
- 2024版廣告設(shè)計(jì)與發(fā)布合同
- 太湖創(chuàng)意職業(yè)技術(shù)學(xué)院《輕化工程專(zhuān)業(yè)發(fā)展概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《電工電拖》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年醫(yī)師定期考核臨床業(yè)務(wù)知識(shí)考試題庫(kù)及答案(共三套)
- 2014新PEP小學(xué)英語(yǔ)六年級(jí)上冊(cè)-Unit5-What-does-he-do復(fù)習(xí)課件
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書(shū)
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)《電與磁》單元測(cè)試卷(原卷版)
- 江蘇單招英語(yǔ)考綱詞匯
- 2024年事業(yè)單位財(cái)務(wù)工作計(jì)劃例文(6篇)
- 2024年工程咨詢(xún)服務(wù)承諾書(shū)
- 青桔單車(chē)保險(xiǎn)合同條例
- 車(chē)輛使用不過(guò)戶(hù)免責(zé)協(xié)議書(shū)范文范本
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
評(píng)論
0/150
提交評(píng)論