vb課程設(shè)計-全自動音樂打鈴軟件的設(shè)計_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  1 選題背景··························

2、83;····································&

3、#183;··2</p><p>  1.1 背景·····························

4、;···································2</p&g

5、t;<p>  1.2 設(shè)計要求·································

6、;···························2</p><p>  1.3 指導思想····&

7、#183;····································

8、;···················2</p><p>  2 方案論證············

9、83;····································&

10、#183;················2</p><p>  3 程序設(shè)計論述··············

11、83;····································&

12、#183;··········2</p><p>  3.1 程序工作····················

13、83;····································&

14、#183;··2</p><p>  3.2 控件屬性說明····························&

15、#183;···························4</p><p>  3.3 程序代碼(附帶解釋說明)··&

16、#183;····································

17、;······4</p><p>  4 結(jié)果分析·························

18、83;····································&

19、#183;··11</p><p>  4.1 運行結(jié)果····························&#

20、183;······························11</p><p>  4.2 結(jié)果分析

21、83;····································&

22、#183;·····················15</p><p>  5 總結(jié)··········

23、····································

24、3;······················15</p><p>  設(shè)計體會及今后的改進意見········&

25、#183;····································

26、;······16</p><p>  參考文獻資料·························&#

27、183;····································

28、·17</p><p><b>  1 選題背景</b></p><p><b>  1.1 背景</b></p><p>  如今,許多學校、工礦等單位都安裝音樂打鈴器,音樂打鈴已成為一種時尚的打鈴方式,它改進了傳統(tǒng)單調(diào)的打鈴方式,讓打鈴方式變得豐富多彩。因此,我選擇了全自動打鈴軟件作為我的課程設(shè)計課題。<

29、;/p><p><b>  1.2 設(shè)計要求</b></p><p>  設(shè)計基本要求為定時播出,以周為單位,可以在任意天任意時間設(shè)定播放音樂鈴聲??梢匀我饪刂撇シ艜r間的長短,在設(shè)定的時間內(nèi)會連續(xù)播放,結(jié)束時間一到即會停止??稍O(shè)置多套播放計劃,根據(jù)需要隨時啟用。內(nèi)置十首鈴聲,支持自定義鈴聲名稱及音樂。設(shè)置計劃時也可指定磁盤上的文件,支持WAV、MID、MP3等音樂文件格式

30、。 軟件界面簡潔實用,可以隨時手動播放需要的鈴聲,或者暫時屏蔽某個不需要的鈴聲。</p><p><b>  1.3 指導思想</b></p><p>  本程序設(shè)計主要是用到windows media player播放器控件、定時器、對話框、列表框、文件列表框和組合框的使用方法。選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的設(shè)計使用。</p><p><b>

31、;  2 方案論證</b></p><p>  最初的設(shè)計方案只用列表框加載音樂,用MMControl播放控件進行播放,但是添加音樂后,音樂不播放,加之對此播放控件不太熟悉,編程較慢,且出現(xiàn)錯誤較多就放棄了此計劃。 </p><p>  后來的改進的計劃是加載windows media player控件,設(shè)計兩個命令按鈕“默認列表”、“自定義列表”分別用來切換默認列表與自定義列

32、表兩個播放列表,其中默認列表對應firelist1,內(nèi)置十首默認鈴聲;自定義列表對應list1,可以通過單擊“添加文件”按鈕添加自己要選的指定格式的音樂。當在任意一個text1文本框中輸入上課或下課時間后(考慮到學校上下課的時間基本精確到分鐘,所以程序設(shè)計是按此設(shè)計的,輸入時間時,就精確到分鐘即可),當?shù)竭_此時間后,按照所選計劃進行播放,當播放進度與設(shè)置的播放時長相等時,結(jié)束播放。同時,用戶雙擊列表中的音樂后,也可以使其播放。并且可以通

33、過“刪除”按鈕刪除自定義列表中不想要的鈴聲,也可以按“清空”按鈕清空自定義列表。在周末的時候,設(shè)計為不打鈴,以周開始循環(huán)打鈴。綜上,通過改變設(shè)計思路,自動打鈴最后實現(xiàn)。</p><p><b>  3 程序設(shè)計論述</b></p><p>  3.1 設(shè)計工作簡述</p><p>  該課程設(shè)計歷時5天完成:</p><p&

34、gt;  第一天:進行總體的設(shè)計,確定設(shè)計思路,即具體編程設(shè)計步驟。</p><p>  第二天:進行初步編程。進行界面設(shè)計,編輯添加音樂到播放列表以及雙進行播放的程序。</p><p>  第三天:完成剩余程序設(shè)計,主要是控制定時打鈴的程序。并驗證正確性。</p><p>  第四天:上級驗證程序正確性,并進行改進。</p><p>  第

35、五天:編寫課程設(shè)計報告,并打印成稿。</p><p>  3.2 控件屬性說明</p><p>  表3-2 控件屬性表</p><p>  3.3 程序代碼(附帶解釋說明)</p><p>  Option Explicit</p><p>  Dim a(), b() '聲明數(shù)組a(),b(),其分別

36、用來保存自定義列表中各項的路徑和文件名</p><p>  Dim x As String '保存將時間轉(zhuǎn)為字符串的變量</p><p>  Dim n As Integer '表示text1數(shù)組的下標</p><p>  '當點擊組合框中的第一項是,選擇鈴聲(請事先選好鈴聲)</p><p>  ——————————

37、———————————————————————</p><p>  Private Sub Combo1_Click()[1]</p><p>  If Combo1.ListIndex = 0 Then '當?shù)谝豁棻贿x中時,彈出對話框</p><p>  MsgBox "請選擇鈴聲"</p><p>  '

38、;如果在默認列表或自定義列表內(nèi)選擇鈴聲,將其賦給text5</p><p>  If File1.Visible = True Then</p><p>  Text5.Text = File1.List(File1.ListIndex)</p><p><b>  Else</b></p><p>  Text5.Te

39、xt = List1.List(List1.ListIndex)</p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  ————————————————————

40、—————————————</p><p><b>  '強行結(jié)束程序</b></p><p>  Private Sub Command4_Click()</p><p><b>  End</b></p><p><b>  End Sub</b></p>

41、;<p>  —————————————————————————————————</p><p>  '點擊command5即默認列表按鈕時,文件列表框顯示,列表框不顯示</p><p>  Private Sub Command5_Click()</p><p>  List1.Visible = False</p><p

42、>  File1.Visible = True</p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  '點擊command6即自定義列表按鈕時,文件列表框顯示,列表框不顯示</p><p>  Priv

43、ate Sub Command6_Click()</p><p>  List1.Visible = True</p><p>  File1.Visible = False</p><p><b>  End Sub</b></p><p>  —————————————————————————————————<

44、/p><p>  '點擊command7即默認時間按鈕時,在text1控件數(shù)組中顯示默認時間</p><p>  Private Sub Command7_Click()</p><p>  Text1(0).Text = "08:00"</p><p>  Text1(1).Text = "08:50&qu

45、ot;</p><p>  Text1(2).Text = "09:00"</p><p>  Text1(3).Text = "09:50"</p><p>  Text1(4).Text = "10:05"</p><p>  Text1(5).Text = "10:5

46、5"</p><p>  Text1(6).Text = "11:05"</p><p>  Text1(7).Text = "11:50"</p><p>  Text1(8).Text = "14:00"</p><p>  Text1(9).Text = "

47、14:50"</p><p>  Text1(10).Text = "15:00"</p><p>  Text1(11).Text = "15:50"</p><p>  Text1(12).Text = "16:05"</p><p>  Text1(13).Text

48、= "16:55"</p><p>  Text1(14).Text = "17:05"</p><p>  Text1(15).Text = "17:55"</p><p><b>  End Sub</b></p><p>  ———————————————

49、——————————————————</p><p>  '點擊command8即清空時間按鈕時,清空所有時間</p><p>  Private Sub Command8_Click()</p><p>  For n = 0 To 15</p><p>  Text1(n).Text = ""</p>

50、;<p><b>  Next n</b></p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  '雙擊文件列表框中某一項時,播放所選歌曲</p><p>  Privat

51、e Sub File1_DblClick()</p><p>  WindowsMediaPlayer1.URL = App.Path & "\mp3\" & File1.List(File1.ListIndex) [2]</p><p>  WindowsMediaPlayer1.Controls.play</p><p>  

52、Text4.Text = File1.List(File1.ListIndex) 'Text4顯示正在播放的歌曲</p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  Private Sub Form_Load()</

53、p><p><b>  Show</b></p><p>  Timer1.Interval = 1000</p><p>  Timer2.Interval = 1000</p><p>  Timer3.Interval = 1000</p><p>  Timer1.Enabled = Fals

54、e 'timer1不可用,防止選中歌曲就進行打鈴</p><p>  File1.Visible = True '加載窗體時只顯示默認列表</p><p>  List1.Visible = False</p><p>  MsgBox "請?zhí)砑逾徛?quot;</p><p>  File1.Path = App

55、.Path & "\mp3" '此處為默認音樂,其所在文件夾與工程文件放在一起,名為“mp3”的文件夾</p><p>  Text1(0).Text = "08:00" '加載默認時間</p><p>  Text1(1).Text = "08:50"</p><p>  Text

56、1(2).Text = "09:00"</p><p>  Text1(3).Text = "09:50"</p><p>  Text1(4).Text = "10:05"</p><p>  Text1(5).Text = "10:55"</p><p>  

57、Text1(6).Text = "11:05"</p><p>  Text1(7).Text = "11:50"</p><p>  Text1(8).Text = "14:00"</p><p>  Text1(9).Text = "14:50"</p><p&g

58、t;  Text1(10).Text = "15:00"</p><p>  Text1(11).Text = "15:50"</p><p>  Text1(12).Text = "16:05"</p><p>  Text1(13).Text = "16:55"</p>

59、<p>  Text1(14).Text = "17:05"</p><p>  Text1(15).Text = "17:55"</p><p>  '如果今天是周末,則不打鈴</p><p>  If Weekday(Date) = 1 Or Weekday(Date) = 7 Then</p&g

60、t;<p>  MsgBox "今天周末,不執(zhí)行程序"</p><p>  Timer1.Enabled = False</p><p>  Timer3.Enabled = False</p><p><b>  End If</b></p><p><b>  End Su

61、b</b></p><p>  ————————————————————————————————————</p><p>  Private Sub Command1_Click()[3]</p><p>  '定義i,j兩個靜態(tài)變量用來,其為數(shù)組a(),b()的下標</p><p>  Static i As Integ

62、er, j As Integer</p><p>  '定義動態(tài)數(shù)組a(i), b(j),且值保存,分別用于記錄列表框中各項的路徑和文件名</p><p>  ReDim Preserve a(i), b(j)</p><p>  '篩選指定格式的文件</p><p>  CommonDialog1.Filter=”全部格式

63、|*.*|*.mp3|*.mp3|*.wma|*.wma|</p><p>  *.wmv|*.wmv|*.mid|*.mid”</p><p>  CommonDialog1.InitDir = "D:\"</p><p>  CommonDialog1.Action = 1</p><p>  If CommonDia

64、log1.FileName = "" Then '如果沒選擇文件,退出工程</p><p><b>  Exit Sub</b></p><p>  Else '若選中,文件路徑賦給a(),文件名賦給b()。i,j分別加1,當添加文件后,繼續(xù)執(zhí)行</p><p>  a(i) = CommonDialog1.

65、FileName</p><p>  b(j) = CommonDialog1.FileTitle</p><p>  List1.AddItem b(j)</p><p><b>  i = i + 1</b></p><p><b>  j = j + 1</b></p><

66、p><b>  End If</b></p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  '點擊command2即“刪除”按鈕時,刪除自定義列表中所選項</p><p>  Pr

67、ivate Sub Command2_Click()</p><p>  List1.RemoveItem List1.ListIndex</p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  '點擊comm

68、and3即“清空”按鈕時,清空自定義列表內(nèi)所有項</p><p>  Private Sub Command3_Click()</p><p>  List1.Clear</p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p

69、><p>  '雙擊文列表框中某一項時,播放所選歌曲</p><p>  Private Sub List1_DblClick()</p><p>  WindowsMediaPlayer1.URL = a(List1.ListIndex)</p><p>  WindowsMediaPlayer1.Controls.play</p

70、><p>  Text4.Text = List1.List(List1.ListIndex)</p><p><b>  End Sub</b></p><p>  —————————————————————————————————</p><p>  '執(zhí)行播放器控件自動打鈴的命令</p><

71、p>  Private Sub Timer1_Timer()</p><p>  '首先判斷列表框中的項是否被選中,如果選中,往下執(zhí)行</p><p>  If List1.ListIndex <> -1 Then</p><p>  '判斷播放器是否正在播放,如果正在播放,則停止,</p><p>  &#

72、39;自動播放令選擇的列表項,以防設(shè)置的播放時間超過打鈴時間間隔 ,</p><p>  '播放后,timer1都要停止工作,否則不會播放,下同</p><p>  If WindowsMediaPlayer1.playState = 3 Then [4]</p><p>  WindowsMediaPlayer1.Controls.stop</p&g

73、t;<p>  WindowsMediaPlayer1.URL = a(List1.ListIndex)</p><p>  WindowsMediaPlayer1.Controls.play</p><p>  Text4.Text = List1.List(List1.ListIndex)</p><p>  Timer1.Enabled = Fa

74、lse</p><p>  Else '如果播放器處于停止或閑置狀態(tài),則播放列表框內(nèi)所選列表項</p><p>  WindowsMediaPlayer1.URL = a(List1.ListIndex)</p><p>  WindowsMediaPlayer1.Controls.play</p><p>  Text4.Text

75、 = List1.List(List1.ListIndex)</p><p>  Timer1.Enabled = False</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  '首先判斷文件列表框中的項是否被選中,如果選

76、中,往下執(zhí)行</p><p>  If File1.ListIndex <> -1 Then</p><p>  '判斷播放器是否正在播放,如果正在播放,則停止,</p><p>  '自動播放令選擇的列表項,以防設(shè)置的播放時間超過打鈴時間間隔</p><p>  If WindowsMediaPlayer1.pl

77、ayState = 3 Then</p><p>  WindowsMediaPlayer1.Controls.stop</p><p>  WindowsMediaPlayer1.URL = App.Path & "\mp3\" & File1.List(File1.ListIndex)</p><p>  WindowsMed

78、iaPlayer1.Controls.play</p><p>  Text4.Text = File1.List(File1.ListIndex)</p><p>  Timer1.Enabled = False</p><p>  Else '如果播放器處于停止或閑置狀態(tài),則播放文件框內(nèi)的所選列表項</p><p>  Wind

79、owsMediaPlayer1.URL = App.Path & "\mp3\" & File1.List(File1.ListIndex)</p><p>  WindowsMediaPlayer1.Controls.play</p><p>  Text4.Text = File1.List(File1.ListIndex)</p>&

80、lt;p>  Timer1.Enabled = False</p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  ————————————————————

81、—————————————</p><p>  '在label1內(nèi)顯示時間,將其轉(zhuǎn)為字符串格式</p><p>  Private Sub Timer2_Timer()</p><p>  Label1.Caption = Format(Now, "yyyy年m月dd日hh:mm:ss dddd")[5]</p><

82、p><b>  End Sub</b></p><p>  '根據(jù)播放計劃,調(diào)用自動打鈴程序</p><p>  Private Sub Timer3_Timer()</p><p>  Dim y As Integer, z As Integer</p><p>  x = Format(Time, &q

83、uot;hh:mm") '轉(zhuǎn)化時間為只有小時和分鐘的字符串格式</p><p>  '從0~15判斷,如果其中某一文本框與轉(zhuǎn)化后的時間相等,</p><p>  '根據(jù)組合框所選擇的播放計劃,調(diào)用timer1進行自動打鈴</p><p>  For n = 0 To 15</p><p>  '當te

84、xt控件數(shù)組中某一項等于轉(zhuǎn)化格式后的時間是,往下執(zhí)行</p><p>  If Text1(n).Text = x Or Text1(n).Text = "0" & x Then</p><p>  Select Case Combo1.ListIndex '選擇組合框中的播放計劃</p><p>  Case 0 '

85、用戶選擇鈴聲</p><p>  '根據(jù)一開始時選擇的播放鈴聲,在文件列表框和列表框內(nèi)找尋索引號</p><p>  If File1.List(y) = Text5.Text Then </p><p>  File1.ListIndex = y</p><p><b>  End If</b></p&g

86、t;<p>  If List1.List(z) = Text5.Text Then</p><p>  List1.ListIndex = z</p><p><b>  End If</b></p><p>  Case 1 '隨機播放所選列表的鈴聲(換列表時請再點一下此計劃)</p><p>

87、;  '判定所選列表,進行隨機選擇</p><p>  Text5.Text = "" '清空text5</p><p>  If File1.Visible = True Then</p><p>  File1.ListIndex = Int(Rnd * File1.ListCount)</p><p&

88、gt;<b>  End If</b></p><p>  If List1.Visible = True Then</p><p>  List1.ListIndex = Int(Rnd * List1.ListCount)</p><p><b>  End If</b></p><p>  E

89、nd Select</p><p>  '加載窗體時,timer3循環(huán)間隔為1秒,直至滿足上面的相等條件,調(diào)用timer2</p><p>  '然后改為1分鐘循環(huán)判斷一次,否則每秒都在循環(huán),不斷調(diào)用timer2,播放器無法播放</p><p>  Timer3.Interval = 60000</p><p>  Timer

90、1.Enabled = True</p><p><b>  End If</b></p><p><b>  Next n</b></p><p><b>  End Sub</b></p><p>  —————————————————————————————————<

91、;/p><p><b>  '控制播放時長</b></p><p>  Private Sub Timer4_Timer()</p><p>  'text3顯示播放器的播放進度,且將播放進度轉(zhuǎn)化為整形顯示</p><p>  Text3.Text = CInt(WindowsMediaPlayer1.Con

92、trols.currentPosition)</p><p>  '當播放進度與設(shè)定播放時長相等時,則停止打鈴</p><p>  If Val(Text2.Text) = Val(Text3.Text) Then</p><p>  WindowsMediaPlayer1.Controls.stop</p><p><b>

93、;  End If</b></p><p><b>  End Sub</b></p><p><b>  4 結(jié)果分析</b></p><p><b>  4.1 運行結(jié)果</b></p><p><b>  圖4-1 設(shè)計界面</b><

94、;/p><p><b>  圖4-2 啟動界面</b></p><p>  圖4-3 點擊對話框后的界面</p><p>  圖4-4 在默認列表雙擊播放歌曲的界面</p><p>  圖4-5 在自定義列表雙擊播放歌曲的界面</p><p>  圖4-6 選擇用戶計劃1后到15:25開始播指定鈴聲(

95、播放會有延時)</p><p>  圖4-7 選擇用戶計劃2后到15:33開始隨機選歌打鈴(播放會有延時)</p><p>  圖4-8 可不選播放計劃,按用戶所選歌曲播放(播放會有延時)</p><p><b>  4.2 結(jié)果分析</b></p><p>  該程序基本可以執(zhí)行所要求打鈴命令,但也存在一些些缺陷,如:

96、在選擇播放計劃1前必須先選定歌曲,否則Text5不顯示。不能完成分別設(shè)置上課鈴聲和下課鈴聲。</p><p><b>  5 總結(jié)</b></p><p>  這次課程設(shè)計我做的題目是制作一個全自動音樂打鈴軟件,雖然有一定難度,但是在不斷的摸索、查資料下運用windows media player控件,結(jié)合列表框、文件列表框、定時器、組合框等的使用,最后完成軟件的制作

97、。雖然有很一些缺陷,但設(shè)計要求的打鈴功能基本可以完成,自己非常滿意最后的成果,它值得我付出那么多的汗水。</p><p>  設(shè)計體會及今后的改進意見</p><p>  生活就是這樣,汗水預示著結(jié)果也見證著收獲。勞動是人類生存生活永恒不變的話題。通過實習,我才真正領(lǐng)略到“艱苦奮斗”這一詞的真正含義,我才意識到老一輩電子設(shè)計為我們的社會付出。我想說,設(shè)計確實有些辛苦,但苦中也有樂,在如今單

98、一的理論學習中,很少有機會能有實踐的機會,但我們可以,而且設(shè)計也是一個團隊的任務,一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學里一年的相處還趕不上這十來天的合作,我感覺我和同學們之間的距離更加近了;我想說,確實很累,但當我們看到自己所做的成果時,心中也不免產(chǎn)生興奮; 正所謂“三百六十行,行行出狀元”。我們同樣可以為社會作出我們應該做的一切,這有什么不好?我們不斷的反問自己。也許有人不喜歡這類的工作,也許

99、有人認為設(shè)計的工作有些枯燥,但我們認為無論干什么,只要人生活的有意義就可。社會需要我們,我們也可以為社會而工作。既然如此,那還有什么必要失落呢?于是我們決定沿著自己的路,執(zhí)著的走下去。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,</p><p>  對我們而言,知識上的收獲重要,精神上的豐收更加可喜。挫

100、折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非常美好的回憶!</p><p><b>  參 考 文 獻</b></p><p>  [1]張路平,喻波,邵謙謙.《Visual Basic6.0編程案例精解》.電子工業(yè)出版社.2005-04</p><p>  [2]陸毅.《Visual Basic實例教程》.科學出版社.

101、2002-09</p><p>  [3]林卓然.《Visual Basic程序設(shè)計教程(第2版)》 .電子工業(yè)出版社.2010-11</p><p>  [4]龔沛曾,陸慰民,楊志強.《Visual Basic程序設(shè)計教程》.高等教育出版社.2000-07</p><p>  [5]邵潔.《Visual Basic程序設(shè)計(第三版)》.東南大學出版社.2006-0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論