| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:一个小程序改了很多遍,求大神看看。。新手刚进来的
只看楼主 加入收藏
木头人321
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-10-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
一个小程序改了很多遍,求大神看看。。新手刚进来的
Private Sub Command1_Click()
  Text1.Text = " "
  Cls
  
End Sub
Private Sub Form_Load()
  Dim n As Integer
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
  
  If Chr(KeyAscii) <> "=" Then
   If Chr(KeyAscii) = "(" Then n = n + 1
   If Chr(KeyAscii) = ")" Then n = n - 1
  Else
  ' If n = 0 Then Print "左括号等于右括号"
   'If n > 0 Then Print "左括号多于右括号" & n & "个,按“重置”按钮,重新输入"
   'If n < 0 Then Print "右括号多于左括号" & -n & "个,按“重置”按钮,重新输入"
   'Print "左括号等于右括号"
   'End If
   
  'If Chr(KeyAscii) = "=" Then
  Select Case n
     Case 0
    Print "左括号等于右括号"
   Case Is > 0
    Print "左括号多于右括号" & n & "个,按“重置”按钮,重新输入"
   Case Is < 0
    Print "右括号多于左括号" & -n & "个,按“重置”按钮,重新输入"
   End Select
  Else
  
   End If
   
End Sub




中间一些语句试了很多遍给注销了。。这个程序就是判断在文本框中输入的内容,其中的,左括号和右括号配对的问题
2014-10-12 11:44
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:20 
变量n应该定义在前面,作为全程变量使用,拷贝下列代码即可运行(好像只能第一次得到正确提示,往后就即使匹配也出错,主要是没有合适的位置对n的值复位)
Dim n As Integer
Private Sub Command1_Click()
  n=0  
  Text1= " "
  Cls  
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If Chr(KeyAscii) <> "=" Then
   If Chr(KeyAscii) = "(" Then n = n + 1
   If Chr(KeyAscii) = ")" Then n = n - 1
  Else
    Select Case n
      Case 0
      Print "左括号等于右括号"
      Case Is > 0
      Print "左括号多于右括号" & n & "个,按“重置”按钮,重新输入"
      Case Is < 0
      Print "右括号多于左括号" & -n & "个,按“重置”按钮,重新输入"
    End Select
  End If   
End Sub

能得到正确结果的代码应该如下:

Private Sub Command1_Click()
  Text1 = " "
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
  Dim i As Integer, n As Integer, a As String
  If Chr(KeyAscii) = "=" Then
    n = 0
    For i = 1 To Len(Text1)
      If Mid(Text1, i, 1) = "(" Then n = n + 1
      If Mid(Text1, i, 1) = ")" Then n = n - 1
    Next
    If n = 0 Then a = "左右括号匹配"
    If n > 0 Then a = "左括号比右括号多" & n & "个"
    If n < 0 Then a = "左括号比右括号少" & Abs(n) & "个"
    MsgBox a
  End If
End Sub

2014-10-12 13:21
快速回复:一个小程序改了很多遍,求大神看看。。新手刚进来的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033129 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved