Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim io As New InputOutput(Val(TextBox1.Text))
- Dim num = New ParseDecimalToRoman()
- num.Interpret(io)
- TextBox2.Text = io.Output
- End Sub
- End Class
- Public MustInherit Class Terminals
- Inherits RomanExpression
- Public Overrides Sub Interpret(ByVal value As InputOutput)
- While value.Input - 9 * Multiply() >= 0
- value.Output += NineStrings()
- value.Input -= 9 * Multiply()
- End While
- While value.Input - 5 * Multiply() >= 0
- value.Output += FiveStrings()
- value.Input -= 5 * Multiply()
- End While
- While value.Input - 4 * Multiply() >= 0
- value.Output += FourStrings()
- value.Input -= 4 * Multiply()
- End While
- While value.Input - Multiply() >= 0
- value.Output += OneStrings()
- value.Input -= Multiply()
- End While
- End Sub
- Public MustOverride Function OneStrings() As String
- Public MustOverride Function FourStrings() As String
- Public MustOverride Function FiveStrings() As String
- Public MustOverride Function NineStrings() As String
- Public MustOverride Function Multiply() As Integer
- End Class
- Public Class InputOutput
- Private intIn As Integer
- Private strOut As String
- Public Sub New(ByVal intInput As Integer)
- Me.intIn = intInput
- End Sub
- Public Property Input() As Integer
- Get
- Return intIn
- End Get
- Set(ByVal value As Integer)
- intIn = value
- End Set
- End Property
- Public Property Output() As String
- Get
- Return strOut
- End Get
- Set(ByVal value As String)
- strOut = value
- End Set
- End Property
- End Class
- Public MustInherit Class RomanExpression
- Public MustOverride Sub Interpret(ByVal value As InputOutput)
- End Class
- Class Ones
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "I"
- End Function
- Public Overrides Function FourStrings() As String
- Return "IV"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "V"
- End Function
- Public Overrides Function NineStrings() As String
- Return "IX"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 1
- End Function
- End Class
- Class Tens
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "X"
- End Function
- Public Overrides Function FourStrings() As String
- Return "XL"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "L"
- End Function
- Public Overrides Function NineStrings() As String
- Return "XC"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 10
- End Function
- End Class
- Class Hundreds
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "C"
- End Function
- Public Overrides Function FourStrings() As String
- Return "CD"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "D"
- End Function
- Public Overrides Function NineStrings() As String
- Return "CM"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 100
- End Function
- End Class
- Class Thousands
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "M"
- End Function
- Public Overrides Function FourStrings() As String
- Return "MV"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "V"
- End Function
- Public Overrides Function NineStrings() As String
- Return "MX"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 1000
- End Function
- End Class
- Class TenThousands
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "X|"
- End Function
- Public Overrides Function FourStrings() As String
- Return "XL|"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "L|"
- End Function
- Public Overrides Function NineStrings() As String
- Return "XC|"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 10000
- End Function
- End Class
- Class HundredThousands
- Inherits Terminals
- Public Overrides Function OneStrings() As String
- Return "C|"
- End Function
- Public Overrides Function FourStrings() As String
- Return "CD|"
- End Function
- Public Overrides Function FiveStrings() As String
- Return "D|"
- End Function
- Public Overrides Function NineStrings() As String
- Return "CM|"
- End Function
- Public Overrides Function Multiply() As Integer
- Return 100000
- End Function
- End Class
- Public Class ParseDecimalToRoman
- Inherits RomanExpression
- Private AllExpressions As New List(Of RomanExpression)() _
- From { _
- New HundredThousands(), _
- New TenThousands(), _
- New Thousands(), _
- New Hundreds(), _
- New Tens(), _
- New Ones() _
- }
- Public Overrides Sub Interpret(ByVal value As InputOutput)
- For Each reExp As RomanExpression In AllExpressions
- reExp.Interpret(value)
- Next
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement