Vb经典例题集萃.doc_第1页
Vb经典例题集萃.doc_第2页
Vb经典例题集萃.doc_第3页
Vb经典例题集萃.doc_第4页
Vb经典例题集萃.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

Vb经典例题集萃(未来教育)月宫里的白兔三、综合应用题在窗体Form1上建立一个文本框和两个命令按钮,其中:文本框的名称为Text1,MultiLine属性为True,ScrollBars属性为2;命令按钮的名称分别为Cmd1和Cmd2,标题分别为Read和Save,如图5-5所示。图5-5要求程序运行后,如果单击Read按钮则读入in5.txt文件中的100个整数,放入一个数组中(数组下界为1),并在文本框中显示出来;如果单击Save按钮,则挑出100个整数中的所有偶数,在文本框Text1中显示出来,并把所有偶数之和存入考生文件夹中的文件out5.txt中。在考生文件夹中已有标准模块mode1.bas,其中putdata过程可以把一个整数存入out5.txt文件,考生可以把该模块文件添加到自己的工程中。注意:程序中对文件的操作统一使用相对路径;存盘时文件必须存放在考生文件夹中,工程文件名为sjt5.vbp,窗体文件名为sjt5.frm,结果存入out5.txt文件,否则没有成绩。主程序代码:(带讲解)Dim a(100) As Integer 定义类型(变体)Private Sub Cmd1_Click() Open App.Path & in5.txt For Input As #1 打开运行中的文件 Text1.Text = 先清空文本框 For i = 1 To 100 for.next 语句 Input #1, a(i) Text1.Text = Text1.Text & a(i) & Space(3) 显示在文本框中 Next i Close #1 关闭打开的文件End SubPrivate Sub Cmd2_Click() Text1.Text = 先清空文本框 Sum = 0 For i = 1 To 100 If a(i) Mod 2 = 0 Then Text1.Text = Text1.Text & a(i) & Space(3) 显示在文本框中 Sum = Sum + a(i) 求和 End If Next putdata Sum 把sum存入out5.txt中End Sub添加的模块代码Option ExplicitSub putdata(ByVal a As Integer) Dim sFile As String sFile = out5.txt Open App.Path & sFile For Output As #1 Print #1, a; Close #1End Sub三、综合应用题在窗体Form1上建立一个文本框,名称为Text1,MultiLine属性为True,ScrollBars属性为2;再画两个命令按钮,名称分别为Cmd1和Cmd2,标题分别为读入数据和计算保存,程序运行界面如图6-5所示。要求程序运行后,如果单击读入数据按钮,则读入in5.txt文件中的100个整数,放入一个数组中(数组下界为1),同时在文本框中显示出来;如果单击计算保存按钮,则计算其中前50个数之和,并把求和结果在文本框Text1中显示出来,同时把结果存入考生文件夹中的文件out5.txt中(在考生的文件夹下有标准模块mode.bas,其中的putdata过程可以把结果存入指定的文件)。 注意:文件必须存放在考生文件夹下,窗体文件名为sjt5.frm,工程文件名为sjt5.vbp,计算结果存入out5.txt文件,否则没有成绩。解析:文本框显示的内容由Text属性设置;按钮的标题由Caption属性设置,单击命令按钮触发Click事件;本题中涉及文件的操作,读入顺序文件以顺序的方式打开,用Input#语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。解题步骤:建立界面并设置控件属性。程序中用到的控件及其属性见表6-4。表6-4控 件文本框命令按钮1命令按钮2属 性NameScrollbarsMultilineNameCaptionNameCaption设置值Text12trueCmd1读入数据Cmd2计算保存编写程序代码。参考代码Option ExplicitDim a(1 To 100) As Integer 定义变体Dim i As Integer 定义变体Private Sub Cmd1_Click() Open App.Path & in5.txt For Input As #1 打开正在运行文件 Text1.Text = 清空文本框 For i = 1 To 100 for-next语句 Input #1, a(i) Text1.Text = Text1.Text & a(i) & Space(5) 写入文本框 Next i Close #1 关闭文件End SubPrivate Sub Cmd2_Click() Dim s As Integer 定义变量 Text1.Text = 清空文本框 s = 0 For i = 1 To 50 s = s + a(i) 计算,求和 Next Text1.Text = s 使之显示在文本框 putdata out5.txt, s 存入文件out5.txt之中End Sub调试并运行程序,按题目要求存盘。另外要添加模块Option ExplicitSub putdata(ByVal a As Integer) Dim sFile As String sFile = out5.txt Open App.Path & sFile For Output As #1 Print #1, a; Close #1End Sub 二、简单应用题(1)在名称为Form1的窗体上建立一个名称为Text1的文本框和一个名称为Cmd1,标题为计算的命令按钮。程序运行后,单击计算命令按钮,通过在对话框输入整数12,放入整型变量a中,然后计算a!(提示:运算结果应放入Long型变量中),如图8-3所示。在文本框中显示结果,并把结果存入文件out3.txt中。在考生文件夹中有一个标准模块mode.bas,该模块中提供了保存文件的过程putdata,考生可以直接调用。图8-3注意:保存时必须存放在考生文件夹下,窗体文件名为sjt3.frm,工程文件名为sjt3.vbp。Private Sub Cmd1_Click()Dim i As IntegerDim temp As LongDim a As Integertemp = 1a = InputBox(请输入, , 12) 注意,应为半角时的For i = 1 To a temp = temp * iNext iText1.Text = tempputdata out3.txt, Text1.TextEnd Sub另外要添加模块Option ExplicitSub putdata(ByVal a As Integer) Dim sFile As String sFile = out5.txt Open App.Path & sFile For Output As #1 Print #1, a; Close #1End Sub(2)在考生文件夹中有一个工程文件sjt4.vbp,相应的窗体文件名为sjt4.frm。在窗体Form1上有4个文本框,初始内容为空:一个命令按钮,标题为降序排列。本题功能是通过调用过程Sort将数组按降序排序,请装入该文件。程序运行后,在4个文本框中各输入一个整数,然后单击命令按钮,即可使数组按降序排序,并在文本框中显示出来,如图8-4所示。图8-4要求:本程序不完整,请删除程序中的注释符,把程序中的问号?改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。存盘时不得改变原工程文件名和窗体文件名及其路径。Option Base 1定义变量Private Sub Sort(a() As Integer) Dim Start As Integer, Finish As Integer Dim i As Integer, j As Integer, t As Integer Start = LBound(a) Finish = UBound(a) 定义最大与最小值 For i = Finish To 2 Step -1For-next嵌套:用于比较大小 For j = 1 To Finish - 1 If a(j) a(j + 1) Then t = a(j + 1) a(j + 1) = a(j) a(j) = t End If Next j Next iEnd SubPrivate Sub Cmd1_Click() Dim temp As Integer Dim arr1 Dim arr2(4) As Integer arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text) temp = (Val(Text1.Text) + Val(Text2.Text) + Val(Text3.Text) + Val(Text4.Text) For i = 1 To 4 arr2(i) = CInt(arr1(i) 排序函数 Next i Sort arr2() Sort将数组按降序排序 Text1.Text = arr2(1) Text2.Text = arr2(2) 使结果显示在文本框内 Text3.Text = arr2(3) Text4.Text = arr2(4)End Sub三、综合应用题在窗体Form1上建立1个名为Text1的文本框,将MultiLine属性设置为True,ScrollBars属性设置为2。建立3个名称分别为Cmd1、Cmd2和Cmd3命令按钮,标题分别为读数、排序和保存,如图8-5所示。 图8-5程序运行后,如果单击读数按钮,则读入in5.txt文件中的100个整数,放入一个数组中(数组下界为1),并在文本框Text1中显示出来;如果单击排序按钮,则对这100个整数按从大到小进行排序;如果单击保存按钮,把排序后的全部数据在文本框Text1中显示出来,然后存入考生文件夹中的文件out5.txt中(在考生的目录下有标准模块prog.bas过程,可以把指定个数的数组元素存入 out5.txt文件,考生可以把该模块文件添加到自己的工程中)。注意:存盘时文件必须存放在考生文件夹中,窗体文件名为sjt5.frm,工程文件名为sjt5.vbp。排序结果必须存入out5.txt文件,否则没有成绩。解析:在读数按钮的单击事件过程中,用Open语句以Input方式打开数据文件in5.txt,在FOR循环语句用Input#语句依次读出100个值并赋值给数组元素arr(i)(需定义为窗体变量)。在排序按钮的单击事件过程中,利用冒泡法对数组中的元素按从大到小进行排序。在保存按钮的单击事件过程中,利用FOR循环语句逐一将数组中各元素按顺序显示在文本框中,最后通过调用过程putdata将文本框中的内容写入数据文件out5.txt。为使数据间保持一定间隔,每个数据后用Space(5)加入5个空格。解题步骤: 新建一个标准EXE工程,建立界面并设置控件属性。程序中用到的控件及其属性见表8-3。表8-3控 件文本框命令按钮1命令按钮2命令按钮3属 性NameMultiLineScrollBarsTextNameCaptionNameCaptionNameCaption设置值Text1True2Cmd1读数Cmd2排序Cmd3保存选择【工程】【添加模块】命令,打开添加模块对话框,将考生文件夹下的prog.bas添加到当前工程中。Dim arr(1 To 100) As IntegerPrivate Sub Cmd1_Click()Text1.Text = Open App.Path & in5.txt For Input As #1For i = 1 To 100 Input #1, arr(i) Text1.Text = Text1.Text & arr(i) & Space(5)Next iClose #1End SubPrivate Sub Cmd2_Click() For i = 1 To 100 For j = i + 1 To 100 If arr(i) arr(j) Then t = arr(i) arr(i) = arr(j) arr(j) = t End If Next NextEnd SubPrivate Sub Cmd3_Click()Text1.Text = For i = 1 To 100 Text1.Text = Text1.Text & arr(i) & Space(5)Nextputdata arr, 100End SubDim arr(1 To 100) As IntegerPrivate Sub Cmd1_Click() Text1.Text = Open App.Path & in5.txt For Input As #1 For i = 1 To 100 Input #1, arr(i) Text1.Text = Text1.Text & arr(i) & Space(5) Next Close #1End SubPrivate Sub Cmd2_Click() For i = 1 To 100 For j = i + 1 To 100 If arr(i) arr(j) Then t = arr(i) arr(i) = arr(j) arr(j) = t End If Next NextEnd SubPrivate Sub Cmd3_Click() Text1.Text = For i = 1 To 100 Text1.Text = Text1.Text & arr(i) & Space(5) Next putdata arr, 100End Sub三、综合应用题在窗体Form1上建立一个文本框(名称为Text1,MultiLine属性为True,ScrollBars属性为2)和两个命令按钮(名称分别为Cmd1和Cmd2,标题分别为读数和保存),如图9-5所示。图9-5要求程序运行后,如果单击读数按钮,则读入in5.txt文件中的100个整数,放入一个数组中(数组下界为1),并在文本框中进行显示;如果单击保存按钮,则挑出100个整数中的所有奇数,在文本框Text1中显示出来,并把所有奇数之和存入考生文件夹中的文件out5.txt中(在考生文件夹下有标准模块model.bas,其中putdata过程可以把一个整数存入out5.txt文件,考生可以把该模块文件添加到自己的工程中)。注意:程序中对文件的操作统一使用相对路径;存盘时文件必须存放在考生文件夹中,工程文件名为sjt5.vbp,窗体文件名为sjt5.frm,结果存入out5.txt文件,否则没有成绩。Option ExplicitDim a(1 To 100) As IntegerDim i As IntegerPrivate Sub Cmd1_Click()Open App.Path & in5.txt For Input As #1Text1.Text = For i = 1 To 100 Input #1, a(i) Text1.Text = Text1.Text & a(i) & Space(5) Next iClose #1End SubPrivate Sub Cmd2_Click()Dim sum As IntegerDim i As IntegerText1.Text = For i = 1 To 100 sum = 0 If a(i) Mod 2 0 Then Text1.Text = Text1.Text & a(i) & Space(5) sum = sum + a(i) End IfNextputdata sumEnd SubDim arr(1 To 100) As IntegerPrivate Sub Cmd1_Click() Dim i As Integer Open App.Path & in5.txt For Input As #1 For i = 1 To 100 Input #1, arr(i) Next Close #1End SubPrivate Sub Cmd2_Click() Dim i As Integer Dim sum As Integer Text1.Text = For i = 1 To 100 If arr(i) Mod 2 = 1 Then sum = sum + arr(i) Text1.Text = Text1.Text & arr(i) & Space(5) End If Next putdata sumEnd Sub三、综合应用题在考生文件夹下有一个工程文件sjt5.vbp,程序中已经写入部分代码,要求根据下面的描述在窗体模块中定义三个名称分别为ReadData1、ReadData2和WriteData的Sub过程。请先装入工程文件sjt5.vbp,然后完成以下操作:在窗体Form1上画三个命令按钮,其名称为Cmd1、Cmd2和Cmd3,标题分别为读入数据、计算和存盘。程序运行后,如果单击读入数据按钮,则调用ReadData1和ReadData2过程读入in5-1.txt和in5-2.txt文件中的各20个整数,分别放入Arr1和Arr2两个数组中:如果单击计算按钮,则把两个数组中对应下标的元素相加,其结果放入第三个数组中(即第一个数组的第n个元素加上第二个数组的第n个元素,其结果作为第三个数组的第n个元素。这里的n为1,2,20),然后计算第三个数组各元素之和,并把所求得的和在窗体上显示出来;如果单击存盘按钮,则调用WriteData过程,把所求得的和存入考生文件夹的out5.txt文件中。程序运行时的窗口界面如图10-5所示。图10-5注意:考生只需添加必要的控件,并将程序代码补充完整,使其实现上述功能即可。考生不得修改窗体文件中已经存在的程序,必须把求得的结果用存盘按钮存入考生文件夹下的out5.txt文件中,否则没有成绩。存盘时,工程文件名仍为sjt5.vbp,窗体文件名仍为sjt5.frm。解析:本题重点考查考生对窗体中控件画法、命令按钮常规使用、过程调用、数组使用,以及For循环语句用法的掌握情况。Visual Basic程序中关于文件的操作,主要包括:先打开一个文件,然后对这个文件进行读或写的操作,操作完成后,关闭这个文件。打开文件的基本格式为:Open FileName For Mode As #FileNumber,打开方式主要有Output、Append、Input、Random等几种。Output、Append、Input方式打开的文件进行的读写操作都是以顺序方式进行的。其中Output、Append打开的文件主要用来输出数据,与Print #、Write #等方法配合使用;以Input方式打开的文件主要用来输入数据,它与Input #、Line Input #语句配合使用。以Random方式打开的文件主要用于随机文件的读与写,它不分Output与Input,统一使用Random标识。本题源程序已给出3个命令按钮的Click事件的事件过程,要求描述定义三个读或写文件的过程。文本文件是顺序文件,三个过程都用Open语句打开文件。其中WriteDate过程以Output的方式打开文件,并使用Print #语句输出数据;ReadData1与ReadData2以Input的方式打开文件,并使用Input #语句读入数据。两者的语句块十分相似,主要区别在与打开的文件名不同。Close #语句用于关闭打开的文件。App.Path用于取得当前工程文件所在的文件夹路径,App.Path & &Filename指明了文件的物理位置。语句Option Base 1用于修改数组的下标,默认从1开始编号。解题步骤:打开本题工程文件,在窗体上画三个命令按钮,按表10-3设置它们的属性值。表10-3控 件命令按钮1命令按钮2命令按钮3属 性NameCaptionNameCaptionNameCaption设置值Cmd1读入数据Cmd2计算Cmd3存盘编写程序代码。程序提供的代码Option Base 1Dim Arr1(20) As IntegerDim Arr2(20) As IntegerDim Sum As IntegerPrivate Sub Cmd1_Click() ReadData1 读取文件 ReadData2End SubPrivate Sub Cmd2_Click() Dim Arr3(20) As Integer Sum = 0 For i = 1 To 20 Arr3(i) = Arr1(i) + Arr2(i) 对应下标的数组之间的双射加和 Sum = Sum + Arr3(i) 对新数组的元素求和 Next i Print Sum = ; SumEnd SubPrivate Sub Cmd3_Click() WriteData out5.txt, Sum 把文件存入out5.txt中End Sub程序结束参考代码Sub readdata1() Open App.Path & in5-1.txt For Input As #1 具体的ReadData1 For i = 1 To 20 Input #1, Arr1(i) Next Close #1End SubSub readdata2() Open App.Path & in5-2.txt For Input As #1 具体的ReadData2 For i = 1 To 20 Input #1, Arr2(i) Next Close #1End SubSub writedata(FName As String, data As Integer) 具体的WriteData Open App.Path & & FName For Output As #1 Print #1, dataEnd Sub调试并运行程序,按题目要求存盘。二、简单应用题(1)在考生文件夹下有工程文件sjt3.vbp及窗体文件sjt3.frm,该程序是不完整的,请在有?的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图14-3所示。图14-3在窗体Form1上有1个Label控件、4个Text控件及7个命令按钮,功能为:开始启动工程时,界面上除开始录入及退出按钮之外,其他按钮均不可用(灰色显示);单击开始录入按钮之后,利用InputBox让用户连续且必须录入10个数。若录入为非数字符号,则给出警告输入数据无效,请重新输入数值数据!请输入第n个数;录入完毕后,开始录入变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最大数和最小数,并在右侧对应的文本框中显示(注意用A(10)存放最大数,A(1)存放最小数);单击清除按钮将所有文本框清空。解析:在窗体上建立好控件后,先设置控件属性,再编写事件过程。用数组a(10) 来接收InputBox输入的10个数,InputBox的格式为InputBox(提示,标题,默认,X坐标位置,Y坐标位置);控件是否可用可利用其Enabled属性设置,当该值为True时可用,为False时不可用(灰色);判断是否是数字可用IsNumeric() ,如果是数字返回True,否则返回False;本程序中用到的排序方法是将某一个元素作为标杆,其后的每一个元素与其比较,若小于标杆则两者交换,依次类推,题中要求排完序后a(1) 至a(10) 依次存放大数,在文本框中显示升序和降序的时候只要两者反序显示即可,即升序可依次显示a(1) 到a(10) ,降序可依次显示a(10) 到a(1) 。解题步骤: 为开本题工程文件,修改程序代码。程序提供的代码Option ExplicitDim a(10) As Variant 定义变体Dim i As Integer, j As Integer 定义整数 Dim m As SinglePrivate Sub Command1_Click() Text2.Text = ? 求最大值 Command1.Enabled = False Command7.Enabled = TrueEnd SubPrivate Sub Command2_Click() Text3.Text = ? 求最小值 Command2.Enabled = False Command7.Enabled = TrueEnd SubPrivate Sub Command3_Click() For i = 1 To 10 从小到大显示 Text1.Text = Text1.Text & ? & , Next i Command3.Enabled = False Command7.Enabled = TrueEnd SubPrivate Sub Command4_Click() For i = 10 To 1 Step -1 Text4.Text = Text4.Text & ? & , 从大到小显示 Next i Command4.Enabled = False Command7.Enabled = TrueEnd SubPrivate Sub Command5_Click() End 结束End SubPrivate Sub Command6_Click() Label1.Enabled = False For i = 1 To 10 a(i) = InputBox(请输入第 & i & 个数,请务必输入数值数据!, 输入) Do While IsNumeric(a(i) ) = False a(i) = InputBox(输入数据无效,请重新输入数值数据! & 请输入第 & i & 个数, 输入) Loop Next i For i = 1 To 9 For j = i + 1 To 10 If Val(a(j) ) Val(a(i) ) Then m = a(j) a(j) = a(i) a(i) = m End If Next j Next i Command6.Enabled = False Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True Command5.Enabled = True Command7.Enabled = FalseEnd SubPrivate Sub Command7_Click() Text1.Text = “” Text2.Text = “” Text3.Text =“” Text4.Text = “” Label1.Enabled = True Command6.Enabled = True C

温馨提示

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

评论

0/150

提交评论