在vb里,利用控制台应用程序,定义一个限差类TolError,附带事件OverError,限差值设计为属性,由用户输入若干个高差(可正可负),计算其总的高差h,超过限差值则触发事件OverError。
时间: 2024-09-26 16:05:19 浏览: 21
在VB (Visual Basic) 中创建一个名为TolError的限差类,用于控制台应用程序,可以按照以下步骤实现:
1. **定义类结构**:
```vb
Public Class TolError
' 定义限差值作为属性
Public Property Tolerance As Double
' 初始化时默认值可以设置在这里
Public Sub New()
Tolerance = 0 ' 默认限差值设为0
End Sub
' 事件声明:OverError
' 通常事件会有一个 RaiseEvent 方法来触发
Public Event OverError(ByVal errorH As Double)
' 计算总高差的Method
Public Function CalculateTotalHeight(heights() As Double) As Double
Dim totalHeight As Double = 0
For Each h In heights
totalHeight += h
If Abs(totalHeight - Tolerance) > Tolerance Then ' 检查是否超出限差
RaiseEvent OverError(Abs(totalHeight - Tolerance)) ' 触发事件
Exit For ' 如果超过就停止计算
End If
Next
Return totalHeight
End Function
End Class
```
2. **在主程序中使用**:
```vb
Module Module1
Sub Main()
' 创建TolError实例并设置限差值
Dim tolErr As New TolError
tolErr.Tolerance = InputBox("请输入限差值:", "限差")
' 用户输入若干个高差
Dim heights() As Double = {InputBox("请输入第一个高差:", "高差"), _
InputBox("请输入第二个高差:", "高差"), ...}
' 调用CalculateTotalHeight方法,并处理OverError事件
Try
Console.WriteLine($"总高差为: {tolErr.CalculateTotalHeight(heights)}")
Catch ex As Event raisedEvent
Console.WriteLine($"高差超出了限差值: {raisedEvent}")
End Try
Console.ReadLine() ' 等待用户按下回车键退出
End Sub
End Module
```