《VB练习题(上机)(47页).doc》由会员分享,可在线阅读,更多相关《VB练习题(上机)(47页).doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-第一部分1 在窗体上添加一个命令按钮(名称为Cmd1,标题为输出平均值)。程序运行后,单击命令按钮完成以下工作:随机产生20个0到1000的整数,将其放入一个一维数组中求出所有元素的平均值,并显示在窗体上(如下图所示)Private Sub Cmd1_Click()Dim a%(19), i%, sum!, aver!RandomizeFor i = 0 To 19 a(i) = Int(Rnd * 1001) sum = sum + a(i)Next iaver = sum / 20Print averEnd Sub2 请在名称为Form1的窗体上添加一个名称为Text1的文本框和一个名称
2、为C1、标题为转换的命令按钮,如下图所示。在程序运行时,单击转换按钮,可以把Text1中的小写字母转换为大写,把大写字母转换为小写,其他字符不变。Private Sub C1_Click()Dim ch As String, ch1 As String, i%ch = Text1For i = 1 To Len(ch) If Asc(Mid(ch, i, 1) = 65 And Asc(Mid(ch, i, 1) max Then max = a(i)Next iPrint maxEnd Sub4 请设计如下图所示窗体界面。程序运行时,在选中一个或两个复选框和一个单选按钮时,单击命令按钮,则对
3、文本框中的文本内容做相应的设置。请编写适当的事件过程,完成上述功能。 Private Sub Command1_Click()If Option1.Value = True Then Text1.FontName = 宋体Else Text1.FontName = 隶书End IfIf Check1.Value = 1 Then Text1.FontUnderline = TrueElse Text1.FontUnderline = FalseEnd IfIf Check2.Value = 1 Then Text1.FontItalic = TrueElse Text1.FontItalic
4、= FalseEnd IfEnd Sub5 在名称为Form1的窗体上添加一个名称为Text1的文本框;添加两个标题分别为对齐方式、字体,名称分别为Fm1、Fm2的框架;在Fm1框架中添加三个单选按钮,标题分别为左对齐、居中、右对齐,名称分别为Opt1、Opt2、Opt3;在Fm2框架中添加两个单选按钮,标题分别为宋体、黑体,名称分别为Opt4、Opt5。 要求:编写五个单选按钮的Click事件过程,使程序运行时,单击这些单选按钮,可以对文本框中的内容实现相应的操作(如图所示)。Private Sub Opt1_Click()If Opt1 Then Text1.Alignment = 0En
5、d SubPrivate Sub Opt2_Click()If Opt2 Then Text1.Alignment = 2End SubPrivate Sub Opt3_Click()If Opt3 Then Text1.Alignment = 1End SubPrivate Sub Opt4_Click()If Opt4 Then Text1.FontName = 宋体End SubPrivate Sub Opt5_Click()If Opt5 Then Text1.FontName = 黑体End Sub6 请设计如下图所示窗体界面。运行程序时,先向左侧文本框中输入一个不超过10的正整数,
6、然后选择N的阶乘或(N+2)的阶乘单选钮,即可进行计算,计算结果在右侧文本框中显示。请编写程序完成上述功能。 Dim n%Private Sub Form_Load()End SubPrivate Sub Option1_Click()Dim i%n = Val(Text1)m = 1For i = 1 To n m = m * iNext iText2 = mEnd SubPrivate Sub Option2_Click()Dim i%m = 1For i = 1 To n + 2 m = m * iNext iText2 = mEnd Sub7 在窗体上添加两个文本框和三个标签,设置它们
7、的属性,达到下图效果。程序运行时,在第一个文本框输入一串字符,在第二个文本框中输入一个字符,然后单击统计命令按钮,统计第二个文本框中字符(大小写被认为是不同的字母)在第一个文本框中出现的次数,统计结果在标签Label3中显示。 Private Sub Command1_Click()Dim i%, n%For i = 1 To Len(Text1) If Mid(Text1, i, 1) = Text2 Then n = n + 1Next iLabel3 = nEnd SubPrivate Sub Label3_Click()End Sub8 在窗体上添加一个文本框和一个命令按钮。程序运行后
8、,单击命令按钮,即可计算出0200范围内能被3或7整除的所有整数的和,并显示在文本框中。程序运行界面如下图所示。Private Sub Command1_Click()Dim i%, sum%For i = 0 To 200 If i Mod 3 = 0 Or i Mod 7 = 0 Then sum = sum + iNext iText1 = sumEnd SubPrivate Sub Text1_Change()End Sub9 请设计如下图所示界面(文本框名称为:Txt1,按钮名称为:Cmd1)。程序运行时在文本框中输入字符串,点击命令按钮,判断文本框中的字符串是否是回文,将判断结果显
9、示在窗体上。所谓回文是指字符串正序和逆序的结果相同,如“aBCCBa”是回文,“aBCcBa”不是回文。Private Sub Cmd1_Click()Dim ch As StringFor i = Len(Txt1) To 1 Step -1 ch = ch + Mid(Txt1, i, 1)Next iIf Txt1 = ch Then Print Txt1 + 是回文Else Print Txt1 + 不是回文End IfEnd SubPrivate Sub Form_Load()End Sub10 编程实现求(n为小于等于20的整数)。程序运行界面如下图所示。程序运行时,在文本框中输入
10、n的值,点击“计算”命令按钮,将计算结果显示在标签上。 Private Sub Command1_Click()Dim i%, m As Long, sum As Doublen = Val(Text1)m = 1For i = 1 To nm = m * isum = sum + 1 / mNext iLabel2 = sum= & sumEnd SubPrivate Sub Form_Load()End Sub第二部分1 已知在同一个笼子里有总数M只鸡和兔,鸡和兔的总脚数为N只,编程求出鸡和兔各有多少只。要求:程序运行后,在两个文本框中分别输入M和N的值,单击“计算”命令按钮,在两个标签框
11、中分别输出鸡和兔的数量。程序运行界面如下图。提示:N2M的偶数。Private Sub Command1_Click()m = Val(Text1)n = Val(Text2)If n Mod 2 0 Then MsgBox (脚数必须为偶数) Text2 = Text2.SetFocusElse y = n / 2 - m If y =只数的2倍,请重新输入) Text2 = Text2.SetFocus Else x = m - y Label3 = x Label4 = y End IfEnd IfEnd SubPrivate Sub Form_Load()End Sub2 若一个3位正
12、整数中各位数字的立方和等于该数字本身,则该数称之为“水仙花数”。例如153是水仙花数,因为 153 = 1*1*1 + 5*5*5 + 3*3*3。编程求出100999之间所有的“水仙花数”。要求:程序运行后,单击“查找”按钮,在窗体上显示找到的“水仙花数”。 程序运行界面如下图。Private Sub Command1_Click()Print 水仙花数:;For i = 100 To 999 X1 = i Mod 10 分离出个位数 X2 = (i Mod 100) 10 分离出十位数 x3 = i 100 分离出百位数 If i = X1 3 + X2 3 + x3 3 Then Pri
13、nt i;Next iEnd SubPrivate Sub Form_Load()End Sub3 编写程序,要求程序运行后,单击“开始”按钮,随机产生20个学生的成绩(0100的整数),并在左边图片框中输出 (一行5个成绩),并在右边图片框中输出平均分和及格的人数,程序运行界面如下图。Private Sub Command1_Click()Dim a(1 To 20) As Integer, i%, n%Picture1.ClsPicture2.ClsFor i = 1 To 20 a(i) = Int(Rnd * 101) Picture1.Print a(i); If i Mod 5 =
14、 0 Then Picture1.Print If a(i) = 60 Then n = n + 1 Sum = Sum + a(i)Next iPicture2.Print 平均分:; Sum / 20Picture2.Print ; 及格人数:; nEnd SubPrivate Sub Picture2_Click()End Sub4 编写程序实现:程序运行时,单击窗体则显示如下图所示的图案。Private Sub Form_Click()For i = 1 To 5 Print Tab(10 - i); String(2 * i - 1, *)Next iFor i = 1 To 4 P
15、rint Tab(5 + i); String(9 - 2 * i, *)Next iEnd Sub5 编程实现:在窗体中有一个文本框,一个计时器和两个命令按钮。其功能是:程序的运行时,单击“开始计数”按钮,就开始计数,每间隔1秒,文本框中的数增加1;单击“停止计数”按钮,则计数停止。Private Sub Command1_Click()Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Form_Load()End SubPrivate Sub Ti
16、mer1_Timer()Text1 = Val(Text1) + 1End Sub在属性窗口设置定时器的interval属性值为10006 以下程序运行界面如下图所示。其功能如下: 1) 单击读数据按钮(Command1),可将随机产生100个三位正整数存到数组a中; 2) 单击计算按钮(Command2),则根据从组合框Combo1中选中的项目,对数组a中的数据计算平均值,并将计算结果四舍五入取整后显示在文本框Text1中。 题目提供的程序代码不完整,请设计下图界面并录入代码,将程序中的 ? 改为正确的内容。注意:不能修改程序的其他部分。第 47 页-题目提供的程序代码:Dim a(100)
17、 As IntegerPrivate Sub Command1 Click()Dim n As IntegerFor n = 1 To 100a(n)=Int(Rnd * ? )Next nEnd SubPrivate Sub Command2 Click() Dim x& ,y& , z& ,i% , j% , k%For i = 1 To 100If a(i) Mod ? Thenx = x + a(i):j = j + 1Elsey = y + a(i) ?End IfNext kx = Int(x / j + 0.5):y = Int(y / k + 0.5)z = Int(x + y
18、) / (j + k) + 0.5)Select Case Combo1.TextCase 所有偶数 Text1 = ?Case 所有奇数 Text1 = ?Case 所有数 Text1 = ?End SelectEnd SubDim a(1 To 100) As IntegerPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 100 a(n) = Int(Rnd * 900 + 100)Next nEnd SubPrivate Sub Command2_Click()Dim x&, y&, z&, i%, j%, k%For i
19、 = 1 To 100 If a(i) Mod 2 = 0 Then x = x + a(i): j = j + 1 Else y = y + a(i): k = k + 1 End IfNext ix = Int(x / j + 0.5): y = Int(y / k + 0.5)z = Int(x + y) / (j + k) + 0.5)Select Case Combo1.TextCase 所有偶数 Text1 = xCase 所有奇数 Text1 = yCase 所有数 Text1 = x + yEnd SelectEnd Sub在combo1的属性窗口设置list属性,添加列表项P
20、rivate Sub Label1_Click()End Sub7 编写程序。要求:程序运行后,单击“开始”按钮,则随机产生20个2位数输出到窗体上,每行10个数。同时对所产生的20个数从小到大排序,将排序后的数再次输出在窗体上。程序运行界面如下图。Private Sub Command1_Click()Dim a%(1 To 20), i%Print 排序前数据排列:For i = 1 To 20 a(i) = Int(Rnd * 90 + 10) Print a(i); If i Mod 10 = 0 Then PrintNext iFor i = 1 To 20 冒泡排序 For j =
21、 1 To 20 - i If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next jNext iPrint 排序后数据排列:For i = 1 To 20 Print a(i); If i Mod 10 = 0 Then PrintNext iEnd SubPrivate Sub Form_Load()End Sub8 编写程序,程序的功能是:程序运行后,在文本框中输入一串字符, 单击标题为统计的命令按钮,分别统计输入字符串中大写字母、小写字母以及其他字符的个数,并将统计结果分别在相应的标签框中显示。程
22、序运行界面如下图。Private Sub Command1_Click()Dim i%, m%, n%, z%For i = 1 To Len(Text1) If Asc(Mid(Text1, i, 1) = 65 And Asc(Mid(Text1, i, 1) = 97 And Asc(Mid(Text1, i, 1) max Then max = a(i): imax = iNext iPrintPrintPrint 最大数是:; max; Spc(5); 位置号是:; imaxEnd SubPrivate Sub Form_Load()End Sub第三部分1 在窗体Form1上添加两
23、个文本框,一个“转换”命令按钮和三个单选按钮(名称分别为Opt1、Opt2、Opt3,标题分别为“大小写转换”、“全部大写”、“全部小写”)。程序功能:在上方文本框Text1中输入一字符串,选中“大小写转换”,单击“转换”按钮后,Text2中显示大小写相反的字符串;选中“全部大写”,单击转换按钮后,Text2中显示全部大写字符串,选中“全部小写”,单击转换按钮后,Text2中显示全部小写字符串 。程序运行界面如下图。 要求: 请按要求完成窗体界面设计 程序的部分代码已给出如下,但不完整。请录入下面代码,并将“?”处补充完整。Private Sub Command1_Click()Dim n A
24、s Integer, k As Integer, ch As String, a As Stringch = If Opt1.Value = True Then n = Len(?) For k = 1 To n a = Mid$(Text1, k, ?) If a = a And a = A And a = a And a = A And a max Then max = a(i)Next iPrintPrint maxEnd SubPrivate Sub Form_Load()End Sub4 在Form1的窗体上有一个名称为Text1的文本框和两个命令按钮,命令钮标题分别为“显示A”和“
25、显示B”。要求程序运行后,如单击“显示A”命令按钮,则弹出对话框,输入要显示的个数,根据输入的数值在文本框中显示相应数量A构成的字符串;如单击“显示B”命令按钮,也弹出对话框,输入要显示的个数,根据输入的数值在文本框中显示相应数量B构成的字符串。程序运行时的窗体界面如图所示。 Private Sub Command1_Click()n = Val(InputBox(请输入显示个数)Text1 = String(n, A)End SubPrivate Sub Command2_Click()n = Val(InputBox(请输入显示个数)Text1 = String(n, B)End SubP
26、rivate Sub Form_Load()End Sub5 已知十个数为:67, 45, 34, 28, 49, 37, 87, 76, 27, 83。编程实现:按“开始”按钮,则在窗体的第一行显示这十个数,在窗体的第二行按从大到小的顺序显示这十个数。Private Sub Command1_Click()Dim a(), i%a = Array(67, 45, 34, 28, 49, 37, 87, 76, 27, 83)n = UBound(a)For i = 0 To n Print a(i);Next iFor i = 0 To n - 1 For j = 0 To n - 1 -
27、i If a(j) max Then max = a(i)Next iPrint maxEnd SubPrivate Sub Form_Load()End Sub8 编程实现:在窗体的两个文本框中分别输入一个正整数,单击“求最大公约数”按钮后,在窗体第一行显示它们的最大公约数。程序运行界面如下图所示。Private Sub Command1_Click()Dim m%, n%m = Val(Text1)n = Val(Text2)If n m Then t = n: n = m: m = tr = m Mod nDo While r 0 m = n n = r r = m Mod nLoopP
28、rint Text1; 和; Text2; 最大公约数是:; nEnd SubPrivate Sub Form_Load()End Sub9 编程实现:在窗体的左上角有一个图像框,通过属性窗口任选一张图片装入到图像框的Picture属性中,每按一次“放大”按钮时图像放大10%,同理,每按一次“缩小”按钮时图像缩小10%,放大缩小时均需保持图像的纵横比不变,按“结束程序”按钮则结束程序。程序运行界面如下图。Private Sub Command1_Click()Image1.Stretch = TrueImage1.Width = Image1.Width * 1.1Image1.Height
29、= Image1.Height * 1.1End SubPrivate Sub Command2_Click()Image1.Stretch = TrueImage1.Width = Image1.Width * 0.9Image1.Height = Image1.Height * 0.9End SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()End Sub10 编程实现:在窗体上建立一个文本框(内容如下图所示),另外建立菜单,一级菜单标题分别为“背景颜色”,子菜单标题分别为“白色”、“红色”、“绿色”、“蓝色”。
30、程序运行时,如果单击“白色”子菜单,则将文本框的背景色设置为白色;如果单击“红色”子菜单,则将文本框的背景色设置为红色;如果单击“绿色”子菜单,则将文本框的背景色设置为绿色;如果单击“蓝色”子菜单,则将文本框的背景色设置为蓝色。程序运行界面如下图。 Private Sub blue_Click()Text1.BackColor = vbBlueEnd SubPrivate Sub green_Click()Text1.BackColor = vbGreenEnd SubPrivate Sub red_Click()Text1.BackColor = vbRedEnd SubPrivate Su
31、b Text1_Change()End SubPrivate Sub white_Click()Text1.BackColor = vbWhiteEnd Sub 第四部分1编程计算分段函数的值。要求用文本框(TextBox)输入x,y的值,单击标题为“计算”命令按钮后,利用标签控件上显示z的值。Private Sub Command1_Click()x = Val(Text1)y = Val(Text2)If x 0 And y 0 Then z = Sqr(x + y)ElseIf x 0 And y 0 Then z = Sqr(Abs(x - y)Else z = 0End IfLabel3 = zEnd SubPrivate Sub Form_Load()End Sub2、在窗体添加一个命令按钮(标题为“开始”),单击该按钮,随机产生10个三位数(100999),在窗体的第一行这10个三位数,在窗体的第二行输出其中的奇数,在窗体的第三行输出其中的偶数。Private Sub Command1_Click()Dim a%(1 To 10), i%For i = 1 To 10 a(i) = Int(Rnd * 900 + 100) 随机产生10个100到999的整数 Print a(i);Next