版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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><b> ?。?2013屆)</b></p><p> 題 目 音樂(lè)播放系統(tǒng)設(shè)計(jì) </p><p> 學(xué) 號(hào)
2、 </p><p> 姓 名 </p><p> 所 屬 系 機(jī)電工程系 </p><p> 專 業(yè) 電子信息工程技術(shù) </p>
3、;<p> 班 級(jí) 10級(jí)電信 </p><p> 指導(dǎo)教師 </p><p><b> 摘 要</b></p><p> 音樂(lè)是一種聲音符號(hào),表達(dá)人的思想感
4、情。是人們思想的載體之一。音樂(lè)是有目的和內(nèi)涵的,其中隱含了作者的生活體驗(yàn),思想情懷。一款好的pc音樂(lè)播放器不僅能夠提供好的音樂(lè)播放效果,更能夠?yàn)橛脩籼峁┓奖愕牟僮鳌?lt;/p><p> 本設(shè)計(jì)利用java語(yǔ)言和eclipse 編輯工具對(duì)播放器進(jìn)行編寫。同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過(guò)程、部分界面圖及主要功能運(yùn)行流程圖,本文還對(duì)開發(fā)過(guò)程中遇到的問(wèn)題和解決方法進(jìn)行了詳細(xì)的討論,該音樂(lè)播放器集播放、暫停、停止、快進(jìn)、快退、下
5、一曲、上一曲、音量調(diào)節(jié)等功能與一體,性能良好。該播放器支持MP3、WAV、MP3和AIFF等音頻格式。在開發(fā)的過(guò)程中采用瀑布模型。第一階段首先對(duì)項(xiàng)目進(jìn)行全面、仔細(xì)的需求分析,并準(zhǔn)確做出項(xiàng)目進(jìn)度安排,明確每個(gè)階段的任務(wù);第二階段是進(jìn)行項(xiàng)目分模塊編碼;第三階段對(duì)項(xiàng)目進(jìn)行全面的測(cè)試和系統(tǒng)集成測(cè)試。</p><p> 在本程序的開發(fā)上,因?yàn)镴AVA的跨平臺(tái)性,所以可供選擇的平臺(tái)有許多,使得在平臺(tái)的選擇面上有了更大的自主
6、權(quán)?,F(xiàn)在社會(huì)上使用最多的平臺(tái)是WINDOWS。所以該程序在WINDOWS平臺(tái)下開發(fā)。</p><p> 關(guān)鍵詞: Eclipse;播放器;音頻技術(shù)</p><p> The design of Music Player Base on Java</p><p><b> Abstract</b></p><p>
7、 The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the author's life experiences and feelings. A good pc music
8、 player can not only provide good music playing effect, but also provide users with convenient operation.</p><p> The player is using java language and eclipse editing tools. Giving a detailed system design
9、 process, part of the interface map and run flow chart of the main function, this article discussed in detail on problems and solution method in the development process. The music player set to play, pause, stop, fast fo
10、rward, rewind, and the next one, on a volume adjustment functions with one good performance. The player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the development proce</p><p> The devel
11、opment of this program, there are many alternative platform, because JAVA cross platform, so have greater autonomy in the choice of platform. Now used on most platforms is the WINDOWS. Therefore, the program is developin
12、g under the WINDOWS platform.</p><p> Keywords: Eclipse; Player; Audio technology</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> Abstract
13、II</p><p><b> 1 前言1</b></p><p> 1.1軟件開發(fā)背景及意義1</p><p> 1.2發(fā)展現(xiàn)狀及趨勢(shì)1</p><p> 1.3主要研究方法及過(guò)程2</p><p> 2 相關(guān)技術(shù)簡(jiǎn)介3</p><p> 2.1
14、Java技術(shù)簡(jiǎn)介3</p><p> 2.2 JavaSound技術(shù)3</p><p> 2.2.1 JavaSound 的體系結(jié)構(gòu)3</p><p> 2.2.2 JavaSound混頻原理4</p><p> 2.3 JDK技術(shù)5</p><p><b> 3需求分析7</b&
15、gt;</p><p><b> 3.1功能需求7</b></p><p> 3.1.1 播放器的基本控制需求7</p><p> 3.1.2功能需求分析7</p><p> 3.2 運(yùn)行及其它需求分析8</p><p> 3.3 可行性分析8</p><p
16、> 3.3.1 經(jīng)濟(jì)及技術(shù)可行性8</p><p> 3.3.2 運(yùn)行及法律可行性9</p><p> 4 軟件結(jié)構(gòu)及界面設(shè)計(jì)10</p><p> 4.1軟件結(jié)構(gòu)設(shè)計(jì)10</p><p> 4.2 GUI界面設(shè)計(jì)11</p><p><b> 5詳細(xì)設(shè)計(jì)13</b>
17、</p><p> 5.1打開文件菜單下的詳細(xì)設(shè)計(jì)13</p><p> 5.1.1打開文件設(shè)計(jì)13</p><p> 5.1.2退出系統(tǒng)設(shè)計(jì)13</p><p> 5.2播放菜單下的詳細(xì)設(shè)計(jì)14</p><p> 5.3顯示菜單下的詳細(xì)設(shè)計(jì)14</p><p> 5.4幫
18、助菜單下的詳細(xì)設(shè)計(jì)15</p><p> 5.5播放列表的詳細(xì)設(shè)計(jì)16</p><p> 5.6播放按鈕的詳細(xì)設(shè)計(jì)17</p><p><b> 6結(jié)論19</b></p><p><b> 參考文獻(xiàn)20</b></p><p><b> 致
19、謝21</b></p><p><b> 1 前言</b></p><p> 1.1軟件開發(fā)背景及意義</p><p> 欣賞美妙的音樂(lè)是我們每個(gè)人在學(xué)習(xí)工作之余都會(huì)做的事,面對(duì)市場(chǎng)上和網(wǎng)絡(luò)上各種花樣繁多的播放器,他們不但用起來(lái)感到得心應(yīng)手,而且各種功能操作非常方便。我們都用過(guò)“千千靜聽”,“酷狗音樂(lè)盒”,“Windows
20、Media player”等非常優(yōu)秀的播放器,但是在其使用的過(guò)程中總有些瑕疵。并且這些公司沒(méi)有開放它們的源代碼。我設(shè)計(jì)的這個(gè)“基于java的音樂(lè)播放器”除了能夠播放一些常見的音頻格式外更加易于操作和使用。此軟件具有一般播放器的常用功能,界面沿用了標(biāo)準(zhǔn)的Windows窗口,主窗口的功能有對(duì)要播放文件的各種控制,所播放曲目的名稱,通過(guò)主窗口能有選擇的播放單個(gè)文件,單次播放和循環(huán)播放目錄表中的文件。程序的開發(fā)環(huán)境是JDK,操作系統(tǒng)是Windo
21、ws XP,用到的主要技術(shù)為java語(yǔ)言,eclipse編輯軟件。</p><p> 本次畢業(yè)設(shè)計(jì)的意義在于結(jié)合Java語(yǔ)言提供的先進(jìn)的思想和多樣的媒體控制手段,結(jié)合用戶使用音樂(lè)播放器的習(xí)慣和對(duì)媒體播放器的要求,設(shè)計(jì)了一款界面清楚明了,操作簡(jiǎn)單實(shí)效,可以實(shí)現(xiàn)在播放列表中可以加載一個(gè)或者多個(gè)多媒體文件;自動(dòng)連續(xù)播放多個(gè)多媒體文件;用戶能隨意改變播放順序;在下次打開播放器時(shí),能夠自動(dòng)加載上次的播放列表;在播放列表的
22、多媒體文件播放完后可以選擇自動(dòng)關(guān)閉播放器或者循環(huán)播放等功能的媒體播放器。</p><p> 1.2發(fā)展現(xiàn)狀及趨勢(shì)</p><p> 音樂(lè)播放器的設(shè)計(jì)是一門集計(jì)算機(jī)技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設(shè)計(jì)。隨著中國(guó)計(jì)算機(jī)技術(shù)、寬帶網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的人開始重視多媒體播放器的發(fā)展與應(yīng)用。在當(dāng)今信息社會(huì)以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用對(duì)人類社會(huì)產(chǎn)生的影響和作用愈來(lái)愈明顯,愈來(lái)
23、愈重要。而音樂(lè)作為多媒體中的一個(gè)重要組成部分能改變信息的包裝,實(shí)現(xiàn)知識(shí)信息數(shù)字化,為人們獲得知識(shí)信息提供極大的方便和無(wú)窮的樂(lè)趣。友善的人機(jī)界面、多種多樣的多媒體教學(xué)軟件、誘人的電子游藝節(jié)目、身臨其境的多媒體導(dǎo)購(gòu)系統(tǒng)、五花八門的信息家電和高效方便的網(wǎng)上查詢等等,無(wú)不滲透著多媒體的作用,它引導(dǎo)人們進(jìn)入了一個(gè)有聲有色的世界。同時(shí),多媒體的發(fā)展和應(yīng)用,極大地推動(dòng)了各行各業(yè)的相互滲透和飛速發(fā)展,大大改變了人類社會(huì)的工作環(huán)境和生活方式。可毫不夸張地
24、說(shuō),多媒體產(chǎn)業(yè)的形成和發(fā)展,不僅引起了計(jì)算機(jī)工業(yè)的一次革命,也正在深刻地影響人類社會(huì)發(fā)生巨大的變革。多媒體技術(shù)的發(fā)展在很大程度上依靠于多媒體軟件開發(fā)的水平。</p><p> 多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子技術(shù)發(fā)展和競(jìng)爭(zhēng)的焦點(diǎn)。多媒體技術(shù)融計(jì)算機(jī)、聲音、文本、圖像、動(dòng)畫、視頻和通信等多種功能于一體,借助日益普及的高速信息網(wǎng),可實(shí)現(xiàn)計(jì)算機(jī)的全球聯(lián)網(wǎng)和信息資源共享,因此被廣泛應(yīng)用在
25、咨詢服務(wù)、圖書、教育、通信、軍事、金融、醫(yī)療等諸多行業(yè),并正潛移默化地改變著我們生活的面貌。</p><p> 人類社會(huì)逐漸進(jìn)入信息化時(shí)代,社會(huì)分工越來(lái)越細(xì),人際交往越來(lái)越頻繁,群體性、交互性、分布性和協(xié)同性將成為人們生活方式和勞動(dòng)方式的基本特征,其間大多數(shù)工作都需要群體的努力才能完成。但在現(xiàn)實(shí)生活中影響和阻礙上述工作方式的因素太多,如打電話時(shí)對(duì)方卻不在。即使電話交流也只能通過(guò)聲音,而很難看見一些重要的圖紙資料
26、,要面對(duì)面的交流討論,又需要費(fèi)時(shí)的長(zhǎng)途旅行和昂貴的差旅費(fèi)用,這種方式造成了效率低、費(fèi)時(shí)長(zhǎng)、開銷大的缺點(diǎn)。今天,隨著多媒體計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,兩者相結(jié)合形成的多媒體通信和分布式多媒體信息系統(tǒng)較好地解決上述問(wèn)題。</p><p> 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和Internet的逐漸普及,人們對(duì)網(wǎng)絡(luò)產(chǎn)品需求也不斷增長(zhǎng)。如今流行的網(wǎng)絡(luò)音樂(lè)播放器雖然很多,但都或多或少存在一些缺陷,比如:沒(méi)有記憶的功能;下次播放的時(shí)候
27、不能從上次離開的曲目開始;沒(méi)有身份認(rèn)證功能;不能有效的保護(hù)媒體播放器里面的歌曲專有性;功能組合與用戶的習(xí)慣相違背;界面太復(fù)雜以及操作太難等。隨著人們對(duì)娛樂(lè)要求的提高,一款別致的、貼近用戶操作習(xí)慣的音樂(lè)播放器非常值得去研究和開發(fā)。</p><p> 1.3主要研究方法及過(guò)程</p><p> 研究方法:主要采用行動(dòng)研究法和文獻(xiàn)法。行動(dòng)分析法,制定個(gè)性研究方案,通過(guò)我們?nèi)粘?shí)踐情況進(jìn)行分析
28、,再研究調(diào)整重新進(jìn)行實(shí)踐。首先,了解有關(guān)音樂(lè)播放器的有關(guān)技術(shù),并對(duì)現(xiàn)在主流的音樂(lè)播放器進(jìn)行測(cè)試并將它們不足之處改進(jìn)。并將經(jīng)驗(yàn)總結(jié)、記錄,形成有價(jià)值的文字。文獻(xiàn)法,廣泛收集整理文獻(xiàn)資料,如經(jīng)典期刊,國(guó)內(nèi)外前沿研究,以及指導(dǎo)老師推薦的書目,為今后項(xiàng)目開發(fā)提供具有時(shí)代性,創(chuàng)造性的正面指導(dǎo)。</p><p> 研究手段:主要是結(jié)合之前的開發(fā)經(jīng)驗(yàn),聯(lián)系項(xiàng)目需求分析和參考文獻(xiàn),根據(jù)項(xiàng)目的特點(diǎn)選擇適當(dāng)?shù)拈_發(fā)工具(eclips
29、e)和編程技術(shù)(編程語(yǔ)JAVA)制定項(xiàng)目開發(fā)方案。</p><p> 實(shí)驗(yàn)方案:采用瀑布模型。首先對(duì)項(xiàng)目進(jìn)行全面、仔細(xì)的需求分析,并準(zhǔn)確做出項(xiàng)目進(jìn)度安排,明確每個(gè)人的職責(zé)和任務(wù)。第二階段,是進(jìn)行項(xiàng)目分模塊編碼。第三階段,選擇適當(dāng)?shù)臏y(cè)試方法,在完成項(xiàng)目編碼后,進(jìn)行軟件測(cè)試,并準(zhǔn)備填寫測(cè)試用例。對(duì)項(xiàng)目進(jìn)行全面的測(cè)試和系統(tǒng)集成測(cè)試。</p><p><b> 2 相關(guān)技術(shù)簡(jiǎn)介<
30、;/b></p><p> 2.1 Java技術(shù)簡(jiǎn)介</p><p> Java 語(yǔ)言具有許多特點(diǎn),當(dāng)然也是它的優(yōu)點(diǎn),即簡(jiǎn)單性、分布性、高安全性、面向?qū)ο?、與結(jié)構(gòu)的無(wú)關(guān)性、可移植性、多線程及動(dòng)態(tài)性等等。簡(jiǎn)單性:Java 語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言, 如果你對(duì)面向?qū)ο蟮木幊痰幕靖拍钣辛艘欢ǖ牧私?就可以比較快地學(xué)會(huì)Java 語(yǔ)言編程。Java 力圖在功能齊備的基礎(chǔ)上不增加所謂的超級(jí)
31、特點(diǎn), 它毫不客氣地取消了指針、運(yùn)算符重載和多重繼承的概念,以一種明晰的面向?qū)ο蟮姆椒◣椭脩舯磉_(dá)他們的想法。</p><p> Java是一種簡(jiǎn)單的語(yǔ)言。Java取消了其它的許多編程語(yǔ)言中十分繁瑣的和難以理解的內(nèi)容,例如C/C++中的指針,C++中類的多重繼承等。Java語(yǔ)言在外觀上讓大多數(shù)程序員都感到很熟悉,這樣程序員不需要經(jīng)過(guò)長(zhǎng)時(shí)間訓(xùn)練就能夠?qū)W會(huì)使用這種新型的程序開發(fā)工具。Java要求的基本解釋器約為40
32、KB ,若加上基本的程序庫(kù),約為215KB。由于Java程序很小,因此在小型機(jī)上Java程序也能夠很好地執(zhí)行。</p><p> Java是一種面向?qū)ο蟮恼Z(yǔ)言。這里的“對(duì)象”是指應(yīng)用程序的數(shù)據(jù)及其操作方法。Java程序的設(shè)計(jì)思想不同于C語(yǔ)言基于過(guò)程的程序設(shè)計(jì)思想。設(shè)計(jì)面向?qū)ο蟮某绦蛐枰獙⒕幊讨攸c(diǎn)放在資料和接口上。</p><p> Java是一種分布式的語(yǔ)言。Java有一個(gè)很周全的程序
33、庫(kù),且很容易與HTTP和TCP/IP通信協(xié)議相配合。Java應(yīng)用程序能在網(wǎng)絡(luò)上開啟并連結(jié)使用對(duì)象,就如同透過(guò)URL鏈接使用一個(gè)本地文件系統(tǒng)。利用Java來(lái)開發(fā)分布式的網(wǎng)絡(luò)程序是Java的一個(gè)重要應(yīng)用。</p><p> 2.2 JavaSound技術(shù) </p><p> JavaSound是一個(gè)小巧的底層API,支持?jǐn)?shù)字音頻和MIDI數(shù)據(jù)的記錄/回放。在JDK 1.3.0之前,Java
34、Sound是一個(gè)標(biāo)準(zhǔn)的Java擴(kuò)展API,但從Java 2的1.3.0版開始,JavaSound就被包含到JDK之中。由于Java有著跨平臺(tái)(操作系統(tǒng)、硬件平臺(tái))的特點(diǎn),基于JavaSound的音頻處理程序(包括本文的程序)能夠在任何實(shí)現(xiàn)了Java 1.3+的系統(tǒng)上運(yùn)行,無(wú)需加裝任何支持軟件。</p><p> 2.2.1 JavaSound 的體系結(jié)構(gòu)</p><p> 當(dāng)前JDK的
35、JavaSound API隨同Java媒體框架(JMF,Java Media Framework)一起發(fā)布,適合JDK1.1以及更高的版本。除了JDK實(shí)現(xiàn)的JavaSound API之外,還有一個(gè)源代碼開放的JavaSound實(shí)現(xiàn)是Tritonus。圖2-1描述了JavaSound API的體系結(jié)構(gòu),虛線表示Sun的JavaSound標(biāo)準(zhǔn)定義的API調(diào)用。上面一根虛線表示我們編寫音頻處理程序要調(diào)用的API,JavaSound API包含
36、在javax.sound.sampled和javax.sound.midi包中。兩根虛線之間的部分就是JavaSound API的具體實(shí)現(xiàn)。</p><p> 圖2-1:JavaSound體系結(jié)構(gòu)</p><p> 就象上面一根虛線表示的API具有統(tǒng)一標(biāo)準(zhǔn)一樣,在所有的JavaSound實(shí)現(xiàn)中,圖一下面一根虛線表示的SPI(服務(wù)提供者接口,Service Provider Interf
37、ace)也是統(tǒng)一的。SPI的作用是以插件(Plug-In)的形式提供自定義的擴(kuò)展模塊,我們只要提供與SPI兼容的插件擴(kuò)展模塊,就可以在不改變API的情況下擴(kuò)展音頻處理程序的能力。SPI包含在java.sound.sampled.spi和javax.sound.midi.spi包中。例如,假設(shè)有一個(gè)只能播放WAV文件的程序,我們只要增加一個(gè)支持MP3文件解碼的插件模塊,就可以在不改動(dòng)播放程序的任何一行代碼的前提下,為這個(gè)播放程中添加播放M
38、P3的能力。</p><p> 2.2.2 JavaSound混頻原理 </p><p> 圖2-2闡述了JavaSound的混頻器原理。在處理輸入音頻的應(yīng)用中,對(duì)于來(lái)自各種音頻輸入端口的信號(hào),例如麥克風(fēng)、CD播放器、磁帶播放器,等等,我們可以在它們到達(dá)TargetDataLine之前,利用混頻器控制輸入混頻,最后在程序中通過(guò)TargetDataLine獲得數(shù)字化的音頻輸入流。<
39、/p><p> 圖2-2:JavaSound混頻器</p><p> 類似地,在處理輸出音頻的應(yīng)用中,混頻器用來(lái)對(duì)一系列來(lái)自SourceDataLine的數(shù)據(jù)進(jìn)行混頻處理,經(jīng)處理后的信號(hào)可輸出到各種輸出端口,例如揚(yáng)聲器、耳機(jī)等。SourceDataLine是一個(gè)可寫入音頻信號(hào)數(shù)字流的設(shè)備,例如,我們可以從一個(gè)WAV文件讀取內(nèi)容寫入到SourceDataLine,然后再通過(guò)揚(yáng)聲器輸出。<
40、;/p><p> 輸入到混頻器的信號(hào)可以來(lái)源于剪輯。剪輯(Clip)是一個(gè)包含一段完整音頻數(shù)據(jù)流的設(shè)備,或者說(shuō),剪輯就是一個(gè)緩沖在內(nèi)存中的完整音頻數(shù)據(jù)流。在一些要求反復(fù)播放音樂(lè)片段的場(chǎng)合,例如游戲的背景音樂(lè),剪輯是很有用的。</p><p> 圖2-3描述了JavaSound API中一些常用的類、接口及其關(guān)系,所有圖三顯示的類、接口都通過(guò)Line這個(gè)基本接口統(tǒng)一起來(lái)。Line接口用來(lái)關(guān)閉
41、/打開設(shè)備、注冊(cè)事件監(jiān)聽器,以及提供一些用來(lái)調(diào)整聲音效果的對(duì)象,例如調(diào)整音量大小的對(duì)象。AudioSystem在JavaSound體系中起著一個(gè)工廠(Factory)類的作用,提供了一系列的靜態(tài)方法,我們通過(guò)這些靜態(tài)方法來(lái)獲取JavaSound系統(tǒng)默認(rèn)配置的資源(所謂靜態(tài)方法,就是可以在不創(chuàng)建AudioSystem實(shí)例的情況下直接調(diào)用的方法)。</p><p> 圖2-3:常用的JavaSound類</p
42、><p> 在當(dāng)前(JDK 1.4)實(shí)現(xiàn)的JavaSound的默認(rèn)配置中,輸入聲音來(lái)自本地聲卡的麥克風(fēng),輸出聲音到本地聲卡的揚(yáng)聲器。應(yīng)當(dāng)說(shuō)當(dāng)前實(shí)現(xiàn)的JavaSound對(duì)端口和混頻器的支持還不完善,但對(duì)于包括本文音樂(lè)播放器在內(nèi)的許多應(yīng)用來(lái)說(shuō),默認(rèn)實(shí)現(xiàn)的JavaSound配置已經(jīng)足夠了。</p><p><b> 2.3 JDK技術(shù)</b></p><
43、p> Java編譯器將Java源代碼文件編譯成可執(zhí)行的Java字節(jié)碼。Java源代碼文件的擴(kuò)展名為 .java,Java編譯器把這種擴(kuò)展名的文件編譯成擴(kuò)展名為.class的文件。源文件中的每個(gè)類在編譯后都將產(chǎn)生一個(gè)class文件,這意味一個(gè)Java源代碼文件可能編譯生成多個(gè)class文件。</p><p> Java解釋器對(duì)編譯生成的字節(jié)碼格式的可執(zhí)行程序的運(yùn)行提供支持,它是運(yùn)行非圖形Java程序的命令
44、行工具。它是Java Applet的簡(jiǎn)單測(cè)試工具,可使用它來(lái)測(cè)試Java Applet程序,而不需要WWW瀏覽器的支持。</p><p> JDK(Java Development Kit)是Sun Microsystems針對(duì)Java程序員開發(fā)的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。</p><p>
45、 JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Environment),一堆Java工具和Java基礎(chǔ)的類庫(kù)(rt.jar)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。因此掌握 JDK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK
46、等等。其中IBM的JDK包含的JVM(Java Virtual Machine)運(yùn)行效率要比Sun JDK包含的JVM高出許多。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。但不管怎么說(shuō),我們還是需要先把Sun JDK掌握好。</p><p> 從SUN的JDK5.0開始,提供了泛型等非常實(shí)用的功能,其版本信息也不再延續(xù)以前的1.2,1.3,1.4,而是變成了5.0,6.0了
47、。從6.0開始,其運(yùn)行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。</p><p> JDK本身使用了Java語(yǔ)言編寫,在我們下載的安裝包里,有一個(gè)src.zip,里面就是JDK的源代碼。</p><p><b> 3需求分析</b></p><p><b> 3.1功能需求</b></p><
48、p> 3.1.1 播放器的基本控制需求</p><p> 根據(jù)項(xiàng)目的目標(biāo),我們可獲得項(xiàng)目系統(tǒng)的基本需求,以下從不同的角度來(lái)描述系統(tǒng)的需求,并且使用用例圖來(lái)描述,系統(tǒng)的功能需求,我們分成以下幾部分來(lái)概括,即播放器的基本控制需要,播放列表管理需求如圖3-1所示。</p><p> 圖3-1 播放器基本控制圖</p><p> 在播放器正在運(yùn)行時(shí),用戶選擇一
49、首歌曲后單擊“播放”按鈕,播放器將播放選中的播放列表中的音樂(lè),并同時(shí)顯示當(dāng)前進(jìn)度;當(dāng)歌曲未暫停或停止時(shí),用戶單擊“暫停”按鈕,播放器將進(jìn)入暫停狀態(tài);播放器正在播放或暫停時(shí),用戶單擊“停止”按鈕,播放器將停止播放或暫停時(shí),用戶點(diǎn)擊“上一首”或者“下一首”按鈕,播放器將播放上一首或下一首歌曲。</p><p> 3.1.2功能需求分析</p><p> 從時(shí)序圖3-2中可以看出播放器中信息
50、發(fā)送和調(diào)用過(guò)程。</p><p> 圖3-2 音樂(lè)播放器的時(shí)序圖</p><p> 3.2 運(yùn)行及其它需求分析</p><p> 硬件條件:賽揚(yáng)CPU、 1G 內(nèi)存、10G硬盤以上的PC機(jī)。</p><p> 軟件條件:Windows XP 、 eclipse 3.7.2 、 jdk1.6.0。</p><p>
51、; 本軟件對(duì)其它軟件幾乎沒(méi)有依賴性,程序健壯性較好有較好的可維護(hù)性、可靠性、可理解性、效率。易于用戶理解和操作??删S護(hù)性包括了可讀性、可測(cè)試性等含義??煽啃酝ǔ0ㄕ_性和健壯性。開發(fā)過(guò)程中,在各種矛盾的目標(biāo)之間作權(quán)衡,并在一定的限制的條件下(經(jīng)費(fèi)、時(shí)間、可用的軟、硬件資源等),使上述各方面最大限度的得到滿足。</p><p><b> 3.3 可行性分析</b></p>
52、<p> 3.3.1 經(jīng)濟(jì)及技術(shù)可行性</p><p> 經(jīng)濟(jì)可行性研究是對(duì)組織的經(jīng)濟(jì)現(xiàn)狀和投資能力進(jìn)行分析,對(duì)系統(tǒng)建設(shè)運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對(duì)系統(tǒng)建成后可能取得的社會(huì)和經(jīng)濟(jì)效益進(jìn)行估計(jì)。由于本系統(tǒng)是作為畢業(yè)設(shè)計(jì)由我自己開發(fā)的,在經(jīng)濟(jì)上的投入甚微,系統(tǒng)建成之后將為今后播放音樂(lè)提供很大的方便,估算新系統(tǒng)的開發(fā)費(fèi)用和今后的運(yùn)行、維護(hù)費(fèi)用,估計(jì)新系統(tǒng)將獲得的效益,并將費(fèi)用與效益進(jìn)行比較,看是否有利。&l
53、t;/p><p> 開發(fā)、運(yùn)行和維護(hù)費(fèi)用主要包括:購(gòu)買和安裝設(shè)備的費(fèi)用:計(jì)算機(jī)硬件、系統(tǒng)軟件、電源、空調(diào)等;軟件開發(fā)費(fèi)用:若由實(shí)習(xí)單位的技術(shù)人員開發(fā),則該項(xiàng)費(fèi)用可以計(jì)入下面的人員費(fèi)用一項(xiàng);人員費(fèi)用:系統(tǒng)開發(fā)人員、操作人員和維護(hù)人員的工資、培訓(xùn)費(fèi)用等;消耗品費(fèi)用:系統(tǒng)開發(fā)所用材料、系統(tǒng)正常運(yùn)行所用消耗品,例如水、電費(fèi)、打印紙、軟盤、色帶等開支。結(jié)合該畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程所有開支都不大,所以經(jīng)濟(jì)上是可行的。 </p
54、><p> 技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。該音樂(lè)播放器用的是java語(yǔ)言開發(fā)的,調(diào)試相對(duì)簡(jiǎn)單,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對(duì)可行的。軟件方面:用的是eclipse,它的速度快、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。</p><p> 3.3.2 運(yùn)行及法律可行性</p><p&
55、gt; 對(duì)新軟件運(yùn)行后給現(xiàn)行系統(tǒng)帶來(lái)的影響(包括組織機(jī)構(gòu)、管理方式、工作環(huán)境等)和后果進(jìn)行估計(jì)和評(píng)價(jià)。同時(shí)還應(yīng)考慮現(xiàn)有管理人員的培訓(xùn)、補(bǔ)充,分析在給定時(shí)間里能否完成預(yù)定的系統(tǒng)開發(fā)任務(wù)等。</p><p> 運(yùn)行可行性是對(duì)組織結(jié)構(gòu)的影響,現(xiàn)有人員和機(jī)構(gòu)和環(huán)境對(duì)系統(tǒng)的適應(yīng)性及人員培訓(xùn)補(bǔ)充計(jì)劃的可行性。當(dāng)前我國(guó)信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨?,所以在運(yùn)行上是可行性的。從時(shí)間上看,時(shí)間上是有點(diǎn)緊
56、,但通過(guò)一個(gè)多月的努力基本功能現(xiàn)在已經(jīng)基本實(shí)現(xiàn)。在法律可行性上從以下幾點(diǎn)考慮:</p><p> ?、?所有技術(shù)資料都為合法。</p><p> ?、?開發(fā)過(guò)程中不存在知識(shí)產(chǎn)權(quán)問(wèn)題。</p><p> ?、?未抄襲任何已存在的課程信息管理系統(tǒng),不存在侵犯版權(quán)問(wèn)題。</p><p> ?、?開發(fā)過(guò)程中未涉及任何法律責(zé)任。</p>
57、<p> 綜上所述,本系統(tǒng)的開發(fā)從技術(shù)上、從經(jīng)濟(jì)上、從法律上都是完全可靠的。</p><p> 4 軟件結(jié)構(gòu)及界面設(shè)計(jì)</p><p><b> 4.1軟件結(jié)構(gòu)設(shè)計(jì)</b></p><p> 本軟件不僅要求功能完善,而且還要界面友好,因此,對(duì)于一個(gè)成功的軟件設(shè)計(jì),功能模塊的設(shè)計(jì)是關(guān)鍵。在需求分析階段,搞清楚了軟件“做什么”的問(wèn)
58、題,形成了目標(biāo)軟件的邏輯模型。現(xiàn)在我們所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實(shí)現(xiàn)軟件的需求。我們需要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。</p><p> 軟件的設(shè)計(jì)中最重要的就是軟件的模塊化。模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干個(gè)模塊的過(guò)程。每個(gè)模塊完成一個(gè)特定的功能,所有的模塊按某種方法組織起來(lái),成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。</p>
59、<p> 將系統(tǒng)劃分為多個(gè)模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護(hù)性,但模塊的劃分不能是任意的,應(yīng)盡量保持其獨(dú)立性。也就是說(shuō),每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立</p><p> 子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨(dú)立性,為設(shè)計(jì)高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。</p><p> 圖4-1 音樂(lè)播放器系統(tǒng)流程圖</p>
60、<p> 在系統(tǒng)的概要設(shè)計(jì)中采用結(jié)構(gòu)化設(shè)計(jì)以需求分析階段產(chǎn)生的數(shù)據(jù)流圖為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。首先將整個(gè)系統(tǒng)化分為幾個(gè)小問(wèn)題,小模塊。然后,進(jìn)一步細(xì)分模塊,添加細(xì)節(jié)。系統(tǒng)流程圖如圖 4-1所示。</p><p> 4.2 GUI界面設(shè)計(jì)</p><p> 播放器的GUI設(shè)計(jì)可以包含兩個(gè)方面:界面布局的設(shè)計(jì)和生成按扭的代碼設(shè)計(jì)。在GUI設(shè)計(jì)中,我們要了解構(gòu)成程
61、序的各個(gè)GUI部件。</p><p><b> 圖4-2 菜單項(xiàng)</b></p><p> 音樂(lè)播放器的界面有“文件”、“播放”、“顯示”“幫助”4個(gè)主菜單,其中“文件”菜單包含“打開文件”、“退出系統(tǒng)”兩個(gè)菜單項(xiàng),“播放”菜單里包含“播放/暫停”“停止”,“播放控制”。菜單項(xiàng)如圖4-2所示。</p><p> 鑒于構(gòu)造用戶界面往往需要大
62、量的代碼,且這些代碼通??梢杂肐DE自動(dòng)生成,所以對(duì)一些關(guān)鍵的GUI元素略作介紹,不再給出完整的代碼。主界面分為上、下兩個(gè)部分,上面是視覺(jué)部件,下面是控制面板。播放音頻文件界面如圖4-3 所示。</p><p> 圖4-3音樂(lè)播放器的播放界面</p><p><b> 5詳細(xì)設(shè)計(jì)</b></p><p> 5.1打開文件菜單下的詳細(xì)設(shè)計(jì)&
63、lt;/p><p> 打開文件菜單下有“打開文件”,“推出系統(tǒng)”兩個(gè)子菜單。分別介紹如下:</p><p> 5.1.1打開文件設(shè)計(jì)</p><p> 對(duì)于一個(gè)完整的音樂(lè)播放器軟件,不僅要求功能強(qiáng)大、操作簡(jiǎn)單,還要有良好的設(shè)計(jì)風(fēng)格和另人爽目的界面。添加歌曲功能對(duì)于整個(gè)系統(tǒng)來(lái)說(shuō)是非常重要的。</p><p> 通過(guò) menuItem ope
64、n = new MyMenuItem(); 來(lái)初始化變量。</p><p> 通過(guò)以下的if 語(yǔ)句進(jìn)行格式判斷</p><p> if (menuItem_AutoChange.isSelected() == true) {</p><p> if (fileMode.equals("mp3") || fileMode.equals(&qu
65、ot;MP3") || fileMode.equals("WAV") || fileMode.equals("wav"))</p><p><b> {</b></p><p> menu_transparence.setEnabled(true);</p><p> menu_trans
66、parence1.setEnabled(true);</p><p> changToMusicMode();</p><p><b> } </b></p><p> but_stop.setFocusable(true);</p><p> if (player != null) {</p>
67、<p> closePlayerStream(); }</p><p> 判斷是否選擇了打開文件如果選擇了則調(diào)用open();函數(shù)。</p><p> Public void actionPerformed(ActionEvent e){</p><p> Object source = e.getSource();</p><
68、p> if(source == menuItem_open){</p><p><b> open();</b></p><p><b> }</b></p><p> 5.1.2 退出系統(tǒng)設(shè)計(jì)</p><p> 通過(guò)menuItem_exit = new MyMenuItem(“退
69、出系統(tǒng)”);進(jìn)行聲明并初始化。</p><p> 在CommendActionListener() 函數(shù)中進(jìn)行判斷是單擊了“打開文件”還是“退出系統(tǒng)”如果是選擇了“退出系統(tǒng)”則直接退出系統(tǒng)。其主要代碼如下所示。</p><p> Public void actionPerformed(ActionEvent e){</p><p> Object source
70、 = e.getSource();</p><p> if(source == menuItem_open){</p><p><b> open();</b></p><p> } else if (source == menuItem_exit){</p><p><b> // 直接退出</
71、b></p><p> System.exit(0);</p><p><b> }</b></p><p><b> } </b></p><p> 5.2播放菜單下的詳細(xì)設(shè)計(jì)</p><p> 播放菜單下包含“播放/暫?!保巴V埂?,“播放控制
72、”,“播放列表”,“音量”這五個(gè)子菜單。初始化代碼如下:</p><p> menuItem_palyOrPause = new MyMenuItem("播放/暫停"); menuItem_stop = new MyMenuItem("停止"); menu_control = new MyMenu("播放控制"); menu_playerMode =
73、new MyMenu("播放列表");menuItem_sound = new MyMenu("音量");</p><p> 在其執(zhí)行時(shí)按照以下判斷執(zhí)行相應(yīng)的操作。主要代碼如下:</p><p> else if (source == menuItem_palyOrPause || source == menuItem_paly_Popup ||
74、 source == exitItem_playOrPause_SystemTray) {</p><p> if (BoolMember.firstPlayer) {</p><p> System.out.println(list.getSelectedIndex());</p><p> playMedia(list.getSelectedIndex()
75、);</p><p><b> } else {</b></p><p> if (player != null) {</p><p> if (BoolMember.tempPause && BoolMember.playerOrPause) {</p><p> pauseMedia();
76、 </p><p> BoolMember.tempPause = false;</p><p> } else if (!BoolMember.playerOrPause) {</p><p> pauseToPlayer();</p><p> BoolMember.tempPause = true;</p><
77、;p><b> } else {</b></p><p> pauseMedia();</p><p><b> }} }</b></p><p> } else if (source == menuItem_stop || source == menuItem_stop_Popup || source ==
78、 exitItem_stop_SystemTray) {</p><p> stopMedia();</p><p><b> } </b></p><p> 5.3顯示菜單下的詳細(xì)設(shè)計(jì)</p><p> 顯示菜單下包括“前端顯示”和“自動(dòng)切換”兩個(gè)子菜單。“前端顯示”用來(lái)控制播放界面永遠(yuǎn)處在最前面。“自動(dòng)切換”
79、用來(lái)控制當(dāng)選擇了播放某一歌曲后能自動(dòng)切換到小模式下進(jìn)行播放。其主要代碼如下所示:</p><p> else if (source == menuItem_onTop) {</p><p> if (menuItem_onTop.isSelected()) {</p><p> setAlwaysOnTop(true);</p><p>
80、;<b> } else {</b></p><p> setAlwaysOnTop(false);</p><p><b> }</b></p><p> } else if (source == menuItem_allScreen) {</p><p> if (visual !=
81、null) {</p><p> if (!ifAllScreen) {</p><p> fullScreenView();</p><p> ifAllScreen = true;</p><p><b> } else {</b></p><p> originalView();&
82、lt;/p><p> ifAllScreen = false;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.4幫助菜單下的詳細(xì)設(shè)計(jì)</p>&
83、lt;p> 幫助菜單下包含“關(guān)于”,“幫助”兩個(gè)子菜單。其“關(guān)于”用來(lái)顯示此軟件的“名稱”,“版本”,“作者”等基本信息?!皫椭辈藛蔚墓δ軇t是用來(lái)顯示所有的快捷鍵組合。如圖5-1和圖5-2所示:</p><p><b> 圖5-1 關(guān)于窗口</b></p><p><b> 圖5-2 關(guān)于窗口</b></p><
84、p> 5.5播放列表的詳細(xì)設(shè)計(jì)</p><p> 播放列表如圖5-3所示。選中要播放的文件然后單擊右鍵進(jìn)行列表控制。其主要代碼如下所示: 通過(guò)以下代碼進(jìn)行初始化:</p><p> menuItem_playSelect = new MyMenuItem("播放選中文件");menuItem_delete = new MyMenuItem("從列表
85、中刪除"); menuItem_Addfile = new MyMenuItem("向列表中添加"); menuItem_deleteAll = new MyMenuItem("清除列表文件"); </p><p> 通過(guò)以下判斷語(yǔ)句處理右鍵操作:</p><p> else if ((mods & 4) != 0 &
86、;& e.getSource() == list) {</p><p> popupMenuAll.add(menuItem_playSelect);</p><p> popupMenuAll.add(menuItem_delete);</p><p> popupMenuAll.add(menuItem_Addfile);</p>&
87、lt;p> popupMenuAll.add(menuItem_deleteAll);</p><p> popupMenuAll.show(list, e.getX(), e.getY());</p><p><b> }</b></p><p> 通過(guò)以下函數(shù)執(zhí)行相應(yīng)的操作:</p><p> pub
88、lic void pupupSeletedAction(Object source) {</p><p> if (source == menuItem_delete) {</p><p> removeFile(list.getSelectedIndex(), false);</p><p> } else if (source == menuItem_de
89、leteAll) {</p><p> removeFile(list.getSelectedIndex(), true);</p><p> } else if (source == menuItem_Addfile) {</p><p><b> open();</b></p><p> } else if
90、(source == menuItem_playSelect) {</p><p> playMedia(list.getSelectedIndex());</p><p><b> }</b></p><p><b> }</b></p><p><b> 圖5-3 播放列表&l
91、t;/b></p><p> 5.6播放按鈕的詳細(xì)設(shè)計(jì)</p><p> 播放按鈕如圖5-4 所示,包括上一曲、播放/暫停、停止、下一曲、快進(jìn)、快退、音量控制,其初始化代碼如下所示:</p><p> private MyButton but_rewind = null;</p><p> private MyButton bu
92、t_play = null;</p><p> private MyButton but_stop = null;</p><p> private MyButton but_fastForward = null;</p><p> private MyButton but_sounds = null;</p><p> privat
93、e MyButton but_skipBackward = null;</p><p> private MyButton but_skipForward = null;</p><p> private MyButton but_pause = null;</p><p> private MyButton but_music = null;</p&g
94、t;<p> private MyButton but_screen = null;</p><p><b> 改變音量的主要代碼</b></p><p> private class SoundChangListener implements ChangeListener {</p><p> public void s
95、tateChanged(ChangeEvent e) {</p><p> but_sounds.setActionCommand("false");</p><p> but_sounds.setIcon(new ImageIcon(PlayUI.class.getClassLoader().getResource("images/sound.png&q
96、uot;)));</p><p> menuItem_noSound.setSelected(false);</p><p> if (player != null) {</p><p> player.getGainControl().setLevel(</p><p> (float) jSlider_sound.getValue
97、() / 100);</p><p> mediaMute(but_sounds.getActionCommand());</p><p><b> }</b></p><p> lable_infor.setText("音量:" + jSlider_sound.getValue() + " " +
98、 "進(jìn)度:" + (int) newTime / 3600 + ":" + (int) (newTime % 3600) / 60 + ":" + (int) (newTime % 60));</p><p> jSlider_sound.setToolTipText(jSlider_sound.getValue() + "");&
99、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 圖5-4 播放控制按鈕</p><p><b> 6結(jié)論</b></p>&
100、lt;p> 經(jīng)過(guò)老師的悉心指導(dǎo)和自己的辛苦努力,大體上完成了“Java音樂(lè)播放器”的開發(fā)。但是由于時(shí)間倉(cāng)促,仍有許多方面存在著不足,一些功能還是沒(méi)有實(shí)現(xiàn),比如播放器只可以播放java 本身支持的幾種音樂(lè)格式,不能添加歌詞同步,不能在線播放等,整個(gè)播放器還有許多功能需要待進(jìn)一步的完善和改進(jìn)。</p><p> 經(jīng)過(guò)對(duì)畢業(yè)設(shè)計(jì)從頭到尾的設(shè)計(jì)和開發(fā),使我在大學(xué)學(xué)到的知識(shí)應(yīng)用的更加熟練,達(dá)到了學(xué)以致用。 <
101、;/p><p> 在程序設(shè)計(jì)過(guò)程中,我體會(huì)到了只有實(shí)踐才能掌握知識(shí),書本上的知識(shí)是不夠的,只有把理論與實(shí)踐相結(jié)合才能夠真正的學(xué)到知識(shí)。一個(gè)軟件的設(shè)計(jì),不可能一步到位,還需要不斷的完善和補(bǔ)充。同時(shí),系統(tǒng)中還存在許多問(wèn)題,有待在日后的使用中發(fā)現(xiàn)和解決。編程前的深思熟慮是減少程序調(diào)試工作量的重要方法,只有進(jìn)行充分考慮,才會(huì)減少調(diào)試過(guò)程中的工作量。雖然在開始寫程序之前我們做了多的準(zhǔn)備工作,但在真正的寫程序時(shí)仍然發(fā)現(xiàn)許多問(wèn)題
102、,有些問(wèn)題是分析時(shí)的疏漏,有些則是如果不做無(wú)論如何也想不到的。</p><p><b> 參考文獻(xiàn)</b></p><p> 施霞萍,張歡歡.java程序設(shè)計(jì)教程 第二版 機(jī)械功業(yè)出版社 2010,P20-315.</p><p> 耿素云,張躍平.Java實(shí)用教程[M].清華大學(xué)出版社,P10-300.</p><p
103、> 原野,沈均義,刑?hào)|山.基于Java的音樂(lè)播放器.計(jì)算機(jī)機(jī)工程,2002年,P54-57.</p><p> 劉黎明,黨東耀.Java Applet 多媒體播放器設(shè)計(jì).計(jì)算機(jī)應(yīng)用,2000,P2-78.</p><p> 潘傳幫,楊瑞峰.Java實(shí)效編程百例.人民郵電出版社.2001,P34-54.</p><p> 李爭(zhēng),陸正中 .JBuilder
104、 精髓.電子工業(yè)出版社,P56-59.</p><p> 張勇,基于Java的多媒體技術(shù)研究及實(shí)現(xiàn).西安電子科技大學(xué),P12-98.</p><p> Sun公司編著Java程序設(shè)計(jì)語(yǔ)言基礎(chǔ):實(shí)踐指南.Sun Java技術(shù)網(wǎng)站電子文檔</p><p> Bruce Eckel編著.Java編程思想.機(jī)械工業(yè)出版社,P23-45.</p><
105、p> IBM著作.Java 3D簡(jiǎn)介.IBM網(wǎng)站Java技術(shù)在線教程,P34-66.</p><p> 張桂珠 劉麗 陳愛(ài)國(guó) Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)北京郵電大學(xué)出版社,P23-75.</p><p> 畢廣吉.Java程序設(shè)計(jì)實(shí)例教程[M]. 北京:冶金工業(yè)出版社,2007年,P87-90.</p><p> 王保羅.Java面向?qū)ο蟪绦蛟O(shè)
106、計(jì)[M]. 北京:清華大學(xué)出版社,2003年.P12-32.</p><p> 高林,周海燕.Jsp網(wǎng)上書店系統(tǒng)與案例分析[M]. 北京:人民郵電出版社,2004年,P12-21.</p><p> 劉騰紅,孫細(xì)明.信息系統(tǒng)分析與設(shè)計(jì)[M]. 北京:科學(xué)出版社,2003年,P32-43.</p><p> 李竺,崔煒.多媒體技術(shù)與應(yīng)用 (立體教材計(jì)算機(jī)系列)北
107、京:清華大學(xué)出版社,2008-06-01.</p><p> 陳慶璋,周必水.多媒體技術(shù)教程[M].杭州:浙江科技出版社,1998-11-11,P43-49.</p><p> 石志國(guó),劉翼偉,王志良.Java應(yīng)用教程修訂本(配光盤)(高等學(xué)校計(jì)算機(jī)語(yǔ)言應(yīng)用教程) 北方交通大學(xué)出版社,2008-06-01.</p><p> Siyan K S,Weaver
108、J.精通Java編程.北京:宇航出版社,1988年,P33-45.</p><p> 傅獻(xiàn)禎, Java Application 常見項(xiàng)目實(shí)例開發(fā)過(guò)程全解.電子工業(yè)出社,P23-25.</p><p> Bruce Eckel,《Thinking in Java 4》,American:Prentice Hall PTR.</p><p> O’reilly,
109、《Java Servlet Programming》,American:Sernni Yey,P32-44.</p><p> O'Reilly & Associates, Inc 《Java Cookbook》in the United States or Canada,P78-98.</p><p> Horstmann,Cornell.Core Java2.Adv
110、anced Features.2000,p99-102.</p><p> David Flanagan. A Desktop Quick Reference.O’Reilly.1997,P122-132.</p><p><b> 致 謝</b></p><p> 轉(zhuǎn)眼間,大學(xué)生活即將結(jié)束,回首過(guò)去三年的大學(xué)生活,雖然有苦也有樂(lè),但是
111、更多的則是收獲,感謝母校的各位老師無(wú)私地傳授給我們知識(shí),也教會(huì)了我們?nèi)绾巫鋈俗鍪?。在這次畢業(yè)設(shè)計(jì)中,我感到自己的知識(shí)得到了一次升華,我相信我的畢業(yè)設(shè)計(jì)會(huì)給我的三年大學(xué)畫上一個(gè)圓滿的句號(hào)。</p><p> 在這三年中,老師的諄諄教導(dǎo)、同學(xué)的互幫互助使我在專業(yè)技術(shù)和為人處事方面都得到了很大的提高。感謝新余學(xué)院在我三年的大學(xué)生活當(dāng)中對(duì)我的教育與培養(yǎng),感謝11111111111電氣與信息學(xué)院的所有專業(yè)老師,沒(méi)有你們的
112、辛勤勞動(dòng),就沒(méi)有我們今日的滿載而歸,感謝大學(xué)三年曾經(jīng)幫助過(guò)我的所有同學(xué)。</p><p> 這次畢業(yè)論文設(shè)計(jì)我得到了很多老師和同學(xué)的幫助,其中我的畢業(yè)設(shè)計(jì)指導(dǎo)老師xx老師對(duì)我的關(guān)心和支持尤為重要。每次遇到難題,我都會(huì)向xx老師尋求幫助,而張老師每次不管忙或閑,總會(huì)抽空和我面談,然后一起商量解決的辦法。xx老師平日里工作繁多,但我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從選題到查閱資料,到系統(tǒng)設(shè)計(jì)定框架,代碼的修改,系統(tǒng)的調(diào)試完善
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)論文 音樂(lè)播放器設(shè)計(jì)
- 音樂(lè)播放器畢業(yè)設(shè)計(jì)
- ios音樂(lè)播放器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-單片機(jī)音樂(lè)播放器設(shè)計(jì)
- ios_音樂(lè)播放器畢業(yè)設(shè)計(jì)
- 可編程音樂(lè)播放器 畢業(yè)設(shè)計(jì)
- 可編程音樂(lè)播放器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于android手機(jī)平臺(tái)的音樂(lè)播放器
- ios音樂(lè)播放器論文
- 視頻播放器畢業(yè)設(shè)計(jì)
- 畢業(yè)論文——基于android音樂(lè)播放器的設(shè)計(jì)
- 基于android的mp3音樂(lè)播放器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 給予android的mp3音樂(lè)播放器設(shè)計(jì)--畢業(yè)設(shè)計(jì)論文
- 音樂(lè)播放器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)基于android手機(jī)平臺(tái)的音樂(lè)播放器
- 畢業(yè)設(shè)計(jì)—基于單片機(jī)的音樂(lè)播放器
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的音樂(lè)播放器
- 畢業(yè)設(shè)計(jì)-- 基于單片機(jī)的音樂(lè)播放器設(shè)計(jì)
- 音樂(lè)播放器
- 畢業(yè)論文范文——android音樂(lè)播放器
評(píng)論
0/150
提交評(píng)論