不使用决策结构或循环的可视基本计算器

时间:2018-03-09 17:31:35

标签: visual-studio vb6 sequential

第一年编码学生,并在我的视觉基础课上有一个项目。

创建一个简单的计算器,它将乘法,除法,减法和相加。事情是我们不允许使用任何决策结构或循环,只有顺序样式编码结构。

我正在努力在程序中稍后存储,传递和利用所选择的数学运算符。

编码方程式时,运算符考虑的数据类型是什么?

例如在4-1 = 3中 - 被认为是一个字符串?

如何存储此值并将其传递给程序的另一部分然后将其转换为可以插入公式的表单,而不使用决策结构或循环?

例如:

1)用户点击“1”按钮,字符串值1作为字符串存储在标签中。

2)用户单击“+”按钮并在标签中存储+(不确定此处使用的数据类型以供日后使用)。

3)然后用户点击“1”按钮,1作为字符串存储在标签中。

4)用户点击“=”按钮。

5)= button事件处理程序执行将“1”字符串转换为整数变量的代码,公式应表示IntResult = IntvariableOne + intVariableTwo。但由于运营商可能并不总是+,因此不能使用决策结构。如何使用变量来存储运算符并在公式中正确完成处理?

用最简单的术语来说,它等同于: intResult = intvariableOne,Operatorvarible,intVariableTwo 就像我说我是编码新手一样,如果这是一个愚蠢的问题或完全错误的方法,我会道歉。

任何信息都表示赞赏 谢谢

2 个答案:

答案 0 :(得分:0)

这是一个骗子,但请尝试使用Eval

Eval("4-1")  ' returns 3

答案 1 :(得分:0)

阅读你的帖子我正考虑使用" CallByName"功能

但是你也可以尝试一些更优雅的东西" oop" (达到旧VB6提供的一些限制):

创建一个文件" ICalculator.cls" :

'
' Defines the "ICalculator" interface.
'
Option Explicit

Public Function CalcProcess(value1 As Integer, value2 As Integer)

End Function

创建一个名为" CalculatorAdd.cls"的文件。这将需要"添加"负责人:

'
' This "class" will implement "ICalculator" inteface to manage additions.
'
Option Explicit
Implements ICalculator

Private Function ICalculator_CalcProcess(value1 As Integer, value2 As Integer)
    ICalculator_CalcProcess = value1 + value2
End Function

然后,它是如何运作的一个例子:

Sub Test()

Dim value1 As Integer
Dim value2 As Integer

value1 = 1
value2 = 2

' Global object :
Dim objCalculator As ICalculator
...

' The object is set to "Addition" in the onclick event of the "add" button :
Set objCalculator = New CalculatorAdd
...

' The process is done in the onclick event of the "equal" button
value1 = objCalculator.CalcProcess(value1, value2)
...

' You can also have :
'Set objCalculator = New CalculatorSub
'value1 = objCalculator.CalcProcess(value1, value2)
'etc...

End Sub

您可以为每个操作创建类"添加,子,除,乘"并根据用户按下的按钮设置全局变量 objCalculator

这只是一个开始,你必须把计算器的整个逻辑放在适当位置......