首页 > 代码库 > VBS练习题
VBS练习题
练习题:
1、输入3个数,输出其中最大的那个值。
Option ExplicitDim intA,intB,intCintA=CInt(InputBox("请输入a:"))intB=CInt(InputBox("请输入b:"))intC=CInt(InputBox("请输入c:"))If intA>intB And intA>intC Then MsgBox "最大值是:"&intAElseIf intB>intC Then MsgBox "最大值是:"&intBElse MsgBox "最大值是:"&intCEnd If
2、判断输入的字符类型。
Dim a,b,ca=InputBox("请输入一个字符:")b=Asc(a)If b>=48 And b<=57 Then c=0ElseIf b>=65 And b<=90 Then c=1ElseIf b>=97 And b<=122 Then c=2Else c=3End ifSelect Case c Case 0 MsgBox "输入为数字:"&a Case 1 MsgBox "输入为大写字母:"&a Case 2 MsgBox "输入为小写字母:"&a Case 3 MsgBox "输入为其它符号:"&aEnd Select
3、输入一组数字,倒序输出。
Dim a(4)For i=0 To 4 a(i)=InputBox("请输入第"&i+1&"数字:")NextMsgBox "你输入的数字倒序输出为:"&a(4)&","&a(3)&","&a(2)&","&a(1)&","&a(0)
4、用VBS实现冒泡排序,输入10个数,按从小到大或从大到小的顺序排列。
Option Explicit Dim i,j,usernum(9),tempnumFor i=0 To 9 usernum(i)=CInt(InputBox("请输入第"&i+1&"个数"))NextFor i=0 To 8 For j=0 To 8-i Step 1 If usernum(j)>usernum(j+1) Then tempnum=usernum(j) usernum(j)=usernum(j+1) usernum(j+1)=tempnum End If NextNextFor i=0 To 9 MsgBox(usernum(i))Next
‘方法二Dim a(10)For i=1 To 10 a(i)=cint(InputBox("请输入第"&i&"数字:"))NextFunction change(x,y) If x>y Then tem=x x=y y=tem End If End FunctionFor i=1 To 10 For j=1 To 10-i change a(j),a(j+1) nextNextMsgBox a(10)&","&a(9)&","&a(8)&","&a(7)&","&a(6)&","&a(5)&","&a(4)&","&a(3)&","&a(2)&","&a(1)
5、用VBS实现用户名和密码的输入验证,先输入用户名再输入密码:用户名必须是4~10位的字符,否则提示用户名为空、少于4位或多于10位。密码必须是Mercury(不区分大小写),如果输入为空则提示用户输入密码,如果连续三次未输入正确密码则提示用户重新登录,然后退出。
Dim strUsername,strPasswordDo strUsername=CStr(InputBox("please input your UserName!","Input Name")) If Len(strUsername)<4 or Len(strUsername)>10 Then MsgBox "用户名必须是4-10位字符!请重新输入!",48,"用户名输入不正确!" Else Exit Do End IfLoopx=0Do strPassword=CStr(InputBox("please input the password!","Input password"))strPassword=LCase(strPassword) If strPassword="mercury" Then MsgBox "用户"&strUsername&"登陆成功!",48,"登陆成功!" Exit Do Else MsgBox "密码不正确!",48,"密码不正确!" x=x+1 If x=3 Then MsgBox "请重新登陆!",48,"请重新登陆!" Exit do End If End IfLoop
6、计算两个数求余的结果,要求:计算出错时输出错误。
Option ExplicitOn Error Resume Next Function getmod(a,b) getmod=a Mod bEnd FunctionDim c,ua,ubua=CInt(InputBox("请输入一个数"))ub=CInt(InputBox("请再输入一个数"))c=getmod(ua,ub)If Err Then ‘可以自主产生错误 Err.Raise 6 MsgBox Err.Number &"---"& Err.Description Err.ClearElse MsgBox cEnd If
7、随机数。
Dim strInput,arrgstrIput=InputBox("请输入5个词语,用,分开!")arrg=Split(strIput,",")For Each element In arrg Randomize 5 ‘初始化随机生成器,后面的值5也可以省略而是用系统的种子 MsgBox arrg(Int(5*Rnd)) ‘随机输出数组中的元素值Next
8、写日志到文本文件中。
Function Writelog(str) Const ForReading=1,ForWriting=2,ForAppending=8 Dim fso,fil,msg ‘ 创建一个文件系统对象(File System Object) Set fso = CreateObject("Scripting.FileSystemObject") ‘ 创建一个文件对象,通过fso对象来打开指定的文件 Set fil = fso.OpenTextFile("C:\log.txt",ForAppending) fil.WriteLine now &" "&str ‘ 关闭这个文件 fil.Close ‘ 释放这个文件对象 Set fil = Nothing ‘ 释放这个文件系统对象 Set fso = NothingEnd FunctionWritelog "hello lxl"
9、读文本文档.txt文件并显示出来。
Option ExplicitConst ForReading=1,ForWriting=2,ForAppending=8Dim fso,fil,msg‘ 创建一个文件系统对象(File System Object)Set fso = CreateObject("Scripting.FileSystemObject")‘ 创建一个文件对象,通过fso对象来打开指定的文件Set fil = fso.OpenTextFile("C:\f.txt",ForReading)‘ 读取文件内容‘ MsgBox fil.ReadAll ‘ 一次性全部读取‘ 判断是否到了文件的最后面Do While Not fil.AtEndOfLine ‘注意和AtEndOfLine的区别 ‘ 只要没到最后,就读取一行,同时把游标向下移动一行 msg = msg & vbNewLine & fil.ReadLineLoopMsgBox msg‘ 关闭这个文件fil.Close‘ 释放这个文件对象Set fil = Nothing‘ 释放这个文件系统对象Set fso = Nothing
4、读取数据库查询的结果
Dim Cnn,Rst,strCnn,Msg, Sqlstr
strCnn="Provider=MSDASQL.1;Persist Security Info=False;Data Source=calc" ‘数据源字符串
Set Cnn=CreateObject("ADODB.Connection")
Cnn.Open strCnn
Set Rst=CreateObject("ADODB.RecordSet")
Sqlstr="select * from calc order by TestNumber1 asc"
Rst.Open Sqlstr,Cnn
Rst.MoveFirst
Do While Not Rst.EOF
Msg=Msg&vbTab&Rst.Fields("TestNumber1")&vbTab&Rst.Fields("TestNumber2")&vbTab&Rst.Fields("TestResult")&vbNewLine
Rst.MoveNext
Loop
Rst.Close
Cnn.Close
Set Rst=Nothing
Set Cnn=Nothing
MsgBox Msg
5、更新数据库中的数据
Dim Cnn,strCnn,Cmd,Sqlstr
strCnn=" Provider=MSDASQL.1;Persist Security Info=False;Data Source=calc "
Set Cnn=CreateObject("ADODB.Connection")
Cnn.Open strCnn
‘Set Rst=CreateObject("ADODB.RecordSet")
Set Cmd=CreateObject("ADODB.Command")
Cmd.ActiveConnection = Cnn
Sqlstr="update calc set TestNumber1= 78901 where TestNumber1= 78900" Cmd.CommandText = Sqlstr
Cmd.Execute
Cnn.Close
Set Rst=Nothing
Set Cnn=Nothing
6、插入数据到数据库中
Sub inputaccess(tn1,tn2,tr)
Dim Cnn,strCnn,Cmd,Sqlstr
strCnn="Provider=MSDASQL.1;Persist Security Info=False;Data Source=lxl"
Set Cnn=CreateObject("ADODB.Connection")
Cnn.Open strCnn
Set Cmd=CreateObject("ADODB.Command")
Cmd.ActiveConnection = Cnn
Sqlstr="insert into calc(TestNumber1,TestNumber2,TestResult) values("&tn1&","&tn2&",‘"&tr&"‘)"
Cmd.CommandText = Sqlstr
Cmd.Execute
Cnn.Close
Set Rst=Nothing
Set Cnn=Nothing
End Sub
inputaccess 1,2,"yezhaohui"
VBS练习题