vb課程設(shè)計(jì)-全自動(dòng)音樂(lè)打鈴軟件的設(shè)計(jì)_第1頁(yè)
vb課程設(shè)計(jì)-全自動(dòng)音樂(lè)打鈴軟件的設(shè)計(jì)_第2頁(yè)
vb課程設(shè)計(jì)-全自動(dòng)音樂(lè)打鈴軟件的設(shè)計(jì)_第3頁(yè)
vb課程設(shè)計(jì)-全自動(dòng)音樂(lè)打鈴軟件的設(shè)計(jì)_第4頁(yè)
vb課程設(shè)計(jì)-全自動(dòng)音樂(lè)打鈴軟件的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、目錄1 選題背景21.1 背景21.2 設(shè)計(jì)要求21.3 指導(dǎo)思想22 方案論證23 程序設(shè)計(jì)論述2 3.1 程序工作23.2 控件屬性說(shuō)明43.3 程序代碼(附帶解釋說(shuō)明)44 結(jié)果分析114.1 運(yùn)行結(jié)果11 4.2 結(jié)果分析155 總結(jié)15設(shè)計(jì)體會(huì)及今后的改進(jìn)意見(jiàn)16參考文獻(xiàn)資料171 選題背景1.1 背景如今,許多學(xué)校、工礦等單位都安裝音樂(lè)打鈴器,音樂(lè)打鈴已成為一種時(shí)尚的打鈴方式,它改進(jìn)了傳統(tǒng)單調(diào)的打鈴方式,讓打鈴方式變得豐富多彩。因此,我選擇了全自動(dòng)打鈴軟件作為我的課程設(shè)計(jì)課題。1.2 設(shè)計(jì)要求設(shè)計(jì)基本要求為定時(shí)播出,以周為單位,可以在任意天任意時(shí)間設(shè)定播放音樂(lè)鈴聲。可以任意控制播放

2、時(shí)間的長(zhǎng)短,在設(shè)定的時(shí)間內(nèi)會(huì)連續(xù)播放,結(jié)束時(shí)間一到即會(huì)停止??稍O(shè)置多套播放計(jì)劃,根據(jù)需要隨時(shí)啟用。內(nèi)置十首鈴聲,支持自定義鈴聲名稱及音樂(lè)。設(shè)置計(jì)劃時(shí)也可指定磁盤上的文件,支持WAV、MID、MP3等音樂(lè)文件格式。 軟件界面簡(jiǎn)潔實(shí)用,可以隨時(shí)手動(dòng)播放需要的鈴聲,或者暫時(shí)屏蔽某個(gè)不需要的鈴聲。1.3 指導(dǎo)思想本程序設(shè)計(jì)主要是用到windows media player播放器控件、定時(shí)器、對(duì)話框、列表框、文件列表框和組合框的使用方法。選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的設(shè)計(jì)使用。2 方案論證最初的設(shè)計(jì)方案只用列表框加載音樂(lè),用MMControl播放控件進(jìn)行播放,但是添加音樂(lè)后,音樂(lè)不播放,加之對(duì)此播放控件不太熟悉,

3、編程較慢,且出現(xiàn)錯(cuò)誤較多就放棄了此計(jì)劃。 后來(lái)的改進(jìn)的計(jì)劃是加載windows media player控件,設(shè)計(jì)兩個(gè)命令按鈕“默認(rèn)列表”、“自定義列表”分別用來(lái)切換默認(rèn)列表與自定義列表兩個(gè)播放列表,其中默認(rèn)列表對(duì)應(yīng)firelist1,內(nèi)置十首默認(rèn)鈴聲;自定義列表對(duì)應(yīng)list1,可以通過(guò)單擊“添加文件”按鈕添加自己要選的指定格式的音樂(lè)。當(dāng)在任意一個(gè)text1文本框中輸入上課或下課時(shí)間后(考慮到學(xué)校上下課的時(shí)間基本精確到分鐘,所以程序設(shè)計(jì)是按此設(shè)計(jì)的,輸入時(shí)間時(shí),就精確到分鐘即可),當(dāng)?shù)竭_(dá)此時(shí)間后,按照所選計(jì)劃進(jìn)行播放,當(dāng)播放進(jìn)度與設(shè)置的播放時(shí)長(zhǎng)相等時(shí),結(jié)束播放。同時(shí),用戶雙擊列表中的音樂(lè)后,也

4、可以使其播放。并且可以通過(guò)“刪除”按鈕刪除自定義列表中不想要的鈴聲,也可以按“清空”按鈕清空自定義列表。在周末的時(shí)候,設(shè)計(jì)為不打鈴,以周開(kāi)始循環(huán)打鈴。綜上,通過(guò)改變?cè)O(shè)計(jì)思路,自動(dòng)打鈴最后實(shí)現(xiàn)。3 程序設(shè)計(jì)論述3.1 設(shè)計(jì)工作簡(jiǎn)述該課程設(shè)計(jì)歷時(shí)5天完成:第一天:進(jìn)行總體的設(shè)計(jì),確定設(shè)計(jì)思路,即具體編程設(shè)計(jì)步驟。第二天:進(jìn)行初步編程。進(jìn)行界面設(shè)計(jì),編輯添加音樂(lè)到播放列表以及雙進(jìn)行播放的程序。第三天:完成剩余程序設(shè)計(jì),主要是控制定時(shí)打鈴的程序。并驗(yàn)證正確性。第四天:上級(jí)驗(yàn)證程序正確性,并進(jìn)行改進(jìn)。第五天:編寫(xiě)課程設(shè)計(jì)報(bào)告,并打印成稿。3.2 控件屬性說(shuō)明表3-2 控件屬性表控件名稱重要屬性值說(shuō)明Wi

5、ndowsmediaplayer1播放鈴聲Command1Caption-添加文件在列表框添加音樂(lè)Command2Caption-刪除刪除自定義列表所選音樂(lè)Command3Caption-清空清空列表Command4Caption-退出退出程序Command5Caption-默認(rèn)列表單擊后只顯現(xiàn)filelist1,用來(lái)切換列表Command6Caption-自定義列表單擊后只顯現(xiàn)list1,用來(lái)切換列表Command7Caption-默認(rèn)時(shí)間Command8Caption-清空時(shí)間Text1數(shù)組用來(lái)輸入時(shí)間Text2設(shè)定播放時(shí)長(zhǎng)Text3播放音樂(lè)時(shí),顯示進(jìn)度Text4顯示正在播放的曲目Text

6、5當(dāng)選擇“用戶選擇鈴聲”計(jì)劃時(shí),顯示所選鈴聲Label1顯示現(xiàn)在的日期、時(shí)間Label2Caption-北京時(shí)間:Label3Caption-第一節(jié)Label4Caption-第二節(jié)Label5Caption-第三節(jié)Label6Caption-第四節(jié)Label7Caption-第五節(jié)Label8Caption-第六節(jié)Label9Caption-第七節(jié)Label10Caption-第八節(jié)Label11Caption-上課時(shí)間Label12Caption-下課時(shí)間Label13Caption-正在播放Label14Caption-播放時(shí)長(zhǎng)(秒)Label15Caption-播放計(jì)劃Label16C

7、aption-播放進(jìn)度(秒)Label17Caption-所選歌曲Filelist1加載默認(rèn)列表的歌曲曲目List1加載自定義列表的歌曲曲目Combo1List(0)=”用戶選擇鈴聲”List(1)=”隨機(jī)隨機(jī)播放指定列表鈴聲”播放計(jì)劃Image1加載陜西科技大學(xué)圖標(biāo)Commondialog1Timer1Interval=1000控制自動(dòng)播放Timer2Interval=1000在label1顯示現(xiàn)在時(shí)間Timer3Interval=1000后變?yōu)?0000到達(dá)時(shí)間,根據(jù)所選播放計(jì)劃,調(diào)用Timer2Timer4Interval=1000顯示播放進(jìn)度,并控制播放時(shí)長(zhǎng)3.3 程序代碼(附帶解釋說(shuō)

8、明)Option ExplicitDim a(), b() 聲明數(shù)組a(),b(),其分別用來(lái)保存自定義列表中各項(xiàng)的路徑和文件名Dim x As String 保存將時(shí)間轉(zhuǎn)為字符串的變量Dim n As Integer 表示text1數(shù)組的下標(biāo)當(dāng)點(diǎn)擊組合框中的第一項(xiàng)是,選擇鈴聲(請(qǐng)事先選好鈴聲)Private Sub Combo1_Click()1If Combo1.ListIndex = 0 Then 當(dāng)?shù)谝豁?xiàng)被選中時(shí),彈出對(duì)話框 MsgBox 請(qǐng)選擇鈴聲 如果在默認(rèn)列表或自定義列表內(nèi)選擇鈴聲,將其賦給text5 If File1.Visible = True Then Text5.Text

9、 = File1.List(File1.ListIndex) Else Text5.Text = List1.List(List1.ListIndex) End IfEnd IfEnd Sub強(qiáng)行結(jié)束程序Private Sub Command4_Click()EndEnd Sub點(diǎn)擊command5即默認(rèn)列表按鈕時(shí),文件列表框顯示,列表框不顯示Private Sub Command5_Click()List1.Visible = FalseFile1.Visible = TrueEnd Sub點(diǎn)擊command6即自定義列表按鈕時(shí),文件列表框顯示,列表框不顯示Private Sub Comma

10、nd6_Click()List1.Visible = TrueFile1.Visible = FalseEnd Sub點(diǎn)擊command7即默認(rèn)時(shí)間按鈕時(shí),在text1控件數(shù)組中顯示默認(rèn)時(shí)間Private Sub Command7_Click() Text1(0).Text = 08:00 Text1(1).Text = 08:50 Text1(2).Text = 09:00 Text1(3).Text = 09:50 Text1(4).Text = 10:05 Text1(5).Text = 10:55 Text1(6).Text = 11:05 Text1(7).Text = 11:50

11、Text1(8).Text = 14:00 Text1(9).Text = 14:50 Text1(10).Text = 15:00 Text1(11).Text = 15:50 Text1(12).Text = 16:05 Text1(13).Text = 16:55 Text1(14).Text = 17:05 Text1(15).Text = 17:55End Sub點(diǎn)擊command8即清空時(shí)間按鈕時(shí),清空所有時(shí)間Private Sub Command8_Click()For n = 0 To 15 Text1(n).Text = Next nEnd Sub雙擊文件列表框中某一項(xiàng)時(shí),播

12、放所選歌曲Private Sub File1_DblClick() WindowsMediaPlayer1.URL = App.Path & mp3 & File1.List(File1.ListIndex) 2 WindowsMediaPlayer1.Controls.play Text4.Text = File1.List(File1.ListIndex) Text4顯示正在播放的歌曲End SubPrivate Sub Form_Load() Show Timer1.Interval = 1000 Timer2.Interval = 1000 Timer3.Interval = 1000

13、 Timer1.Enabled = False timer1不可用,防止選中歌曲就進(jìn)行打鈴 File1.Visible = True 加載窗體時(shí)只顯示默認(rèn)列表 List1.Visible = False MsgBox 請(qǐng)?zhí)砑逾徛?File1.Path = App.Path & mp3 此處為默認(rèn)音樂(lè),其所在文件夾與工程文件放在一起,名為“mp3”的文件夾 Text1(0).Text = 08:00 加載默認(rèn)時(shí)間 Text1(1).Text = 08:50 Text1(2).Text = 09:00 Text1(3).Text = 09:50 Text1(4).Text = 10:05 Text

14、1(5).Text = 10:55 Text1(6).Text = 11:05 Text1(7).Text = 11:50 Text1(8).Text = 14:00 Text1(9).Text = 14:50 Text1(10).Text = 15:00 Text1(11).Text = 15:50 Text1(12).Text = 16:05 Text1(13).Text = 16:55 Text1(14).Text = 17:05 Text1(15).Text = 17:55 如果今天是周末,則不打鈴 If Weekday(Date) = 1 Or Weekday(Date) = 7 T

15、hen MsgBox 今天周末,不執(zhí)行程序 Timer1.Enabled = False Timer3.Enabled = False End IfEnd SubPrivate Sub Command1_Click()3 定義i,j兩個(gè)靜態(tài)變量用來(lái),其為數(shù)組a(),b()的下標(biāo) Static i As Integer, j As Integer 定義動(dòng)態(tài)數(shù)組a(i), b(j),且值保存,分別用于記錄列表框中各項(xiàng)的路徑和文件名 ReDim Preserve a(i), b(j) 篩選指定格式的文件 CommonDialog1.Filter=”全部格式 |*.*|*.mp3|*.mp3|*.wm

16、a|*.wma|*.wmv|*.wmv|*.mid|*.mid” CommonDialog1.InitDir = D: CommonDialog1.Action = 1 If CommonDialog1.FileName = Then 如果沒(méi)選擇文件,退出工程 Exit Sub Else 若選中,文件路徑賦給a(),文件名賦給b()。i,j分別加1,當(dāng)添加文件后,繼續(xù)執(zhí)行 a(i) = CommonDialog1.FileName b(j) = CommonDialog1.FileTitle List1.AddItem b(j) i = i + 1 j = j + 1 End IfEnd Su

17、b點(diǎn)擊command2即“刪除”按鈕時(shí),刪除自定義列表中所選項(xiàng)Private Sub Command2_Click()List1.RemoveItem List1.ListIndexEnd Sub點(diǎn)擊command3即“清空”按鈕時(shí),清空自定義列表內(nèi)所有項(xiàng)Private Sub Command3_Click()List1.ClearEnd Sub雙擊文列表框中某一項(xiàng)時(shí),播放所選歌曲Private Sub List1_DblClick() WindowsMediaPlayer1.URL = a(List1.ListIndex) WindowsMediaPlayer1.Controls.play

18、Text4.Text = List1.List(List1.ListIndex)End Sub執(zhí)行播放器控件自動(dòng)打鈴的命令Private Sub Timer1_Timer() 首先判斷列表框中的項(xiàng)是否被選中,如果選中,往下執(zhí)行 If List1.ListIndex -1 Then 判斷播放器是否正在播放,如果正在播放,則停止, 自動(dòng)播放令選擇的列表項(xiàng),以防設(shè)置的播放時(shí)間超過(guò)打鈴時(shí)間間隔 , 播放后,timer1都要停止工作,否則不會(huì)播放,下同 If WindowsMediaPlayer1.playState = 3 Then 4 WindowsMediaPlayer1.Controls.sto

19、p WindowsMediaPlayer1.URL = a(List1.ListIndex) WindowsMediaPlayer1.Controls.play Text4.Text = List1.List(List1.ListIndex) Timer1.Enabled = False Else 如果播放器處于停止或閑置狀態(tài),則播放列表框內(nèi)所選列表項(xiàng) WindowsMediaPlayer1.URL = a(List1.ListIndex) WindowsMediaPlayer1.Controls.play Text4.Text = List1.List(List1.ListIndex) Ti

20、mer1.Enabled = False End If End If 首先判斷文件列表框中的項(xiàng)是否被選中,如果選中,往下執(zhí)行 If File1.ListIndex -1 Then 判斷播放器是否正在播放,如果正在播放,則停止, 自動(dòng)播放令選擇的列表項(xiàng),以防設(shè)置的播放時(shí)間超過(guò)打鈴時(shí)間間隔 If WindowsMediaPlayer1.playState = 3 Then WindowsMediaPlayer1.Controls.stop WindowsMediaPlayer1.URL = App.Path & mp3 & File1.List(File1.ListIndex) WindowsMe

21、diaPlayer1.Controls.play Text4.Text = File1.List(File1.ListIndex) Timer1.Enabled = False Else 如果播放器處于停止或閑置狀態(tài),則播放文件框內(nèi)的所選列表項(xiàng) WindowsMediaPlayer1.URL = App.Path & mp3 & File1.List(File1.ListIndex) WindowsMediaPlayer1.Controls.play Text4.Text = File1.List(File1.ListIndex) Timer1.Enabled = False End If E

22、nd IfEnd Sub在label1內(nèi)顯示時(shí)間,將其轉(zhuǎn)為字符串格式Private Sub Timer2_Timer()Label1.Caption = Format(Now, yyyy年m月dd日hh:mm:ss dddd)5End Sub根據(jù)播放計(jì)劃,調(diào)用自動(dòng)打鈴程序Private Sub Timer3_Timer()Dim y As Integer, z As Integerx = Format(Time, hh:mm) 轉(zhuǎn)化時(shí)間為只有小時(shí)和分鐘的字符串格式從015判斷,如果其中某一文本框與轉(zhuǎn)化后的時(shí)間相等,根據(jù)組合框所選擇的播放計(jì)劃,調(diào)用timer1進(jìn)行自動(dòng)打鈴For n = 0 To

23、 15 當(dāng)text控件數(shù)組中某一項(xiàng)等于轉(zhuǎn)化格式后的時(shí)間是,往下執(zhí)行 If Text1(n).Text = x Or Text1(n).Text = 0 & x Then Select Case Combo1.ListIndex 選擇組合框中的播放計(jì)劃 Case 0 用戶選擇鈴聲 根據(jù)一開(kāi)始時(shí)選擇的播放鈴聲,在文件列表框和列表框內(nèi)找尋索引號(hào) If File1.List(y) = Text5.Text Then File1.ListIndex = y End If If List1.List(z) = Text5.Text Then List1.ListIndex = z End If Case

24、1 隨機(jī)播放所選列表的鈴聲(換列表時(shí)請(qǐng)?jiān)冱c(diǎn)一下此計(jì)劃) 判定所選列表,進(jìn)行隨機(jī)選擇 Text5.Text = 清空text5 If File1.Visible = True Then File1.ListIndex = Int(Rnd * File1.ListCount) End If If List1.Visible = True Then List1.ListIndex = Int(Rnd * List1.ListCount) End If End Select 加載窗體時(shí),timer3循環(huán)間隔為1秒,直至滿足上面的相等條件,調(diào)用timer2 然后改為1分鐘循環(huán)判斷一次,否則每秒都在循環(huán),

25、不斷調(diào)用timer2,播放器無(wú)法播放 Timer3.Interval = 60000 Timer1.Enabled = True End If Next nEnd Sub控制播放時(shí)長(zhǎng)Private Sub Timer4_Timer()text3顯示播放器的播放進(jìn)度,且將播放進(jìn)度轉(zhuǎn)化為整形顯示Text3.Text = CInt(WindowsMediaPlayer1.Controls.currentPosition)當(dāng)播放進(jìn)度與設(shè)定播放時(shí)長(zhǎng)相等時(shí),則停止打鈴If Val(Text2.Text) = Val(Text3.Text) Then WindowsMediaPlayer1.Controls

26、.stop End IfEnd Sub4 結(jié)果分析4.1 運(yùn)行結(jié)果圖4-1 設(shè)計(jì)界面圖4-2 啟動(dòng)界面圖4-3 點(diǎn)擊對(duì)話框后的界面圖4-4 在默認(rèn)列表雙擊播放歌曲的界面圖4-5 在自定義列表雙擊播放歌曲的界面圖4-6 選擇用戶計(jì)劃1后到15:25開(kāi)始播指定鈴聲(播放會(huì)有延時(shí))圖4-7 選擇用戶計(jì)劃2后到15:33開(kāi)始隨機(jī)選歌打鈴(播放會(huì)有延時(shí))圖4-8 可不選播放計(jì)劃,按用戶所選歌曲播放(播放會(huì)有延時(shí))4.2 結(jié)果分析該程序基本可以執(zhí)行所要求打鈴命令,但也存在一些些缺陷,如:在選擇播放計(jì)劃1前必須先選定歌曲,否則Text5不顯示。不能完成分別設(shè)置上課鈴聲和下課鈴聲。5 總結(jié)這次課程設(shè)計(jì)我做的題目是制作一個(gè)全自動(dòng)音樂(lè)打鈴軟件,雖然有一定難度,但是在不斷的摸索、查資料下運(yùn)用windows media player控件,結(jié)合列表框、文件列表框、定時(shí)器、組合框等的使用,最后完成軟件的制作。雖然有很一些缺陷,但設(shè)計(jì)要求的打鈴功能基本可以完成,自己非常滿意最后的成果,它值得我付出那么多的汗水。設(shè)計(jì)體會(huì)及今后的改進(jìn)意見(jiàn) 生活就是這樣,汗水預(yù)示著結(jié)果也見(jiàn)證著

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論