VB程序设计.doc_第1页
VB程序设计.doc_第2页
VB程序设计.doc_第3页
VB程序设计.doc_第4页
VB程序设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

五、程序设计 共12题 第1题 题号:14-【程序设计】-【题目要求】 1) 编写程序,生成一个4行5列的二维数组,其每个数组元素是随机产生的两位数, 求该数组的最大元素及其所在的行号、列号。 (若有多个相同的最大元素,则要一一标出其所在行号、列号) 算法提示首先找出最大元素,再将数组中的元素与最大元素一一比较, 若有相等元素则输出其所在位置。 窗体设计界面参见已给出的参考界面。【编程要求】 1) 运行程序,按“运行”按钮(Command1),生成一个4行5列的两位随机整数数组, 按参考界面格式显示在多行文本框Text1中,再调用求二维数组最大元素的通用过程, 最后将结果输出到一个多行文本框Text2中;(注意代码中不得使用randomize语句) 按“清除”按钮(Command2),则将文本框与图片框清空; 2) 程序中应定义一个名为maxele的通用函数过程,用于求二维数组的最大元素。【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义函数过程maxele的程序代码以及Command2的代码 (2)最后完善Command1_Click()事件过程代码。 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Private Function maxele(a() As Integer) As Integer Dim i As Integer, j As Integer Dim max As Integer max = a(1, 1) For i = 1 To 4 For j = 1 To 5 If a(i, j) max Then max = a(i, j) End If Next j Next i maxele = maxEnd FunctionPrivate Sub Command2_Click()Text1.Text = Text2.Text = End SubPrivate Sub Command1_Click() Dim a(4, 5) As Integer Dim i As Integer, j As Integer Dim max As Integer For i = 1 To 4 For j = 1 To 5 a(i, j) = Int(Rnd * 90 + 10) Text1.Text = Text1.Text & Str(a(i, j) Next j Text1.Text = Text1.Text & vbCrLf Next i max = maxele(a) Text2.Text = 最大元素是 & max & vbCrLf Text2.Text = Text2.Text & 位置是 & vbCrLf For i = 1 To 4 For j = 1 To 5 If max = a(i, j) Then Text2.Text = Text2 & i & 行 & j & 列 & vbCrLf End If Next j Next i第2题 题号:9-【程序设计】-【题目要求】 编一程序,将一维数组中元素向右循环移位,移位次数键盘输入。 例如,数组各元素的值依次为1,2,3,4,5,6,7,8,9,10; 位移3次后,各元素的值依次为8,9,10,1,2,3,4,5,6,7。 窗体设计界面参见已给出的参考界面。【编程要求】 1) 数组可定义为固定大小的10个元素的数组。 按“输入”按钮(Command1),则用inputbox函数逐一输入 “1-10”10个数据,并显示在文本框Text1中。 在文本框Text2中输入循环移位位数(请输入3) 按“移位”按钮,调用通用Sub过程rmove(),实现移位操作,同时将 移位后10个数据显示在文本框Text3中。 按“清除”按钮Command2,则将3个文本框清空,将焦点置于Text2上; 按“退出”按钮Command3,结束程序运行 2)程序中应定义一个通用Sub过程rmove(),以实现移位操作。【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义Sub过程rmove()的程序代码 (2)然后完成Command1_Click(),Command3_Click(),Command4_Click()过程代码。 (3)最后完善Command2_Click()过程代码 ! 注意: Command2_Click()过程的结束语句 End Sub及其它已经给出的代码,均不得删除,否则无分。答案:Private Sub rmove(a() As Integer, m As Integer) Dim i As Integer, j As Integer, t As Integer n = UBound(a) For i = 1 To m t = a(n) 循环右移 For j = n To 2 Step -1 a(j) = a(j - 1) Next j a(1) = t Next iEnd SubPrivate Sub Command1_Click() Dim i As Integer Text1 = 输入原始数据并显示在文本框1中 For i = 1 To UBound(a) a(i) = Val(InputBox(A( & i & )=) Text1 = Text1 & a(i) & Next iEnd SubPrivate Sub Command3_Click() Text1 = Text2 = Text3 = Text2.SetFocusEnd SubPrivate Sub Command4_Click() EndEnd SubPrivate Sub Command2_Click() Dim i As Integer, m As Integer m = Val(Text2) Call rmove(a, m) 输出右移后的数组值 For i = 1 To n Text3 = Text3 & a(i) & Next i第3题 题号:11-【程序设计】-【题目要求】 编写程序,随机生成一个4行5列由两位整数组成的数组,并找出其中所有的谷点元素。 所谓谷点元素是指在本行内为最小,在本列内也为最小的元素。 窗体设计界面参见已给出的参考界面。【编程要求】 1)按“生成数组”按钮(Command1),生成随机数组并显示到图片框(Picture1)中, 按“查找谷点”按钮(Command2),则找出谷点元素, 并按图示的格式显示到多行文本框(Text1)中, 按“清除”按钮Command3,清除图片框与文本框。 2) 程序中应定义一个名为cp的Sub过程,用于查找数组某行是否有谷点元素。 (算法提示:先求出某行最小元素,再判断该元素是否在该列也为最小, 若是,则为谷点数,否则,谷点不存在。)【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义Sub过程cp的程序代码以及Command1,Command3的代码 (2)最后完善Command2_Click()事件过程代码。 ! 注意: Command2_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Private Sub cp(a() As Integer, n%, f As Boolean, k%) Dim i%, minv% minv = a(n, 1): k = 1 For i = 2 To UBound(a, 2) If minv a(n, i) Then minv = a(n, i): k = i End If Next i For i = 1 To 4 If minv a(i, k) Then Exit Sub Next i f = TrueEnd SubPrivate Sub Command1_Click() Dim i%, j% For i = 1 To 4 For j = 1 To 5 a(i, j) = Int(Rnd * 90) + 10 Picture1.Print a(i, j); Next j Picture1.Print Next iEnd SubPrivate Sub Command3_Click() Picture1.Cls Text1 = End SubPrivate Sub Command2_Click() Dim i As Integer 循环变量,控制行的变化 Dim flag As Boolean 过程调用时用于判断一行数据中是否有谷点的逻辑变量 Dim k As Integer 记录每一行的最小值所在列号 For i = 1 To 4 Call cp(a, i, flag, k) If flag Then Text1 = Text1 & ( & i & , & k & ): & a(i, k) & vbCrLf End If Next i第4题 题号:2-【程序设计】-【题目要求】编写求前n项级数和的程序。求和公式参见已给出的参考图122所示。 1)在文本框Text1中输入x值1,文本框Text2中输入n值5, 按“计算”按钮(Command1),则开始计算并在列表框List1中显示S1,S2,Sn; 按“清除”按钮(Command2),则将两个文本框及列表框清空,焦点置于Text1上; 按“退出”按钮(Command3),结束程序运行; 2)程序中应定义一个名为fact的函数过程,用于计算阶乘值。【代码书写要求】 1)列表框、文本框、命令按钮的名称必须使用系统默认的名称, 如List1,Text1,Command1等,否则扣分。 2)窗体设计界面参见已给出的参考界面。 3)请在“*Program*”与“*End*”之间添加程序代码 请在指定区间 1)先写出自定义函数fact及Command2,Command3的程序代码 2)然后完善Command1_Click()过程代码。 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Public Function fact(n As Integer) As Long If n = 1 Then fact = 1 Else fact = n * fact(n - 1) End IfEnd FunctionPrivate Sub Command2_Click() Text1.Text = Text2.Text = List1.Clear Text1.SetFocusEnd SubPrivate Sub Command3_Click() EndEnd SubPrivate Sub Command1_Click() Const pi = 3.14159265 Dim k As Integer, x As Single, n As Integer, s As Single Dim t As Single x = Text1.Text n = Text2.Text For k = 1 To n t = (-1) k * (pi / 2) (2 * k) * x (4 * k + 1) / (fact(2 * k) * (4 * k + 1) s = s + t List1.AddItem S( & k & )= & s Next k第5题 题号:4-【程序设计】-【题目要求】编写程序,以给定的方式标记出方阵中每一行最小元素的位置。如果某一行有多个数值相等的最小元素,也要同时标记出来。标记方式为每一行的最小元素为 0,其他元素为 1。窗体设计界面参见已给出的参考界面。【编程要求】1)在文本框Text1中输入 N 值(要求输入5), 按“执行”按钮,则随机生成一个 N 行 N 列的由两位正整数组成的 N 阶方阵, 并输出到多行文本框Text2 中,同时求出每一行的最小元素并生成标记矩阵 输出到多行文本框Text3 中; 按“清除”按钮,则将3个文本框清空,将焦点置于文本框Text1上; 按“退出” 按钮,结束程序运行; 2)程序中应定义一个求数组某一行的最小元素值的通用Sub过程minx()。3)原始方阵数据由随机函数生成(注意:不要使用randomize语句)【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Text2,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义Sub过程minx()的程序代码以及Command2_Click()、 Commnad3_Click()的代码 (2)最后完善Command1_Click()过程代码。 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码,均不得删除, 否则无分。答案:Private Sub minx(a() As Integer, k As Integer, min_v As Integer) Dim i As Integer min_v = a(k, 1) For i = 2 To UBound(a, 1) If a(k, i) min_v Then min_v = a(k, i) Next iEnd SubPrivate Sub Command2_Click() Text1.Text = Text2.Text = Text3.Text = Text1.SetFocusEnd SubPrivate Sub Command3_Click() EndEnd SubPrivate Sub Command1_Click() Dim n As Integer, i As Integer, j As Integer Dim min_v As Integer, s1 As String, s2 As String Dim a() As Integer, m() As Integer Randomize n = Text1 ReDim a(n, n), m(n, n) For i = 1 To n For j = 1 To n m(i, j) = 1 a(i, j) = Int(Rnd * 90) + 10 s1 = s1 & Str(a(i, j) Next j s1 = s1 & vbCrLf Next i For i = 1 To n Call minx(a, i, min_v) For j = 1 To n If a(i, j) = min_v Then m(i, j) = 0 s2 = s2 & Str(m(i, j) Next j第6题 题号:1-【程序设计】-【题目要求】从键盘上输入6名同学的成绩,分别为:87,72,56,89,92,66。将这些成绩显示在文本框Text1中(由Command1_Click()事件过程完成)。然后按降序对这6个成绩进行排序,并将结果显示在文本框Text2中(由Command2_Click()事件过程完成)。窗体设计界面参见已给出的参考界面。【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Text2,Command1等2)用inputbox函数输入成绩。原始成绩必须为上面给出的数据,否则扣分。3)请在“*Program*”与“*End*”之间添加程序代码答案:Private Sub Command1_Click() Dim i As Integer N = 6 Text1.Text = 输入并显示数据 For i = 1 To N X(i) = Val(InputBox(请输入第 & Str(i) & 个学生的成绩, 成绩排序, ) Text1.Text = Text1.Text & Str(X(i) Next iEnd SubPrivate Sub Command2_Click() 用比较交换法进行排序 Dim i As Integer, t As Integer, j As Integer For i = 1 To N - 1 For j = i + 1 To N If X(i) b And b c Then jx = TrueEnd FunctionPrivate Sub Command2_Click() Text1.Text = List1.ClearEnd SubPrivate Sub Command1_Click() Dim a(30) As Integer Dim i As Integer, k As Integer Dim n As Integer a(1) = Int(900 * Rnd) + 100 获得互不相同的数组元素值 Text1 = Str(a(1) k = 1 Do While k 30 n = Int(900 * Rnd) + 100 If InStr(Text1, CStr(n) = 0 Then Text1 = Text1 & Str(n) k = k + 1 a(k) = n If k Mod 10 = 0 Then Text1 = Text1 & vbCrLf End If Loop For i = 1 To 30 在列表框中显示降序数 If jx(a(i) = True Then List1.AddItem a(i) Next i If List1.ListCount = 0 Then MsgBox 无降序数第8题 题号:7-【程序设计】-【题目要求】 编写程序,找出100以内的所有素数,存放在数组P中, 并将所找到的素数,按每行10个的形式显示在文本框Text1中。 窗体设计界面参见已给出的参考界面。【编程要求】1)按“找素数”按钮(Command1),则查找素数,并按格式要求显示在多行文本框Text1中。2)程序中应定义一个通用函数过程Prime(),以判断一个数是否为素数。【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义函数过程Prime()的程序代码 (2)然后完善Command1_Click()过程代码 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Private Function prime(n As Integer) As Boolean Dim I As Integer For I = 2 To Sqr(n) If n Mod I = 0 Then Exit Function Next I prime = TrueEnd FunctionPrivate Sub Command1_Click() Dim I As Integer 作为循环变量 Dim m As Integer m作为元素个数的计数器 Dim p(50) As Integer p(1) = 2 m = 1 For I = 3 To 99 Step 2 If prime(I) Then m = m + 1 p(m) = I End If Next I For I = 1 To m Text1 = Text1 & Right( & CStr(p(I), 4) If I Mod 10 = 0 Then Text1 = Text1 & vbCrLf Next I第9题 题号:12-【程序设计】-【题目要求】 1) 编写程序,本程序的功能是:首先按给定格式(数据以逗号分隔,-1表示数据结束) 将输入到文本框Text1中的数据(12,22,15,25,17,22,19,11,-1)依次存入一个数组p, 然后为该组数据建立一个按从大到小次序排列的索引表并显示在文本框Text2中。 文本框Text2中的第一个数据4表示文本框1中第4个数最大; 文本框2中的最后一个数据8表示文本框1中第8个数最小。 2) 窗体设计界面参见已给出的参考界面。【编程要求】 1)在文本框Text1中输入测试数据,按“处理”按钮(Command1), 则按题目要求得到结果并显示在文本框Text2中; 按“清除”按钮(Command2),则将2个文本框清空,将焦点置于文本框Text1上; 按“退出”按钮(Commnad3),结束程序运行。 2)程序中应定义一个通用Sub过程lnum,用于把Text1中的原始数据放入数组p中。 3) 程序中应定义一个根据数组元素的大小从大到小取其排列号的通用Sub过程Ind。【代码书写要求】1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义Sub过程lnum()和Ind()的程序代码以及Command2、Command3的代码 (2)最后完善Command1_Click()事件过程代码。 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Private Sub lnum(st As String, p() As Integer) Dim k As Integer, t As Integer, n As Integer Do n = InStr(st, ,) If t -1 And n 0 Then t = Val(Left(st, n - 1) k = k + 1 ReDim Preserve p(k) p(k) = t st = Right(st, Len(st) - n) Else Exit Do End If LoopEnd SubPrivate Sub Ind(p() As Integer, D() As Integer) Dim t As Integer, i As Integer, j As Integer, maxv As Integer ReDim D(UBound(p) For i = 1 To UBound(p) D(i) = i Next i For i = 1 To UBound(p) - 1 For j = i + 1 To UBound(p) If p(i) 0 Then If Int(Sqr(n) = Sqr(n) Then f = True Exit Sub End If End If f = FalseEnd SubPrivate Sub Command2_Click() Text1.Text = End SubPrivate Sub Command3_Click() EndEnd SubPrivate Sub Command1_Click() Dim i As Integer, j As Integer Dim k As Integer, logic As Boolean, js As Integer For i = 1 To 50 For j = 1 To 7 k = i - j * j Call sub1(k, logic) If logic Then Exit For Next j If j 7 Then js = js + 1 Text1 = Text1 & Right( & Str(i), 4) If js Mod 5 = 0 Then Text1.Text = Text1.Text & vbCrLf End If Next i第11题 题号:13-【程序设计】-【题目要求】 1) 编写程序,找出由1,2,3,4四个不同数字组成的四位整数中的素数。 2) 窗体设计界面参见已给出的参考界面。【编程要求】 1)单击“开始”按钮(Command1),生成(或筛选出)由1,2,3,4 四个数字 组成的4位整数,并显示在列表框List1中,在列表框List2中显示其中的素数。 2)单击“清理”按钮(Command2),则将两个列表框清空; 单击“退出”按钮(Command3),结束程序运行。 3)程序中必须包含一个判断某数是否为素数的通用函数过程Prime。 4) 程序中必须包含一个判断某数是否仅由1-4构成且各数字仅出现1次的 通用函数过程Compare。【代码书写要求】1)列表框、命令按钮的名称必须使用系统默认的名称,如List1,Command1等2)请在“*Program*”与“*End*”之间添加程序代码3)请在指定区间 (1)先写出自定义函数过程Prime的程序代码以及Command2、Command3的代码 (2)最后完善Command1_Click()事件过程代码。 ! 注意: Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, 均不得删除,否则无分。答案:Private Function compare(N As Long) As Boolean Dim B(4) As Integer, K As Integer, j As Integer Dim S As String * 1, Sum As Integer For j = 1 To 4 S = Mid(CStr(N), j, 1) If Val(S) 4 Then Exit Function End If B(Val(S) = 1 Next j For j = 1 To 4 Sum = Sum + B(j) Next j If Sum = 4 Then compare = TrueEnd FunctionPrivate Function prime(N As Long) As Boolean Dim K As Long For K = 2 To Sqr(N) If N Mod K = 0 Then Exit Function End If Next K prime = TrueEnd FunctionPrivate Sub Command2_Click() List1.Clear List2.ClearEnd SubPrivate Su

温馨提示

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

评论

0/150

提交评论