华北科技学院安全工程学院综合性实验实验报告课程名称计算机技术基础(VB)实验学期2010 至2011 学年第 2 学期学生所在系部安全工程学院年级大一专业班级采矿B101学生姓名朱寅学号201010014112任课教师李芙玲实验成绩《计算机技术基础(VB)》课程综合性实验报告开课实验室:基础实验室2010 年7 月6日实验题目Visual Basic综合应用程序开发一、实验目的1、掌握数组的应用:(1)数组的定义(2)数组的基本操作,包括数组的输入输出、数组元素的比较、求平均值、数组的排序等。
2、会使用过程编程和字符串操作(1)sub过程的定义与调用(2)function过程的定义调用(3)字符串的大小写转换操作3、掌握基本控件的使用包括常用标准控件的使用,如标签、按钮、文本框、单选按钮、滚动条等。
4、掌握菜单和工具栏的使用二、设备与环境硬件:多媒体计算机软件:Windows 2000以上的操作系统、Visual Basic集成开发环境三、实验内容1、先进入欢迎界面,在屏幕上显示"欢迎您使用本程序",并弹出密码框,等待输入密码。
(5%)2、密码正确后进入系统主界面,主界面包括“数组应用”、“过程应用”、“控件应用”和“退出”等菜单,并提供相关工具栏或命令按钮。
(10%)3、“数组应用”菜单中包括“数组操作”子菜单,单击此菜单,弹出“数组操作”对话框,如图1所示。
(35%,每个按钮功能为5%)。
题目描述如下:在名称为“数组操作”的窗体上有一个label控件,4个text控件及7个命令按钮,功能如下:(1)开始启动工程时,界面上除“输入”及“返回”按钮之外,其他按钮均不可用(灰色显示)。
(2)单击“输入”按钮之后,利用inputbox让用户连续且必须输入10个整数。
若输入为非数字符号,则给出警告“输入数据无效,请重新输入,请输入第n个数”。
(3)输入完毕后,“输入”按钮变灰,其他变为可用状态。
(4)按相应的按钮可分别将输入的数据升序或降序排列,及求最大、最小值,并在右侧对应的文本框中显示(注意用A(10)存放最大数,A(1)存放最小数)。
(5)单击“清空”按钮将所有文本框清空。
4、“过程应用”菜单中包括“字符转换”子菜单,单击此菜单,弹出“字符转换”对话框,如图2所示,要求必须将“大小写转换”功能定义为一个sub过程,通过调用该过程完成大小写转换。
(25%)题目描述如下:在“字符转换”窗体上有两个文本框、三个单选按钮和一个命令按钮。
运行时,在text1中输入若干个大写和小写字母,并选中一个单选按钮,再单击“转换”按钮,则按选中的单选按钮的标题进行转换,结果放入text2。
5、单击“控件应用”菜单,弹出“数学运算”对话框,如图3所示。
(25%)题目描述如下:在“数学运算”窗体上有一个名称为cmd1、标题为“计算”的命令按钮;两个水平滚动条,名称为hs1和hs2,其max属性均为100,min属性为1;四个标签,名称为lab1、lab2、lab3和lab4,标题分别为“运算数1”、“运算数2”、“运算结果”和空白;此外还有一个包含四个单选按钮的控件数组,名称为opt1,标题为“+”、“-”、“*”和“/”。
程序运行后,移动两个滚动条中的滚动框,用滚动条的当前值作为运算数,如果选中一个单选按钮,然后单击命令按钮,相应的计算结果将显示在lab4中。
6、单击“退出”菜单,退出程序运行。
四、实验结果及分析1.欢迎界面的设置进入欢迎界面,需要输入密码12345,运行程序。
密码输入必须为数字,否则弹出消息对话框,提示需输入数字。
若密码输入正确,登陆下一界面。
欢迎界面如图:主要代码为:Private Sub Command1_Click()If Text1.Text <> "12345" ThenText1.SetFocusText1.Text = ""MsgBox "请输入正确的密码"ElseUnload MeForm2.ShowEnd IfEnd Sub2.主界面的设置在欢迎界面点击登录后弹出主界面,利用工具——菜单编辑器依次编辑“数组应用”、“过程应用”、“控件应用”和“退出”等菜单,在数组应用下添加“数组操作”子菜单,在过程应用下添加“字符转换”子菜单,二者均链接有快捷键。
当点击数组操作时,主界面关闭,数组操作界面弹出,当点击字符转换时,主界面关闭,字符转换界面弹出。
在主界面窗体上添加了图片,设置命令按钮。
运行界面如图:主要代码如下:Private Sub sc_Click()Unload MeForm3.ShowEnd SubPrivate Sub sxys_Click()Unload MeForm5.ShowEnd SubPrivate Sub tc_Click()EndEnd SubPrivate Sub zfzh_Click()Unload MeForm4.ShowEnd Sub3.数组操作界面的设置进入此界面,点击“输入”命令按钮,弹出inputbox对话框,用键盘依次输入10个数,然后“升序排列”“降序排列”、“最大值”、“最小值”等命令按钮均变为可用,“输入”按钮变为不可用,依次点击,实现排序,最值功能。
点击“清空”,“输入”变为可用,可再次应用。
主要代码如下:Private Sub Command2_Click()For i = 1 To 9imin = iFor j = i + 1 To 10If a(j) < a(imin) Then imin = jNext jt = a(i)a(i) = a(imin)a(imin) = tNext iFor i = 1 To 10m = Str(a(i))Text1.Text = Text1.Text + m + " "Next iEnd SubPrivate Sub Command1_Click()For i = 1 To 10m: a(i) = InputBox("请输入第" & i & "个数") If Not IsNumeric(a(i)) ThenMsgBox "输入必须为数字", , "警告"GoTo mEnd IfNext iCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueCommand6.Enabled = TrueCommand1.Enabled = FalseFor i = 1 To 10a(i) = Val(a(i))Next iEnd SubPrivate Sub Command5_Click()Min = a(1)For i = 2 To 10If a(i) < Min Then Min = a(i)Next iText4.Text = MinEnd Sub运行效果如下图:4.字符转换界面的设置:在上面文本框中输入字符,选择单选按钮,决定转换的类别,然后点击“转换”命令按钮,转换后的内容在下文本框展现。
点击“返回”,则返回主界面。
在编写代码时应用函数子过程,主要代码如下:Sub dxzh(a)If Option2.Value Then a = UCase(Text1.Text)If Option3.Value Then a = LCase(Text1.Text)If Option1.Value Thenc = Len(a)For i = 1 To cm = Mid(a, i, 1)If Asc(m) <= Asc("z") And Asc(m) >= Asc("a") Thenn = UCase(m)ElseIf Asc(m) <= Asc("Z") And Asc(m) >= Asc("A") Thenn = LCase(m)End IfText2.Text = Text2.Text + nNext ia = Text2.TextEnd IfEnd SubPrivate Sub Command1_Click()Text2.Text = ""a = Text1.TextCall dxzh(a)Text2.Text = aEnd Sub运行界面如下图:5.数学运算界面的设置:拉动滚动条,分别选中两个运算数,再选择加减乘除单选按钮,点击“计算”则显示运算式并得出结果。
单击“返回”则退回主界面。
运行效果如下图:主要代码:Private Sub Command1_Click()m = Val(Label5.Caption)n = Val(Label6.Caption)If Option2.Value Then s = m + n: Label4.Caption = m & "+" & n & "=" & sIf Option4.Value Then s = m - n: Label4.Caption = m & "-" & n & "=" & sIf Option3.Value Then s = m * n: Label4.Caption = m & "*" & n & "=" & sIf Option1.Value Then s = m / n: Label4.Caption = m & "/" & n & "=" & sEnd SubPrivate Sub HScroll1_Change()Label5.Caption = HScroll1.ValueEnd SubPrivate Sub HScroll1_Scroll()Label5.Caption = HScroll1.ValueEnd SubPrivate Sub HScroll2_Change()Label6.Caption = HScroll2.ValueEnd SubPrivate Sub HScroll2_Scroll()Label6.Caption = HScroll2.ValueEnd Sub6.遇到的问题及解决办法:(1).在窗体上插入图片时,标签总是覆盖住部分图片。