Java語言課程設(shè)計報告_第1頁
Java語言課程設(shè)計報告_第2頁
Java語言課程設(shè)計報告_第3頁
Java語言課程設(shè)計報告_第4頁
Java語言課程設(shè)計報告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java語言課程設(shè)計報告題目: KTV點歌系統(tǒng) 班級: 軟件工程 0801班 學(xué)號: 0808010106 姓名: 王夕楠 2011年 1月目 錄1設(shè)計題目及具體要求31.1題目需求31.2實現(xiàn)環(huán)境及工具簡介32總體設(shè)計42.1 系統(tǒng)基本功能描述42.2數(shù)據(jù)庫設(shè)計說明書62.3界面設(shè)計63 詳細(xì)設(shè)計與實現(xiàn)113.1 事件跟蹤圖113.2系統(tǒng)類圖123.3輸入/輸出數(shù)據(jù)123.4 代碼實現(xiàn)134 系統(tǒng)測試 22 4.1管理員224.2 消費者234.3 容錯性測試265 設(shè)計小結(jié)266 參考文獻(xiàn)271設(shè)計題目及具體要求1.1 題目需求1.1.1選題目的及意義近些年人們生活水平提高很快,人們除了注

2、重衣食住行以外,越來越需要一種好的娛樂休閑方式,而卡拉 OK 起源于日本然后引入我國。這種娛樂方式很快被大家所接受。而且非常受人們的歡迎,不管男女老少都能唱上幾句?,F(xiàn)在大街上KTV包房很多,但它們的點歌系統(tǒng)并不先進(jìn),自動化程度不高,使用起來很不方便。所以現(xiàn)在正需要一種功能強(qiáng)大,自動化程度高,成本低廉KTV包房點歌系統(tǒng)。本學(xué)期,我選擇這個題目作為課程設(shè)計的題目有以下兩個原因:一是本學(xué)期學(xué)習(xí)了Java程序設(shè)計和Oracle數(shù)據(jù)庫兩門課程,老師說過Java和Oracle數(shù)據(jù)庫是最佳搭檔,因此我想通過這次課程設(shè)計將所學(xué)運用于實際,也通過這次實際應(yīng)用加強(qiáng)自身能力,為以后的就業(yè)打下堅實的基礎(chǔ)。因為以后的工

3、作都是面對實際的問題,解決實際問題的能力才是我們真正需要的。二是因為我比較喜歡去KTV唱歌,因此對于這個題目非常感興趣,一直想找機(jī)會做一個相關(guān)的項目;對于KTV的點歌系統(tǒng)我也比較熟悉。憑借平時去KTV的經(jīng)歷和個人想法,我想做出一套屬于自己的KTV點歌系統(tǒng),于是選擇了這個題目。1.1.2本KTV點歌系統(tǒng)在功能上要求完成以下基本功能:a).消費者、管理員登陸;b).管理員添加歌手信息入庫;c).管理員添加歌曲入庫;d).消費者查看包廂資費信息;e).消費者選擇包廂;f).根據(jù)歌曲首字母選歌;g).根據(jù)歌手名首字母選歌;h).根據(jù)語種選歌;i ).查看已點歌曲;j ).刪除、優(yōu)先已點歌曲; k).操

4、作已點歌曲(播放、暫停、停止、切歌);l ).酒水服務(wù);m).歌曲排行1.1.3系統(tǒng)實現(xiàn)重難點分析本系統(tǒng)通過JDBC實現(xiàn)前后臺數(shù)據(jù)的聯(lián)系,前臺操作界面使用Java編寫,后臺連接Oracle數(shù)據(jù)庫存放相關(guān)數(shù)據(jù)?;旧蠈崿F(xiàn)了一個KTV點歌系統(tǒng)所具備的基本功能。本系統(tǒng)把使用者分為兩類:管理員和消費者,對兩種用戶分別設(shè)計了各自的主界面,以便更好的實現(xiàn)操作的方便性。管理員可以通過用戶名和密碼驗證后登錄,進(jìn)行對數(shù)據(jù)庫的操作,實現(xiàn)添加歌手信息和添加歌曲的功能;消費者可以在登錄時了解包間資費來選擇需要的包間,隨后可進(jìn)行選歌和演唱等具體操作。本系統(tǒng)的實現(xiàn)主要有以下重點:1 前臺用戶界面編寫:系統(tǒng)界面較多,要求美

5、觀且界面友好,方便用戶操作;2 前臺用戶操作事件的響應(yīng):要求操作簡單易懂;3 后臺數(shù)據(jù)庫的使用:需要使用數(shù)據(jù)表和序列;4 前臺界面查詢控制與后臺數(shù)據(jù)庫的鏈接:需要響應(yīng)及時且準(zhǔn)確。1.2 實現(xiàn)環(huán)境及工具簡介1.2.1 系統(tǒng)概述本圖書管理系統(tǒng)采用面向?qū)ο蟮姆治龇椒ㄟM(jìn)行分析,然后用面向?qū)ο蟮脑O(shè)計方法進(jìn)行設(shè)計,最后用面向?qū)ο笳Z言Java進(jìn)行實現(xiàn),后臺數(shù)據(jù)庫使用Oracle,連接方式為JDBC。Java中GUI程序設(shè)計是界面程序設(shè)計,用它設(shè)計出來的界面不但美觀,而且使用方便,使用者只需點幾次鼠標(biāo),就能根據(jù)提示進(jìn)行正確的操作,實現(xiàn)了KTV點歌和管理的便捷程度;由于Java代碼重用性非常好,且數(shù)據(jù)包十分強(qiáng)大

6、。只需簡單的調(diào)用即可實現(xiàn)想要的功能,大大提高了開發(fā)新產(chǎn)品的效率,利用大部分時間在系統(tǒng)的設(shè)計上而不是編碼實現(xiàn)的過程,因此可以實現(xiàn)降低代碼量的目的;Oracle數(shù)據(jù)庫以功能強(qiáng)大和簡單易用著稱,它從發(fā)布以來,正逐步成為數(shù)據(jù)庫的領(lǐng)導(dǎo)者,并且擁有廣泛的用戶?!癒TV點歌系統(tǒng)”是充分結(jié)合實際工作需求編制的應(yīng)用軟件。它具有功能強(qiáng),便于操作等特點。這套系統(tǒng)的應(yīng)用將減輕工作人員的工作強(qiáng)度,使顧客更為方便的在KTV包房自由的歌唱無外界打擾,并且節(jié)約了很大的成本而且非常方便。1.2.2開發(fā)環(huán)境及工具中央處理器:Intel Core i3;內(nèi)存:2GB;主頻:2.13GHz;開發(fā)平臺:Eclipse;數(shù)據(jù)庫:Orac

7、le 9i運行平臺:Windows 71.2.3關(guān)鍵技術(shù)本KTV點歌系統(tǒng)所使用的關(guān)鍵技術(shù)有:JDBC,Java GUI程序設(shè)計技術(shù)(MVC概念設(shè)計),數(shù)據(jù)庫增加、查找技術(shù),面向?qū)ο蟪绦蛟O(shè)計技術(shù)(類的繼承和派生技術(shù))。2總體設(shè)計2.1 系統(tǒng)基本功能描述2.1.1基本系統(tǒng)模型圖2-1KTV點歌系統(tǒng)基本系統(tǒng)模型通過圖2-1.,我們可以發(fā)現(xiàn)該系統(tǒng)的數(shù)據(jù)源是歌曲庫管理員和消費者;管理員處理的事務(wù)有添加歌手和添加歌曲;消費者處理的事物有選歌、演唱操作等;數(shù)據(jù)終點是消費者,消費者可以查看數(shù)據(jù)庫內(nèi)存放的歌曲信息,并進(jìn)行選擇、播放等操作。 2.1.2 KTV點歌系統(tǒng)數(shù)據(jù)流圖圖2-2 KTV點歌系統(tǒng)數(shù)據(jù)流圖2.1

8、.3 KTV點歌系統(tǒng)的系統(tǒng)層次結(jié)構(gòu)圖 圖2-3 KTV點歌系統(tǒng)層次結(jié)構(gòu)圖2.1.4 KTV點歌系統(tǒng)的用例圖 圖2-4 KTV點歌系統(tǒng)用例圖2.2數(shù)據(jù)庫設(shè)計說明書2.2.1概念結(jié)構(gòu)設(shè)計本系統(tǒng)連接使用的數(shù)據(jù)庫是Oracle9i,用的方式是JDBC,因此數(shù)據(jù)庫設(shè)計尤為重要;本系統(tǒng)E-R圖如下:圖2-5 歌手表和歌曲表的E-R圖圖2-6 管理員表的E-R圖2.2.2邏輯結(jié)構(gòu)設(shè)計根據(jù)上述E-R模型,我們可以得到該系統(tǒng)的數(shù)據(jù)庫應(yīng)該包括三個表,分別是:歌手信息表、歌曲信息表、管理員信息表;下面是這三個表的詳細(xì)屬性信息(下劃線的是該表的主鍵):歌手信息表:歌手編號、歌手姓名、歌手地區(qū)、歌手名縮寫、歌手圖片存放

9、路徑歌曲信息表:歌曲編號、歌曲名、演唱歌手、歌曲語言、歌曲名縮寫、歌曲風(fēng)格、歌曲存放路徑管理員表:賬戶名、密碼2.2.3 物理結(jié)構(gòu)設(shè)計一般數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計包括兩個方面:為關(guān)系模式選擇存取方法和設(shè)計關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)。本系統(tǒng)沒有建立任何索引。2.2.4其他數(shù)據(jù)庫對象設(shè)計本系統(tǒng)除使用了數(shù)據(jù)庫表外,還使用了序列。序列是數(shù)據(jù)庫對象之一,用來產(chǎn)生一系列的唯一整數(shù)。當(dāng)應(yīng)用向一個表插入一條新紀(jì)錄時,應(yīng)用只要簡單的使用序列的下一個可用值作為新行的主鍵即可。序列號可以用于生產(chǎn)唯一的主碼,本系統(tǒng)創(chuàng)建了兩個序列分別生成歌手編號和歌曲編號作為主鍵。2.3界面設(shè)計通過以上的分析,我將這個系統(tǒng)分為以

10、下10個模塊,它們分別是登錄模塊、歌曲庫管理模塊、主操作模塊、分類點歌模塊(拼音點歌模塊、歌手點歌模塊、語別點歌模塊)、已點歌曲模塊、歌曲排行模塊、酒水服務(wù)模塊。2.3.1 登錄模塊從需求規(guī)格說明書中,我們已經(jīng)知道本系統(tǒng)將使用者分為兩類:管理員和消費者。而且他們的權(quán)限和使用目的各不相同,故需要為他們設(shè)計各自的登錄界面。圖2-7為管理員登錄界面設(shè)計: 圖2-7 管理員登錄界面圖2-8為消費者登錄界面設(shè)計: 圖2-8為消費者登錄界面2.3.2 歌曲庫管理模塊管理員需輸入用戶名和密碼,才可登錄歌曲庫管理界面。登錄后可進(jìn)行【添加歌手】、【添加歌曲】的操作。圖2-9,2-10為歌曲庫管理界面設(shè)計: 圖2

11、-9 添加歌曲界面 圖2-10 添加歌手界面2.3.3 主操作模塊消費者登錄時,可查看【包廂資費】并根據(jù)需要選擇包廂類型,之后便可進(jìn)入主操作界面【開始唱歌】。圖2-11為主操作界面設(shè)計: 圖2-11 主操作界面2.3.4 分類點歌模塊主操作界面提供四項服務(wù):分類點歌、已點歌曲、歌曲排行、酒水服務(wù)。消費者可根據(jù)需要進(jìn)行選擇。圖2-12為分類點歌界面設(shè)計: 圖2-12 主操作界面2.3.5 拼音點歌模塊、歌手點歌模塊、語別點歌模塊【分類點歌】界面包含三種點歌方式:拼音點歌、歌手點歌、語別點歌。消費者可根據(jù)不同的點唱方式進(jìn)行歌曲選擇。【拼音點歌】:點擊字母按鈕,輸入想要演唱歌曲的拼音首字母,輸入過程

12、中系統(tǒng)連接數(shù)據(jù)庫進(jìn)行實時查找,即可列出所有符合要求的歌曲,雙擊歌曲名即可將該歌曲加入已點歌曲清單?!靖枋贮c歌】:點擊字母按鈕,輸入歌手名首字母,系統(tǒng)將列出所有符合要求的歌手名。單擊要選擇的歌手名可查看歌手圖片;雙擊歌手名將列出該歌手所有的演唱歌曲,雙擊歌曲名即可將該歌曲加入已點歌曲清單?!菊Z別點歌】:可通過選擇語言,系統(tǒng)將列出該語言的所有歌曲,消費者便可在其中進(jìn)行歌曲查找。雙擊歌曲名即可將該歌曲加入已點歌曲清單。圖2-13,2-14,2-15為拼音點歌、歌手點歌、語別點歌的界面設(shè)計 圖2-13 拼音點歌界面 圖2-14 歌手點歌界面 圖2-15 語別點歌界面2.3.6 已點歌曲模塊【已點歌曲】

13、中包含消費者所選擇的歌曲,可通過按鈕控制歌曲的開始、停止、播放、暫停、切歌、調(diào)整音量等操作,也可通過單擊右鍵進(jìn)行歌曲的優(yōu)先、刪除操作;該界面還包含已唱歌曲的清單,可選擇【已唱歌曲】標(biāo)簽查看所有演唱過的歌曲。圖2-16為已點歌曲界面設(shè)計:圖2-16 已點歌曲界面2.3.7 歌曲排行模塊【歌曲排行】模塊根據(jù)系統(tǒng)中每首歌曲的點唱次數(shù)進(jìn)行排行,消費者可查看熱門點唱歌曲并可選擇其中歌曲直接加入【已點歌曲】。圖2-17為歌曲排行界面設(shè)計:圖2-17 歌曲排行界面2.3.8 酒水服務(wù)模塊【酒水服務(wù)】模塊包含KTV提供的食品和酒水飲料,可選擇購買。且可通過【請求服務(wù)】呼叫服務(wù)員,【收費標(biāo)準(zhǔn)】查看包廂收費,【查

14、看消費時間】查看娛樂時間。圖2-18為酒水服務(wù)界面設(shè)計:圖2-18 酒水服務(wù)界面3 詳細(xì)設(shè)計與實現(xiàn)3.1 事件跟蹤圖 3.1.1管理員添加歌手、歌曲信息的事件跟蹤圖圖3-1 管理員添加歌手、歌曲信息的事件跟蹤圖3.1.2消費者點歌的事件跟蹤圖圖3-2消費者點歌的事件跟蹤圖3.2系統(tǒng)類圖圖3-3 KTV點歌系統(tǒng)類圖3.3輸入/輸出數(shù)據(jù)下面用IPO表分別寫出對上述模塊的功能要求進(jìn)行定性和定量的敘述:(輸入數(shù)據(jù)包括選擇的數(shù)據(jù))3.3.1 登錄模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)登錄模塊(管理員)管理員賬號,密碼調(diào)用數(shù)據(jù)庫數(shù)據(jù)進(jìn)行驗證無登錄模塊(消費者)選擇包廂類型系統(tǒng)接收信息并開始記錄消費時間無 表

15、3-1 登陸模塊IPO表3.3.2 歌曲庫管理模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)歌曲庫管理(添加歌手)歌手名、歌手地區(qū)、歌手名縮寫、圖片存放路徑輸入格式標(biāo)準(zhǔn)驗證,添加入數(shù)據(jù)庫添加成功或失敗提示歌曲庫管理(添加歌曲)歌曲名、演唱者、歌曲語種、歌曲風(fēng)格、歌曲名縮寫、存放路徑輸入格式標(biāo)準(zhǔn)驗證,添加入數(shù)據(jù)庫添加成功或失敗提示 表3-2 歌曲庫管理模塊IPO表3.3.3 主操作模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)選擇應(yīng)用選擇的應(yīng)用模塊系統(tǒng)響應(yīng)無 表3-3 主操作模塊IPO表3.3.4 分類點歌模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)拼音點歌模塊歌曲名拼音首字母進(jìn)入數(shù)據(jù)庫查找所有符合條件的歌曲符合輸入拼音的

16、所有歌曲歌手點歌模塊歌手名拼音首字母進(jìn)入數(shù)據(jù)庫查找所有符合條件的歌曲符合輸入拼音的所有歌手名語別點歌模塊歌曲語種進(jìn)入數(shù)據(jù)庫查找所有符合條件的歌曲符合該語種的所有歌曲 表3-4 分類點歌模塊IPO表3.3.5 已點歌曲模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)查看已點歌曲對已點歌曲的操作系統(tǒng)響應(yīng)無查看已唱歌曲無無無 表3-5 已點歌曲模塊IPO表3.3.6 歌曲排行模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)查看點唱歌曲排行無根據(jù)歌曲點唱次數(shù),排列熱門歌曲歌曲排行榜 表3-6 歌曲排行模塊IPO表3.3.8 酒水服務(wù)模塊模塊操作名稱輸入數(shù)據(jù)處理過程輸出數(shù)據(jù)查看食品列表無無所有食品名稱、價格查看酒水列表無無所有

17、酒水品名、價格查看消費時間無計算使用時間使用系統(tǒng)時間 表3-7 酒水服務(wù)模塊IPO表由于本系統(tǒng)為管理系統(tǒng),系統(tǒng)包含類較多,且方便用戶使用為系統(tǒng)設(shè)計重點,因此操作界面設(shè)計十分重要,3.4 代碼實現(xiàn)本系統(tǒng)編碼設(shè)計采用的是Java MVC 設(shè)計模式。MVC是一種流行的軟件設(shè)計模式,它把系統(tǒng)分為以下3個模塊:1、 Model(模型),可以分為業(yè)務(wù)模型和數(shù)據(jù)模型,它們代表應(yīng)用程序的業(yè)務(wù)邏輯和狀態(tài)2、 View(視圖),提供可交互的客戶界面,向客戶顯示模型數(shù)據(jù)3、 Controller(控制器),響應(yīng)客戶的請求,根據(jù)客戶的請求來操作模型,并把模型的響應(yīng)結(jié)果經(jīng)由視圖展現(xiàn)給客戶以下為KTV點歌系統(tǒng)的代碼實現(xiàn),

18、由于篇幅有限,只列出編碼大致框架。3.4.1訪問數(shù)據(jù)庫工具類 JDBCTool該系統(tǒng)訪問數(shù)據(jù)庫使用的方式是JDBC,為了方便使用,編寫一個類專門用于訪問Oracle數(shù)據(jù)庫,該類的代碼如下:public class JDBCTool staticString driverName = "oracle.jdbc.driver.OracleDriver"try Class.forName(driverName); catch (ClassNotFoundException e) e.printStackTrace();public static Connection getCon

19、nection() String jdbcString = "jdbc:oracle:thin:localhost:1521:ORACLE" String namesString = "scott" String passsString = "tiger" try return DriverManager.getConnection(jdbcString,namesString,passsString); catch (SQLException e) e.printStackTrace();return null; public st

20、atic void close(ResultSet resultSet,Statement statement,Connection connection)try resultSet.close();statement.close();connection.close(); catch (SQLException e) e.printStackTrace();3.4.2 Model(模型)包3.4.2.1 歌手類 Playerpublic class Player private String nameString; private String areasString; private St

21、ring addressString;public Player(String nameString, String areasString, String addressString) /構(gòu)造函數(shù) 初始化歌手對象/設(shè)置歌手名、歌手地區(qū)、存儲路徑public String getNameString() ./獲得歌手名、歌手地區(qū)、存儲路徑public void setNameString(String nameString) ./返回歌手信息public String toString() return nameString+" "+areasString;3.4.2.2

22、歌曲類 Songpublic class Songprivate String songNameString;private String playerNameString;private String languageString;private String styleString;private String addressString;public Song(String songNameString, String playerNameString, String languageString, String styleString, String addressString)/構(gòu)造

23、函數(shù) 初始化歌曲對象/獲得歌曲名、演唱者、歌曲語言、歌曲風(fēng)格、存儲路徑的方法public String getSongNameString()./設(shè)置歌曲名、演唱者、歌曲語言、歌曲風(fēng)格、存儲路徑的方法public void setSongNameString(String songNameString)./返回歌曲信息的方法public String toString() return songNameString+" "+playerNameString+" "+styleString+" "+languageString;3.4.

24、3 View(視圖)包3.4.3.1 登錄類 Playerimport tool.JDBCTool;public class Login extends JDialog implements ActionListenerprivate String strings3 = "用戶名"," 密碼 ","包廂選擇"private String strings2 = "登錄","開始唱歌","收費標(biāo)準(zhǔn)","退出"private String strings=&qu

25、ot;玲瓏包","小包","中包","大包","商務(wù)包","總統(tǒng)包"private String sqlString = "select adm_name,adm_password from ktv_adm"public Login()/登錄界面布局public static void main(String args) /主函數(shù) 創(chuàng)建登錄窗口對象login = new Login();/添加按鈕響應(yīng)事件public void actionPerformed(Act

26、ionEvent e) if (e.getSource() = jButtons0) /響應(yīng)管理員【登錄】按鈕/連接數(shù)據(jù)庫 驗證用戶名、密碼是否正確if (e.getSource() = jButtons1) /響應(yīng)消費者【開始唱歌】按鈕/進(jìn)入主操作界面if(e.getSource() = jButtons2) /響應(yīng)【包廂收費】按鈕 顯示收費信息JOptionPane.showMessageDialog(this, "玲瓏包:30/小時n 小包:50/小時n 中包:60/小時n 大包:70/小時n商務(wù)包:100/小時n總統(tǒng)包:150/小時");if(e.getSource

27、() = jButtons3) /響應(yīng)【取消】/關(guān)閉登錄窗口3.4.3.2 添加歌手、歌曲類 Addpackage view;public class Add extends JDialog implements ActionListener public Add() /初始化添加界面 界面布局/添加按鈕響應(yīng)事件public void actionPerformed(ActionEvent e) if (e.getSource() = jButtons0) /【添加歌手】 /判斷添加條件是否滿足JOptionPane.showMessageDialog(this, ""歌手

28、名"不能為空!");.if (條件滿足) /添加入歌曲庫.JOptionPane.showMessageDialog(this, "添加成功!已加入歌手庫");if (e.getSource() = jButtons1) /【添加歌曲】/判斷添加條件是否滿足.if (條件滿足) /添加入歌曲庫.JOptionPane.showMessageDialog(this, "添加成功!已加入歌曲庫");if (e.getSource() = jButtons2) /響應(yīng)添加歌手【瀏覽】 /獲得歌手圖片存放路徑if (e.getSource()

29、 = jButtons3) /響應(yīng)添加歌曲【瀏覽】/獲得歌曲存放路徑if (e.getSource() = jButtons4|e.getSource() = jButtons5) /【注銷】/隱藏添加窗口 調(diào)出登錄窗口 public void connJDBC(String sqlString) /傳入查詢語句,連接數(shù)據(jù)庫查詢 3.4.3.3 主操作界面類 Playpackage view;public class Play extends JFrame implements ActionListenerstatic Date date = new Date(); /開始計時static A

30、rrayList<Song> mainArrayList = new ArrayList<Song>();public Play()/初始化主操作界面,界面布局 /響應(yīng)按鈕點擊public void actionPerformed(ActionEvent e) Object eObject = e.getSource();if(eObject = jButtons0) /【分類點歌】/調(diào)出分類點歌子窗口 ;if (eObject = jButtons1) /【已點歌曲】 /調(diào)出已點歌曲子窗口if(eObject = jButtons2) /【歌曲排行】/調(diào)出歌曲排行窗口

31、if(eObject = jButtons3) /【酒水服務(wù)】/調(diào)出酒水服務(wù)子窗口3.4.3.4 分類點歌類 ClassifySearch package view;public class ClassifySearch extends JDialog implements ActionListenerpublic ClassifySearch()/初始化【分類點歌】子窗口;界面布局 /添加按鈕響應(yīng)事件public void actionPerformed(ActionEvent e)Object eObject = e.getSource();if(eObject = jButtons0)

32、/【拼音點歌】if (eObject = jButtons1) /【歌星點歌】if(eObject = jButtons2) /【語別點歌】3.4.3.5 拼音點歌類 SongSearch package view;import tool.JDBCTool;public class SongSearch extends JDialog implements ActionListenerprivate String sqlString = "select son_name,pla_name,son_lag,son_type ,son_adr from ktv_song where so

33、n_short like '"private String sizesql = "select count(*) sum from ktv_song where son_short like '"private ArrayList<Song> arrayList;public SongSearch() jList.addMouseListener(new MouseAdapter()/添加鼠標(biāo)響應(yīng)事件 雙擊添加歌曲進(jìn)【已選歌曲】);/初始化拼音點歌界面,界面布局 . /添加按鈕響應(yīng)事件public void actionPerforme

34、d(ActionEvent e)Object eObject = e.getSource();if (eObject = backjButton) /【退格】,回退一格if (eObject = cleanjButton) /【清除】,清除輸入框所有內(nèi)容if (eObject = okjButton) /【返回】,返回主操作界面else /響應(yīng)26個字母,點擊一次,入庫查找一次,且顯示在輸入框public void ConnJDBCSong(String string,String string2) throws SQLException/傳入sql語句,入庫查找3.4.3.6 歌星點歌類 P

35、layerSearch 、語別點歌類 LanguageSearch 由于歌星點歌和語別點歌的代碼與拼音點歌大致相同,這里就不再贅述。詳情請參照拼音點歌。3.4.3.7 歌曲排行類 Sort package view;public class Sort extends JDialog implements ActionListener/界面布局,初始化foodJList.addMouseListener(new MouseAdapter() /響應(yīng)鼠標(biāo)單擊 彈出菜單 添加歌曲入已選歌曲);/添加按鈕響應(yīng)事件public void actionPerformed(ActionEvent e) if

36、 (e.getSource() = jButtons0&&foodJList.getSelectedIndex() != -1) /判斷是否選中歌曲,然后加入已點歌曲清單if (e.getSource() = jButtons1) /【返回】if (e.getSource() = jMenuItem&&foodJList.getSelectedIndex() != -1) /【添加】3.4.3.8 酒水服務(wù)類 Serve package view;public class Serve extends JDialog implements ActionListen

37、erpublic Serve()/初始化界面,界面布局foodJList.addMouseListener(new MouseAdapter() /響應(yīng)鼠標(biāo)單擊 彈出菜單 添加進(jìn)入購物清單 /添加按鈕響應(yīng)事件public void actionPerformed(ActionEvent e) if (e.getSource() = jButtons0) /【請求服務(wù)】if (e.getSource() = jButtons1) /【返回】if (e.getSource() = jButtons2) /【查看消費時間】 .JOptionPane.showMessageDialog(this, &

38、quot;開始時間:"+s1+"n"+"當(dāng)前時間:"+s2+"n"+"消費時間:"+s3);if (e.getSource() = jButtons3) /【查看包廂資費】if (e.getSource() = jMenuItem) / 添加入購買清單3.4.4 Controller(控制器)包 已點歌曲類 PlayMusicpublic class PlayMusic extends JDialog implements ActionListener,ControllerListenerpublic P

39、layMusic(ArrayList<Song> arrayList ) /界面布局 初始化已點歌曲界面selectJList.addMouseListener(new MouseAdapter() /響應(yīng)鼠標(biāo)單擊 彈出菜單 進(jìn)行歌曲【優(yōu)先】【刪除】);/實現(xiàn)按鈕監(jiān)聽事件public void actionPerformed(ActionEvent e) Song song = new Song();if (e.getSource() = jMenuItems0) /【優(yōu)先】if (e.getSource() = jMenuItems1) /【刪除】if(e.getSource()

40、 = jButtons0) /【開始唱歌】if (myArrayList.size() = 0) /播放列表空,不能播放if (player != null) /正在播放中,不能響應(yīng)else /取第一首歌播放/加入已播歌曲中/從列表中移除播放歌曲/實現(xiàn)播放選中歌曲 if (e.getSource() = jButtons1) /【停止】if (e.getSource() = jButtons2) /【播放】if (e.getSource() = jButtons3) /【暫停】if (e.getSource() = jButtons4) /【切歌】if (列表不為空) /播放列表中下首歌if

41、(e.getSource() = jButtons5) /【返回】public void controllerUpdate(ControllerEvent arg0) /調(diào)用使用播放控制條public void play(Song song)/實現(xiàn)播放的具體功能4 系統(tǒng)測試本系統(tǒng)將用戶分成管理員和消費者,由于兩類用戶的使用目的不同,系統(tǒng)測試分別對兩類用戶進(jìn)行測試,基本功能各測試一次,最后再進(jìn)行容錯性測試。4.1管理員測試用例1:登錄模塊測試測試數(shù)據(jù):用戶名:maneger;用戶密碼:1;測試結(jié)果如下: 圖4-1登錄測試結(jié)果1 圖4-2登錄測試結(jié)果2測試用例2:添加歌手模塊測試測試數(shù)據(jù):歌手名:

42、justin bieber 歌手地區(qū):英國 歌手名縮寫:JB 路徑:F:java測試songjustin bieber.jpg測試結(jié)果: 圖4-3 添加歌手測試結(jié)果1 圖4-4 添加歌手測試結(jié)果2 圖4-5 添加歌手測試結(jié)果3 圖4-6 查看添加歌手測試結(jié)果測試用例3:添加歌曲模塊測試測試數(shù)據(jù):歌曲名:baby 演唱者:justin bieber 歌曲語種:英語 歌曲風(fēng)格:R&B 歌曲名縮寫:B 路徑:F:java測試songbaby - justin bieber.mp3測試結(jié)果: 圖4-7 添加歌曲模塊測試結(jié)果1 圖4-8 添加歌曲模塊測試結(jié)果2 圖4-9 查看添加歌曲測試結(jié)果4.2 消費者測試用例1:消費者包廂選擇測試結(jié)果: 圖

溫馨提示

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

最新文檔

評論

0/150

提交評論