老师让俺做的作业,制作VB小程序....
俺做了如下
已知孔型边长ak,通过计算得出孔型构成尺寸
Private Sub CommandButton1_Click()
Dim h As Single, b As Single, r As Single, ak As Single, s As Single, hk As Single, bk As Single, rk As Single, fk As Single
If TextBox1.Text = "" And TextBox2.Text = "" Then
ak = 0
s = 0 '无输入默认为0
Else
ak = TextBox1.Text 'ak为方孔边长
s = TextBox2.Text 's为辊缝
h = 1.41 * ak
b = 1.42 * ak
If ak >= 30 Then
  r = CInt(s / 0.83) 'r为孔型内圆弧半径
  If r < 0.18 * ak Then
     r = CInt(0.18 * ak)
  End If
ElseIf ak >= 15 And ak < 30 Then
     r = CInt(s / 0.85 * 10) / 10
ElseIf ak < 15 And ak >= 9 Then
     r = CInt(s / 0.9 * 10) / 10
ElseIf ak < 9 Then
     r = s
End If
hk = -CInt(h - 0.828 * r * 100) / 100 '孔型高度
bk = -CInt(b - s * 100) / 100 '孔型槽口宽度
rk = CInt(0.13 * ak) '孔型外圆弧半径
fk = ak * ak - 0.86 * r * r '孔型面积
TextBox3.Text = hk
TextBox4.Text = bk
TextBox5.Text = rk
TextBox6.Text = fk
End If
End Sub
问题出在
hk = -CInt(h - 0.828 * r * 100) / 100 
bk = -CInt(b - s * 100) / 100 
这两句本来该是
hk = CInt(h - 0.828 * r * 100) / 100 
bk = CInt(b - s * 100) / 100 
运行的话,得出的为负数
没办法为了交作业只好加了个-号
汗=.=!!
到底哪里出错了,哪位大虾帮忙看下啊.....小弟感激不尽....崇拜之情如滔滔江水连绵不绝,感激之情如渤海之波涛汹涌。
这个问题好象是有点小儿科,但是入门真的好难5555555555麻烦大家看看..........

解决方案 »

  1.   

    h - 0.828 * r * 100,b - s * 100已为负了???????????
    楼主没提供测试数据
      

  2.   

    俺已经知道哪里错了,* 100) / 100 这个是取正数的意思
    hk = CInt((h - 0.828 * r )* 100) / 100 
    bk = CInt((b - s) * 100) / 100 
    加了两个括号就OK了..........
    但是因为定义了CInt那么怎么处理益出问题
    若ak =20000,S=2000
    hk=益出 
      

  3.   

    你定义的变量s,ak都为single类型,而给他们赋值却都是赋的字符串类型(text1.txt,text2.txt),没看见你里面有将他们进行类型转换就可以将他们直接进行运算,很奇怪
      

  4.   

    ak = TextBox1.Text 'ak为方孔边长
    s = TextBox2.Text 's为辊缝如果TEXTBOX输入的是负数那很可能就能得到负数
    你应该加条件保证输入的数据合法才对呀 ?
    比如输入筐不能输入负数,不能输入字母等非数字字符