vbs练习题

练习题:

1、输入3个数,输出其中最大的那个值。

Option Explicit
Dim intA,intB,intC
intA=CInt(InputBox("请输入a:"))
intB=CInt(InputBox("请输入b:"))
intC=CInt(InputBox("请输入c:"))
If intA>intB And intA>intC Then
    MsgBox  "最大值是:"&intA
ElseIf intB>intC Then 
    MsgBox "最大值是:"&intB
Else 
    MsgBox "最大值是:"&intC
End If

 

2、判断输入的字符类型。

Dim a,b,c
a=InputBox("请输入一个字符:")
b=Asc(a)
If b>=48 And b<=57 Then
    c=0
ElseIf b>=65 And b<=90 Then
    c=1
ElseIf b>=97 And b<=122 Then
    c=2
Else 
    c=3
End if

Select Case c
    Case 0
    MsgBox "输入为数字:"&a
    Case 1
    MsgBox "输入为大写字母:"&a
    Case 2
    MsgBox "输入为小写字母:"&a
    Case 3
    MsgBox "输入为其它符号:"&a
End Select

 

3、输入一组数字,倒序输出。

Dim a(4)
For i=0 To 4 
    a(i)=InputBox("请输入第"&i+1&"数字:")
Next
MsgBox "你输入的数字倒序输出为:"&a(4)&","&a(3)&","&a(2)&","&a(1)&","&a(0) 

 

4、用VBS实现冒泡排序,输入10个数,按从小到大或从大到小的顺序排列。

Option Explicit  
Dim i,j,usernum(9),tempnum
For i=0 To 9 
    usernum(i)=CInt(InputBox("请输入第"&i+1&"个数"))
Next
For 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
  Next
Next
For i=0 To 9 
    MsgBox(usernum(i))
Next
'方法二
Dim a(10)
For i=1 To 10 
     a(i)=cint(InputBox("请输入第"&i&"数字:"))
Next
Function change(x,y)
    If x>y Then
         tem=x
         x=y
         y=tem
    End If 
End Function
For i=1 To 10
    For j=1 To 10-i
        change a(j),a(j+1)
    next
Next
MsgBox 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,strPassword
Do 
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 If
Loop

x=0
Do 
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 If
Loop 

 

6、计算两个数求余的结果,要求:计算出错时输出错误。

Option Explicit
On Error Resume Next 

Function getmod(a,b)
    getmod=a Mod b
End Function

Dim c,ua,ub
ua=CInt(InputBox("请输入一个数"))
ub=CInt(InputBox("请再输入一个数"))
c=getmod(ua,ub)
If Err Then       '可以自主产生错误 Err.Raise 6
    MsgBox Err.Number &"---"& Err.Description
    Err.Clear
Else
    MsgBox c
End If

 

7、随机数。

Dim strInput,arrg
strIput=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 = Nothing
End Function

Writelog "hello lxl"

 

9、读文本文档.txt文件并显示出来。

Option Explicit
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:\f.txt",ForReading)
' 读取文件内容
' MsgBox fil.ReadAll  ' 一次性全部读取
' 判断是否到了文件的最后面
Do While Not fil.AtEndOfLine  '注意和AtEndOfLine的区别
    ' 只要没到最后,就读取一行,同时把游标向下移动一行
    msg = msg & vbNewLine & fil.ReadLine
Loop
MsgBox 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"

 

posted @ 2014-07-25 15:28  Defias  阅读(702)  评论(0编辑  收藏  举报