vb课程设计全自动音乐打铃软件的设计解析.docx
- 文档编号:7292380
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:17
- 大小:684.24KB
vb课程设计全自动音乐打铃软件的设计解析.docx
《vb课程设计全自动音乐打铃软件的设计解析.docx》由会员分享,可在线阅读,更多相关《vb课程设计全自动音乐打铃软件的设计解析.docx(17页珍藏版)》请在冰豆网上搜索。
vb课程设计全自动音乐打铃软件的设计解析
1选题背景··································································2
1.1背景································································2
1.2设计要求····························································2
1.3指导思想····························································2
2方案论证··································································2
3程序设计论述······························································2
3.1程序工作····························································2
3.2控件属性说明························································4
3.3程序代码(附带解释说明)·············································4
4结果分析·································································11
4.1运行结果···························································11
4.2结果分析···························································15
5总结·····································································15
设计体会及今后的改进意见···················································16
参考文献资料·······························································17
1选题背景
1.1背景
如今,许多学校、工矿等单位都安装音乐打铃器,音乐打铃已成为一种时尚的打铃方式,它改进了传统单调的打铃方式,让打铃方式变得丰富多彩。
因此,我选择了全自动打铃软件作为我的课程设计课题。
1.2设计要求
设计基本要求为定时播出,以周为单位,可以在任意天任意时间设定播放音乐铃声。
可以任意控制播放时间的长短,在设定的时间内会连续播放,结束时间一到即会停止。
可设置多套播放计划,根据需要随时启用。
内置十首铃声,支持自定义铃声名称及音乐。
设置计划时也可指定磁盘上的文件,支持WAV、MID、MP3等音乐文件格式。
软件界面简洁实用,可以随时手动播放需要的铃声,或者暂时屏蔽某个不需要的铃声。
1.3指导思想
本程序设计主要是用到windowsmediaplayer播放器控件、定时器、对话框、列表框、文件列表框和组合框的使用方法。
选择结构和循环结构的设计使用。
2方案论证
最初的设计方案只用列表框加载音乐,用MMControl播放控件进行播放,但是添加音乐后,音乐不播放,加之对此播放控件不太熟悉,编程较慢,且出现错误较多就放弃了此计划。
后来的改进的计划是加载windowsmediaplayer控件,设计两个命令按钮“默认列表”、“自定义列表”分别用来切换默认列表与自定义列表两个播放列表,其中默认列表对应firelist1,内置十首默认铃声;自定义列表对应list1,可以通过单击“添加文件”按钮添加自己要选的指定格式的音乐。
当在任意一个text1文本框中输入上课或下课时间后(考虑到学校上下课的时间基本精确到分钟,所以程序设计是按此设计的,输入时间时,就精确到分钟即可),当到达此时间后,按照所选计划进行播放,当播放进度与设置的播放时长相等时,结束播放。
同时,用户双击列表中的音乐后,也可以使其播放。
并且可以通过“删除”按钮删除自定义列表中不想要的铃声,也可以按“清空”按钮清空自定义列表。
在周末的时候,设计为不打铃,以周开始循环打铃。
综上,通过改变设计思路,自动打铃最后实现。
3程序设计论述
3.1设计工作简述
该课程设计历时5天完成:
第一天:
进行总体的设计,确定设计思路,即具体编程设计步骤。
第二天:
进行初步编程。
进行界面设计,编辑添加音乐到播放列表以及双进行播放的程序。
第三天:
完成剩余程序设计,主要是控制定时打铃的程序。
并验证正确性。
第四天:
上级验证程序正确性,并进行改进。
第五天:
编写课程设计报告,并打印成稿。
3.2控件属性说明
表3-2控件属性表
控件名称
重要属性值
说明
Windowsmediaplayer1
播放铃声
Command1
Caption-添加文件
在列表框添加音乐
Command2
Caption-删除
删除自定义列表所选音乐
Command3
Caption-清空
清空列表
Command4
Caption-退出
退出程序
Command5
Caption-默认列表
单击后只显现filelist1,用来切换列表
Command6
Caption-自定义列表
单击后只显现list1,用来切换列表
Command7
Caption-默认时间
Command8
Caption-清空时间
Text1数组
用来输入时间
Text2
设定播放时长
Text3
播放音乐时,显示进度
Text4
显示正在播放的曲目
Text5
当选择“用户选择铃声”计划时,显示所选铃声
Label1
显示现在的日期、时间
Label2
Caption-北京时间:
Label3
Caption-第一节
Label4
Caption-第二节
Label5
Caption-第三节
Label6
Caption-第四节
Label7
Caption-第五节
Label8
Caption-第六节
Label9
Caption-第七节
Label10
Caption-第八节
Label11
Caption-上课时间
Label12
Caption-下课时间
Label13
Caption-正在播放
Label14
Caption-播放时长(秒)
Label15
Caption-播放计划
Label16
Caption-播放进度(秒)
Label17
Caption-所选歌曲
Filelist1
加载默认列表的歌曲曲目
List1
加载自定义列表的歌曲曲目
Combo1
List(0)=”用户选择铃声”
List
(1)=”随机随机播放指定列表铃声”
播放计划
Image1
加载陕西科技大学图标
Commondialog1
Timer1
Interval=1000
控制自动播放
Timer2
Interval=1000
在label1显示现在时间
Timer3
Interval=1000后变为60000
到达时间,根据所选播放计划,调用Timer2
Timer4
Interval=1000
显示播放进度,并控制播放时长
3.3程序代码(附带解释说明)
OptionExplicit
Dima(),b()'声明数组a(),b(),其分别用来保存自定义列表中各项的路径和文件名
DimxAsString'保存将时间转为字符串的变量
DimnAsInteger'表示text1数组的下标
'当点击组合框中的第一项是,选择铃声(请事先选好铃声)
—————————————————————————————————
PrivateSubCombo1_Click()[1]
IfCombo1.ListIndex=0Then'当第一项被选中时,弹出对话框
MsgBox"请选择铃声"
'如果在默认列表或自定义列表内选择铃声,将其赋给text5
IfFile1.Visible=TrueThen
Text5.Text=File1.List(File1.ListIndex)
Else
Text5.Text=List1.List(List1.ListIndex)
EndIf
EndIf
EndSub
—————————————————————————————————
'强行结束程序
PrivateSubCommand4_Click()
End
EndSub
—————————————————————————————————
'点击command5即默认列表按钮时,文件列表框显示,列表框不显示
PrivateSubCommand5_Click()
List1.Visible=False
File1.Visible=True
EndSub
—————————————————————————————————
'点击command6即自定义列表按钮时,文件列表框显示,列表框不显示
PrivateSubCommand6_Click()
List1.Visible=True
File1.Visible=False
EndSub
—————————————————————————————————
'点击command7即默认时间按钮时,在text1控件数组中显示默认时间
PrivateSubCommand7_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"
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"
EndSub
—————————————————————————————————
'点击command8即清空时间按钮时,清空所有时间
PrivateSubCommand8_Click()
Forn=0To15
Text1(n).Text=""
Nextn
EndSub
—————————————————————————————————
'双击文件列表框中某一项时,播放所选歌曲
PrivateSubFile1_DblClick()
WindowsMediaPlayer1.URL=App.Path&"\mp3\"&File1.List(File1.ListIndex)[2]
WindowsMediaPlayer1.Controls.play
Text4.Text=File1.List(File1.ListIndex)'Text4显示正在播放的歌曲
EndSub
—————————————————————————————————
PrivateSubForm_Load()
Show
Timer1.Interval=1000
Timer2.Interval=1000
Timer3.Interval=1000
Timer1.Enabled=False'timer1不可用,防止选中歌曲就进行打铃
File1.Visible=True'加载窗体时只显示默认列表
List1.Visible=False
MsgBox"请添加铃声"
File1.Path=App.Path&"\mp3"'此处为默认音乐,其所在文件夹与工程文件放在一起,名为“mp3”的文件夹
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"
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"
'如果今天是周末,则不打铃
IfWeekday(Date)=1OrWeekday(Date)=7Then
MsgBox"今天周末,不执行程序"
Timer1.Enabled=False
Timer3.Enabled=False
EndIf
EndSub
————————————————————————————————————
PrivateSubCommand1_Click()[3]
'定义i,j两个静态变量用来,其为数组a(),b()的下标
StaticiAsInteger,jAsInteger
'定义动态数组a(i),b(j),且值保存,分别用于记录列表框中各项的路径和文件名
ReDimPreservea(i),b(j)
'筛选指定格式的文件
CommonDialog1.Filter=”全部格式|*.*|*.mp3|*.mp3|*.wma|*.wma|
*.wmv|*.wmv|*.mid|*.mid”
CommonDialog1.InitDir="D:
\"
CommonDialog1.Action=1
IfCommonDialog1.FileName=""Then'如果没选择文件,退出工程
ExitSub
Else'若选中,文件路径赋给a(),文件名赋给b()。
i,j分别加1,当添加文件后,继续执行
a(i)=CommonDialog1.FileName
b(j)=CommonDialog1.FileTitle
List1.AddItemb(j)
i=i+1
j=j+1
EndIf
EndSub
—————————————————————————————————
'点击command2即“删除”按钮时,删除自定义列表中所选项
PrivateSubCommand2_Click()
List1.RemoveItemList1.ListIndex
EndSub
—————————————————————————————————
'点击command3即“清空”按钮时,清空自定义列表内所有项
PrivateSubCommand3_Click()
List1.Clear
EndSub
—————————————————————————————————
'双击文列表框中某一项时,播放所选歌曲
PrivateSubList1_DblClick()
WindowsMediaPlayer1.URL=a(List1.ListIndex)
WindowsMediaPlayer1.Controls.play
Text4.Text=List1.List(List1.ListIndex)
EndSub
—————————————————————————————————
'执行播放器控件自动打铃的命令
PrivateSubTimer1_Timer()
'首先判断列表框中的项是否被选中,如果选中,往下执行
IfList1.ListIndex<>-1Then
'判断播放器是否正在播放,如果正在播放,则停止,
'自动播放令选择的列表项,以防设置的播放时间超过打铃时间间隔,
'播放后,timer1都要停止工作,否则不会播放,下同
IfWindowsMediaPlayer1.playState=3Then[4]
WindowsMediaPlayer1.Controls.stop
WindowsMediaPlayer1.URL=a(List1.ListIndex)
WindowsMediaPlayer1.Controls.play
Text4.Text=List1.List(List1.ListIndex)
Timer1.Enabled=False
Else'如果播放器处于停止或闲置状态,则播放列表框内所选列表项
WindowsMediaPlayer1.URL=a(List1.ListIndex)
WindowsMediaPlayer1.Controls.play
Text4.Text=List1.List(List1.ListIndex)
Timer1.Enabled=False
EndIf
EndIf
'首先判断文件列表框中的项是否被选中,如果选中,往下执行
IfFile1.ListIndex<>-1Then
'判断播放器是否正在播放,如果正在播放,则停止,
'自动播放令选择的列表项,以防设置的播放时间超过打铃时间间隔
IfWindowsMediaPlayer1.playState=3Then
WindowsMediaPlayer1.Controls.stop
WindowsMediaPlayer1.URL=App.Path&"\mp3\"&File1.List(File1.ListIndex)
WindowsMediaPlayer1.Controls.play
Text4.Text=File1.List(File1.ListIndex)
Timer1.Enabled=False
Else'如果播放器处于停止或闲置状态,则播放文件框内的所选列表项
WindowsMediaPlayer1.URL=App.Path&"\mp3\"&File1.List(File1.ListIndex)
WindowsMediaPlayer1.Controls.play
Text4.Text=File1.List(File1.ListIndex)
Timer1.Enabled=False
EndIf
EndIf
EndSub
—————————————————————————————————
'在label1内显示时间,将其转为字符串格式
PrivateSubTimer2_Timer()
Label1.Caption=Format(Now,"yyyy年m月dd日hh:
mm:
ssdddd")[5]
EndSub
'根据播放计划,调用自动打铃程序
PrivateSubTimer3_Timer()
DimyAsInteger,zAsInteger
x=Format(Time,"hh:
mm")'转化时间为只有小时和分钟的字符串格式
'从0~15判断,如果其中某一文本框与转化后的时间相等,
'根据组合框所选择的播放计划,调用timer1进行自动打铃
Forn=0To15
'当text控件数组中某一项等于转化格式后的时间是,往下执行
IfText1(n).Text=xOrText1(n).Text="0"&xThen
SelectCaseCombo1.ListIndex'选择组合框中的播放计划
Case0'用户选择铃声
'根据一开始时选择的播放铃声,在文件列表框和列表框内找寻索引号
IfFile1.List(y)=Text5.TextThen
File1.ListIndex=y
EndIf
IfList1.List(z)=Text5.TextThen
List1.ListIndex=z
EndIf
Case1'随机播放所选列表的铃声(换列表时请再点一下此计划)
'判定所选列表,进行随机选择
Text5.Text=""'清空text5
IfFile1.Visible=TrueThen
File1.ListIndex=Int(Rnd*File1.ListCount)
EndIf
IfList1.Visible=TrueThen
List1.ListIndex=Int(Rnd*List1.ListCount)
EndIf
EndSelect
'加载窗体时,timer3循环间隔为1秒,直至满足上面的相等条件,调用timer2
'然后改为1分钟循环判断一次,否则每秒都在循环,不断调用timer2,播放器无法播放
Timer3.Interval=60000
Timer1.Enabled=True
EndIf
Nextn
EndSub
—————————————————————————————————
'控制播放时长
PrivateSubTimer4_Timer()
'text3显示播放器的播放进度,且将播放进度转化为整形显示
Text3.Text=CInt(WindowsMediaPlayer1.Controls.currentPosition)
'当播放进度与设定播放时长相等时,则停止打铃
IfVal(Text2.Text)=Val(Text3.Text)Then
WindowsMediaPlayer1.Controls.stop
EndIf
EndSub
4结果分析
4.1运行结果
图4-1设计界面
图4-2启动界面
图4-3点击对话框后的界面
图4-4在默认列表双击播放歌曲的界面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 课程设计 全自动 音乐 打铃 软件 设计 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)