鋼琴網(wǎng)系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  鋼琴網(wǎng)系統(tǒng)</b></p><p><b>  目 錄</b></p><p><b>  1 引言2</b></p><p>  1.1 設(shè)計背景2</p><p>  1.2 現(xiàn)狀分析3</p><p>  1.3

2、 實現(xiàn)功能3</p><p>  2 確定開發(fā)環(huán)境4</p><p>  2.1 語言環(huán)境4</p><p>  2.2 開發(fā)框架4</p><p>  2.3 開發(fā)環(huán)境5</p><p>  2.3.1 語言環(huán)境、數(shù)據(jù)庫、服務(wù)器5</p><p>  2.3.2 symfony框架

3、環(huán)境6</p><p>  3 系 統(tǒng) 概 述8</p><p>  3.1 鋼琴網(wǎng)系統(tǒng)的作用8</p><p>  3.2鋼琴網(wǎng)系統(tǒng)設(shè)計思想8</p><p>  3.3 鋼琴網(wǎng)系統(tǒng)存在的問題現(xiàn)狀9</p><p>  4 需 求 分 析10</p><p>  4.1 現(xiàn)狀分析

4、10</p><p>  4.2 系統(tǒng)的結(jié)構(gòu)10</p><p>  4.3 技術(shù)要求11</p><p>  4.4 運(yùn)行環(huán)境11</p><p>  5 鋼琴網(wǎng)系統(tǒng)設(shè)計12</p><p>  5.1鋼琴網(wǎng)系統(tǒng)結(jié)構(gòu)功能12</p><p>  5.2 網(wǎng)站結(jié)構(gòu)12</p&g

5、t;<p>  5.3數(shù)據(jù)庫的分析與設(shè)計14</p><p>  5.4 主要功能模塊14</p><p>  5.5鋼琴網(wǎng)系統(tǒng)實現(xiàn)15</p><p>  5.5.1 系統(tǒng)結(jié)構(gòu)15</p><p>  5.5.2 開發(fā)工具15</p><p>  6 具體設(shè)計及實現(xiàn)16</p>

6、<p>  6.1系統(tǒng)用戶瀏覽模塊實現(xiàn)16</p><p>  6.2 用戶注冊、登錄和權(quán)限管理的實現(xiàn)18</p><p>  6.2.1登錄模塊18</p><p>  6.2.2注冊頁面19</p><p>  6.3實現(xiàn)用戶發(fā)布信息功能模塊19</p><p>  6.4系統(tǒng)運(yùn)行截圖19

7、</p><p>  6.4.1鋼琴網(wǎng)系統(tǒng)登錄界面19</p><p>  6.4.2考試系統(tǒng)考試主界面20</p><p>  6.4.3用戶瀏覽新聞、琴行等界面21</p><p>  6.3.4用戶提交信息界面22</p><p>  6.4.5后臺管理界面22</p><p>

8、  6.4.6查詢及結(jié)果界面23</p><p>  7 系統(tǒng)測試與調(diào)試23</p><p>  7.1 測試目的及任務(wù)23</p><p>  7.2 測試方法23</p><p>  7.3 系統(tǒng)調(diào)試23</p><p>  7.3.1 系統(tǒng)調(diào)試的常用方法23</p><p> 

9、 8 結(jié)果與分析24</p><p><b>  9 致 謝25</b></p><p>  10 參考文獻(xiàn)26</p><p><b>  11 附錄27</b></p><p><b>  1 引言</b></p><p>  互聯(lián)網(wǎng)現(xiàn)已成

10、為我們生活中不可缺少的部分,網(wǎng)絡(luò)以其無可比擬的時效性和廉價性吸引了無數(shù)商家的眼球。現(xiàn)代商務(wù)網(wǎng)絡(luò)已經(jīng)成為必不可少的一種產(chǎn)品宣傳的方式。但是公司性的網(wǎng)站只是單純的產(chǎn)品展示,會讓用戶很難了解到除產(chǎn)品以外的其他信息,例如用戶在選擇產(chǎn)品的時候想知道大眾的意向,想在線和其他人交流,產(chǎn)品行業(yè)的最新動態(tài)等,用戶想了解這些不得不轉(zhuǎn)向其他的網(wǎng)站瀏覽,這樣就大大降低了網(wǎng)站本身的商業(yè)價值。所以我這里將產(chǎn)品展示、用戶發(fā)布、瀏覽相關(guān)信息、用戶交流等都融合在鋼琴網(wǎng)系

11、統(tǒng)里。</p><p>  隨著計算機(jī)及其網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和社會信息化水平的不斷提高,計算機(jī)在教育測量和評價過程也得到了廣泛的應(yīng)用。Internet正是順應(yīng)著這一新的趨勢,以舉火燎原之勢席卷全球,深入人們生產(chǎn)生活的各個發(fā)面。與傳統(tǒng)產(chǎn)品展示系統(tǒng)相比,讓用戶可以發(fā)布自己的信息,一方面用戶可以得到經(jīng)濟(jì)上的回報,另一方面直接的幫助了網(wǎng)站管理員豐富了網(wǎng)站的內(nèi)容。通過鋼琴網(wǎng)系統(tǒng),用戶可以直接通過瀏覽網(wǎng)站了解到最新的鋼琴價格

12、、琴行信息、自己所在地區(qū)的培訓(xùn)信息、鋼琴相關(guān)的服務(wù)信息,當(dāng)然用戶也可以發(fā)布自己的商業(yè)信息,這樣網(wǎng)站就不僅僅具有產(chǎn)品展示的商業(yè)價值,用戶也可以了解到更多相關(guān)的產(chǎn)業(yè)信息,在線交流分享自己的見解。這樣鋼琴網(wǎng)相比于普通的商業(yè)網(wǎng)站將更加具有用戶黏度,更加能吸引用戶的使用,網(wǎng)站本身的商業(yè)價值也將的到提升。</p><p><b>  1.1 設(shè)計背景</b></p><p>  

13、背景故事:王先生家住在武昌,工作穩(wěn)定,家庭幸福。最近王先生和妻子達(dá)成共識,決定讓6歲的女兒練習(xí)鋼琴,于是準(zhǔn)備給女兒買一架鋼琴供女兒練習(xí)。王先生在網(wǎng)上搜索了一下,大多與鋼琴相關(guān)的信息都是一些商業(yè)性的宣傳網(wǎng)站,只有鋼琴的宣傳信息,覺得宣傳的意味太重,鋼琴的價格在中國也不算小數(shù)目,要買當(dāng)然要謹(jǐn)慎。于是不得不向熟人打聽,求助。到琴行買了鋼琴后,才發(fā)現(xiàn)要找搬家公司搬運(yùn)剛鋼琴,而琴行附帶的搬運(yùn)服務(wù)價格又很貴,于是不得不請琴行的搬運(yùn)車將鋼琴運(yùn)回家。鋼

14、琴買回家后,需要聯(lián)系女兒的鋼琴老師,在浩如煙海的培訓(xùn)信息中想找到自己新人的培訓(xùn)信息可不簡單,于是王先生花了整整一天的休息時間找來了鋼琴老師。女兒練琴還沒幾天,老師就反映鋼琴的音律有問題,需要調(diào)律,于是又上網(wǎng)尋找鋼琴調(diào)律師。女兒練了半年,王先生覺得女兒很反感練習(xí)鋼琴,王先生和妻子也不愿意強(qiáng)迫孩子,于是花了上萬元的鋼琴閑置在家。綜合一下,王先生從想給女兒買鋼琴開始就面臨一系列的問題:1.選擇合適的鋼琴,包括價格、品牌(涉及模塊:鋼琴選購、琴

15、行信息);2.了解行業(yè)信息,例如了解品牌的行業(yè)口碑、性能等(涉及模塊:行業(yè)新聞、鋼琴選購、用戶評價、留言等);3.決定買</p><p><b>  1.2 現(xiàn)狀分析</b></p><p>  目前國內(nèi)樂器市場潛力巨大,而鋼琴素有樂器之王的美稱,它作為一種高檔、優(yōu)雅的樂器自然受到大眾的追捧,銷售鋼琴所產(chǎn)生的商業(yè)利益也很大,商家也都在不遺余力的宣傳。商家所選擇的宣傳平

16、臺主要是自己企業(yè)的網(wǎng)站,這樣的宣傳成本低,維護(hù)難度相對較小,但是對于用戶的需求卻得不到滿足。用戶在涉足樂器這個行業(yè)的時候就像了解更多的相關(guān)信息,而學(xué)習(xí)的過程就是不斷的了解行業(yè)信息,和網(wǎng)友交流,觀察大眾的評價等等。所以我認(rèn)為可以將宣傳重點(diǎn)放在用戶的需求上,用戶在瀏覽宣傳資料的同時能夠自我成長,注重用戶的需求才是網(wǎng)站的生存之道,也是網(wǎng)站能不能實現(xiàn)商業(yè)價值的重要體現(xiàn)。因此我將鋼琴網(wǎng)的定位定位在門戶性質(zhì)的鋼琴網(wǎng)站,整合各種信息于一體,滿足用戶的

17、需求,甚至還可以擴(kuò)展到所有樂器的銷售宣傳和用戶交流。</p><p><b>  1.3 實現(xiàn)功能</b></p><p>  1.用戶瀏覽各種信息,包括鋼琴的選購、行業(yè)新聞、服務(wù)信息、培訓(xùn)信息、琴行信息等等;</p><p>  2.用戶注冊成為注冊用戶(包括個人用戶和企業(yè)用戶);</p><p>  3.注冊用戶發(fā)布

18、和管理(更新、刪除)自己發(fā)布的信息;</p><p>  4.用戶搜索想找自己想要的鋼琴(鋼琴搜索);</p><p>  5.按不同的需求選擇鋼琴(價格、型號、品牌等)</p><p>  6.管理員管理用戶,授予用戶不同的權(quán)限;</p><p>  7. 上傳文件時重命名文件名(“當(dāng)前時間”+“_文件名”)sfValidatorFile類

19、中修改generateFilename()方法;</p><p>  8.刪除物理文件;在刪除數(shù)據(jù)庫記錄的同時刪除服務(wù)器文件夾中的對應(yīng)物理文件</p><p>  9.管理員審核用戶發(fā)布的消息,更新網(wǎng)站內(nèi)容;</p><p><b>  2 確定開發(fā)環(huán)境</b></p><p>  在系統(tǒng)實施之前很重要的一項工作就是確定

20、系統(tǒng)的開發(fā)環(huán)境。系統(tǒng)規(guī)模的大小、需求、個人對編程語言的熟悉和愛好等等都決定著系統(tǒng)的開發(fā)環(huán)境。</p><p><b>  2.1 語言環(huán)境</b></p><p>  PHP是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點(diǎn)。PHP是能讓你生成動態(tài)網(wǎng)頁的工具之一。PHP代表:超文本預(yù)處理器(PHP: Hyperte

21、xt Preprocessor)。PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)(http://www.php.net)自由下載。PHP遵守 GNU公共許可(GPL),在這一許可下誕生了許多流行的軟件諸如Linux和Emacs。你可以不受限制的獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。PHP在大多數(shù)Unix平臺,GUN/Linux和微軟Windows平臺上均可以運(yùn)行。怎樣在Windows環(huán)境的PC機(jī)器或Unix機(jī)器上安裝PHP的

22、資料可以在PHP官方站點(diǎn)上找到,同時其學(xué)習(xí)和安裝過程很簡單。</p><p>  雖然在大學(xué)的課程中沒有系統(tǒng)的學(xué)習(xí)過PHP語言,但是我實習(xí)的過程中使用的語言正式PHP,因此在實習(xí)的過程中我自學(xué)了PHP語言并且結(jié)合symfony的框架進(jìn)行開發(fā)工作,另外一方面的原因是PHP國內(nèi)的技術(shù)力量并不是集中現(xiàn)在并不是分散在成熟企業(yè)中,而是主要分布在網(wǎng)絡(luò)新手,技術(shù)愛好者,部分中小企業(yè),教育機(jī)構(gòu),作為新手的我當(dāng)然想選擇一門簡單易學(xué)

23、的語言,所以本次畢業(yè)論文我選擇的是PHP語言作為編程語言。</p><p><b>  2.2 開發(fā)框架</b></p><p>  如今的PHP框架層出不窮,其中有些比其他的更加惹人耳目。我不是這方面的專家,甚至不能熟練地使用其中的一種,所以在這里我也不想討論哪些算是框架,哪些不算框架。這里我要選擇的是哪一中框架能讓我快速的學(xué)會使用并高效的進(jìn)行項目開發(fā)。</p

24、><p>  隨著Ruby on Rails的火爆,PHP這個流行的Web應(yīng)用腳本語言也出現(xiàn)了大量的新一代開發(fā)框架。與此同時,國內(nèi)PHP開發(fā)者也開始緊跟國外發(fā)展,推出了不同的開發(fā)框架。在RoR流行之前,PHP領(lǐng)域也有不少開發(fā)框架,例如Mojavi、WACT、PHPMvc和Seagull等。這些框架雖然也采用了MVC模式、數(shù)據(jù)庫抽象層等技術(shù)。但由于當(dāng)時PHP本身不像現(xiàn)在這樣流行,所以這些框架都沒有得到大量應(yīng)用,最終歸于

25、沉寂。而在感受到RoR提供的快速開發(fā)能力后,PHP社區(qū)像被注入了興奮劑。各種應(yīng)用技術(shù)和開發(fā)框架層出不窮。</p><p>  Symfony正是這些新涌現(xiàn)的PHP框架中的佼佼者。ymfony是一個非常成熟的框架,大量利用了已有的開源項目。Symfony使用Mojavi的核心代碼實現(xiàn)了框架的MVC模式,利用 Propel作為數(shù)據(jù)庫抽象層。Symfony不僅功能強(qiáng)大,而且對Ajax有全面的支持。加上官方網(wǎng)站提供的大量

26、文檔和教程,并擁有一個活躍的社區(qū),因 此受到許多開發(fā)者的歡迎。</p><p>  對于希望選擇一個框架作為企業(yè)內(nèi)部系統(tǒng)基礎(chǔ)架構(gòu)的企業(yè)來說,Symfony的成熟度、豐富的文檔和活躍的社區(qū)都是值得考慮的。畢竟企業(yè)內(nèi)部系統(tǒng)更為看重的是穩(wěn)定性和長期的支持。</p><p>  綜合以上原因和個人對各種框架的使用熟練程度,symfony理所當(dāng)然的成為了我的首選。</p><p&

27、gt;<b>  2.3 開發(fā)環(huán)境</b></p><p>  2.3.1 語言環(huán)境、數(shù)據(jù)庫、服務(wù)器</p><p>  XAMPP(Apache+MySQL+PHP+PERL)是一個功能強(qiáng)大的建站集成軟件包。這個軟件包原來的名字是LAMPP,但是為了避免誤解,最新 的幾個版本就改名為 XAMPP 了。它可以在Windows、Linux、Solaris三種操作系統(tǒng)下安

28、裝使用,支持多語言:英文、簡體中文、繁體中文、韓文、俄文、日文等。</p><p>  許多人通過他們自己的經(jīng)驗認(rèn)識到安裝 Apache 服務(wù)器是件不容易的事兒。如果您想添加 MySQL、PHP 和 Perl,那就更難了。XAMPP 是一個易于安裝且包含 MySQL、PHP 和 Perl 的 Apache 發(fā)行版。XAMPP 的確非常容易安裝和使用:只需下載,解壓縮,啟動即可安裝PHP、MySQL數(shù)據(jù)庫和Apac

29、he服務(wù)器,非常方便。</p><p>  2.3.2 symfony框架環(huán)境</p><p>  在安裝了Xampp之后,下面我們就可以著手安裝symfony框架了。Symfony是一個基于MVC模式的面向?qū)ο蟮腜HP5框架。Symfony允許在一個web應(yīng)用中分離事務(wù)控制,服務(wù)邏輯和表示層。同時,它還包含了 很多工具和類用以縮短開發(fā)復(fù)雜的網(wǎng)絡(luò)應(yīng)用的時間?;谧罴裌eb開發(fā)實踐,已經(jīng)有多

30、個網(wǎng)站完全采用此框架開發(fā),symfony的目的是加速Web應(yīng)用的創(chuàng) 建與維護(hù)。它的特點(diǎn)如下:1.簡單的模板功能;2.緩存管理;3.自定義URL; 4.多語言與I18N支持;5.采用對象模型與MVC分離;6.Ajax支持。 </p><p>  Symfony的安裝過程是在線完成的,其過程相當(dāng)復(fù)雜,在這里就不做贅述了,下面我將著重闡述一下symfony的各種特點(diǎn)在項目開發(fā)中的應(yīng)用。</p><p

31、>  1.模板功能。在symfony的框架環(huán)境下,通過運(yùn)行symfony命令在模型層就能生成大量數(shù)據(jù)模型對數(shù)操作的方法,在視圖層可以用實例方便的調(diào)用這些方法。模板也是通過symfony命令得到的,它包含了查詢對應(yīng)頁面需要顯示的數(shù)據(jù)內(nèi)容,只需要一句簡單的symfony命令就能快速的得到一些簡單的頁面,如果想進(jìn)一步的開發(fā)和美化,只需要在其基礎(chǔ)上進(jìn)行深化就可以了而不需要進(jìn)行繁瑣的編碼得到初始的系統(tǒng)框架,這樣就大大加快的開發(fā)的效率。<

32、;/p><p>  2.緩存管理。symfony提供一套靈活的服務(wù)器端緩存系統(tǒng)。對YAML文件進(jìn)行的簡單直觀的設(shè)置,就允許將整個頁面,動作或局部模板的響應(yīng)結(jié)果,以及模板片斷保存到文件中。底層數(shù)據(jù)改變時,可有選擇性得刪除部分緩存。刪除部分緩存的操作可以用命令行和特殊的動作方法實現(xiàn)。symfony也提供一套簡單的方法實現(xiàn)客戶端緩存,該方法利用了HTTP頭。本章將講述這些內(nèi)容,介紹如何監(jiān)控緩存帶來的性能提升。</p&

33、gt;<p>  3.自定義URL。自定義URL可以美化系統(tǒng)的URL外觀。我們都知道,url中的關(guān)鍵詞對搜索引擎排名中的重要作用。如果以關(guān)鍵詞為域名的網(wǎng)站,那排名就很容易排到前面去,所以這也從另一個角度說明一個行業(yè)詞之類的域名本身還具有seo價值。漂亮的URL外觀不僅能便于搜索引擎的收錄,而且在用戶體驗方面也發(fā)揮著重要的作用,例如用戶可以直接從URL信息上了解自己瀏覽的是什么行業(yè)、什么類型的網(wǎng)站等等。</p>

34、<p>  4.多語言與I18N支持。I18N就是Internationalization(國際化)的縮寫,其原因是I和n之間一共有18個字母。對于叫成熟的網(wǎng)站系統(tǒng)國際化是不可避免的。例如一個門戶型的網(wǎng)站,用戶人群不僅包括中國人,還包括很多外國人,為了符合特殊人群的閱讀習(xí)慣,語言國際化不可避免。</p><p>  5.采用對象模型與MVC分離。symfony完整實現(xiàn)了MVC三層,封裝了所有東西,包括

35、 $POST,$GET 數(shù)據(jù),異常處理,調(diào)試功能,數(shù)據(jù)檢測;包含強(qiáng)大的緩存功能,自動加載Class,symfony還具有很強(qiáng)大的view層操 作,能夠零碎的包含單個多個文件;非常強(qiáng)大的配置功能,使用yml配置能夠控制所有框架和程序運(yùn)行行為,能夠很隨意的定義各種自己的 class,并且symfony能夠自動加載(auto load)這些class,能夠在程序中隨意調(diào)用;包含強(qiáng)大的多層級項目和應(yīng)用管理:Project --> Appl

36、ication --> Module --> Action,能夠滿足一個項目下多個應(yīng)用的需要。模型是指從現(xiàn)實世界中挖掘出來的對象模型,是應(yīng)用邏輯的反映。模型封裝了數(shù)據(jù)和對數(shù)據(jù)的操作,是實際進(jìn)行數(shù)據(jù)處理的計算的地方。視圖是應(yīng)用和用戶之間的接 口,它負(fù)責(zé)將應(yīng)用顯現(xiàn)給用戶和顯示模型的狀態(tài)。控制器負(fù)責(zé)視圖和模型之間的交互,控制對用戶輸入的響應(yīng)響應(yīng)方式和流程,它主要負(fù)責(zé)兩方面的動作:把用戶的 請求分發(fā)到相應(yīng)的模型;將模型的改變及時反應(yīng)

37、到視圖上。MVC將這些對象分離以提高靈活性和復(fù)用性。</p><p>  6.Ajax支持。AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。Ajax應(yīng)用程序的優(yōu)勢在于: 1. 通過異步模式,提升了用戶體驗;2. 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用;3. Ajax引擎在客

38、戶端運(yùn)行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。</p><p><b>  3 系 統(tǒng) 概 述</b></p><p>  3.1 鋼琴網(wǎng)系統(tǒng)的作用</p><p>  鋼琴網(wǎng)的作用是方便用戶獲取鋼琴相關(guān)的各種服務(wù)信息,例如鋼琴的選購,鋼琴相關(guān)的各種服務(wù)信息、行業(yè)信息等等。鋼琴網(wǎng)還可以供企業(yè)級用戶發(fā)布和展示自己

39、的產(chǎn)品信息,獲取商業(yè)利益。</p><p>  用戶對象涉及面很大,主要包括想培養(yǎng)孩子鋼琴興趣的家長,對鋼琴知識和曲譜有興趣的學(xué)生,有能力做鋼琴服務(wù)行業(yè)的個人和企業(yè),鋼琴樂器銷售的企業(yè)甚至是賦閑在家的鋼琴老師,與鋼琴相關(guān)的在這里應(yīng)有盡有。</p><p>  3.2鋼琴網(wǎng)系統(tǒng)設(shè)計思想</p><p>  鋼琴網(wǎng)系統(tǒng)主要包括系統(tǒng)的登陸、用戶瀏覽、用戶發(fā)布信息、后臺管理

40、系統(tǒng)和在管理員審核用戶發(fā)布的信息等。</p><p>  首先是系統(tǒng)登陸功能,在symfony框架開發(fā)中大量運(yùn)用到了插件(plugin)。這里我用的是sfGuardPlugin,它是專用來管理用戶權(quán)限管理,分組的插件,它的方便就是很方便的管理用戶,安全性也很好,但是不足的就是沒有用戶注冊的頁面,因此我通過閱讀相關(guān)文檔手動加上了用戶注冊頁面。</p><p>  用戶瀏覽信息的設(shè)計主要是用戶

41、界面和體驗的設(shè)計。用戶在瀏覽信息時怎么樣才能讓用戶最大量的獲得相關(guān)信息,相關(guān)的信息在一個頁面就可以看到,從而節(jié)約大量的操作,這里我采用組件的形式,將可以重用的信息單獨(dú)封裝成組件,在需要用的地方直接調(diào)用即可,同時又減少了工作量(重復(fù)編碼)。</p><p>  用戶發(fā)布信息是先通過分析各種用戶可能想發(fā)布的信息,將其抽象成數(shù)據(jù)庫的表結(jié)構(gòu),將注冊用戶提交的信息存儲在數(shù)據(jù)庫中,通過管理員審核將其發(fā)布在鋼琴網(wǎng)上。</

42、p><p>  后臺管理系統(tǒng)的設(shè)計。感謝Symfony框架強(qiáng)大的自動完成功能。通過運(yùn)行相應(yīng)命令symfony可以根據(jù)數(shù)據(jù)庫定義生成后臺管理程序,能實現(xiàn)大部分的管理要求,而且可以加入自定義的管理動作。</p><p>  管理員是很和注冊用戶發(fā)布的信息的設(shè)計。通過在各種發(fā)布信息的表結(jié)構(gòu)中預(yù)定義一個show屬性,用戶提交信息的時候默認(rèn)為0,網(wǎng)站管理員通過后臺管理界面對需要審核的信息進(jìn)行審核,同意發(fā)

43、布的信息將其show屬性修改為1,在前臺程序中查詢條件中加入條件為show屬性為1的信息進(jìn)行查詢,顯示。</p><p>  3.3 鋼琴網(wǎng)系統(tǒng)存在的問題現(xiàn)狀</p><p>  因為開發(fā)經(jīng)驗的不足,鋼琴網(wǎng)還存在著很大的改進(jìn)空間。例如用戶的提交流程略顯繁瑣,用戶使用流程不優(yōu)化,有些也確實是技術(shù)上的原因,種種這些都需要未來花大力氣來學(xué)習(xí)和修改??偨Y(jié)了一下,系統(tǒng)還存在著如下的問題需要改進(jìn):&l

44、t;/p><p>  1.在批量上傳對象的多張圖片時,如果最多一次可以上傳四張圖片,而用戶實際只上傳了一張圖片。剩下的三張圖片雖然沒有選擇上傳的文件,但是也保存到了數(shù)據(jù)庫中,其中文件名的字段為空,這樣現(xiàn)任不合理。</p><p>  2.搜索引擎的局限性;現(xiàn)在已經(jīng)做好的搜索引擎只能搜索鋼琴對象而不能搜索全站的信息(例如新聞、琴行等),而且還存在的問題就是輸入中文搜索的時候搜索不到任何內(nèi)容,問題

45、可能出在將數(shù)據(jù)庫的記錄存儲到data/piano.dev.index目錄下的文件中時對字符格式進(jìn)行了轉(zhuǎn)化,中文字符被轉(zhuǎn)換成了其他的字符類型,所以在搜索中文字符關(guān)鍵字的時候就搜索不到記錄對象。</p><p>  3.權(quán)限的管理流程的問題;當(dāng)一個企業(yè)用戶想要發(fā)表自己的企業(yè)信息時,先要注冊一個企業(yè)用戶類型的賬戶,經(jīng)過管理員的審核之后才授予其相應(yīng)發(fā)布權(quán)限,當(dāng)權(quán)限授予之后,用戶發(fā)表的信息還要得到管理員的審核才能發(fā)布到前臺

46、顯示,整個過程稍嫌繁瑣,用戶注冊提交信息列成還需要進(jìn)一步的優(yōu)化。 </p><p><b>  4 需 求 分 析</b></p><p><b>  4.1 現(xiàn)狀分析</b></p><p>  用戶對象涉及面很大,主要包括想培養(yǎng)孩子鋼琴興趣的家長,對鋼琴知識和曲譜有興趣的學(xué)生,有能力做鋼琴服務(wù)行業(yè)的個人和企業(yè),鋼琴樂器

47、銷售的企業(yè)甚至是賦閑在家的鋼琴老師,與鋼琴相關(guān)的在這里應(yīng)有盡有。</p><p>  目前國內(nèi)樂器市場潛力巨大,而鋼琴素有樂器之王的美稱,它作為一種高檔、優(yōu)雅的樂器自然受到大眾的追捧,銷售鋼琴所產(chǎn)生的商業(yè)利益也很大,商家也都在不遺余力的宣傳。商家所選擇的宣傳平臺主要是自己企業(yè)的網(wǎng)站,這樣的宣傳成本低,維護(hù)難度相對較小,但是對于用戶的需求卻得不到滿足。用戶在涉足樂器這個行業(yè)的時候就像了解更多的相關(guān)信息,而學(xué)習(xí)的過程

48、就是不斷的了解行業(yè)信息,和網(wǎng)友交流,觀察大眾的評價等等。所以我認(rèn)為可以將宣傳重點(diǎn)放在用戶的需求上,用戶在瀏覽宣傳資料的同時能夠自我成長,注重用戶的需求才是網(wǎng)站的生存之道,也是網(wǎng)站能不能實現(xiàn)商業(yè)價值的重要體現(xiàn)。因此我將鋼琴網(wǎng)的定位定位在門戶性質(zhì)的鋼琴網(wǎng)站,整合各種信息于一體,滿足用戶的需求,甚至還可以擴(kuò)展到所有樂器的銷售宣傳和用戶交流。</p><p>  本系統(tǒng)所使用的開發(fā)語言PHP5是位于服務(wù)器端的腳本運(yùn)行環(huán)境

49、,通過這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動態(tài)的交互式 Web 服務(wù)器應(yīng)用程序,如交互式的動態(tài)網(wǎng)頁,包括使用 HTML 表單收集和處理信息,上傳與下載等等。更重要的是,PHP5支持面向?qū)ο蟮木幊陶Z言,能夠很好的抽象顯示業(yè)務(wù)邏輯,加快開發(fā)速率。Symfony框架在歐洲已經(jīng)是很成熟的中型站點(diǎn)開發(fā)框架,其可以根據(jù)定義好的數(shù)據(jù)模型自動生成對該模型的各種操作方法和模型對象之間的關(guān)系關(guān)聯(lián)方法。從而節(jié)省大量的硬編碼時間,加快開發(fā)速率,這也是我為什么選擇sym

50、fony框架的主要原因。</p><p><b>  4.2 系統(tǒng)的結(jié)構(gòu)</b></p><p>  symfony框架提供了一種將各種單獨(dú)的數(shù)據(jù)模型設(shè)置成單獨(dú)的模塊一面影響各自之間的數(shù)據(jù)處理。這里鋼琴網(wǎng)的系統(tǒng)可以大致分為四大模塊:1.用戶注冊、登錄模塊(sfGuardPlugin),2.顯示信息,用戶瀏覽模塊;3.用戶發(fā)布信息模塊;4后臺管理模塊,其中后臺管理又分為

51、信息管理和用戶管理。</p><p><b>  4.3 技術(shù)要求</b></p><p>  1.語言基礎(chǔ),熟悉PHP5的語言特性和其各種函數(shù)的使用;</p><p>  2.?dāng)?shù)據(jù)庫設(shè)計基礎(chǔ),理解數(shù)據(jù)模型之間的各種邏輯關(guān)系,例如一對一、一對多、多對多關(guān)系的數(shù)據(jù)庫表示、程序語言的實現(xiàn)等;</p><p>  3.編程思想

52、,對MVC的編程思想有很深的認(rèn)識;它不同于傳統(tǒng)的面向過程的開發(fā),它將程序嚴(yán)格的劃分為三層,即模型層、控制層、視圖層。各層之間相互依存,但是作用各不相同。</p><p>  4.外語基礎(chǔ)(英文),因為國內(nèi)關(guān)于symfony框架的參考文章很有限,大部分的參考文獻(xiàn)是來自于國外的網(wǎng)站、論壇,因此在研究symfony框架時要具備一定的英文閱讀能力。</p><p><b>  4.4 運(yùn)

53、行環(huán)境</b></p><p>  為了保證系統(tǒng)運(yùn)行的效率和可靠性,系統(tǒng)Web服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于互聯(lián)網(wǎng)。其運(yùn)行要求如下:</p><p>  服務(wù)器端: Apache,IE 5.5/6.0,MySQL數(shù)據(jù)庫,symfony1.2 ,php5.14以上。</p><p>  客戶端: Windows

54、98/2000/XP,Internet Explorer(IE)等</p><p>  本系統(tǒng)在WindowsXP +Apache+FireFox3.04下調(diào)試通過。</p><p><b>  5 鋼琴網(wǎng)系統(tǒng)設(shè)計</b></p><p>  5.1鋼琴網(wǎng)系統(tǒng)結(jié)構(gòu)功能</p><p>  鋼琴網(wǎng)系統(tǒng)包括:用戶瀏覽信息,注

55、冊、登錄和管理自己發(fā)布的信息。系統(tǒng)用戶可以選擇注冊和不注冊兩種方式使用。對于為注冊用戶只提供瀏覽功能,對注冊用戶提供發(fā)布和刪除自己的信息。其中注冊用戶又分為個人用戶和企業(yè)用戶,個人用戶可以發(fā)布自己的服務(wù)信息,企業(yè)用戶可以發(fā)布自己的產(chǎn)品、服務(wù)信息。用戶登錄后可以打不自己的信息,等待網(wǎng)站管理員的審核,現(xiàn)實用戶發(fā)布的信息。系統(tǒng)的具體功能框架如圖4-1所示:</p><p>  圖5-1 鋼琴網(wǎng)系統(tǒng)功能框架圖</

56、p><p><b>  5.2 網(wǎng)站結(jié)構(gòu)</b></p><p>  功能需求已經(jīng)確定,下面根據(jù)系統(tǒng)的功能需求確定整個網(wǎng)站結(jié)構(gòu)。鋼琴網(wǎng)系統(tǒng)的網(wǎng)站結(jié)構(gòu)如下圖所示:</p><p>  圖5-2 網(wǎng)站結(jié)構(gòu)圖</p><p>  5.3數(shù)據(jù)庫的分析與設(shè)計</p><p>  因為鋼琴網(wǎng)中數(shù)據(jù)的涵蓋面很大,包

57、括新聞、鋼琴、琴行、服務(wù)信息、用戶等數(shù)十個主要對象和其附屬對象,例如新聞表,其附屬表包括新聞分類表和評論表。而我所選取的開發(fā)框架symfony將數(shù)據(jù)庫的定義全部寫在schema.yml文件中,在該文件中可以定義各種實體的數(shù)據(jù)庫表結(jié)構(gòu),包括實體的主鍵、外鍵定義,實體之間的關(guān)系定義等。然后再運(yùn)行相關(guān)命令,根據(jù)在schema.yml文件中定義的數(shù)據(jù)模型生成互相關(guān)聯(lián)的數(shù)據(jù)模型,這樣就可以在控制層方便的實現(xiàn)各個實體之間的關(guān)系。</p>

58、<p>  5.4 主要功能模塊</p><p>  系統(tǒng)主要功能模塊及功能圖如下:</p><p>  圖5-3 鋼琴模塊圖</p><p>  圖5-4 曲譜模塊圖</p><p>  5.5鋼琴網(wǎng)系統(tǒng)實現(xiàn)</p><p>  5.5.1 系統(tǒng)結(jié)構(gòu)</p><p>  由于該

59、系統(tǒng)面向總校和分布于全國各地的教學(xué)中心,因此在系統(tǒng)結(jié)構(gòu)上采用B/S結(jié)構(gòu)相結(jié)合的多層軟件體系結(jié)構(gòu)。域網(wǎng)內(nèi)部快速的信息處理, B/S結(jié)構(gòu)具有較好的網(wǎng)絡(luò)擴(kuò)展性和兼容性,以B/S結(jié)構(gòu)能滿足地理位置分散、通訊介質(zhì)各異的應(yīng)用。采用多層體系結(jié)構(gòu)可以將數(shù)據(jù)庫、業(yè)務(wù)邏輯、用戶界面分離開,這樣做的優(yōu)點(diǎn)是:可伸縮性好、可管理性強(qiáng)、可重用性好、部署應(yīng)用程序的代價比較小。</p><p>  5.5.2 開發(fā)工具</p>&

60、lt;p>  鋼琴網(wǎng)系統(tǒng)使用的編程語言是PHP語言,數(shù)據(jù)庫為MySQL,服務(wù)器為Apache和symfony的開發(fā)框架。PHP雖然不是真正的面向?qū)ο蟮恼Z言,但是在PHP5之后加入了面向?qū)ο蟮奶匦?,而且它作為一種開源的語言,經(jīng)過世界范圍內(nèi)使用者的豐富和完善,在安全性和穩(wěn)定性上已經(jīng)能夠滿足大中型項目的需求。MySQL數(shù)據(jù)庫主要應(yīng)用在中型規(guī)模的項目,目前企業(yè)級的項目大多數(shù)都是用MySQL數(shù)據(jù)庫。Symfony的框架適合于大中型企業(yè)級的項

61、目開發(fā),其開發(fā)過程完全體現(xiàn)了MVC的開發(fā)思想,結(jié)合鋼琴網(wǎng)的定位——綜合性的門戶網(wǎng)站,所以這里我采用了symfony的框架進(jìn)行開發(fā),其活躍的社區(qū)和數(shù)目繁多的插件都是我選擇symfony框架的原因。</p><p><b>  6 具體設(shè)計及實現(xiàn)</b></p><p>  6.1系統(tǒng)用戶瀏覽模塊實現(xiàn)</p><p>  前面提到鋼琴網(wǎng)系統(tǒng)的實現(xiàn)是

62、利用MVC的設(shè)計模式來實現(xiàn)其體系結(jié)構(gòu)的,它將交互式應(yīng)用分為三層:模型(model)、視圖(view)和控制器(controller)三個部分。其中模型層是依據(jù)schma.yml文件中定義的數(shù)據(jù)庫模型通過運(yùn)行相關(guān)命令生成的。其中封裝了對象模型的數(shù)據(jù)和對數(shù)據(jù)進(jìn)行的操作。視圖是用戶和應(yīng)用之間的接口,它負(fù)責(zé)兩個方面:將用戶的請求分發(fā)到相應(yīng)的模型和將模型的改變及時反映到視圖上,而視圖的作用就是作為用戶的操作界面和應(yīng)用的輸出。</p>

63、<p>  系統(tǒng)用戶可以瀏覽的信息大致可以分為新聞、鋼琴信息、服務(wù)信息和曲譜信息,其在前臺顯示的原理大致相同,這里我以鋼琴信息瀏覽的實現(xiàn)為例子進(jìn)行說明。當(dāng)管理員在后臺發(fā)布了一個鋼琴信息并將其存入了數(shù)據(jù)庫,那么在前臺界面怎么得到鋼琴的信息并將其顯示出來呢?</p><p>  對于鋼琴對象的數(shù)據(jù)和對其的操作全部封裝在模型層,模型層包括對鋼琴對象的添加、刪除、修改、查詢、處理和它相關(guān)聯(lián)對象之間的關(guān)系等等的

64、方法。模型層是通過schema.yml文件中的數(shù)據(jù)定義在symfony框架中運(yùn)行相關(guān)命令得到的,這里我著重就控制層和視圖層說明一下其實現(xiàn)用戶瀏覽的實現(xiàn)方式。</p><p>  1. 首先是鋼琴主頁面,在鋼琴模塊的控制層里面的executeIndex()方法負(fù)責(zé)從模型層得到所有符合查詢條件的鋼琴對象,代碼如下:</p><p>  public function executeIndex(

65、sfWebRequest $request)</p><p><b>  {</b></p><p>  $c = new Criteria();</p><p>  $c->addAscendingOrderByColumn(PianoPeer::ID);//按鋼琴的ID號排序</p><p>  $c->

66、add(PianoPeer::SHOW, 1);//查詢所有show字段為1的鋼琴</p><p>  $this->piano_list = PianoPeer::doSelect($c);//將查詢到的鋼琴對象集放在piano_list對象中</p><p>  $this->pager = new sfPropelPager('Piano',6);//運(yùn)用

67、pager對象定義每頁最多顯示6個鋼琴對象</p><p>  $this->pager->setCriteria($c);</p><p>  $this->pager->setPage($this->getRequestParameter('page', 1));</p><p>  $this->pager-

68、>init();</p><p><b>  }</b></p><p>  視圖層(indexSuccess.php)代碼:</p><p>  <div class="piano_b" ></p><p>  <h2>鋼琴選購</h2></p>

69、<p><b>  <br></b></p><p>  <?php foreach ($pager->getResults() as $piano): ?></p><p>  <div class="piano_b_1" style="float:left;width:20%;&quo

70、t;></p><p>  <a href="<?php echo url_for('piano_show',$piano) ?>"><img src="/uploads/pianos/<?php echo $piano->getLogo() ?>" alt="<?php echo $pi

71、ano->getName() ?> logo" border="0" height=100 width="110" /></a></p><p>  <p><a href="<?php echo url_for('piano_show',$piano) ?>">

72、<?php echo $piano->getBrand().$piano->getName()."@@@".$piano->getPrice(); ?></a></p></p><p><b>  </div></b></p><p>  2.顯示鋼琴對象屬性的頁面:</p&g

73、t;<p>  當(dāng)用戶點(diǎn)擊了一個鋼琴的鏈接,URL將其ID號傳遞到show()方法,按照該ID號查詢得到ID好為當(dāng)前ID號的鋼琴,再通過調(diào)用鋼琴模型里的方法獲取該鋼琴的各個屬性??刂茖哟a:</p><p>  public function executeShow(sfWebRequest $request)</p><p><b>  {</b>&l

74、t;/p><p>  $this->piano = $this->getRoute()->getObject();</p><p>  $c = new Criteria();</p><p>  $c->add(PianopicturePeer::PIANO_ID, $request->getParameter('id')

75、);</p><p>  $c->addAscendingOrderByColumn(PianopicturePeer::ID);</p><p>  $c->setLimit(8);</p><p>  $this->pianopictures = PianopicturePeer::doSelect($c);</p><p&

76、gt;  $this->services = $this->piano->getServices();</p><p>  $this->user = $this->piano->getUser();</p><p><b>  }</b></p><p>  6.2 用戶注冊、登錄和權(quán)限管理的實現(xiàn)</

77、p><p>  在symfony框架的項目開發(fā)中大量運(yùn)用到了插件,插件是世界各地的程序愛好者或軟件從業(yè)人員按照其規(guī)定的編碼標(biāo)準(zhǔn)開發(fā)的,能夠方便的移植到項目開發(fā)中的已完成的應(yīng)用。如果在項目中自己獨(dú)立開發(fā)像登錄模塊這樣安全性要求較高的模塊難免存在安全性的隱患,而在symfony的插件體制中,可以允許項目大量運(yùn)用已存在的并且運(yùn)行很穩(wěn)定的插件,而且還加快了項目開發(fā)的速度,所以這里我選取的是在symfony框架項目開發(fā)中運(yùn)用得

78、非常頻繁的一款插件sfGuardPlugin,它提供了用戶登錄、權(quán)限管理等功能,還能根據(jù)實際需求擴(kuò)展其用途。</p><p><b>  6.2.1登錄模塊</b></p><p>  登錄模塊的實現(xiàn)代碼:</p><p><b>  <html></b></p><p><b&g

79、t;  <head></b></p><p>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></p><p>  <link href="/css/pinao.css" rel="st

80、ylesheet" type="text/css"/></p><p><b>  </head></b></p><p>  <form action="<?php echo url_for('@sf_guard_signin') ?>" method="

81、post"></p><p>  <?php echo $form['username']->renderRow(array('class'=>'text1')); ?></p><p>  <?php echo $form['password']->renderRow(ar

82、ray('class'=>'text1')); ?></p><p>  <?php echo $form['remember']->renderRow(); ?></p><p>  <!--<input type="submit" value="登 錄" /

83、>--></p><p>  <input type="image" src="/images/Index2_13.jpg" style="vertical-align:middle;"/><span style="color:#bd1d11; margin-left:5px;">|</spa

84、n><a href="####" style="color:#d31f11;margin-left:10px;">忘記密碼</a></p><p><b>  </form></b></p><p><b>  </html></b></p>

85、<p><b>  6.2.2注冊頁面</b></p><p>  在sfGuardPlugin插件中并沒有提供用戶注冊的功能,所以這里我自建了一張用于存儲用戶詳細(xì)信息的sf_guard_user_profile表,用戶注冊時用到的表單是由兩個表單部分組成的:sf_guard_user表單和sf_guard_user_profile表單,該插件提供了擴(kuò)展功能的接口。感謝sfGu

86、ardPlugin,因為sfGuardUserForm.class是繼承自sfGuardUserAdminForm.class的,而在sfGuardUserAdminForm.class中已經(jīng)為我們要創(chuàng)建的模型sfGuardUserProfile預(yù)定義好了接口,在sfGuardUserAdminForm.class中已經(jīng)存在判斷sfGuardUserProfile是否存在的判斷語句,如果存在就是用mergeForm()方法將userpr

87、ofile的Form嵌入到User表單中,所以在使用new新創(chuàng)建用戶的時候,$form可以直接包含用戶詳細(xì)信息的創(chuàng)建。</p><p>  6.3實現(xiàn)用戶發(fā)布信息功能模塊</p><p>  根據(jù)系統(tǒng)設(shè)計用戶可以在鋼琴網(wǎng)中發(fā)布自己的企業(yè)信息、服務(wù)信息,當(dāng)管理員授予注冊用戶相應(yīng)權(quán)限后該用戶可以在對應(yīng)頁面提交自己的信息。Symfony框架中的表單是根據(jù)模型生成的,例如用戶發(fā)布的信息表單被抽象成

88、了InfoForm.class.php類,在該類中可以自定義該表單的屬性和外觀等。</p><p><b>  6.4系統(tǒng)運(yùn)行截圖</b></p><p>  6.4.1鋼琴網(wǎng)系統(tǒng)登錄界面</p><p>  鋼琴網(wǎng)系統(tǒng)登錄界面如圖6-1所示。</p><p>  圖6-1鋼琴網(wǎng)系統(tǒng)登錄界面</p><

89、;p>  6.4.2考試系統(tǒng)考試主界面</p><p>  鋼琴網(wǎng)主頁如圖6-2所示。</p><p>  圖6-2 鋼琴網(wǎng)主頁</p><p>  6.4.3用戶瀏覽新聞、琴行等界面 </p><p>  新聞主頁界面如圖6-3所示。</p><p>  圖6-3 新聞主頁界面</p><p

90、>  用戶瀏覽新聞界面如圖6-4所示。</p><p>  圖6-4 用戶瀏覽新聞界面</p><p>  6.3.4用戶提交信息界面</p><p>  用戶提交鋼琴信息界面如圖6-5所示。</p><p>  圖6-5 提交鋼琴信息</p><p>  6.4.5后臺管理界面</p><p

91、>  后臺管理界面如圖6-6所示。</p><p>  圖6-6后臺管理界面</p><p>  6.4.6查詢及結(jié)果界面</p><p>  查詢及結(jié)果界面顯示如圖6-7所示。</p><p>  圖6-7查詢及結(jié)果界面</p><p><b>  7 系統(tǒng)測試與調(diào)試</b></p&

92、gt;<p>  7.1 測試目的及任務(wù)</p><p>  測試的任務(wù)是發(fā)現(xiàn)系統(tǒng)中所存在的尚未解決的問題,只有及時的發(fā)現(xiàn)問題才能有效的解決問題。測試的目標(biāo)是暴露程序中的錯誤,因此測試在程序設(shè)計中有著極其重要的地位。</p><p>  測試階段的根本任務(wù)是發(fā)現(xiàn)并改正軟件中的錯誤。設(shè)計測試方案是測試階段的關(guān)鍵技術(shù)問題,其基本目標(biāo)是選用盡可能少的高效測試數(shù)據(jù),作到盡可能完善的測

93、試,從而盡可能多地發(fā)現(xiàn)軟件中的錯誤。</p><p><b>  7.2 測試方法</b></p><p>  黑盒測試和白盒測試是軟件測試的兩類不同方法。測試任何產(chǎn)品都有兩種方法:如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能可以通過測試來檢驗是否每個功能都能正常使用;如果知道產(chǎn)品內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是否按照規(guī)格說明說的規(guī)定正常進(jìn)行。</p>

94、<p><b>  7.3 系統(tǒng)調(diào)試</b></p><p>  7.3.1 系統(tǒng)調(diào)試的常用方法</p><p>  一般來說,調(diào)試可以通過以下幾種方式:一個是從頭至尾將程序運(yùn)行一邊找到錯誤,二是回溯法,再一個就是原因排除法。無論采用什么方法,調(diào)試的根本目標(biāo)都是尋找軟件錯誤的原因并改正之。這個目標(biāo)是通過把系統(tǒng)地評估,直覺和運(yùn)氣組合起來實現(xiàn)的。</p&

95、gt;<p>  軟件測試是在軟件投入運(yùn)行之前,對軟件需求分析,設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。它是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,或者說軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試?yán)樱▽ο到y(tǒng)進(jìn)行操作,看是否能有其預(yù)期的輸出結(jié)果)并利用這些測試?yán)尤ミ\(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程。</p><p>  軟檢測試是軟件交給用戶使用之前一個必不可少的過

96、程。它在軟件開發(fā)過程中橫跨兩個階段:通常在編寫出每個模塊后就對它做單元測試,模塊的編寫者與測試者是同一個人。在每個模塊都完成單元測試之后,對軟件系統(tǒng)進(jìn)行各種綜合測試,通常由專門的測試人員承擔(dān)這項工作。 </p><p><b>  8 結(jié)果與分析</b></p><p>  通過對鋼琴網(wǎng)系統(tǒng)的測試和調(diào)試,現(xiàn)有的系統(tǒng)還訊在這諸多的問題,這些問題主要包括兩個方面:一是設(shè)計

97、經(jīng)驗不足導(dǎo)致業(yè)務(wù)邏輯的不合理;二是開發(fā)技術(shù)的欠缺,一些功能在現(xiàn)有的開發(fā)工具是能夠?qū)崿F(xiàn)的但是目前還沒有完全開發(fā)出來;總結(jié)一下現(xiàn)有的鋼琴網(wǎng)系統(tǒng)還存在這如下幾個問題:</p><p>  1.批量上傳的問題。在批量上傳對象的多張圖片時,如果最多一次可以上傳4張圖片,而實際用戶之上傳了一張圖片。剩下的三張圖片雖然沒有“瀏覽”,但是也對保存到數(shù)據(jù)庫中,其中文件名字段為空,這樣顯然不合理;</p><p&

98、gt;  2.搜索引擎的局限性?,F(xiàn)已經(jīng)做好的搜索引擎只能搜索鋼琴對象而不能搜索全站的內(nèi)容(新聞、琴行等),而且還存在的問題就是輸入中文的時候搜索不到任何內(nèi)容,問題可能出在將數(shù)據(jù)庫記錄存儲到data/piano.dev.index目錄下的文件中時進(jìn)行了字符轉(zhuǎn)換,中文字符轉(zhuǎn)換成了其他字符類型,所以在搜索中文關(guān)鍵字的時候搜索不到記錄對象;</p><p>  3.頁面跳轉(zhuǎn)的問題。例如用戶提交表單之后轉(zhuǎn)向哪里,全站的用戶

99、提交后的頁面跳轉(zhuǎn)已經(jīng)做了修改,可能還存在個別地方的遺漏,我這里重點(diǎn)要說的跳轉(zhuǎn)問題是:當(dāng)未登錄用戶訪問到一個頁面需要相應(yīng)權(quán)限才能訪問時,用戶登錄后應(yīng)該返回到他登錄之前所訪問的頁面而不是主頁。</p><p>  4.設(shè)計的局限性。在進(jìn)行數(shù)據(jù)庫設(shè)計的時候,只考慮到了讓用戶發(fā)布琴行、品牌信息、鋼琴信息,但是在添加琴行信息時要添加與鋼琴品牌之間的關(guān)系,也就是說要添加該琴行銷售的哪些鋼琴的品牌,如果用戶提交的品牌信息不夠全

100、面或者管理員編輯的品牌信息不夠全面,發(fā)布琴行信息的用戶就無法建立與某一品牌之間的聯(lián)系,因為數(shù)據(jù)庫中沒有其想要與之建立聯(lián)系的品牌信息,這樣用戶就必須到品牌模塊添加新的品牌信息,這樣的操作很不方便。</p><p>  5.權(quán)限的管理流程的問題。以前考慮權(quán)限管理的時候想著只要能實現(xiàn)就行,可是現(xiàn)在可以實現(xiàn)權(quán)限管理了卻發(fā)現(xiàn)存在著很大的問題。當(dāng)一個企業(yè)用戶想要發(fā)布一個琴行信息時,其先要注冊,然后等待管理員核實、授權(quán)后才能發(fā)

101、布琴行信息,提交成功后還要等待系統(tǒng)管理員激活所發(fā)布的信息,整個過程稍顯繁瑣,很容易造成用戶的流失。</p><p>  6.后臺界面。后臺界面一直覺得很不友好,而且單頁顯示的信息量也很少,造成管理上的不方便;</p><p>  7.根據(jù)管理員在后臺批量激活用戶發(fā)布信息的方法也可以實現(xiàn)批量授予新注冊用戶權(quán)限的功能。</p><p><b>  9 致 謝

102、</b></p><p>  鋼琴網(wǎng)系統(tǒng)及畢業(yè)論文是在我的畢業(yè)指導(dǎo)老師的親切關(guān)懷和悉心指導(dǎo)下完成的。她嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。從論文題目的選擇到項目的最終完成,老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。兩年多來,老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時還在思想、生活上給我以無微不至的關(guān)懷,在此謹(jǐn)老師老師致以誠摯的謝意和崇高的敬意。 </p>&

103、lt;p>  在此,我還要感謝在一起愉快的度過和我同寢室的各位可愛的同學(xué),正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本次畢業(yè)論文的順利完成。特別感謝我的和我一個班的楊莉同學(xué),她對本課題做了不少工作,包括開發(fā)系統(tǒng)時給我的巨大啟發(fā)和后期的測試工作,都給予我不少的幫助。</p><p>  在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我

104、無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!</p><p><b>  10 參考文獻(xiàn)</b></p><p>  [1] 法比安.波唐西耶 江樂等譯.《symfony權(quán)威指南》. 2008-07出版 電子工業(yè)出版社</p><p>  [2] 王軍 譯.《PHP5 in practice》. 2

105、007-07出版.人民郵電出版社</p><p>  [3] 法比安.波唐西耶.《Practical symfony》. 2008-07出版 電子工業(yè)出版社</p><p>  [4] 奎格利.《PHP與MySQL案例剖析》. 2007-12出版.人民郵電出版社</p><p>  [5] 聶慶鵬.《PHP+MySQL動態(tài)網(wǎng)站開發(fā)與全程實例》. 2007-10出版

106、. 清華大學(xué)出版社</p><p>  [6] 杜江.《PHP5與MySQL5 Web開發(fā)技術(shù)詳解》(含光盤). 2007-11出版.電子工業(yè)出版社 </p><p>  [7] Luke Welling.《php和mysql web開發(fā)》(原書第4版). 2009-02出版.機(jī)械工業(yè)出版社 </p><p>  [8] 陳爭航.《PHP5+MySQL5 Web應(yīng)用

107、開發(fā)寶典》.2008-01出版.電子工業(yè)出版社</p><p>  [9] 梅隆尼.《PHP、MySQL和Apache編程導(dǎo)學(xué)》(原書第4版). 2009-01出版.機(jī)械工業(yè)出版社</p><p>  [10] 翁燁暉.《PHP5+MySQL網(wǎng)站開發(fā)基礎(chǔ)與應(yīng)用》. 2008-09出版.清華大學(xué)出版社</p><p>  [11] 黃炳強(qiáng).《PHP5+MySQL網(wǎng)站開

108、發(fā)實例精講》(附盤). 2007-07出版.人民郵電出版社</p><p>  [12] 丁月光,孫更新,閆吉輝.《PHP+MySQL動態(tài)網(wǎng)站開發(fā)》(附盤). 2008-11出版.清華大學(xué)出版社</p><p>  [13] 陸昌輝.《PHP Web開發(fā)快速入門及實例精選》. 2008-04出版.電子工業(yè)出版社 </p><p>  [14] 李立功 趙揚(yáng).《MY

109、SQL程序設(shè)計與數(shù)據(jù)庫管理》. 2001-02出版.科學(xué)出版社 </p><p>  [15] 趙增敏.《PHP+MySQL+Dreamweaver8動態(tài)網(wǎng)站開發(fā)從基礎(chǔ)到實踐》(含光盤). 2007-07出版.電子工業(yè)出版社</p><p><b>  11 附錄</b></p><p><b>  參考的網(wǎng)站有:</b>

110、</p><p>  http://www.csdn.net/ 中國程序員網(wǎng)站的ASP技術(shù)論壇.</p><p>  http://www.programfan.com/ 編程愛好者網(wǎng)站的ASP技術(shù)文章.</p><p>  http://www.5ud.com/ 無憂網(wǎng)站的網(wǎng)絡(luò)考試系統(tǒng).</p><p>  http://www.ccafc

溫馨提示

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

評論

0/150

提交評論