VB60课后题及常见操作题代码.doc_第1页
VB60课后题及常见操作题代码.doc_第2页
VB60课后题及常见操作题代码.doc_第3页
VB60课后题及常见操作题代码.doc_第4页
VB60课后题及常见操作题代码.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第四章1、从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。通过inputbox函数输入数据,在窗体上显示和及平均值。Dim a as singleFor i=1 to 4 a=inputbox(“请输入一个数:”,“数据输入”) sum=sum+a n=n+1 avg=sum/nnext iprint “和是:”,sumprint “平均值是:”,avg2、编写程序,要求用户输入下列信息:姓名、年龄、通信地址、邮政编码、电话,然后将输入的数据用适当的格式在窗体上显示出来。Dim a as variantFontsize=20a=inputbox(“请输入姓名:”,“数据输入”)print “姓名:”;aa=inputbox(“请输入年龄:”,“数据输入”)print “年龄:”;aa=inputbox(“请输入通信地址:”,“数据输入”)print “通信地址:”;aa=inputbox(“请输入邮政编码:”,“数据输入”)print “邮政编码:”;aa=inputbox(“请输入电话:”,“数据输入”)print “电话:”;a3a=5,b=2.5,c=7.8,编程序计算: y=(ab)/(a+bc)程序:Dim a as single,b as single,c as singlea=5b=2.5c=7.8pi=3.14y=(pi*a*b)/(a+b*c)print “结果是:”;y4、输入以秒为单位表示的时间,编写程序,将其转换为几日几时几秒。Dim a as long,d as integer ,h as integer,s as integera=inputbox(“请输入秒数:”,“数据输入”)d=int(a/86400)h=int(a-d*86400)/3600)s=a-d*86400-h*3600print d;“日”;h;“时”;s;“秒”5、自由落体位移公式为:s=gt2/2+v0t其中v0为初始速度,g为重力加速度,t为经历的时间,编写程序,求位移量s。设v0=4.8m/s,t=0.5s,g=9.81m/s2,在程序中把g定义为符号常量,用inputbox函数输入v0和t两个变量的值。Dim v as single,t as single,s as singleg=9.81v= inputbox(“请输入初始速度:”,“数据输入”)v=val(v)t=inputbox(“请输入经历的时间:”,“数据输入”)t=val(t)s=g*t*t/2+v*tprint “位移量是:”;s6编程计算并输出S的值:s=2+4+6+8+100dim i,s as integers=0for i=2 to 100 step 2s=s+inextprint s7、给定三角形的3条边长,计算三角形的面积。编写程序:首先判断给出的3条边能否构成三角形,如可以构成,则计算并输出三角形的面积,否则要求重新输入。当输入-1时结束程序。Dim a as single;b as single;c as singleStart:a = inputbox(“请输入第一条边长-1结束:”,”数据输入”)a=val(a)if a=-1 then endend ifb=inputbox(“请输入第二条边长”,“数据输入”)b=val(b)c=inputbox(“请输入第三条边长”,“数据输入”)c=val(c)if a+b=c or a+c=b or b+c=a then msgbox(“您输入的三条边长不能构成三角形,请重新输入!”) goto startelse l=(a+b+c)/2 s=sqr(l*(l-a)*(l-b)*(l-c)end ifprint “三角形的面积为:”;s8、税务部门征收所得税,规定如下:(1)收入在200元以内,免征(2)收入在200-400元内,超过200元的部分纳税3%(3)收入超过400元的部分,纳税4%(4)当收入达5000元或超过时,将4%税金改为5%编写程序实现上述操作。Dim x as single,y as singlex=inputbox(“请输入收入!”,“数据输入”)x=val(x)if x200 and x=400 and x=5000 then y=(x-400)*0.05+200*0.03end ifprint “需要纳税的金额为:”;y9、假定有一下每周工作安排:星期一、三:讲计算机课星期二、四:讲程序设计课星期五:进修英语星期六:政治学习星期日:休息试编写一个程序,对上述工作日程进行检索。程序运行后,要求输入一周里的某一天,程序将输出这一天的工作安排。在输入时用0-6分别代表星期日到星期六,如果输入0-6之外的数,则程序结束运行。Dim x as integerx=inputbox(“请输入一个整数进行检索:”,“数据输入”)select case x case 0 y=“休息” case 1 y=“讲计算机课” case 2 y=“讲程序设计课” case 3 y=“将计算机课” case 4 y=“将程序设计课” case 5 y=“进修英语” case 6 y=“政治学习” case else endend selectprint y10。vb数字金字塔1 121 12321一直到9Private Sub Form_Click()Dim a(1 To 9) As Integer For j = 1 To 9 a(j) = j Next jFor i = 1 To 9Print Tab(30 - i * 3); For j = 1 To 2 * i - 1 If j i Then Print a(2 * i - j); Else Print a(j); End If Next jNext iEnd Sub11勾股定理中三个数的关系是a*a+b*b=c*c。编写程序,输出30以内满足上述关系的整数组合。例如3,4,5就是一个满足要求的整数组合Private Sub Command1_Click() Dim Max As Integer, I As Integer, J As Integer, K Max = 30 For I = 3 To Max - 2 For J = I + 1 To Max - 1 K = Sqr(I 2 + J 2) If K = Int(K) And K = Max Then Print I, J, K Next NextEnd Sub12如果一个数的因子之和等于这个数的本身,则称这样的数为“完全数”。例如,整数28的因子为1,2,4,7,14,其和1+2+4+7+14=28,因此28是一个完全数,编写一个程序,从键盘上输入整数M和N,求出M和N之间的所有的完全数form load()int i,j,m,n,summ =inputbox(输入最小正整数)n =inputbox (输入最大正整数)for j=m to nsum=0 for i=1 to j if (j mod i=0) and (i j ) then sum=sum i next if j=sum then print sum & 是完全数 next print 查找完毕beep end sub 13从键盘上输入一个学生的学号和考试成绩,然后输出该学生的学号和考试成绩,并根据成绩按下面的规定输出对该学生的评语:成绩 80100 6079 5059 4049 039评语 very good good fair poor fail (所需控件:三个标签,两个文本框,一个命令按扭)Private Sub Command1_Click() Dim s$, a$, mark! s = Text1.Text mark = Val(Text2.Text) Select Case mark Case Is 40 a = fail Case Is 50 a = poor Case Is 60 a = fair Case Is 80 a = good Case 80 To 100 a = very good End Select Print 学号: & s & vbCrLf & 成绩评定为 & a End Sub14一个两位的正整数,如将它的个位数字与十位数字对调,则产生另一个正整数,我们把后者叫做前者的对调数。如给定一个两位的正整数,请找到另一个两位的正整数,值得这两个整数之和等于他们各自的对调数之和,例如,12+32=21+23.编写程序,输入一个两位的正整数,把具有这种特征的每一对两位正整数都找出来PrivateSubCommand1_Click() DimaAsStringDimiAsLonga=InputBox(输入一个两位的正整数:) IfVal(a)=100ThenMsgBox输入不合法ExitSubEndIfFori=1To99 IfVal(a)+i=Val(getDuiTiao(a)+getDuiTiao(CStr(i)ThenDebug.Printi EndIfNextEndSubPrivateFunctiongetDuiTiao(ByValvStrAsString)AsStringDimstrTmpAsStringstrTmp=Right(CStr(vStr),1)&Left(CStr(vStr),1) getDuiTiao=strTmp EndFunction| 14、编写程序,打印出“杨辉三角”图形。For i=1 to 9 Print tab(30-i*3); For j = 1 to i Print j; Next j For j= i-1 to 1 step -1 Print j; Next j PrintNext i第五章1.从键盘上输入20个整数,并放入一个一维数组中,然后将其前10个元素与后10个元素对换,即:第1个元素与第20个元素互换,第2个元素与第19个元素互换第10个元素与第11个元素互换。分别输出数组原来各元素的值和对换后各元素的值。Option Base 1Private Sub Form_Click()arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,19,20)Print 原来数组:For i = 1 To 20 Print arr(i);Next iPrintFor i = 1 To 10 For j = 11 To 20 t = arr(i) arr(i) = arr(j) arr(j) = t Next jNext iPrint 对换后数组:For i = 1 To 20 Print arr(i);Next iEnd Sub2VB编写程序,建立并输出一个10*10的矩阵,该矩阵两条对角线元素为1,其余元素均为0Private Sub Form_Click() Dim a(1 To 10, 1 To 10) As Integer For i = 1 To 10 For j = 1 To 10 a(i, j) = 0 If i = j Then a(i, j) = 1 If i + j = 11 Then a(i, j) = 1 Print a(i, j); ; Next j Print Next iEnd Sub3.VB设计:有个n*m的矩阵,各元素值由键盘输入,求全部元素的平均值,并输出高于平均值的元素及它们的行列号 Private Sub Form_Click()Dim a!(1 to n, 1 to m)Dim aver!Dim sum!For i = 0 To nFor j = 0 To ma(i, j) = InputBox(请输入第 & i + 1 & 行 & 第 & j + 1 & 列的数字)sum = sum + a(i, j)Next jNext iaver = sum /nmPrint 平均数为 & averPrint 大于平均值的数有:For i = 0 To nFor j = 0 To mIf a(i, j) aver ThenPrint a(i, j), 第 & i + 1 & 行 & 第 & j + 1 & 列End IfNext jNext iEnd Sub6随机生成两个3*3的矩阵A和B,将矩阵A和B相加存放在矩阵C中,单击窗体时在3个Picture图形框中分别输出这三个矩阵private sub form_click()dim a(2,2),b(2,2),c(2,2),i,jrandomizefor i=0 to 2for j=0 to 2a(i,j)=int(rnd*10)picture1.print a(i,j),b(i,j)=int(rnd*10)picture2.print b(i,j),c(i,j)=a(i,j)+b(i,j)picture3.print c(i,j),nextpicture1.printpicture2.printpicture3.printnextend sub7设某班共10名学生,为了评定某门课程的奖学金,按规定超过全班平均成绩10%者发给一等奖,超过全班成绩5%者发个二等奖。 输出应获奖学金的学生名单(包括名字,学好,成绩,奖学金type strc no as integer 定义学号为数值型xm as string cj as single 定义成绩为单精度型 jl as string 定义奖学金类型end typedim stu(1 to 10) as strc,ave as singlefor i= 1 to 10 stu(i).no=i stu(i).xm=val(inputbox(请输入 & i “个学生的姓名 ) stu(i).cj=val(inputbox(请输入 & i “个学生的成绩 ) ave=ave+stu(i).cj stu(i).jl=next iave=ave/10 : ave2=ave *1.1 : ave3 =ave3*1.05for i= 1 to 10 if stu(i).cj =ave2 then stu(i).jl=一等奖学金 elseif stu(i).cj =ave3 then stu(i).jl=二等奖学金 else stu(i).jl=未获奖 endifprint stu(i).no & stu(i).xm & stu(i).cj & stu(i).jlnext i9.设有如下两组数据。(1)2,8,7,6,4,28,70,25(2)79,27,32,41,57,66,编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,25+66,并把相应的结果放入第三个数组中,最后输出第三个数组的值。Option Base 1Private Sub Form_Click()Dim A, B, C(8) As IntegerA = Array(2, 8, 7, 6, 4, 28, 70, 25)B = Array(79, 27, 32, 41, 57, 66)For i = 1 To 8 C(i) = A(i) + B(i)Next iPrint 第一个数组为:;For i = 1 To 8 Print A(i);Next iPrintPrint 第二个数组为:;For i = 1 To 6 Print B(i);Next iPrintPrint 第三个数组为:;For i = 1 To 8 Print C(i);Next iPrintEnd Sub10编写程序,把下面的数据输入到一个二维数组中:25 36 78 1312 26 88 9375 18 22 3256 44 36 58然后执行以下操作:1) 输出矩阵两个对角线上的数;2) 分别输出各行和各列的和。 3) 交换第一行和第三行的位置。4) 交换第二行和第四行的位置。5) 输出处理后的数组。Dim a(4, 4), b(4, 4) As IntegerFor i = 0 To 3 For j = 0 To 3 a(i, j) = Val(InputBox(请输入第 & i + 1 & 行第 & j + 1 & 列的数) Next jNext iPrint 原始数据For i = 0 To 3 Print a(i, 0) & & a(i, 1) & & a(i, 2) & & a(i, 3) & 和 & Val(a(i, 0) + a(i, 1) + a(i, 2) + a(i, 3)Next iPrint 和 和 和 和For j = 0 To 3 Print ; Val(a(0, j) + a(1, j) + a(2, j) + a(3, j);Next jPrint对角线For i = 0 To 3 Print Tab(i * 2); a(i, i)Next iPrintFor i = 0 To 3 Print Tab(3 - i) * 2); a(i, 3 - i)Next iPrint调整For j = 0 To 3 b(2, j) = a(0, j) 第一行和第三行 b(0, j) = a(2, j) b(1, j) = a(3, j) b(3, j) = a(1, j)Next jPrint 调整后数据For i = 0 To 3 Print b(i, 0) & & b(i, 1) & & b(i, 2) & & b(i, 3)Next i11设有如下人员名册: 姓名 性别 年龄 文化程度 籍贯 张得功 男 24 大学本科 河北 李得胜 男 30 高中毕业 北京 王丽 女 25 研究生 山东 试编写一个程序,对该名册进行检索。程序运行后,只要在键盘上输入一个人名,就可以在屏幕上显示出这个人的情况。例如,输入“张得功”,则显示: 张得功 男 24 大学本科 河北要求:(1)使用动态数组,输入的人数可以根据实际情况改变。(2)当检索名册中不存在的人名时,输出相应的信息。(3)每次检索结束后,询问是否继续检索,根据输入的信息确定是否结束程序。dim arr() /定义数组Adodc1.RecordSource = select * from 数据表 where 1=1 and 姓名= & text1.textAdodc1.Refreshi_count = Adodc1.Recordset.RecordCount/取出数据库中满足条件的数据记录,并且计算记录条数if i_count=0 then msgbox 查找人员不存在,64,提示信息else redim arr(i_count) /重新定义数组,使符合动态数目 ./这里对取得数据进行显示处理end if Dim Msg, Response Msg = 确认退出? Response = MsgBox(Msg, vbQuestion + vbYesNo, 提示) Select Case Response Case vbYes /退出 Case vbNo /继续 End Select12.某单位开运动会,共有10人参加男子100米短跑,运动员和成绩如下: 207号 14.5秒 077号 15.1秒 156号 14.2秒 231号 14.7秒 453号 15.2秒 276号 13.9秒 096号 15.7秒 122号 13.7秒 339号 14.9秒 302号 14.5秒编写程序,按成绩排出名次,并按如下格式输出: 名次 运动员 成绩 1 . . 2 . . 3 . . . . . 10 . .在Form1中加入一个Command控件,粘贴入以下代码:Dim i As Integer, j As IntegerDim n As Integer, m As IntegerDim w(9, 1) As DoublePrivate Sub Command1_Click()Dim a1 As Double, a2 As Doublea1 = 0a2 = 0For i = 1 To 10 For j = 0 To 9 - i If w(j, 1) w(j + 1, 1) Then a1 = w(j, 0) a2 = w(j, 1) w(j, 0) = w(j + 1, 0) w(j, 1) = w(j + 1, 1) w(j + 1, 0) = a1 w(j + 1, 1) = a2 End If Next jNext iFor i = 0 To 9Print w(i, 0)NextPrint 名次 & 运动员 & 成绩For i = 0 To 9 Print & i + 1 & & Format(w(i, 0), 000) & & w(i, 1)NextEnd SubPrivate Sub Form_Load()For i = 0 To 9 w(i, 0) = InputBox(请输入第 & i + 1 & 运动员的编号) w(i, 1) = InputBox(请输入第 & i + 1 & 运动员的成绩)NextCommand1.Caption = 名次排列End Sub13.杨辉三角形每一行是(x+y)的n次方的展开式的各项系数。例如第一行系数是1;第二行1,1;第三行1,2,1请编写程序输出n=10的杨辉三角形Option Base 1Private Sub Command1_Click()Dim a() As Doublem = InputBox(请输入行数 , 输入, 0)ReDim a(m, m) As DoubleFor i = 1 To m a(i, 1) = 1 For j = 1 To m a(j, j) = 1 If j = 2 And j = j Then Print Tab(j * 4); Str(a(i, j); End If Next j PrintNext iEnd Sub第六章1编写一个求3个数中最大值和最小值的VB程序,然后用这个过程分别求5个数和7个数的最大最小值. dim ssnum=val(inputbox (输入要求的数的个数)dim a(1 to num) for i=1 to numa(i)=texti.textnextfor m=num to 2for n=1 to m-1if a(n)=a(n+1) thenss=a(n+1)a(n+1)=a(n)a(n)=ssend ifnextprint MAX: & a(num)print MIN: & a(1)2.编写程序,求S=A!+B!+C!,阶乘的计算分别用Sub过程和Function过程两种方法来实现方法一:(以前方法)Option Base 1Private Sub form_Click()Dim a(), s()Dim sum#, str$Dim m%m = Val(InputBox(输入要计算几个阶乘的数): If m =1的正数: Exit SubReDim a(1 To m)ReDim s(1 To m)For i = 1 To m a(i) = Val(InputBox(输入第 & i & 个需要计算阶乘的数): If n 0 Then Exit ForNext iFor i = 1 To m s(i) = 1 For j = 1 To a(i) s(i) = s(i) * j Next j Print a(i); 的阶乘数为:; s(i)Next iFor i = 1 To m sum = s(i) + sumNext i For i = 1 To m If i = m Then str = str & a(i) & ! Else str = str & a(i) & ! & + End If Next iPrint Tab(3); 所求的; m; 个数的阶乘和为:; str; =; sumEnd Sub方法二:(sub过程1)Sub sub1(x As Long)Dim m%, i%m = 1For i = 1 To x m = m * iNextx = mEnd SubPrivate Sub Form_Click()Dim a&, b&, c&, i%, s#a = InputBox(1)b = InputBox(2)c = InputBox(3)sub1 asub1 bsub1 cs = a + b + cPrint sEnd Sub3.编写一个过程,以整形作为形参。当该参数为奇数时输出false,当该参数为偶数时输出true function getFT(val) if(val mod 2=0) then getFT=true else getFT=false end ifend function4.设a为一个整数,如果能使a=xxa成立,则称a为守形数.例如5=25,25=625,则5和25都是守形数.试编写一个Function过程Automorphic,其形参为一正整数,判断其是否为守形数,然后用该过程查找1到1000内的所有守形数.法一 函数 Private Sub Cd1_Click() Dim a As Long For a = 1 To 1000 Y = SS(a) If Y 0 Then Print a; ; Y Next a End Sub Function SS(X As Long) X1 = Trim(Str(X * X) X2 = Trim(Str(X) L = Len(X2) If Right(X1, L) = X2 Then SS = X * X End Function 法二 子程序 Private Sub Cd2_Click() Dim a As Long For a = 1 To 1000 Call SX(a) Next a End Sub Sub SX(X As Long) X1 = Trim(Str(X * X) X2 = Trim(Str(X) L = Len(X2) If Right(X1, L) = X2 Then Print X; ; X * X End Sub5.编写求解一元二次vb方程ax2+bx+c=0的过程,要求a,b,c及解x1,x2都以参数传递的方式与主程序交换数据,输入a,b,c和输出x1,x2的操作放在主程序中Private Sub Command1_Click() Dim a As Single Dim b As Single Dim c As Single Dim x1 As Single Dim x2 As Single Dim f As Double a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) d = b 2 - 4 * a * c If a = 0 Then MsgBox (二次相系数不得为零) ElseIf d -1 And Val(B) Max Then Max = b(i) End IfNext iPrint 最高分是第 & i & 个同学,其成绩是: & MaxEnd Sub7二维数组的输出。 Dim s(3, 2) As IntegerPrivate Sub Form_Click()For i = 0 To 3 Print Tab(5); For j = 0 To 2 s(i, j) = i * 2 + j + 1 Print s(i, j); Next j PrintNext iEnd Sub 比较5个数的大小。 Dim S(5) As IntegerPrivate Sub Form_Click()Const n = 5For i = 1 To n S(i) = InputBox(请输入第 & i & 个数, 数据排序)Next i For i = 1 To n - 1Min = i For j = i + 1 To n If S(j) S(Min) Then Min = j Next j t = S(i) S(i) = S(Min) Next i For i = 1 To 5 Print S(i) Next iEnd Sub 抽数排大小Private Sub Command1_Click()Dim Data() As String, MaxNum As Integer, Temp As Integer, StepVal As Integer, i As Integer, i2 As IntegerDim TempStr As StringData() = Split(Text1.Text, ,)StepVal = UBound(Data() - 1For i = 0 To StepValFor t = 0 To iIf Val(Data(t) Val(Data(i + 1) ThenMaxNum = Data(i + 1)Data(i + 1) = Data(t) Data(t) = MaxNumEnd IfNextNextFor i2 = 0 To UBound(Data()TempStr = TempStr & IIf(TempStr = , , ,) & Data(i2)NextText2.Text = TempStrMsgBox Ok!End SubPrivate Sub Command2_Click()Dim Data() As String, MaxNum As Integer, Temp As Integer, StepVal As Integer, i As Integer, i2 As IntegerData() = Split(Text1.Text, ,)StepVal = UBound(Data() - 1For i = 0 To StepValFor t = 0 To iIf Val(Data(t) Val(Data(

温馨提示

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

评论

0/150

提交评论