vb1net实验教程.docx
《vb1net实验教程.docx》由会员分享,可在线阅读,更多相关《vb1net实验教程.docx(23页珍藏版)》请在冰点文库上搜索。
vb1net实验教程
课件生成器实验教程
一、实验目的
(1)加深对软件工程、软件产品线的理解,体验软件开发的方法、流程。
(2)感受软件开发环境和工具的选择,了解VS2005集成开发环境。
(3)掌握语言的应用,了解该语言可视化编程的特点。
(4)激发同学们对软件开发的兴趣,进一步提高编程的能力。
二、实验设备及环境
(1)PC一台;
(2)操作系统:
Windows2000/WindowsXP/WindowsVista;
(3)开发环境:
VisualStudio.NET2005;
三、实验内容及步骤
(1)实验内容要求及成品展示:
运用语言开发一个课件自动生成器和播放器,以实现课件的生成和播
放功能。
课件生成器负责收集资料,课件播放器负责显示。
下面为这两个软件的结构和功能要求:
课件生成软件的结构(软件产品线)
生成器
结构视图:
成品视图:
播放器:
结构视图:
成品视图:
相关说明:
生成器运行结果产生:
基本配置文件config.txt,背景图片路径文件pic.txt,背景音乐路径文件musci.txt,课件子目录(其中包括播放器执行文件,二级目录),其中二级目录包括基本配置文件目录,背景图片文件目录,背景音乐文件目录,章节文件目录(第一章的文件名定义为1.doc,第二章的文件名定义为2.doc,依此类推),其他辅助文件目录。
该目录的名称为课件的名称,播放器的名称也为课件的名称。
config.txt的结构:
XXX----课件名称
N----课件章数
K1----第一章节数
K2----第二章节数
……
pic.txt的结构:
\课件名\背景图片路径文件\1.JPG
\课件名\背景图片路径文件\2.JPG
……
musci.txt的结构:
\课件名\背景音乐路径文件\1.mp3
\课件名\背景音乐路径文件\2.mp3
……
XXX课件目录的结构:
\XXX课件\(该目录下放XXX课件的执行文件)
\基本配置文件(包括config.txt,pic.txt,musci.txt三个文件)
\背景图片文件(包括1.JPG,2.JPG….它们是背景图片文件)
\背景音乐文件(包括1.mp3,2.mp3….它们是背景音乐文件)
\章节文件(包括1.doc,2.doc,….它们是课件的章节内容)
被生成的配置文件:
1.基本配置文件,格式txt,文件第一行为课件名称,第二行为章数。
2.背景图片路径文件,格式txt,文件的每一行为背景图片的路径。
第一行为播放器的背景图片。
3.背景音乐路径文件,格式txt,文件的每一行为背景音乐的路径。
第一行为播放器的背景音乐。
(2)实验前基础知识准备:
关于软件开发:
软件产品线:
软件产品线是一组具有共同体系构架和可复用组件的软件系统,它们共同构建支持特定领域内产品开发的软件平台。
软件产品线的产品则是根据基本用户需求对产品线架构进行定制,将可复用部分和系统独特部分集成而得到。
软件产品线方法集中体现一种大规模、大粒度软件复用实践,是软件工程领域中软件体系结构和软件重用技术发展的结果。
在本实验中,课件生成器便相当于一个小型的软件产品线。
它相当于我们日常生活中的产品流水线,为各种课件的生成提供了一个平台。
关于VS2005:
进行本实验需要首先安装VS2005。
VS2005作为一个强大的开发工具,向用户提供了强大的集成开发环境。
在实验开始之前,读者最好先了解它的基本用法。
(2)操作步骤及源代码:
安装好VS2005后,我们可以开始编写本实验了
课件生成器编写步骤
打开VS2005,新建一个VBwindows应用程序窗体,命名为课件生成器,如下图所示:
点击确定后,我们便新建了一个windows应用程序项目。
在刚刚新建的项目窗体Form1上添加6个标签(Lable)、5个文本框(TextBox)、9个按钮(Button),如下图所示:
在属性窗口处为Form1及各按钮、标签、文本框改名、改Text值:
(属性栏)(改了Text值后的窗体)
PS:
外观设置都在属性栏设置,读者可选择自己喜欢的背景、颜色、图片、Icon图标等。
至此,我们已经基本完成了课件生成器的外观的设置,下面我们要考虑它的功能实现了。
我们希望当我们点击浏览按钮时,会自动弹出一个对话框,让我们选择课件的素材,比如:
图片、音乐、Word文档等。
当我们选择好素材后,我们希望将选择的素材的路径返回到对应的文本框中去,当我们点击“确定”按钮时,程序自动将选择的素材路径复制到我们事先准备好的txt文本中去。
当我们选择错误时,点击“重置”按钮能将对话框中的textbox中的值全部清空。
当我们点击“确定”按钮后才发现我们的选择错误时,考虑到这是程序已经自动将该素材的路径保存到了txt中,这时我们要重新清空txt中的数据,“重新生成数据”就是用来实现这一功能的。
当我们点击“完成”,表示我们的素材已经全部选择完毕,那么这时我们要生成目标文件了。
在这里,目标文件是一个包含各种素材的文件夹。
目标文件的具体内容请参考前面的“实验内容要求及成品展示”部分
实现“浏览”按钮功能
首先,为窗体添加一个OpenFileDialog控件,如下图所示:
然后在窗体中双击第一个“浏览”按钮,添加如下代码:
OpenFileDialog1.InitialDirectory="c:
\"
OpenFileDialog1.Filter="imagesfiles(*.jpg)|*.jpg|Allfiles(*.*)|*.*"
OpenFileDialog1.FilterIndex=1
OpenFileDialog1.RestoreDirectory=True
IfOpenFileDialog1.ShowDialog()=Windows.Forms.DialogResult.OKThen
TextBox3.Text=OpenFileDialog1.FileName
EndIf
如下图所示:
那么我们就实现了“浏览”按钮的功能,读者可以尝试运行(点击工具栏上的运行按钮)。
所有“浏览”按钮的功能都是一样的,只是路径保存到的textbox不一样。
为所有“浏览”按钮添加上述代码,改变OpenFileDialog1.Filter中的代码(如背景音乐为“mp3”,课件章节为“doc”)和保存的路径(即TextBox3.Text=OpenFileDialog1.FileName中的TextBox文本框名,我这里分别是TextBox4和TextBox5)
实现“确定”按钮功能
先在publicclassForm1类前添加Importssystem.io,导入system.io。
接着双击“确定”按钮,添加下面的代码:
DimfAsStreamWriter=NewStreamWriter("pic.txt",True)
Dimstr=Me.TextBox3.Text‘TextBox3是背景图片的对话框。
f.WriteLine(str,System.Text.Encoding.UTF8)
f.Close()
如图:
最后,别忘了在本程序的debug文件夹上创建一个txt文档,命名为"pic.txt".
如图:
至此,我们又实现了“确定”按钮的功能,读者也可以尝试运行(点击工具栏上的运行按钮),先点击“浏览”选择素材,再点击“确定”将其路径保存到txt中。
所有“确定”按钮的功能都是一样的,只是路径保存到的textbox不一样。
为所有的确定按钮添加上述代码(注意改变素材保存的路径,即DimfAsStreamWriter=NewStreamWriter("pic.txt",True)中双引号之间的文件名,同时在debug文件夹下创建相对应的txt文档)。
实现“重置”按钮功能
重置功能比较简单,只需将所有文本框中的内容清空即可。
双击该按钮,添加如下代码:
Me.TextBox1.Text=""
Me.TextBox2.Text=""
Me.TextBox3.Text=""
Me.TextBox4.Text=""
Me.TextBox5.Text=""
实现“重新生成数据”按钮功能
这个功能比“重置”稍微复杂一点,因为要打开txt文档。
这里我们采用一种比较简便的方法------直接写空。
双击该按钮,添加如下代码:
Dimsw1AsStreamWriter=NewStreamWriter("pic.txt")
sw1.Write("")
sw1.Flush()
sw1.Close()
Dimsw2AsStreamWriter=NewStreamWriter("music.txt")
sw2.Write("")
sw2.Flush()
sw2.Close()
Dimsw3AsStreamWriter=NewStreamWriter("content.txt")
sw3.Write("")
sw3.Flush()
sw3.Close()
Dimsw4AsStreamWriter=NewStreamWriter("config.txt")
sw4.Write("")
sw4.Flush()
sw4.Close()
实现“完成”按钮功能
这个按钮是生成器中最为复杂的,因为它要实现的功能最多。
它必须创建一个目标文件夹(以用户输入的课件名称命名),用以存放生成的各种资料。
XXX课件目录的结构:
\XXX课件\(该目录下放XXX课件的执行文件)
\基本配置文件(包括config.txt,pic.txt,musci.txt三个文件)
\背景图片文件(包括1.JPG,2.JPG….它们是背景图片文件)
\背景音乐文件(包括1.mp3,2.mp3….它们是背景音乐文件)
\章节文件(包括1.doc,2.doc,….它们是课件的章节内容)
全部代码如下(双击“完成”按钮,添加如下代码):
DimfAsStreamWriter=NewStreamWriter("config.txt",True)
Dimstr1=Me.TextBox1.Text
Dimstr2=Me.TextBox2.Text
f.WriteLine(str1,System.Text.Encoding.UTF8)
f.WriteLine(str2,System.Text.Encoding.UTF8)
f.Close()
IfMe.TextBox1.Text=""Then
MsgBox("请输入课件名称!
")
ElseIfMe.TextBox2.Text=""Then
MsgBox("请输入课件章节数!
")
Else
'myname=Me.TextBox1.Text
Directory.CreateDirectory(str1)
Directory.CreateDirectory(str1&"\基本配置文件")
Directory.CreateDirectory(str1&"\背景图片文件")
Directory.CreateDirectory(str1&"\背景音乐文件")
Directory.CreateDirectory(str1&"\章节文件")
'下面复制指定文件
'复制图片路径文件及图片
Dimnum1AsInteger
num1=1
Dimsr1AsStreamReader=NewStreamReader("pic.txt",System.Text.Encoding.UTF8)
Dimfileline1AsString=""
Do
fileline1=sr1.ReadLine
Iffileline1<>""Then
FileSystem.FileCopy(fileline1,str1&"\背景图片文件\"&num1&".jpg")
'File.Copy(fileline1,"e:
\",True)
EndIf
num1=num1+1
LoopWhilefileline1<>""'判断语句不能用sr1.ReadLine<>"",绝对不能!
'复制音乐路径文件及音乐
Dimnum2AsInteger
num2=1
Dimfileline2AsString
Dimsr2AsStreamReader=NewStreamReader("music.txt",System.Text.Encoding.UTF8)
Do
fileline2=sr2.ReadLine
'readline是从开始起一行一行读下来,不是每次都读同一行
Iffileline2<>""Then
FileSystem.FileCopy(fileline2,str1&"\背景音乐文件\"&num2&".mp3")
EndIf
num2=num2+1
LoopWhilefileline2<>""
'判断语句不能用sr1.ReadLine<>"",绝对不能!
'复制章节路径图片及章节文件
Dimnum3AsInteger
num3=1
Dimfileline3AsString
Dimsr3AsStreamReader=NewStreamReader("content.txt",System.Text.Encoding.UTF8)
Do
fileline3=sr3.ReadLine
'readline是从开始起一行一行读下来,不是每次都读同一行
'MsgBox(fileline3)
Iffileline3<>""Then
FileSystem.FileCopy(fileline3,str1&"\章节文件\"&num3&".doc")
EndIf
num3=num3+1
LoopWhilefileline3<>""
'判断语句不能用sr1.ReadLine<>"",绝对不能!
'复制基本配置文件
FileSystem.FileCopy("config.txt",str1&"\基本配置文件\config.txt")
FileSystem.FileCopy("pic.txt",str1&"\基本配置文件\pic.txt")
FileSystem.FileCopy("music.txt",str1&"\基本配置文件\music.txt")
FileSystem.FileCopy("content.txt",str1&"\基本配置文件\content.txt")
至此,课件生成器的功能就基本实现了,但是作为软件,它还远没有全部完成。
比如窗体最大化的设置、直接用鼠标改变窗体大小的设置、外观背景的设置等。
这些,读者可根据自己需要在Form1的load事件和resize事件中编写。
另外,我们还没有把播放器放进目标文件夹中去。
那么下面我们来一起制作课件播放器。
课件播放器编写步骤
有了制作生成器的经验,相信大家应该对VS2005有更深入的了解了。
那么我们来分析一下更为复杂一些的课件播放器。
播放器里面有如下元素:
章节按钮:
与生成器的按钮功能不同的是,它是动态生成的,即根据config.txt中第二行(即生成器中输入的课件章节数)是多少,就生成多少个按钮。
F1系统帮助按钮:
点击这一按钮我们使其弹出一个新的对话框,上面写上本软
件的用法。
Word浏览区:
这其实是一个Axwebbrowser控件,可以浏览网页和Word文档。
背景图片按钮:
这一按钮的功能和生成器中实现方法基本一致,用以选择播放器的背景,图片为生成器中选择的图片,保存在生成器生成的目标文件夹中。
背景音乐按钮:
其实现方法与“背景图片”按钮原理相同,只是它在播放音乐时调用了windows的MediaPlayer控件。
END按钮:
使整个程序结束运行。
下面为各元素的实现代码:
首先,在VS2005中新建一个VBwindows应用程序窗体,命名为课件播放器。
将窗体设计成如下图所示:
改变各控件中的text值,变成下图所示:
注:
其中,中间的Word显示区为AxwebBrowser控件,底部的播放器为windowsmediaplayer控件。
这两个控件直接在工具栏中找不到。
需要在COM组件中添加到工具箱中去。
具体方法如下:
在菜单栏找到“工具”选项选择“选择工具箱项”
在弹出的对话框中的COM组件中找到这两个控件,选择它们并点击确定,即可把这两个控件添加到工具箱中去。
如下图所示:
此外,读者还要添加Openfiledialog控件,具体方法见课件生成器步骤。
下面我们来讨论播放器中各元素的功能实现方法。
考虑到通过生成器的学习,大家已经对已经比较了解了,这次我们就不分步介绍,而是直接介绍整体的实现方法。
双击课件播放器的窗体设计面板,播放器的整体代码如下:
ImportsSystem.io
PublicClassfrm
DimmypathAsString
‘实现动态章节按钮功能:
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.AxWindowsMediaPlayer1.Visible=False
'使音乐播放不可见,读者也可直接在属性栏中设置
mypath=Directory.GetCurrentDirectory()
DimsrAsStreamReader=NewStreamReader(mypath&"\基本配置文件\config.txt",System.Text.Encoding.UTF8)
DimfilelineAsString'读取config.txt中的章节数
fileline=""
fileline=sr.ReadLine
fileline=sr.ReadLine
Dimi,buttonstartAsInteger
i=1
buttonstart=12+75
WhileiDimnewbuttonAsButton=NewButton'开始动态生成按钮
newbutton.Name=i+1
newbutton.Text="第"&(i+1)&"章"
Me.Controls.Add(newbutton)
buttonstart=buttonstart+5
newbutton.Location=NewSystem.Drawing.Point(buttonstart,12)'摆放生成的按钮
buttonstart=buttonstart+75
AddHandlernewbutton.Click,AddressOfButton_Click'调用按钮单击事件
i=i+1
EndWhile
EndSub
PrivateSubButton_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
'响应按钮单击事件!
DimbtnAsButton=sender
DimiAsString
i=btn.Name
mypath=Directory.GetCurrentDirectory()
AxWebBrowser1.Navigate(mypath&"\章节文件\"&i&".doc")
EndSub
PrivateSubbutton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbutton1.Click
‘单击“button1”,即“第1章”时打开“1.doc”,在生成器生成的目标文件夹中。
mypath=Directory.GetCurrentDirectory()
AxWebBrowser1.Navigate(mypath&"\章节文件\1.doc")
EndSub
PrivateSubpic_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlespic.Click
‘单击“背景图片”按钮,选择背景图片。
这里我将按钮名称改成了pic,读者要是没改,那么就把上面一行代码中的“pic_Click”改成自己的按钮名称
DimmyStreamAsSystem.IO.Stream
OpenFileDialog1.InitialDirectory=mypath
OpenFileDialog1.Filter="imagesfiles(*.jpg)|*.jpg|Allfiles(*.*)|*.*"
OpenFileDialog1.FilterIndex=2
OpenFileDialog1.RestoreDirectory=True
IfOpenFileDialog1.ShowDialog()=Windows.Forms.DialogResult.OKThen
Me.BackgroundImage=Image.FromFile(OpenFileDialog1.FileName)
myStream=OpenFileDialog1.OpenFile()
EndIf
EndSub
PrivateSubmusic_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesmusic.Click
‘‘单击“背景音乐”按钮,选择背景音乐。
这里我将按钮名称改成了music,读者要是没改,那么就把上面一行代码中的“music_Click”改成自己的按钮名称。
DimmyStreamAsSystem.IO.Stream
OpenFileDialog1.InitialDirectory=mypath
OpenFileDialog1.Filter="mp3files(*.mp3)|*.mp3|Allfile