vb实验指导书_第1页
vb实验指导书_第2页
vb实验指导书_第3页
vb实验指导书_第4页
vb实验指导书_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前 言计算机软件范围之广,版本更新之快,体系膨胀之大往往令人目不暇接,无从下手。而计算机业内人士在计算机面前表现的自信,与它们掌握计算机开发工具的能力有直接关系。在众多软件开发工具中, Visual Basic 6.0是Windows环境下的开发工具。简单易学、功能强大的集成开发环境(IDE)及其可视化的编程机制,使初学者能在很短的时间即可掌握VB的编程方法,编制出Windows风格及运行机制的应用程序。如何把课堂讲解、上机编程、调试程序融会贯通在计算机教学过程中,是计算机“教”与“学”成功的关键。 “与其临渊羡鱼,不如退而结网”。道路只有一个:循序渐进,学习、实践、再学习。编制本书的目的,是给非计算机专业研究生或计算机专业本科生提供一册学习Visual Basic的辅助教材及教参。在学习过程中有程序可阅读,上机操作有参考及具体指导,使我们的学生较顺利地走入Windows程序设计大门。本教材参照了Visual Basic上机指导原本,指导书中凝聚了现教中心教师多年来教学经验体会的结晶,在此基础上增添了典型算法及基于Window平台的实例程序,以满足研究生的计算机基础教学需要。本教材编写过程中,得到了河北科技大学研究生处贾辉然教授、王德松教授及其工作人员的大力支持和帮助,作者在此一并表示感谢。随着计算机应用技术的不断发展,希望读者就本书内容提出改进意见,以促进我校研究生计算机教学不断发展。作者20043目 录第一章 Visual Basic编程基础1.1 常用控件的使用(一)- .4.1.2 常用控件的使用(二)-.6.1.3 常用控件的使用(三)-.8.1.4 多窗体设计-.9.1.5 菜单设计-.11.1.6 工具栏及其状态条设计-.14.1.7 多文档设计-.16.1.8 综合实例-.19.第二章 常用算法设计2.1 穷举-.32.2.2 递推-.34.2.3 迭代-.35.2.4 随机模拟-.37.2.5 递归-.38.2.6 排序-.39.2.7 查询-.41.2.8 字符串处理-.43.2.9 约瑟夫问题-.44.2.10 矩阵运算-.45.第三章 Visual Basic 应用实例3.1 文件操作(1) 文件操作函数应用-.48.(2) 文件系统对象(FSO)应用-.51.(3) 制作打开文件的完整对话框-.54.(4) 综合实例文件处理-.56.3.2 图形图像处理(1)动态图形设计-.59.(2)动态文字设计-.61.(3)时钟-.63.(4)日历-.66.3.3 多媒体编程(1)用Animation控件、Multimedia控件播放媒体文件 -.69.3.4 动态连接库及API应用(1) 基础知识-.71.(2) 使用DLL查找系统文件夹-.72.(3) 使用DLL绘制简单几何图形-.74.(4) 综合实例用Windows API函数遍历指定驱动器、目录的所有文件-.79.3.5 VBA实例(1)VB 调用Word 实现拼写检查-.86.(2)VB向 Word文档传送数据-.88.(3)综合实例以Excel图表显示VB处理结果-.90.3.6 数据库编程(1) 数据控件编程-.91.(2) DAO编程-.100.(3) ADO编程-.106.(4) 综合实例-使用TreeView与ListView实现数据集成-.113.3.7 网络编程(1)Client/Serve实例聊天室-.128.(2)用MAPI(消息应用程序编程接口)实现电子邮件的收发-.133.(3)DHTML编程-.139.第一章 Visual Basic编程基础1.1 常用控件的使用(一)(1)题目:文字编辑器(2)目的:掌握控件TextBox、ComboBox、ListBox、CheckBox、OptionButton、Frame的使用方法(3)设置属性对象类别对象名称CaptionTextTextBoxText1河北科技大学ComboBoxCombo1ListBoxList1CheckBoxCheck1(0)黑体CheckBoxCheck1(1)斜体CheckBoxCheck1(2)下划线OptionButtonOption1(0)红色OptionButtonOption1(1)绿色OptionButtonOption1(2)蓝色FrameFrame1效果FrameFrame2颜色(4) 界面设计(5)代码设计Private Sub Form_Load()Text1.FontBold = FalseText1.FontUnderline = FalseText1.FontItalic = FalseText1.Text = 河北科技大学Combo1.Text = 请选择显示字体.For i = 0 To Screen.FontCount - 1 Combo1.AddItem Screen.Fonts(i), iList1.AddItem Screen.Fonts(i), iNextEnd SubPrivate Sub Check1_Click(Index As Integer)Select Case IndexCase 0: Text1.FontBold = Not Text1.FontBoldCase 1: Text1.FontItalic = Not Text1.FontItalicCase 2: Text1.FontUnderline = Not Text1.FontUnderlineEnd SelectEnd SubPrivate Sub Combo1_click()Text1.FontName = Combo1.TextEnd SubPrivate Sub List1_Click()Text1.FontName = List1.TextEnd SubPrivate Sub Option1_Click(Index As Integer)Select Case IndexCase 0 ForeColor = RGB(255, 0, 0)Case 1 Text1.ForeColor = RGB(0, 255, 0)Case 2 Text1.ForeColor = RGB(0, 0, 255)End SelectEnd Sub6引深:在控制中加入字体大小的控件1.2 常用控件的使用(二)(1)题目:绘制图形(2)目的:掌握控件PictureBox、Shape、Timer、CommandButton的使用方法(3)设置属性对象类别对象名称CaptionPictureBoxPicture1ShapeShape1TimerTimer1CommandButtonCommand1画点CommandButtonCommand2画线CommandButtonCommand3画圆CommandButtonCommand4画图形(4)界面设计(5)代码设计Private Sub Form_Load()Picture1.DrawWidth = 5 设置 DrawWidth.Timer1.Enabled = FalseEnd SubPrivate Sub Command1_Click() 画点Dim XPos As Double, YPos As Double XPos = Rnd * Picture1.ScaleWidth 得到水平位置。 YPos = Rnd * Picture1.ScaleHeight 得到垂直位置。 Picture1.PSet (XPos, YPos), QBColor(Rnd * 15) End SubPrivate Sub Command2_Click()画线Dim xpos1 As Double, ypos1 As Double, xpos2 As Double, ypos2 As Double xpos1 = Rnd * Picture1.ScaleWidth 得到水平位置。 ypos1 = Rnd * Picture1.ScaleHeight 得到垂直位置。 xpos2 = Rnd * Picture1.ScaleWidth 得到水平位置。 ypos2 = Rnd * Picture1.ScaleHeight 得到垂直位置。 Picture1.Line (xpos1, ypos1)-(xpos2, ypos2), QBColor(Rnd * 15)End SubPrivate Sub Command3_Click()画圆Dim CX As Double, CY As Double, Radius As Double CX = Rnd * Picture1.ScaleWidth 得到水平位置。 CY = Rnd * Picture1.ScaleHeight 得到垂直位置。 Radius = Rnd * Picture1.ScaleWidth / 2 Picture1.Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)End SubPrivate Sub Command4_Click() 设置定时器Timer1.Enabled = Not Timer1.EnabledTimer1.Interval = 200End SubPrivate Sub Timer1_Timer()设置shape形状Shape1.Shape = Rnd * 5End Sub6.引深:添加一个画长方形的命令按钮及其代码1.3 常用控件的使用(三)(1)题目:图片浏览器(2)目的:掌握控件DirListBox、DriveListBox、FileBox、Image的使用方法(3)设置属性对象类别对象名称DirListBoxDir1DriveListBoxDrive1FileBoxFile1ImageImage1(4)界面设计(5)代码设计Private Sub Dir1_Change()File1.Path = Dir1.Path使文件列表路径随目录列表的变化而变化End SubPrivate Sub Drive1_Change()Dir1.Path = Drive1.Drive使目录列表路径随磁盘操作符变化而变化End SubPrivate Sub File1_Click()Dim ex As Stringex = UCase(Right(File1.filename, 3)截取被选中文件的扩展名If ex = JPG Or ex = BMP Or ex = JIF Or ex = GIF Or ex = ICO Then判断是否图片文件,如是则将被选中的图片文件加载至Image1显示Image1.Picture = LoadPicture(File1.Path & & File1.filename)Else MsgBox 文件不支持这种格式End IfEnd Sub6引深:如果被选中的是可执行文件(*.EXE),便执行此文件。 1.4 多窗体设计(1)题目:多窗口的Load与Show方法(2)目的:掌握控件多窗口的设计方法及Load 和 Show 的区别(3)设置属性对象类别对象名称CaptionFormForm1确省FormForm2确省FormForm3确省OptionButtonCommand1Load from3OptionButtonCommand2Show form3OptionButtonCommand3Load form2OptionButtonCommand4Hide form3OptionButtonCommand5Show form2OptionButtonCommand6Hide form2CheckBoxCheck1模态CheckBoxCheck2模态FrameFrame1From3FrameFrame2From2(4)界面设计(5)代码设计Option ExplicitPrivate Sub Command1_Click()If Command1.Caption = load form3 Then Load Form3 Command1.Caption = unload form3Else Unload Form3 Command1.Caption = load form3End IfEnd SubPrivate Sub Command3_Click()If Command3.Caption = load form2 Then Load Form2 Command3.Caption = unload form2Else Unload Form2 Command3.Caption = load form2End IfEnd SubPrivate Sub Command2_Click() Form3.Show Check1.Value 选中Check1其值为1,此时加载的窗体为模态窗体End SubPrivate Sub Command5_Click() Form2.Show Check2.ValueEnd SubPrivate Sub Command4_Click() Form3.HideEnd SubPrivate Sub Command6_Click() Form2.HideEnd Sub6.引深:show与load的具体区别、模态与非模态的区别。1.5 菜单设计(1)题目:菜单设计(2)目的:菜单编辑的使用 (3)设置属性菜单级别标题名称索引可见一级菜单命令(&M)M1二级菜单显示(&D)Show清除(&C)Clear-Dyn0不选-H退出(&X)Exit一级菜单外观WG二级菜单字体ZT三级菜单宋体ST黑体Ht二级菜单颜色Y三级菜单红色Red一级菜单弹出菜单Menu二级菜单CutCutPastePasteCopyCopyDeleteDelete-GSelectSelect(4)界面设计(5)代码设计Dim i As Integer , L As IntegerPrivate Sub Form_Load()Form1.Text1.Text = Clipboard.clearEnd SubPrivate Sub clear_Click()Text1.Text = dyn(0).Visible = Truei= i + 1Load dyn(i)动态加载菜单项dyn(i).Caption = i & - clear WELLCOMEEnd SubPrivate Sub Copy_Click() 复制选中文本到剪切板Clipboard.SetText Form1.Text1.SelText, 1End SubPrivate Sub Cut_Click()Clipboard.SetText Form1.Text1.SelText, 1Form1.Text1.SelText = End SubPrivate Sub Delete_Click()Form1.Text1.SelText = End SubPrivate Sub exit_Click()EndEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 2 ThenForm1.PopupMenu menuEnd IfEnd SubPrivate Sub ht_Click()Text1.FontName = 黑体End SubPrivate Sub Paste_Click()L = Form1.Text1.SelStartStr1 = Mid(Form1.Text1.Text, 1, L)str2 = Mid(Form1.Text1.Text, Form1.Text1.SelStart + 1, Len(Form1.Text1) - Len(Str1)Form1.Text1 = Str1 & Clipboard.GetText & str2End SubPrivate Sub red_Click()Text1.ForeColor = &HFFred.Checked = TrueEnd SubPrivate Sub Select_Click()Form1.Text1.SetFocusForm1.Text1.SelStart = 0Form1.Text1.SelLength = Len(Form1.Text1.Text)End SubPrivate Sub show_Click()Text1.Text = WELLCOME!dyn(0).Visible = Truei = i + 1Load dyn(i)dyn(i).Caption = i & -Display WELLCOMEEnd SubPrivate Sub st_Click()Text1.FontName = 宋体End Sub1.6 工具栏及其状态条(1)题目: 文档格式设置(2)目的:掌握控件Toolbar和 imagelist 的使用及statusbar的使用方法(3)设置属性菜单菜单级别标题名称一级菜单命令(&M)M二级菜单显示(&D)Dir清除(&C)Clear一级菜单修饰X二级菜单黑体B下划线U斜体I工具栏IndexKeyToolTipTextImage1Display显示12Clear清除23Bl黑体34unl下划线45it斜体5(4)界面设计(5)代码设计Private Sub B_Click()Text1.Text = 朋友,您好!Form2.Text1.FontBold = Not Text1.FontBoldB.Checked = Not B.CheckedEnd SubPrivate Sub clear_Click()Text1.Text = StatusBar1.Panels(s3) = 清除End SubPrivate Sub Dir_Click()Text1.Text = 朋友,您好!StatusBar1.Panels(s3) = 显示End SubPrivate Sub I_Click()Text1.Text = 朋友,您好!I.Checked = Not I.CheckedText1.FontItalic = Not Text1.FontItalicEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)Select Case Button.KeyCase displayText1.Text = 朋友,您好!StatusBar1.Panels(s3) = 显示Case clearText1.Text = StatusBar1.Panels(s3) = 清除Case blForm2.Text1.FontBold = Not Text1.FontBoldStatusBar1.Panels(s3) = 黑体Case itText1.FontItalic = Not Text1.FontItalicStatusBar1.Panels(s3) = 斜体Case unlText1.FontUnderline = Not Text1.FontUnderlineStatusBar1.Panels(s3) = 下划线End SelectEnd SubPrivate Sub U_Click()Text1.Text = 朋友,您好!U.Checked = Not U.CheckedText1.FontUnderline = Not Text1.FontUnderlineEnd Sub1.7 多文档设计(1)题目:人事管理 (2)目的:掌握多重窗体和多文档窗体的设计和使用(3)设置属性:菜单级别标题名称一级菜单档案编辑D二级菜单部门M11员工M12-Q退出M13一级菜单数据查询S二级菜单工资M21职称M22一级菜单窗口排列C二级菜单层叠M31平铺M32名称CaptionMDIchildFrmMDI(多文档窗体)人事管理FrmDept部门TrueFrmEmployee员工TrueFrmSalary工资TruefrmProf职称True(4)界面设计 (5)代码设计frmlogin事件驱动程序Option ExplicitPublic LoginSucceeded As BooleanPrivate Sub cmdCancel_Click() 设置全局变量为 false,指示登录失败 LoginSucceeded = False Me.HideEnd SubPrivate Sub cmdOK_Click() If txtPassword = p Then MsgBox (合法用户) frmMDI.Show 此处放置代码给调用子程序传递成功信息 LoginSucceeded = True Me.Hide Else MsgBox 无效的密码,再试一次!, , 登录 txtPassword.SetFocus SendKeys Home+End End IfEnd Subfrmmdi事件驱动程序Option ExplicitPrivate Sub m11_Click()frmdept.Showm11.Checked = TrueEnd SubPrivate Sub m12_Click()frmemployee.Showm12.Checked = TrueEnd SubPrivate Sub m13_Click()EndEnd SubPrivate Sub m21_Click()frmsalary.Showm21.Checked = TrueEnd SubPrivate Sub m22_Click()frmprof.Showm22.Checked = TrueEnd SubPrivate Sub m31_Click()frmMDI.Arrange vbCascadem31.Checked = Truem32.Checked = FalseEnd SubPrivate Sub m32_Click()frmMDI.Arrange vbTileHorizontalm31.Checked = Falsem32.Checked = TrueEnd Sub1.8综合实例1. 设计目标:学生成绩处理2. 程序设计要求如下:(1)实现学生成绩的录入:两种方法:手工录入和文件自动填充(2)学生成绩的浏览可浏览不同专业,不同班级学生成绩;(3)学生成绩处理 按专业、班级、性别及平均成绩排序输出 分类汇总; 学生成绩归档; 报表输出3. 创建数据结构添加标准模块,在Module1.bas中定义学生数据结构。其中包括8个数据成员,分别为专业、班级、姓名、性别、数学、英语、计算机分数和平均成绩。工程资源设置如下图:代码如下Public Const Num = 40 结构数组尺寸Type Student Prof As String专业 Class As String班级 Name As String姓名 Sex As String性别 Math As Integer数学成绩 Eng As Integer英语成绩 Comp As Integer计算机成绩 Aver As Single平均成绩End Type4. 界面设计首先由菜单”工程”/”部件”,向应用程序中添加“Microsoft Tabbed Dialog Control 6.0”,“Microsoft Common Dialog 6.0”及”Microsoft Windows common Controls 6.0”控件,接着界面设计如下:(1) 成绩录入 属性设置对象类别对象名称CaptionText备注SSTabSSTab1成绩录入选项卡控件ToolBarToolBar1工具栏ImageListImageList1图片列表控件ImageListImageList2CommonDialogCommonDialog1通用对话框FrameFrame1选择专业/班级FrameFrame2姓名/性别FrameFrame3成绩ComboBoxCombo1选择专业ComboBoxCombo2选择班级OptionButtonOption1男OptionButtonOption2女HScrollBarHScorll1数学成绩HScrollBarHScroll2英语成绩HScrollBarHScroll3计算机成绩TextBoxText1输入姓名TextBoxText2数学成绩TextBoxText3英语成绩TextBoxText3计算机成绩CommandButtonCommad1确认StatusBarStatusBar1状态条(2) 成绩显示/编辑界面设计如下 属性设置对象类别对象名称CaptionText备注TreeViewTreeView1树状视图控件ListViewListView1列表视图控件(3) 保存/打开及成绩处理属性设置对象类别对象名称CaptionText备注ListViewListView2成绩处理4.代码设计Dim StdScore() As Student, TempScore As StudentDim Counter As IntegerDim itmX As ListItemPrivate Sub Form_Load() 初始化SSTab1 ReDim StdScore(Num) 重新定义记录数组 Dim i As Integer, j As Integer SSTab1.Tab = 0 初始选择中成绩录入卡 Counter = 0 Option1.Value = True Combo1.AddItem 计算机技术 Combo1.AddItem 化学工程 Combo1.AddItem 机械制造 Combo2.AddItem 0101 Combo2.AddItem 0102 Combo2.AddItem 0103 Combo2.AddItem 0201 Combo2.AddItem 0202 Combo2.AddItem 0203 初始化SSTab2 ListView1.View = lvwReport ListView1.GridLines = True ListView1.MultiSelect = True ListView1.ColumnHeaders.Add 1, , 姓名, 1000, 0, 0 ListView1.ColumnHeaders.Add 2, , 性别, 500, 0, 0 ListView1.ColumnHeaders.Add 3, , 数学, 1000, 0, 0 ListView1.ColumnHeaders.Add 4, , 英语, 1000, 0, 0 ListView1.ColumnHeaders.Add 5, , 计算机, 1000, 0, 0 ListView1.ColumnHeaders.Add 6, , 平均分, 1000, 0, 0 TreeView1.Style = tvwTreelinesPlusMinusPictureText TreeView1.LineStyle = tvwTreeLines TreeView1.Nodes.Add , , ROOT, 学生成绩, closed, open TreeView1.LineStyle = tvwTreeLines j = Combo1.ListCount For i = 1 To j TreeView1.Nodes.Add ROOT, tvwChild, Combo1.List(i - 1), Combo1.List(i - 1), closed, open Next i 初始化SSTab3 ListView2.View = lvwReport ListView2.GridLines = True ListView2.Sorted = True ListView2.ColumnHeaders.Add 1, , 专业, 1500, 0, 0 ListView2.ColumnHeaders.Add 2, , 班级, 1000, 0, 0 ListView2.ColumnHeaders.Add 3, , 姓名, 1200, 0, 0 ListView2.ColumnHeaders.Add 4, , 性别, 600, 0, 0 ListView2.ColumnHeaders.Add 5, , 数学, 1000, 0, 0 ListView2.ColumnHeaders.Add 6, , 英语, 1000, 0, 0 ListView2.ColumnHeaders.Add 7, , 计算机, 1000, 0, 0 ListView2.ColumnHeaders.Add 8, , 平均分, 1000, 0, 0 End SubPrivate Sub Command1_Click() Dim i As Integer, j As Integer, bz As Boolean Dim str1 As String, str2 As String 将输入数据存于临时数组 TempScore.Prof = Trim(Combo1.Text) TempScore.Class = Trim(Combo2.Text) TempScore.Name = Text1.Text If Option1.Value = True Then TempScore.Sex = Option1.Caption Else TempScore.Sex = Option2.Caption End If TempScore.Math = Val(Text2.Text) TempScore.Eng = Val(Text3.Text) TempScore.Comp = Val(Text4.Text) TempScore.Aver = (StdScore(Counter).Math + StdScore(Counter).Eng + StdScore(Counter).Comp) / 3# 判断当前记录的专业、班级是否于现存记录重合 bz = False For i = 1 To Counter If TempScore.Prof = StdScore(i).Prof And TempScore.Class = StdScore(i).Class Then bz = True Exit For End If Next i Counter = Counter + 1 累计输入记录数,并保存 StdScore(Counter).Prof = TempScore.Prof StdScore(Counter).Class = TempScore.Class StdScore(Counter).Name = TempScore.Name StdScore(Counter).Sex = TempScore.Sex StdScore(Counter).Math = TempScore.Math StdScore(Counter).Eng = TempScore.Eng StdScore(Counter).Comp = TempScore.Comp StdScore(Counter).Aver = (TempScore.Math + TempScore.Eng + TempScore.Comp) / 3# If Not Trim(StdScore(i).Class) = Then str1 = Trim(TempScore.Prof) If bz = False Then 如果与现存记录不重合则写入ListView1 TreeView1.Nodes.Add str1, tvwChild, , StdScore(i).Class, closed, open End If End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer) Dim YesNo As String, str As String 退出之前是否保存录入数据 YesNo = InputBox(是否保存成绩?, 提示, Yes) If YesNo = Yes Then CommonDialog1.Filter = *.dat|*.dat CommonDialog1.ShowSave str =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论