畢業(yè)設(shè)計(jì)--點(diǎn)歌管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩44頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p>  題目: 小型點(diǎn)歌管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  院 (系): 計(jì)算機(jī)科學(xué)與工程學(xué)院_</p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  班 級(jí): </p><p>  學(xué)

2、 生: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p><b>  2013年 6月</b></p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p>  1.畢

3、業(yè)設(shè)計(jì)(論文)題目: 點(diǎn)歌管理系統(tǒng) </p><p>  2.題目背景和意義:隨著人民生活水平的提高,娛樂業(yè)在服務(wù)行業(yè)中占有越來(lái)越重要的地位,能夠在娛樂行業(yè)激勵(lì)的競(jìng)爭(zhēng)中脫穎而出,獨(dú)樹一幟已成為每位娛樂經(jīng)營(yíng)者所追求的目標(biāo)。其中去KTV唱歌是深受廣大消費(fèi)者喜愛的娛樂活動(dòng)。</p><p>  該系統(tǒng)能方便顧客進(jìn)行

4、選歌。給顧客提供舒適的環(huán)境。吸引顧客來(lái)消費(fèi),提高營(yíng)業(yè)而流量。另一方面能幫助系統(tǒng)管理者管理歌曲,提高歌曲點(diǎn)唱的效率。</p><p>  3.設(shè)計(jì)(論文)的主要內(nèi)容(理工科含技術(shù)指標(biāo)): 本系統(tǒng)前端開發(fā)工具采用目前較流行的VisualC++ 6.0,后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)SOL server 2005,該系統(tǒng)的運(yùn)行平臺(tái)是Windows。 本系統(tǒng)總體分為選歌功能,播放操作,管理功能三個(gè)部分。選歌功能實(shí)現(xiàn)多種方式的點(diǎn)歌;播放

5、操作主要實(shí)現(xiàn)對(duì)當(dāng)前播放歌曲的音量,播放模式;管理功能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作.</p><p>  4.設(shè)計(jì)的基本要求及進(jìn)度安排(含起始時(shí)間、設(shè)計(jì)地點(diǎn)):本次課題從2011年2月20日開始,在校內(nèi)完成,具體的進(jìn)度安排如下: </p><p>  第1~3周:查閱書籍資料,學(xué)習(xí)相關(guān)軟件,準(zhǔn)備開題報(bào)告。 <

6、/p><p>  第4周: 分析設(shè)計(jì)任務(wù),設(shè)計(jì)總體方案。 </p><p>  第5~12周: 模塊設(shè)計(jì)、完成3000個(gè)單詞以上的相關(guān)外文資料翻譯;中期總結(jié)。 </p><p>  第13~15周: 模塊設(shè)計(jì)、系統(tǒng)調(diào)試。 </p&g

7、t;<p>  第16~17周: 系統(tǒng)測(cè)試、撰寫畢業(yè)論文。 </p><p>  第18周: 對(duì)論文排版和打印,制光盤;論文答辯。 </p><p>  5.畢業(yè)設(shè)計(jì)(論文)的工作量要求</p><p>  ① 實(shí)驗(yàn)(時(shí)數(shù))*或?qū)嵙?xí)(天數(shù)): 上

8、機(jī)300學(xué)時(shí) </p><p>  ② 圖紙(幅面和張數(shù))*: </p><p> ?、?其他要求:

9、 </p><p>  指導(dǎo)教師簽名: 2012年 12月07日</p><p>  學(xué)生簽名: 年 月 日</p><p>  系(教研室)主任審批: 年 月 日</p><p>  說(shuō)明:1

10、本表一式二份,一份由學(xué)生裝訂入附件冊(cè),一份教師自留。</p><p>  2 帶*項(xiàng)可根據(jù)學(xué)科特點(diǎn)選填。</p><p><b>  摘 要</b></p><p>  隨著人們生活質(zhì)量的提高,對(duì)精神生活的追求日益迫切,各種娛樂活動(dòng)應(yīng)運(yùn)而生酒吧、KTV等娛樂業(yè)在服務(wù)行業(yè)中占有越來(lái)越重要的地位,點(diǎn)歌系統(tǒng)是為KTV場(chǎng)所開發(fā)的視頻歌曲點(diǎn)唱軟件。該系

11、統(tǒng)能方便顧客進(jìn)行點(diǎn)歌,給顧客提供舒適的環(huán)境,吸引顧客來(lái)消費(fèi),提高營(yíng)業(yè)額流量。另一方面能幫助系統(tǒng)管理員管理歌曲,提高KTV點(diǎn)唱的效率。</p><p>  本系統(tǒng)是模擬KTV開發(fā)一個(gè)點(diǎn)歌管理系統(tǒng),前端開發(fā)工具采用VisualC++ 6.0,后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)SOL server 2005。 本系統(tǒng)總體分為選歌功能,播放操作,管理功能三個(gè)部分。選歌功能實(shí)現(xiàn)多種方式的點(diǎn)歌;播放操作主要實(shí)現(xiàn)對(duì)當(dāng)前播放歌曲的音量,播放模式;管

12、理功能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作. </p><p><b>  關(guān)鍵詞:</b></p><p><b>  Abstract</b></p><p>  As people life quality improvement and pursuing for the life of the mind is imperative,

13、 all kinds of entertainment arises at the historic moment. Bars, KTV etc recreation in service industry plays a more and more important position, increasingly by put on the agenda. However, we have to our new generation

14、entertainment "dawdler" human-based demand also restrictive, for entertainment for the operator, and can meet the demand of the consumers in the fierce competition, unique and also streamline p</p><p

15、>  This system is simulated KTV develop a song management system. Design guiding ideology is everything for users consider, interface should beautiful and easy, simple operation, and as far as possible as a use of man

16、agement system should have good fault-tolerance in error is, can timely warning, so that users to rectify. In view of this system entertaining, but it needs to be good song interface. These functions of the module is sys

17、tem of main problems to solve. Through the original requirement an</p><p>  Keywords: The KTV sing song system ,video songs point correction ,improvement </p><p><b>  第一章 緒論</b></

18、p><p><b>  1.1 課題背景</b></p><p>  隨著人們生活水平的提高,人們的業(yè)余生活也發(fā)生了巨大的變化,去KTV唱歌便成了很多人在工作之余的娛樂休閑方式。而傳統(tǒng)歌廳中的設(shè)施在逐漸地老化,由于LD機(jī)器的停產(chǎn)和LD片源全部依賴于進(jìn)口,成本較高,造出用戶經(jīng)濟(jì)上的負(fù)擔(dān)過(guò)重,而且老歌特別多,新歌很少,點(diǎn)歌方式也很原始,速度很慢,而且經(jīng)常出現(xiàn)搶歌現(xiàn)象,這樣就給

19、人們的休閑情緒蒙上了一層陰影。隨著科學(xué)的發(fā)展和信息時(shí)代的到來(lái),利用高新技術(shù)來(lái)實(shí)現(xiàn)點(diǎn)歌系統(tǒng)娛樂城設(shè)備的革命性建設(shè)是完全可能的,而且可以滿足消費(fèi)者的多種需求。本文將使用VC++制作一個(gè)KTV點(diǎn)播系統(tǒng)以實(shí)現(xiàn)人們對(duì)于點(diǎn)歌系統(tǒng)的需求。</p><p><b>  1.2課題研究現(xiàn)狀</b></p><p>  點(diǎn)歌系統(tǒng)從很早以前就開始進(jìn)行研發(fā)與應(yīng)用,經(jīng)過(guò)多年的經(jīng)驗(yàn)摸索,不斷地完

20、善改進(jìn)和升級(jí),使得它更安全、更穩(wěn)定、更完善。無(wú)論夜總會(huì)型,還是量販?zhǔn)叫偷腒TV都可以使用,該系統(tǒng)加上優(yōu)質(zhì)的歌庫(kù),并與點(diǎn)歌輔助工具和外圍歌廳設(shè)備一起使用時(shí),可稱之為一套功能強(qiáng)大、可靠性高、實(shí)用性好、畫優(yōu)音美的點(diǎn)歌系統(tǒng),絕對(duì)領(lǐng)導(dǎo)著KTV點(diǎn)歌設(shè)備的新潮流。 全套系統(tǒng)是架構(gòu)在計(jì)算機(jī)網(wǎng)絡(luò)上的,由電腦來(lái)管理,極大地提高了經(jīng)營(yíng)效率。該系統(tǒng)從歌曲錄制編輯、歌曲庫(kù)的生成、點(diǎn)歌軟件的功能、界面的多樣性和美觀性、客人的使用人性化、前后臺(tái)管理的多樣性和方便性、

21、與各種外圍點(diǎn)歌設(shè)備的結(jié)合、有各類歌曲的提供等方面,形成了完整的解決方案,是一套集成的全面先進(jìn)的系統(tǒng)。</p><p>  第二章 系統(tǒng)開發(fā)環(huán)境及相關(guān)技術(shù)</p><p><b>  2.1系統(tǒng)開發(fā)環(huán)境</b></p><p>  本系統(tǒng)主要應(yīng)用了ADO數(shù)據(jù)庫(kù)連接,ADO對(duì)象操作數(shù)據(jù)庫(kù)的技術(shù),開發(fā)此點(diǎn)歌管系統(tǒng) 所需用到的軟件環(huán)境如下:</p

22、><p>  1.操作系統(tǒng):Windows XP</p><p>  2..數(shù)據(jù)庫(kù):SQL Server 2005。SQL Server 2005不僅為不同規(guī)模的企業(yè)提供快速構(gòu)建各類商業(yè)只能解決方案,還具有較好系統(tǒng)的集成性及對(duì)日常任務(wù)的自動(dòng)化管理能力。鑒于以上優(yōu)點(diǎn),選擇SQL Server 2005作為數(shù)據(jù)庫(kù)管理系統(tǒng)。</p><p>  3.編譯工具:Visual C

23、++6.0編譯速度快,程序調(diào)試方便。它引入MFC類和一些實(shí)用開發(fā)工具,降低了編碼的復(fù)雜性,便于快速開發(fā)出點(diǎn)歌管理系統(tǒng)。</p><p>  2.1 ADO技術(shù)簡(jiǎn)介</p><p>  ADO(active data object,活動(dòng)數(shù)據(jù)對(duì)象)實(shí)際上是一種基于COM(組件對(duì)象模型)的自動(dòng)化接口技術(shù),并以O(shè)LE DB(對(duì)象連接和鑲?cè)氲臄?shù)據(jù)庫(kù))為基礎(chǔ),經(jīng)過(guò)OLE DB精心包裝后的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)

24、,利用它可以快速的創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序。ADO提供了一組非常簡(jiǎn)單,將一般通用的數(shù)據(jù)訪問(wèn)細(xì)節(jié)進(jìn)行封裝的對(duì)象。由于ODBC數(shù)據(jù)源也提供了一般的OLE DB Privider,所以ADO不僅可以應(yīng)用自身的OLE DB Privider,而且還可以應(yīng)用所有的ODBC驅(qū)動(dòng)程序。</p><p>  2.1.1用ADO訪問(wèn)數(shù)據(jù)元的特點(diǎn)</p><p>  1.易于使用,可以說(shuō)這是ADO最重要的特點(diǎn)之一。

25、 2.ADO 是高層數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),相對(duì)與ODBC來(lái)說(shuō),具有面性對(duì)象的特點(diǎn)。同時(shí),在 ADO 對(duì)象結(jié)構(gòu)中,對(duì)象與對(duì)象之間的層次結(jié)構(gòu)不適非常明顯,比如,在應(yīng)用程序中如果要使用記錄集對(duì)象,不一定要先建立連接、會(huì)話對(duì)象,如果需要就可以直接構(gòu)造記錄集對(duì)象。總是,已經(jīng)沒有必要去關(guān)心對(duì)象的構(gòu)造層次和構(gòu)造順序了。 3.可以訪問(wèn)多種數(shù)據(jù)源。和 OLE DB 一樣,使應(yīng)用程序具有很好的通用性和靈活性。 4.訪問(wèn)數(shù)據(jù)源效率高。 5.

26、方便的Web應(yīng)用。ADO 可以以 ActiveX 控件的形式出現(xiàn),這就大大方便了Web應(yīng)用程序的編制。 6.技術(shù)編程接口豐富。 ADO 支持 Visual C++、Visual Basic、VBS、JS等。</p><p>  2.1.2 ADO 的對(duì)象● Connection 用于表示和數(shù)據(jù)源的連接,以及處理一些命令和事務(wù)?!?Command 用于執(zhí)行某些命令來(lái)進(jìn)行諸如查詢、修改數(shù)據(jù)庫(kù)結(jié)構(gòu)

27、的操作。● Recordset 用于處理數(shù)據(jù)源的表格集,它是在表中修改、檢索數(shù)據(jù)的最主 要的方法。● Field 描述數(shù)據(jù)集中的列信息。● Parameter 用于對(duì)傳遞給數(shù)據(jù)源的命令賦參數(shù)值。● Error 用于承載所產(chǎn)生所無(wú)的詳細(xì)信息?!?Property 通過(guò)屬性,每個(gè)ADO對(duì)象借此來(lái)讓用戶描述和控制自身的行為?!?Set 集合是一種

28、可以方便的包含其他特殊類型對(duì)象的對(duì)象類型。 ADO 提供4種類型的集合:● Connection 對(duì)象具有Error集合。● Command 對(duì)象具有Parameter集合?!?Recordset 對(duì)象具有Fields集合?!?Connection、 Command、Recordset、Field 對(duì)象都具有Pro</p><p>  2.1.3在V

29、isual C++中使用 ADO</p><p><b>  基本流程</b></p><p>  (1)初始化COM庫(kù),引入ADO庫(kù)定義文件 (2)用Connection對(duì)象連接數(shù)據(jù)庫(kù) (3)利用建立好的連接,通過(guò)Connection、Command對(duì)象執(zhí)行SQL命令,或利用Recordset對(duì)象取得結(jié)果記錄集進(jìn)行查詢、處理。 (4)使用完畢

30、后關(guān)閉連接釋放對(duì)象。 </p><p>  2.1.4 ADO常用的數(shù)據(jù)庫(kù)連接方法:</p><p>  (1)通過(guò)JET數(shù)據(jù)庫(kù)引擎對(duì)ACCESS2000數(shù)據(jù)庫(kù)的連接m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\test.mdb","",&qu

31、ot;",adModeUnknown);(2)通過(guò)DSN數(shù)據(jù)源對(duì)任何支持ODBC的數(shù)據(jù)庫(kù)進(jìn)行連接:m_pConnection->Open("Data Source=adotest;UID=sa;PWD=;","","",adModeUnknown);//m_pConnection->Open("DSN=test;","

32、;","",0); //連接叫作test的ODBC數(shù)據(jù)源(3)不通過(guò)DSN對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行連接:m_pConnection->Open("driver={SQL Server};Server=127.0.0.1;DATABASE=vckbase;UID=sa;PWD=139","","",adModeUn

33、known);其中Server是SQL服務(wù)器的名稱,DATABASE是庫(kù)的名稱</p><p>  2.1.5 ADO接口簡(jiǎn)介 ADO庫(kù)包含三個(gè)基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。</p><p>  _ConnectionPtr接口返回一個(gè)記錄集或一個(gè)空指針。通常使用它來(lái)創(chuàng)建一個(gè)數(shù)據(jù)連接或執(zhí)行一條不返回任

34、何結(jié)果的SQL語(yǔ)句,如一個(gè)存儲(chǔ)過(guò)程。使用_ConnectionPtr接口返回一個(gè)記錄集不是一個(gè)好的使用方法。對(duì)于要返回記錄的操作通常用_RecordserPtr來(lái)實(shí)現(xiàn)。用_ConnectionPtr操作時(shí)要想得到記錄條數(shù)得遍歷所有記錄,而用_RecordserPtr時(shí)不需要。_CommandPtr接口返回一個(gè)記錄集。它提供了一種簡(jiǎn)單的方法來(lái)執(zhí)行返回記錄集的存儲(chǔ)過(guò)程和SQL語(yǔ)句。在使用_CommandPtr接口時(shí),你可以利用全

35、局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串。如果你只執(zhí)行一次或幾次數(shù)據(jù)訪問(wèn)操作,后者是比較好的選擇。但如果你要頻繁訪問(wèn)數(shù)據(jù)庫(kù),并要返回很多記錄集,那么,你應(yīng)該使用全局_ConnectionPtr接口創(chuàng)建一個(gè)數(shù)據(jù)連接,然后使用_CommandPtr接口執(zhí)行存儲(chǔ)過(guò)程和SQL語(yǔ)句。_RecordsetPtr是一個(gè)記錄集對(duì)象。與以上兩種對(duì)象相比,它對(duì)記錄集提供了更多的控制功能,如記錄鎖定,游

36、標(biāo)控制等。</p><p>  2.2 SQL Server 2005簡(jiǎn)介</p><p>  SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。  SQL Server

37、2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解決方案,幫助您的團(tuán)隊(duì)通過(guò)記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個(gè)領(lǐng)域?! ∨c Microsoft Visual Studio、Microsoft Office System 以及新的開發(fā)工具包(包括 Business In

38、telligence Development Studio)的緊密集成使 SQL Server 2005 與眾不同。無(wú)論您是開發(fā)人員、數(shù)據(jù)庫(kù)管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。  M</p><p>  2.3 C/S模式結(jié)構(gòu)簡(jiǎn)介</p><p>  C/S 結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件

39、系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用

40、系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。</p><p>  C/S 結(jié)構(gòu)的基本原則是將計(jì)算機(jī)應(yīng)用任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成DBMS的核心功能。這種客戶請(qǐng)求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計(jì)算機(jī)應(yīng)用模式。</p><p>  2.4 Visual C++6.0\MFC簡(jiǎn)介</p

41、><p>  vc++是Windows平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺(tái)的特性并且還要掌握MFC、ATL、COM等的知識(shí),難度比較大。Windows下編程需要了解Windows的消息機(jī)制以及回調(diào)(callback)函數(shù)的原理;MFC是Win32API的包裝類,需要理解文檔視圖類的結(jié)構(gòu),窗口類的結(jié)構(gòu),消息流向等等;COM是代碼共享的二進(jìn)制標(biāo)準(zhǔn),需要掌握其基本原理等等。</p>&

42、lt;p>  VC作為一個(gè)主流的開發(fā)平臺(tái)一直深受編程愛好者的喜愛,但是很多人卻對(duì)它的入門感到難于上青天,究其原因主要是大家對(duì)他錯(cuò)誤的認(rèn)識(shí)造成的,嚴(yán)格的來(lái)說(shuō) VC++不是門語(yǔ)言,雖然它和C++之間有密切的關(guān)系,如果形象點(diǎn)比喻的話,可以C++看作為一種”工業(yè)標(biāo)準(zhǔn)”,而VC++則是某種操作系統(tǒng)平臺(tái)下的”廠商標(biāo)準(zhǔn)”,而”廠商標(biāo)準(zhǔn)”是在遵循”工業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來(lái)的。</p><p>  VC++應(yīng)用程序的開發(fā)主

43、要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開發(fā)方式比較繁瑣,而MFC則是對(duì)WIN API再次封裝,所以MFC相對(duì)于WIN API開發(fā)更具備效率優(yōu)勢(shì)。</p><p>  MFC借助C++的優(yōu)勢(shì)為Windows開發(fā)開辟了一片新天地,同時(shí)也借助ApplicationWizzard使開發(fā)者擺脫離了那些每次都必寫基本代碼,借助ClassWizard和消息映射使開發(fā)者擺脫了定義消息處

44、理時(shí)那種混亂和冗長(zhǎng)的代碼段。更令人興奮的是利用C++的封裝功能使開發(fā)者擺脫Windows中各種句柄的困擾,只需要面對(duì)C++中的對(duì)象,這樣一來(lái)使開發(fā)更接近開發(fā)語(yǔ)言而遠(yuǎn)離系統(tǒng)。(但我個(gè)人認(rèn)為了解系統(tǒng)原理對(duì)開發(fā)很有幫助) </p><p>  正因?yàn)镸FC是建立在C++的基礎(chǔ)上,所以我強(qiáng)調(diào)C/C++語(yǔ)言基礎(chǔ)對(duì)開發(fā)的重要性。利用C++的封裝性開發(fā)者可以更容易理解和操作各種窗口對(duì)象;利用C++的派生性開發(fā)者可以減少開發(fā)自定

45、義窗口的時(shí)間和創(chuàng)造出可重用的代碼;利用虛擬性可以在必要時(shí)更好的控制窗口的活動(dòng)。而且C++本身所具備的超越C語(yǔ)言的特性都可以使開發(fā)者編寫出更易用,更靈活的代碼。 </p><p>  在MFC中對(duì)消息的處理利用了消息映射的方法,該方法的基礎(chǔ)是宏定義實(shí)現(xiàn),通過(guò)宏定義將消息分派到不同的成員函數(shù)進(jìn)行處理。</p><p><b>  系統(tǒng)分析</b></p>&

46、lt;p><b>  3.1可行性分析</b></p><p>  可行性分析是對(duì)項(xiàng)目的可行程度進(jìn)行分析,以便管理層對(duì)技術(shù)及資金的投入進(jìn)行決策。其主要包括技術(shù)可行性,經(jīng)濟(jì)可行性,操作可行性,營(yíng)運(yùn)可行性等。通過(guò)對(duì)需求分析的研究,對(duì)本項(xiàng)目做如下的可行性分析。 </p><p>  3.1.1技術(shù)可行性</p><p>  技術(shù)方面的可行性就是

47、根據(jù)現(xiàn)有的技術(shù)條件,能否實(shí)現(xiàn)系統(tǒng)的各項(xiàng)要求。設(shè)備上,該系統(tǒng)對(duì)所需的硬件設(shè)備,如服務(wù)器、PC機(jī)等的性能要求一般,現(xiàn)有設(shè)備的性能完全能夠滿足系統(tǒng)功能的要求;軟件上,本系統(tǒng)屬于數(shù)據(jù)庫(kù)應(yīng)用程序,本系統(tǒng)需要一個(gè)數(shù)據(jù)庫(kù)服務(wù)器及其運(yùn)行的操作系統(tǒng)平臺(tái),根據(jù)客戶的數(shù)據(jù)量并不是十分巨大,選擇SQL Server 2005作為數(shù)據(jù)庫(kù)可以滿足系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的要求,安全性好,效率高。這些軟件在中小型MIS開發(fā)中已被大量應(yīng)用,技術(shù)上都比較成熟,因此技術(shù)上是可行的。&

48、lt;/p><p>  3.1.2經(jīng)濟(jì)可行性</p><p>  從項(xiàng)目提出者的發(fā)面來(lái)說(shuō),根據(jù)實(shí)際的需求,開發(fā)本系統(tǒng),不但可以提高公司的管理水平,也可以提高消費(fèi)者的點(diǎn)歌效率,為消費(fèi)者提供便利,舒適的環(huán)境,增加顧客的流量,給公司帶來(lái)潛在的利潤(rùn),所以從經(jīng)濟(jì)上來(lái)說(shuō)是完全可行的。另一方面,對(duì)該系統(tǒng)的開發(fā)既能增加項(xiàng)目開發(fā)公司的技術(shù)儲(chǔ)備,又能提高對(duì)同類項(xiàng)目開發(fā)的熟練程度。</p><p

49、>  3.1.3操作可行性</p><p>  本系統(tǒng)采用Windows圖形界面,是大家的熟悉的操作系統(tǒng),對(duì)于用戶,只需要具有一般計(jì)算機(jī)知識(shí)的人員都可以輕松上手。而且整個(gè)系統(tǒng)采用最友好的交互界面,簡(jiǎn)潔明了,不需要對(duì)數(shù)據(jù)庫(kù)非常了解也可以熟練操作。再有就是操作上以后可以加載到觸屏的終端上,這樣就更可以使得操作更加的友好。</p><p><b>  3.2需求分析</b&

50、gt;</p><p><b>  3.2.1 </b></p><p>  小型點(diǎn)歌管理系統(tǒng)就是針對(duì)點(diǎn)歌用戶開發(fā)而成,本系統(tǒng)的宗旨是使KTV的歌曲管理工作更加科學(xué)、合理的規(guī)劃,系統(tǒng)、高效的實(shí)施。在用戶操作部分能實(shí)現(xiàn)根據(jù)歌手的地區(qū),性別,歌手的拼音,歌曲的名字?jǐn)?shù),歌曲類別查詢;可以查看或者編輯播放列表,也可以刪除單首歌曲;還可以根據(jù)自己的喜好選擇播放模式。管理員也可以

51、對(duì)歌庫(kù)進(jìn)行管理操作,并且實(shí)現(xiàn)用戶的結(jié)賬付費(fèi)功能。此系統(tǒng)可以方便快捷的管理這些瑣碎的數(shù)據(jù)和瑣碎的事務(wù),使點(diǎn)歌質(zhì)量得到有效的保障。</p><p>  點(diǎn)歌系統(tǒng)的用戶主要分為:消費(fèi)者.管理員以及系統(tǒng)維護(hù)人員。各用戶具體操作時(shí)實(shí)現(xiàn)的功能如下表所示:</p><p>  表 1-1 用戶一覽表</p><p>  3.2.2系統(tǒng)功能需求</p><p&g

52、t;  系統(tǒng)主要分為服務(wù)器端和客戶端。通過(guò)管理人員對(duì)服務(wù)器端的控制,管理點(diǎn)歌系統(tǒng)歌曲數(shù)據(jù)庫(kù)并且同時(shí)實(shí)現(xiàn)給用戶開包廂,查看包廂使用時(shí)間等功能;啟動(dòng)服務(wù)器端程序后,客戶端可進(jìn)行即點(diǎn)即播(即零等待)的點(diǎn)歌操作,并且多個(gè)客戶端可同時(shí)點(diǎn)播同一首歌曲。</p><p>  1.系統(tǒng)客戶端的主要功能</p><p>  系統(tǒng)客戶端的主要功能是:用戶可以根據(jù)個(gè)人愛好通過(guò)包房電腦及該軟件查詢(包括歌星查詢、

53、拼音查詢、字母查詢、組合查詢等查詢方式)所需要的歌曲,了解歌星的簡(jiǎn)介、播放歌曲、控制歌曲、等,同時(shí),系統(tǒng)的功能區(qū)與顯示信息區(qū)分開,使用戶在使用上更簡(jiǎn)便,系統(tǒng)功能上更強(qiáng)大。點(diǎn)歌系統(tǒng)對(duì)于客戶端的主要需求功能有播放,暫停,點(diǎn)歌,控制音量等,各部分的功能描述如下圖所示:</p><p>  2-1 客戶端需求規(guī)定</p><p>  2.服務(wù)器端的主要功能</p><p>

54、;  通過(guò)管理員進(jìn)行系統(tǒng)歌庫(kù)中的歌曲管理,如添加、編輯、刪除等。并且根據(jù)系統(tǒng)所能提供的服務(wù)內(nèi)容供消費(fèi)者使用。當(dāng)該請(qǐng)求有效時(shí)需要中央服務(wù)器系統(tǒng)進(jìn)行響應(yīng),其服務(wù)內(nèi)容可根據(jù)消費(fèi)者的需求進(jìn)行設(shè)定。</p><p>  系統(tǒng)服務(wù)器端的主要需求功能是歌曲的添加和刪除等。各部分功能的具體描述如下圖所示:</p><p>  表2-2 服務(wù)器功端需求規(guī)定</p><p>  3.3

55、 系統(tǒng)業(yè)務(wù)流程</p><p>  本套KTV點(diǎn)歌系統(tǒng)軟件的編寫,是為了設(shè)計(jì)出一套C/S模式的KTV場(chǎng)所需求的應(yīng)用和管理軟件。軟件分為三大部分,點(diǎn)歌部分,數(shù)據(jù)管理部分和服務(wù)器處理部分。</p><p>  點(diǎn)歌部分(客戶端)是以桌面軟件的形式實(shí)現(xiàn),用戶通過(guò)與軟件的交互,對(duì)數(shù)據(jù)庫(kù)中的音樂進(jìn)行查詢,并對(duì)自己喜歡的歌曲進(jìn)行點(diǎn)播。消費(fèi)者實(shí)現(xiàn)的點(diǎn)歌功能基本包括歌曲的增加,刪除以及查找等功能。其基本的

56、用例圖如下圖所示:</p><p>  在管理部分中,管理員可以對(duì)數(shù)據(jù)庫(kù)中的音樂數(shù)據(jù)進(jìn)行增加、修改、刪除和查詢等操作,從而對(duì)數(shù)據(jù)庫(kù)中的音樂數(shù)據(jù)進(jìn)行管理。服務(wù)器處理部分(服務(wù)器端)則是可視化的操作處理軟件,對(duì)點(diǎn)歌客戶端和管理客戶端的請(qǐng)求進(jìn)行響應(yīng),執(zhí)行相應(yīng)的查詢數(shù)據(jù)庫(kù)操作,并向客戶端返回所需的數(shù)據(jù)。管理員的具體的用例圖如下圖所示:</p><p><b>  系統(tǒng)的總體設(shè)計(jì)</

57、b></p><p>  4.1系統(tǒng)基本模塊設(shè)計(jì)</p><p>  本系統(tǒng)總體分為選歌功能,播放操作,管理功能3個(gè)部分。選歌功能實(shí)現(xiàn)多種方式點(diǎn)歌;播放操作主要實(shí)現(xiàn)對(duì)當(dāng)前播放歌曲的音量,播放模式,快進(jìn),快退等操作;而管理功能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作和收費(fèi)操作等,系統(tǒng)整體模塊結(jié)構(gòu)圖如下:</p><p>  各模塊的具體功能如下:</p><p&g

58、t;<b>  播放操作</b></p><p>  1.上\下一首歌:下移或者上移改變當(dāng)前歌曲。</p><p>  2.增\減音量:實(shí)現(xiàn)對(duì)播放音量的控制。</p><p>  3.快\慢進(jìn):實(shí)現(xiàn)改變播放速度</p><p>  4.暫停,停止:實(shí)現(xiàn)對(duì)播放的控制</p><p>  5.播放模式

59、:有單曲循環(huán),單曲播放,順序播放,列表循環(huán)4種播放模式供選擇</p><p><b>  選歌功能</b></p><p>  1.播放點(diǎn)歌列表:將已點(diǎn)播的的歌曲顯示在主界面上</p><p>  2.刪除歌曲列表:可以刪除已點(diǎn)歌曲,分單手刪除和全部刪除</p><p>  3.按歌手點(diǎn)歌:根據(jù)歌手來(lái)自的地區(qū)查看,分為港

60、臺(tái)歌手,大陸歌手,外國(guó)歌手</p><p>  4.按拼音查詢:根據(jù)用戶輸入的拼音,對(duì)歌手姓名進(jìn)行模糊查詢,顯示匹配的歌手</p><p>  5.按性別查詢:根據(jù)歌手的性別查詢,分為男歌手,女歌手,組合</p><p>  6.按歌曲類別查詢:根據(jù)歌曲類別查詢,分為流行歌曲,通俗歌曲,外國(guó)歌曲,世界名曲</p><p>  7.按歌曲名字?jǐn)?shù)

61、查詢:根據(jù)用戶輸入的數(shù)字,對(duì)歌曲名字?jǐn)?shù)查詢,顯示匹配的歌曲</p><p><b>  管理功能</b></p><p>  1.管理員登陸:先登錄后進(jìn)行管理員操作,給消費(fèi)者點(diǎn)歌</p><p>  2.開戶點(diǎn)歌:有管理員登陸后,設(shè)置房間類型和會(huì)員卡類型交預(yù)付金等</p><p>  3.添加歌曲:輸入歌曲信息,把歌曲文

62、件放入相應(yīng)路徑。</p><p>  4.刪除歌曲:根據(jù)各區(qū)分為按歌手名拼音刪除和按歌曲名字?jǐn)?shù)刪除</p><p>  5.消費(fèi)金額:根據(jù)歌唱時(shí)間,包廂類型和用戶身份情況計(jì)算消費(fèi)金額</p><p>  4.2系統(tǒng)功能模塊流程圖</p><p>  點(diǎn)歌管理系統(tǒng)主要由選歌模塊,管理模塊以及播放操作。選歌模塊和管理模塊主要實(shí)現(xiàn)的是對(duì)歌曲的查詢功

63、能,播放模塊主要是對(duì)歌曲信息的調(diào)取以及歌曲的播放功能。</p><p>  4.2.1主界面流程圖 </p><p>  當(dāng)用戶進(jìn)入主界面后將面對(duì)對(duì)歌曲的查詢與管理操作,具體內(nèi)容如下圖所示:</p><p>  當(dāng)管理員進(jìn)入系統(tǒng)后主要是實(shí)現(xiàn)歌曲數(shù)據(jù)的修改查詢等功能。具體職能如下圖所示</p><p>  4.2.2播放控制模塊</p&g

64、t;<p>  播放模塊主要是用戶通過(guò)控制界面實(shí)現(xiàn)所點(diǎn)歌曲的播放,其中用戶與控制界面的交互圖如下:</p><p>  4.2.3點(diǎn)歌管理模塊</p><p>  點(diǎn)歌系統(tǒng)對(duì)于歌曲的管理主要包括歌曲的刪除以及上移下移操作。用戶與客戶端的交互圖如下圖所示:</p><p>  4.2.4服務(wù)器處理模塊</p><p>  服務(wù)器系

65、統(tǒng)包括管理歌曲庫(kù),相應(yīng)的點(diǎn)歌系統(tǒng)模塊。分別負(fù)責(zé)數(shù)據(jù)庫(kù)的更新,與客戶端數(shù)據(jù)進(jìn)行交互。相應(yīng)的圖如下: </p><p>  4.2.5 各模塊之間的交互圖</p><p>  點(diǎn)歌管理系統(tǒng)的各模塊之間的交互圖如下圖所示:</p><p>  第五章:數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p>  進(jìn)行管理系統(tǒng)的設(shè)計(jì)首先要考慮好如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)的設(shè)計(jì)。數(shù)據(jù)庫(kù)作為整

66、個(gè)系統(tǒng)的基礎(chǔ),要保證其設(shè)計(jì)的合理性,其中數(shù)據(jù)表要滿足規(guī)范化要求。在使用應(yīng)用系統(tǒng)時(shí),擁有合理的數(shù)據(jù)庫(kù)往往起到事半功倍的效果。</p><p><b>  5.1數(shù)據(jù)庫(kù)分析</b></p><p>  點(diǎn)歌管理系統(tǒng)架構(gòu)采用C\S模式來(lái)實(shí)現(xiàn),在某一時(shí)刻可能有多個(gè)查詢操作進(jìn)行。而且操作比較頻繁。因此對(duì)數(shù)據(jù)庫(kù)的并發(fā)性,安全性,共享性等性能要求較高,故采用SQL SERVER 2

67、005作為系統(tǒng)開發(fā)的數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)處理的的主要對(duì)象=是歌曲,而歌曲的類型,歌曲的歌手,歌手的性別等這些屬性也是需要考慮的操作對(duì)象。對(duì)歌曲的播放操作也要能滿足普通的消費(fèi)者的需求。</p><p>  5.2數(shù)據(jù)庫(kù)管理系統(tǒng)E-R圖</p><p>  根據(jù)分析設(shè)計(jì)的結(jié)果,該系統(tǒng)包含的實(shí)體有:管理員,用戶,歌曲,歌手等。下面將分別介紹各實(shí)體及實(shí)體間的E-R圖。</p>&l

68、t;p> ?。?)管理員實(shí)體可以實(shí)現(xiàn)歌曲的管理功能,如:刪除歌舞,增加歌曲等。管理員實(shí)體E-R圖</p><p>  通過(guò)歌曲實(shí)體可以獲取歌曲的基本信息,如:歌曲的歌手名,歌名以及歌曲類型等。歌曲實(shí)體E-R圖</p><p>  歌手實(shí)體能夠提供歌手的基本信息,如:歌手的姓名,歌手的地區(qū)等等。歌手-實(shí)體E-R圖</p><p> ?。?)用戶實(shí)體可以提供用戶當(dāng)

69、前的消費(fèi)狀況以及他們所處的房間類型和剩余金額等。用戶實(shí)體E-R圖</p><p>  (5)各實(shí)體之間緊密相連,例如:消費(fèi)者與管理員的聯(lián)系,消費(fèi)者與歌曲的聯(lián)系,管理員與歌曲的聯(lián)系。具體相關(guān)的E-R圖如下圖所示</p><p>  5.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</p><p>  根據(jù)以上的數(shù)據(jù)庫(kù)分析,本系統(tǒng)數(shù)據(jù)庫(kù)命名為MUSIC,數(shù)據(jù)庫(kù)中包含5個(gè)表:admin表,singe

70、r表,musiclist表,abate表,room表。</p><p>  admin表:用于保存管理員信息。它的主鍵是管理員名稱.</p><p>  (2)singer表:用于保存歌手信息,主鍵是歌手編號(hào)。</p><p>  (3)musiclist表:用于歌曲信息的存儲(chǔ),主鍵是歌曲編號(hào),外鍵是歌手編號(hào)</p><p>  (4)use

71、rtemp表:用于保存用戶點(diǎn)歌歌曲信息,設(shè)置歌曲編號(hào)為主鍵,歌手編號(hào)為外鍵,對(duì)歌曲存儲(chǔ)途徑進(jìn)行唯一性約束。</p><p>  (5)playlist表:用來(lái)記錄當(dāng)前播放列表信息,設(shè)置歌曲編號(hào)為主鍵,歌曲編號(hào)為外鍵,對(duì)歌曲存儲(chǔ)途徑進(jìn)行唯一性約束。</p><p>  (6)abate表:用來(lái)記錄會(huì)員的等級(jí)以及相應(yīng)的會(huì)員折扣,主鍵是會(huì)員編號(hào),</p><p>  ro

72、om表:用來(lái)記錄房間類型以及對(duì)應(yīng)價(jià)格,主鍵是包間類型,外鍵是會(huì)員編號(hào)。</p><p>  5.4數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)</p><p>  點(diǎn)歌管理系統(tǒng)需要實(shí)現(xiàn)與服務(wù)器端的連接從而獲取并修改服務(wù)器端的信息,主要實(shí)現(xiàn)該功能的代碼如下:</p><p>  ConnectionPtr m_pConnection;</p><p><b> 

73、 try</b></p><p><b>  {</b></p><p>  HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");</p><p>  //創(chuàng)建Connection對(duì)象</p><p>  if(SUC

74、CEEDED(hr))</p><p><b>  { </b></p><p>  hr = m_pConnection->Open("driver={SQLServer};</p><p>  Server=YSS-59EA0D478A8;DATABASE=master;","","

75、",adModeUnknown);//2005及以上版本</p><p>  //hr = pConnection->Open("driver={SQL Server};Server=HC\\MSSQL2008;DATABASE=master; UID=sa; PWD=", "","",adModeUnknown);</p>

76、<p><b>  }</b></p><p><b>  }</b></p><p>  catch (_com_error e) //COM錯(cuò)誤取得,當(dāng)執(zhí)行COM功能的時(shí)候,如果出錯(cuò),可以捕捉到_com_error的異常</p><p><b>  { </b></p>

77、<p>  CString strComError;</p><p>  strComError.Format("錯(cuò)誤編號(hào): %08lx\n錯(cuò)誤信息: %s\n錯(cuò)誤源: %s\n錯(cuò)誤描述: %s",</p><p>  e.Error(), // 錯(cuò)誤編號(hào)</p><p>  e.ErrorMessage

78、(), // 錯(cuò)誤信息</p><p>  (LPCSTR) e.Source(), // 錯(cuò)誤源</p><p>  (LPCSTR) e.Description()); // 錯(cuò)誤描述 ::MessageBox(NULL,strComError,"錯(cuò)誤",MB_ICONEXCLAMATION);</p><p&

79、gt;<b>  }</b></p><p>  第六章 系統(tǒng)詳細(xì)設(shè)計(jì)</p><p>  根據(jù)系統(tǒng)的需求和功能能分析,本系統(tǒng)采用界面較為實(shí)用的基于對(duì)話框風(fēng)格模式布局。前端開發(fā)采用Visual C++ 6.0,后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)采用大型數(shù)據(jù)庫(kù)系統(tǒng)SQL sever,系統(tǒng)的運(yùn)行平臺(tái)為Windows。</p><p>  6.1系統(tǒng)主界面的實(shí)現(xiàn)<

80、/p><p>  系統(tǒng)框架采用基于對(duì)話框風(fēng)格,可在該界面上實(shí)現(xiàn)所有操作功能。本系統(tǒng)操作對(duì)象主要是歌曲,所有需要插入的視頻或者音頻播放控件,通過(guò)各種點(diǎn)歌方式,最終的操作結(jié)果將采用列表控件顯示播放列表。這種顯示方式對(duì)進(jìn)一步實(shí)現(xiàn)對(duì)歌曲的播放控制有利。播放控制不僅包括常見的快進(jìn),快退,前一首,后一首,還包括單曲循環(huán),單曲播放,循環(huán)播放等播放模式的切換。另外管理員對(duì)數(shù)據(jù)庫(kù)和系統(tǒng)的管理功能也通過(guò)主界面來(lái)實(shí)現(xiàn)。</p>

81、<p>  系統(tǒng)主界面分成4個(gè)區(qū)域:左上區(qū)是播放窗口區(qū)域,可以實(shí)現(xiàn)對(duì)視頻、音頻文件的播放;右邊是選歌和系統(tǒng)管理功能模塊操作區(qū),可以通過(guò)各種方式選歌,可以對(duì)系統(tǒng)進(jìn)行設(shè)置;右下區(qū)是播放控制區(qū)域,實(shí)現(xiàn)對(duì)播放音量、播放速度、播放模式等的控制,初始界面效果如圖所示:</p><p>  圖6.1初始界面效果圖</p><p>  初始界面上許多初始按鈕都不能使用。通過(guò)管理員幫助消費(fèi)者完

82、成開戶點(diǎn)歌設(shè)置,如圖:</p><p>  圖6.2 用戶點(diǎn)歌對(duì)話框</p><p>  設(shè)置成功后的點(diǎn)歌界面,各功能按鈕都可以使用了,界面效果如圖所示:</p><p>  圖6.3 消費(fèi)者點(diǎn)歌對(duì)話框</p><p>  6.2 歌曲選擇模塊設(shè)計(jì)</p><p>  歌曲選擇模塊是本系統(tǒng)最重要的功能模塊。該模塊設(shè)計(jì)

83、的完善與否對(duì)整個(gè)系統(tǒng)起著至關(guān)重要的作用。本系統(tǒng)中主要精力都放在結(jié)合實(shí)際使用情況來(lái)逐步完善該模塊的功能。用戶通過(guò)管理員幫助開戶進(jìn)入點(diǎn)歌模式。結(jié)合需求,歌曲選擇模塊應(yīng)實(shí)現(xiàn)功能為:按歌手地區(qū)、按拼音查詢、按歌手性別查詢、按歌曲名字?jǐn)?shù)查詢等方式點(diǎn)歌。</p><p>  開發(fā)該模塊具體功能前,首先要完成其界面的設(shè)計(jì)。本模塊歌曲選擇方式較多,故設(shè)計(jì)界面也較多,除了設(shè)計(jì)管理員開戶界面外,其他各點(diǎn)歌界面布局基本相同。按照顯示效

84、果開發(fā)好界面。這些界面設(shè)計(jì)方法基本類似,都是采用兩個(gè)列表自動(dòng)關(guān)聯(lián)實(shí)現(xiàn)歌曲的選取。歌曲的查找通過(guò)組合框中不同的條件來(lái)構(gòu)造對(duì)應(yīng)的SQL語(yǔ)句,然后執(zhí)行查找并在列表框中顯示,最終再通過(guò)獲取主窗口指針動(dòng)態(tài)更新播放列表,完成點(diǎn)歌過(guò)程。點(diǎn)歌前需要管理員用戶登錄后,通過(guò)開戶模塊設(shè)置好點(diǎn)歌房間以方便結(jié)賬計(jì)費(fèi)的實(shí)現(xiàn)。</p><p>  (1)按歌手查詢的實(shí)現(xiàn)</p><p>  在點(diǎn)歌模式界面上單擊【按歌手

85、查詢】按鈕,顯示按歌手查詢界面。該界面初始顯示所有的大陸男歌手,通過(guò)切換歌手類型,在列表控件動(dòng)態(tài)顯示相關(guān)歌手。選中一個(gè)歌手雙擊后,會(huì)在原列表框中顯示該歌手的所有歌曲。雙擊任一歌曲,會(huì)把該歌曲添加到主界面播放列表中。用戶可以通過(guò)【返回上一級(jí)菜單】按鈕切換到歌手界面繼續(xù)選歌。</p><p>  該界面的初始化部分主要實(shí)現(xiàn)組合框的數(shù)據(jù)添加并設(shè)置初始值,而且在列表中要顯示歌手類別組合框中默認(rèn)類別的所有歌手的信息。如圖:

86、</p><p>  圖6.4 根據(jù)歌手查詢對(duì)話框</p><p>  圖6.5 選擇歌曲到播放列表</p><p>  (2)按拼音查詢的實(shí)現(xiàn)</p><p>  在點(diǎn)歌模式界面上單擊【按拼音查詢】按鈕,顯示該查詢界面,界面初始顯示所有的歌手,通過(guò)在編輯框中輸入歌手姓名拼音,列表控件中動(dòng)態(tài)顯示相關(guān)歌手。雙擊任一歌曲,會(huì)把該歌曲添加到主界面

87、播放列表中。用戶可以通過(guò)【返回上一級(jí)菜單】按鈕切換到歌手界面繼續(xù)選歌。</p><p>  該界面的初始化部分主要實(shí)現(xiàn)組合框的數(shù)據(jù)添加并設(shè)置初始值,而且在列表中要顯示所有歌手的信息。</p><p>  該模塊也分為歌曲添加、顯示歌手、顯示歌曲三個(gè)子模塊,且功能與按歌手查詢類似。如圖6.6:</p><p>  圖6.6根據(jù)拼音查詢對(duì)話框</p>&l

88、t;p>  (3)按字?jǐn)?shù)查詢的實(shí)現(xiàn):</p><p>  在點(diǎn)歌模式界面上單擊【按歌曲名字?jǐn)?shù)查詢】按鈕,顯示對(duì)應(yīng)查詢界面。該界面初始顯示歌曲名字?jǐn)?shù)為1的歌曲信息,通過(guò)切換歌曲名字?jǐn)?shù)組合框,列表控件中動(dòng)態(tài)顯示對(duì)應(yīng)字?jǐn)?shù)的歌曲。雙擊任一歌曲,會(huì)把該歌曲添加到主界面播放列表中[22]。</p><p>  該界面的初始化部分主要實(shí)現(xiàn)組合框的數(shù)據(jù)添加并設(shè)置初始值,而且在列表控件中要顯示歌曲字?jǐn)?shù)

89、為1的所有歌曲信息。</p><p>  圖6.8 根據(jù)字?jǐn)?shù)查詢對(duì)話框</p><p>  以上各種查詢服務(wù)是很重要的,因?yàn)榭蛻羲麄儾樵兊姆绞绞遣灰粯拥?,所以我們都要設(shè)計(jì)很多查詢模式,讓客戶更好的選擇,讓他們更好的享受服務(wù),享受服務(wù)。實(shí)現(xiàn)本模塊功能的主要代碼如下:</p><p>  void CHCOKDlg::OnSinfind() </p>&l

90、t;p><b>  {</b></p><p>  //如果指針為NULL,則說(shuō)明窗體還沒創(chuàng)建,那么動(dòng)態(tài)創(chuàng)建</p><p>  if(bysingerdlg == NULL)</p><p>  { // 動(dòng)態(tài)創(chuàng)建對(duì)話框?qū)ο?lt;/p><p>  bysingerdlg = new BYSGRDLG;</

91、p><p>  bysingerdlg->Create(IDD_BYSINGER,NULL);</p><p><b>  }</b></p><p>  bysingerdlg->ShowWindow(SW_SHOW);</p><p><b>  }</b></p><

92、;p>  //********************按歌手拼音查詢****************************************//</p><p>  void CHCOKDlg::OnPyfind() </p><p><b>  {</b></p><p>  //如果指針為NULL,則說(shuō)明窗體還沒創(chuàng)建,那么動(dòng)態(tài)

93、創(chuàng)建</p><p>  if(bypinyindlg == NULL)</p><p>  { // 動(dòng)態(tài)創(chuàng)建對(duì)話框?qū)ο?lt;/p><p>  bypinyindlg = new BYPINYINDLG;</p><p>  bypinyindlg->Create(IDD_BYPINYIN,NULL);</p><

94、;p><b>  }</b></p><p>  bypinyindlg->ShowWindow(SW_SHOW);</p><p><b>  }</b></p><p>  //********************按歌曲名字?jǐn)?shù)查詢*************************************

95、***//</p><p>  void CHCOKDlg::OnNufind() </p><p><b>  {</b></p><p>  //如果指針為NULL,則說(shuō)明窗體還沒創(chuàng)建,那么動(dòng)態(tài)創(chuàng)建</p><p>  if(bynumdlg == NULL)</p><p>  { //

96、動(dòng)態(tài)創(chuàng)建對(duì)話框?qū)ο?lt;/p><p>  bynumdlg = new BYZISHUDLG;</p><p>  bynumdlg->Create(IDD_BYZISHU,NULL);</p><p><b>  }</b></p><p>  bynumdlg->ShowWindow(SW_SHOW);&

97、lt;/p><p><b>  }</b></p><p>  //********************按歌曲類別查詢****************************************//</p><p>  void CHCOKDlg::OnTfind() </p><p><b>  {<

98、;/b></p><p>  //BYSONGTYPDLG bysongtypedlg;</p><p>  //bysongtypedlg.DoModal ();</p><p>  //如果指針為NULL,則說(shuō)明窗體還沒創(chuàng)建,那么動(dòng)態(tài)創(chuàng)建</p><p>  if(bysongtypedlg == NULL)</p>

99、<p>  { // 動(dòng)態(tài)創(chuàng)建對(duì)話框?qū)ο?lt;/p><p>  bysongtypedlg = new BYSONGTYPDLG;</p><p>  bysongtypedlg->Create(IDD_BYSONGTYP,NULL);</p><p><b>  }</b></p><p>  by

100、songtypedlg->ShowWindow(SW_SHOW);</p><p><b>  }</b></p><p>  void CHCOKDlg::ShowListDate() /////////////////////////在在播放列表里顯示歌曲</p><p><b>  {</b></p>

101、;<p>  CString songid, songname, singername, songtype, filename,fileformat;</p><p>  m_list.DeleteAllItems();//刪除所有</p><p>  ADOConn m_AdoConn; //定義數(shù)據(jù)庫(kù)操作對(duì)象</p><p>  m

102、_AdoConn.OnInitADOConn(); //鏈接數(shù)據(jù)庫(kù)</p><p>  _bstr_t sql;</p><p>  _RecordsetPtr m_pRecordset;</p><p>  sql = "select*from playlist "; //查詢 playlist表</p><p&g

103、t;  m_pRecordset=m_AdoConn.GetRecordSet(sql); //得到記錄集</p><p>  if(m_pRecordset->adoEOF) //如果沒有歌曲則退出</p><p><b>  {</b></p><p>  m_AdoConn.ExitConnect();</p>

104、<p><b>  return;</b></p><p><b>  } </b></p><p>  if(!m_pRecordset->adoEOF)</p><p><b>  { </b></p><p><b>  int t=

105、0;</b></p><p>  m_list.DeleteAllItems();</p><p>  while(!m_pRecordset->adoEOF)//遍歷記錄集</p><p>  {int b=t+1;</p><p>  songid.Format("%d",b);</p>

106、<p>  songname =m_pRecordset->GetFields()->GetItem("tmuname")->Value.bstrVal;/////////////////取歌名</p><p>  singername =m_pRecordset->GetFields()->GetItem("tsingername"

107、;)->Value.bstrVal;/////////////////取歌手名</p><p>  songtype =m_pRecordset->GetFields()->GetItem("tsongtype")->Value.bstrVal;/////////////////取歌的類型</p><p>  filename =m_pRecor

108、dset->GetFields()->GetItem("tfilename")->Value.bstrVal;/////////////////取歌的文件名</p><p>  fileformat =m_pRecordset->GetFields()->GetItem("tformate")->Value.bstrVal;///////

109、//////////取歌的格式</p><p>  6.3 播放控制模塊設(shè)計(jì)</p><p>  歌曲播放控制模塊主要實(shí)現(xiàn)對(duì)歌曲播放過(guò)程中的各種操作管理。結(jié)合功能分析可知,此模塊應(yīng)實(shí)現(xiàn)以下幾個(gè)功能:播放上一曲、下一曲、增加音量、減少音量、快進(jìn)、快退、暫停、停止及播放模式等功能模塊[27]。單獨(dú)設(shè)計(jì)函數(shù)實(shí)現(xiàn)播放控制模塊的上述功能是比較繁瑣的,但是由于使用了Windows Media Pla

110、yer控制進(jìn)行歌曲播放,使得該模塊實(shí)現(xiàn)起來(lái)比較非常容易,主要是通過(guò)CMediaPlayer2類的方法來(lái)實(shí)現(xiàn)的。在播放列表控件上添加鼠標(biāo)右鍵菜單(右鍵菜單消息NM_RCLICK)控制播放模式和編輯播放列表,在播放界面上添加按鈕和一組單選按鈕來(lái)實(shí)現(xiàn)播放控制和播放模式的切換。播放模塊涉及到人機(jī)交互的設(shè)計(jì),人機(jī)交互很好重要,要給人們很多的好的體驗(yàn),我們采用簡(jiǎn)介的設(shè)計(jì)風(fēng)格,人們的體驗(yàn)這種設(shè)計(jì)。讓人們更好的體驗(yàn),讓人們更好的享受點(diǎn)播服務(wù)。</

111、p><p>  歌曲選擇模塊中用戶通過(guò)主界面實(shí)現(xiàn)歌曲選擇功能,例如:歌曲的播放,上下一首歌,增減音量,快進(jìn)退等。這些功能的主要實(shí)現(xiàn)代碼如下:</p><p><b>  (1)播放:</b></p><p>  獲取路徑后,m_mediaplayer.Open(songpath);</p><p><b>  (

112、2)上一首:</b></p><p>  列表控件行標(biāo)向上走一個(gè),獲取歌名進(jìn)行播放;</p><p>  row=row-1; //行標(biāo) - 1 </p><p>  playsongname=m_list.GetItemText(row,0); //得到歌名</p><p>  songpath=m_list.Ge

113、tItemText(row,5); //歌曲格式</p><p><b> ?。?)下一首:</b></p><p>  列表控件行標(biāo)向下走一個(gè),獲取歌名進(jìn)行播放;</p><p>  row=row+1; //行標(biāo)+1</p><p>  playsongname=m_list.GetItemText(row,1)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論