1、监控系统程序设计北京林业大学工学院实 验 报 告课程名称_监控系统程序设计_班级_自动化XXXX姓 名_XXXX _学号_XXXXXXXXXX_实验地点_学研XX机房_指导教师_张超一、罗琴娟_成绩_实验一一实验目的:1.了解VB系统对计算机软件、硬件的要求。2.掌握启动和退出VB的方法。3.了解和使用VB集成开发环境各窗口、菜单的一般功能。4.熟悉建立、编辑、运行、保存一个简单的VB应用程序的全过程。5.了解文本框、标签框、命令按钮的构造及其属性、事件和方法。二实验内容:题目1 编写一个应用程序,界面如下图所示1界面上有3个按钮,一个是“显示”按钮,一个是“清除”按钮,一个是“结束”按钮。把
2、文本框的内容设置为空白。2程序运行后,如果点击“显示”按钮,则在文本框中显示“欢迎使用Visual Basic 6.0”,如下图所示:3点击“清除”按钮,则清除文本框中显示的内容。如下图所示:4点击“退出”按钮,则结束程序。题目2 在窗体上画两个文本框和一个命令按钮,然后在代码窗口中编写如下事件过程:Private Sub Command1_Click() Text1.Text = “VB Programming” Text2.Text = “Text1.Text” Text1.Text = “ABCD”End Sub程序运行后,单击命令按钮,在两个文本框中各显示什么内容?题目3在窗体上画一个
3、文本框和两个命令按钮,并把两个命令按钮的标题分别设置为“显示”和“清除”。程序运行后,在文本框中输入一行文字(例如“程序设计”),如果单击第一个命令按钮,则把文本框的内容显示为窗体标题;如果单击第二个命令按钮,则清除文本框中的内容。三源代码:题目1 Private Sub Command1_Click()Text1.FontSize = 12Text1.Text = 欢迎使用Visual Basic6.0End SubPrivate Sub Command2_Click()Text1.FontSize = 12Text1.Text = End SubPrivate Sub Command3_C
4、lick()EndEnd Sub 题目2 Private Sub Command1_Click()Text1.Text = VB ProgrammingText2.Text = Text1.TextText1.Text = ABCDEnd Sub 题目3Private Sub Command1_Click()Form1.Caption = Text1.TextEnd SubPrivate Sub Command2_Click()Text1.Text = End Sub 实验二一实验目的:1练习使用选择结构。2练习使用判断语句解决数学问题。3练习使用for循环。4词频统计应用。5*。二实验内容:
5、题目1 选择结构编写一个应用程序,界面如下图所示5界面上有2个按钮,一个是“出题”按钮,一个是“答题”按钮6点击“出题”按钮,在两个标签上显示随机生成的数,数字范围在150之间7用户看到生成的数字后,计算2个数的和,将值填写到文本框内。8点击“答题”按钮。判断答案填写是否正确。如果填写正确,弹出“回答正确”;如果错误,也给出提示,并弹出正确答案题目提示:1产生a,b内的随机数公式:Int(b-a+1)* Rnd+a)2用户提示,可以用MsgBox题目2 五角星数一个5位数,它的每一位数字的5次方之和,与它本身的值相等,我们称这样的数为五角数。请输出所有的五角星数(最终结果有54748,9272
6、7,93084)。设计界面。例如,54748这个数:54748 = 55 + 45 + 75 + 45 + 85题目提示:最小的五位数到最大的五位数内循环,对每一个五位数分离它各个数字,然后求各个数字的5次方之和。题目3 For 语句计算的值(x1)。程序运行时通过文本框输入x和n的值,单击命令按钮,在另一个文本框中输出y的值,运行界面如下图所示。(参考界面设计,实际结果为1+0.5+0.25+0.125=1.875)题目4 词频统计(选做题)随机输入一个字母数字字符串(字母不区分大小写,例如A与a相同,Z与z相同),统计字母出现的频率。例如,当输入字母数字字符串“H2e3LL4Ow5oRLd
7、”,输出字母词频:h出现1次e出现1次l出现3次o出现2次r 出现1次d出现1次三源代码:题目1 选择结构Private Sub Command1_Click()Text1.Text = Label3.Caption = Int(50 - 1 + 1) * Rnd + 1)Label4.Caption = Int(50 - 1 + 1) * Rnd + 1)End SubPrivate Sub Command2_Click()Dim x, y As Singlex = Label3.Captiony = Label4.Captionmsg1$ = 回答正确msg2$ = 回答错误。正确答案是:
8、 & x + yIf Text1.Text = x + y ThenPrint MsgBox(msg1$)ElsePrint MsgBox(msg2$)End IfEnd Sub 题目2 五角星数Private Sub Command1_Click() Dim i, j, k, l, m As Double Dim num As Double Dim n As Double For i = 1 To 9 For j = 0 To 9 For k = 0 To 9 For l = 0 To 9 For m = 0 To 9 n = i 5 + j 5 + k 5 + l 5 + m 5 num
9、= i * 10000 + j * 1000 + k * 100 + l * 10 + m If (n = num) Then Text1.Text = Text1.Text & & num End If Next Next Next Next NextEnd Sub题目3 For 语句 实验三 一实验目的:1练习while循环的使用。2练习滚动条控件的使用。3使用image控件显示图像。4使用ListBox控件输入输出。5使用数组改变数据顺序。二实验内容:题目1 打印菱形(while)使用while循环打印如菱形,要求可通过输入行数n,来控制打印的层数,例如:输入n=1,打印*输入n=3,打
10、印* *如当输入n=7,打印* * *提示:形成菱形的行数只能为奇数,n=1,3,5,2n+1,因此当n输入不合理,需要给出提示。题目2 标准体重设计程序实现对标准体重的判断。程序运行时,选择性别,输入身高和体重,单击“测试”,滚动条会根据计算结果,滑动到“偏瘦”、“标准”或“偏胖”的位置,如图所示。(1)对于标准体重的计算,公式如下:男性:(身高80)70标准体重女性:(身高70)60标准体重(2)对于标准身材的判定方法如下:理想身材范围:标准体重+20或-20;偏胖:理想体重20%; 偏瘦:理想体重20%。提示:(1)滚动条表示的范围分为3档,所以滚动条的Min和Max可以设置为0和2。(
11、2)单击“测试”时,根据身高首先计算标准体重。利用选择结构,判断Option1的Value如果是True,就按照男性公式计算;如果Option2的Value是True,就按照女性公式计算;(3)根据标准体重的值,与用户输入的体重值比较,设定滚动条的Value属性取值为0、1、2,分别表示“偏瘦”、“标准”、“偏胖”题目3 移动的图片1.请先上网搜寻自己喜欢的图片。2.要求程序运行时的初始界面如图4-17(a)所示,3.通过拖动滚动条,移动图片位置,如图4-17(b)和4-17(c)所示。4.提示:利用Image显示图片,通过设定image控件的left属性移动图片。 (a) (b) (c)5.
12、完成实验后,窗体文件(.frm)和工程文件(.vbp)以及图片打包为zip/rar压缩文件,并将压缩文件重命名为学号后2位姓名.zip,例如,17李明.zip。文件夹包括内容:题目4 数组逆转1.程序运行时单击窗体,依次探出如图(a)所示的输入框(用ListBox控件来做)。2.要求点击input后,可以依次输入6个整数,保存在一个一维数组中;3.然后点击reverse之后,可以将数组元素的值进行逆序存放,之后输出,如图(b)所示。提示:逆序前数组中的第1个元素的值,在逆序后,应该变成第6个元素的值,依次类推。 (a) (b)三源代码:题目1 打印菱形(while)Private Sub Co
13、mmand1_Click()Picture1.ClsDim n, m, i, X As Integer n = Text1.TextIf (n Mod 2 = 0) Or (n 0 Dim a(100) As String m = 0 While m 0 m = 0 While m X a(m) = * m = m + 1 Wend Picture1.Print Tab(n + 1) / 2); For j = 0 To (i * 2 - 1) Picture1.Print a(j); Next j Picture1.Print Erase a X = X - 2 n = n + 2WendE
14、nd IfEnd Sub 题目2 标准体重Private Sub Command1_Click()Dim a, b, c, x, y As Integerx = Text1.Texty = Text2.TextIf Option1 = True Thena = (x - 80) * 0.7ElseIf Option2 = True Thena = (x - 70) * 0.6End Ifb = a * 0.8c = a * 1.2If y c ThenHScroll1.Value = 2ElseHScroll1.Value = 1End IfEnd Sub 题目3 移动的图片Private S
15、ub HScroll1_Change()Image1.Left = HScroll1.Value + 840End Sub 题目4 数组逆转Dim a(6), t As IntegerPrivate Sub Command1_Click()List1.ClearFor i = 0 To 5a(i) = InputBox(请输入一位数)List1.AddItem (a(i)Next iEnd SubPrivate Sub Command2_Click()List2.ClearFor i = 0 To 2t = a(i)a(i) = a(5 - i)a(5 - i) = tNext iFor i
16、= 0 To 5List2.AddItem (a(i)Next iEnd Sub实验四一实验目的:1利用VB求函数值。2练习数组的使用。3练习function过程的使用。4分数计算。5表达式求值。二实验内容:题目1 数组练习 分数统计单击“输入”,利用InputBox输入6个百分制成绩;单击“输出”,统计出成绩平均分,并显示来;统计出高于平均分(含等于)的学生成绩,显示出来。题目2 过程&数组练习 Fibonacci数列自由设计界面,用数组求得Fibonacci数列(1 1 2 3 5 8 13 21 34)的前20项。点击按钮“Fibonacci数列”,按照每行5个输出到Listbox, F
17、ibonacci数列数学描述式为:F(i) = F(i-2) + F(i-1)。(a)前20项,每行5个输出到Listbox中提示:换行符:vbCrLf题目3 过程练习 分数计算编写一个求三个数最大值的函数和最小值函数。然后调用此函数求下列表达式的值。要求定义表达式如下:运行界面如下图1所示,首先在文本框中输入a,b,c三个数,然后单击“表达式计算”按钮,在文本框中输入表达式的值m。题目4 过程练习 表达式求值自行设计界面,用户可以输入一个整数n,单击窗体上的“计算”按钮,求解-1+(1+2)-(1+2+3)+(-1)n(1+2+3.+n),其中n ave) Thenmsg1$ = score
18、(i)Text2.Text = msg2$ + msg1$ + msg2$ = Text2.TextEnd IfNext iEnd SubPrivate Sub Command2_Click()EndEnd Sub 题目2 过程&数组练习 Fibonacci数列Private Sub Command1_Click()Dim f(20) As Integerf(0) = 0f(1) = 1For i = 2 To 20f(i) = f(i - 2) + f(i - 1)Next ij = 1For k = 1 To 4For i = 1 To 5msg1$ = f(j)msg$ = msg$ +
19、 msg1$ + j = j + 1Next iList1.AddItem msg$List1.AddItem vbCrLfmsg$ = Next kEnd Sub题目3 过程练习 分数计算Public Function max(ByVal a As Double, ByVal b As Double, ByVal c As Double) As Doublemax = aIf a b Thenmax = bIf max b Thenmin = bIf min c Thenmin = cEnd IfEnd IfEnd FunctionPrivate Sub Command1_Click()Di
20、m a, b, c, m As Doublea = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)m = max(a, b, c) / (min(a + b, b, c) * max(a, b, b + c)Text4.Text = mEnd Sub题目4 过程练习 表达式求值Function sum(ByVal n As Integer) As IntegerFor i = 1 To nsum = sum + iNext iEnd FunctionPrivate Sub Command1_Click()n = Text1.TextF
21、or i = 1 To nx = x + (-1) i) * sum(i)Next iText2.Text = xEnd SubPrivate Sub Command2_Click()EndEnd Sub实验五一实验目的:1了解VB界面如何添加控件。2认识串行通信控件。3使用VB控制串口的打开与关闭、连接与断开。4利用串口发送和接受信息。二实验内容:程序设计界面图下图所示。在工程中添加串行通信控件(该控件在运行时不可见),并放入表单中,将属性Rthreshold从默认的0改为1,其他属性不变;将表单名改为frmMain,在表单中添加两个标签(Label),将Caption属性分别命名为“接受”
22、和“发送”;添加两个文本框,将Text属性清空,并分别将Name属性更改为txtReceive与txtSend;添加三个命令按钮,分别将Name属性更改为cmdOpen、cmdClose、cmdSend,并将Caption属性一次更改为“打开”、“关闭”与“发送”,将cmdClose与cmdSend的Enable属性更改为False。实现功能:点击“打开”按钮,将虚拟串口“COM1”和“COM2”相连;此时在“发送”文本框内输入任意字符串“abc”;点击“发送”按钮;在“接收”文本框内出现发送的字符串“abc”。点击“关闭”按钮,关闭串口,此时再发送字符串,接收不到字符串。三源代码:Priva
23、te Sub cmdClose_Click()MSComm1.PortOpen = FalseMSComm2.PortOpen = False cmdSend.Enabled = FalsecmdClose.Enabled = FalseEnd SubPrivate Sub cmdOpen_Click()MSComm1.PortOpen = TrueMSComm2.PortOpen = TruecmdSend.Enabled = TruecmdClose.Enabled = TrueEnd SubPrivate Sub cmdSend_Click()MSComm1.Output = txtSe
24、nd.Text + txtReceive.Text = txtReceive.Text + MSComm2.InputEnd SubPrivate Sub Form_Load()MSComm1.CommPort = 2MSComm1.Settings = 9600,n,8,1MSComm1.InputMode = 0MSComm1.RThreshold = 1MSComm2.CommPort = 3MSComm2.Settings = 9600,n,8,1MSComm2.InputMode = 0MSComm2.RThreshold = 1End Sub 总结:通过对Visual Basic程
25、序设计教程的 学习,让我初步了解了VB的一些基本知识、基本语法、编程方法和常用算法。刚进行VB学习时,感觉这门课程很枯燥、晦涩、难懂,不明白它为什么会引起那么多编程爱好者的学习兴趣,那时候我总认为这些人是怪胎、天才。这学期在张老师的带领下,我走进了VB的世界,那些VB的控件、按钮和代码是那么的难懂、更不用谈自己编程了。但我并没有因此放弃学习,在张老师的教导下,我渐渐掌握了VB的编程方法,已经可以编一些小程序了。自己渐渐有了自信去学习VB了! 通过这几次的实验检验了自己的的学习成果,虽然实验有点难度,但最后在老师的指导下成功完成。一学期是VB课程学习结束了,但我对VB的学习还要加强,对一些较复杂的VB程序的编程还是很吃力。在学习VB后,我明显感觉到在生活中的心思更加缜密了,对于问题的分析能力有了一点提高!在学习VB中,懂得了团队的力量也知道了个人的力量是有限的,有些事还是要集体的努力。对于一些不懂的问题在经过思考之后还是难以解决的还是要去问老师和同学,这样既能增进感情交流又能节约时间。在这里要感谢张老师和罗老师耐心的指导和热心的帮助,因为自己的能力有限常常麻烦老师。.忽略此处.