【问题标题】:visual basic calculator without using decision structures or loops不使用决策结构或循环的 Visual Basic 计算器
【发布时间】:2018-03-09 17:31:34
【问题描述】:

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

创建一个简单的计算器,可以进行乘法、除法、减法和加法。问题是我们不允许使用任何决策结构或循环,只能使用顺序样式编码结构。

我在后面的程序中难以存储、传递和使用选定的数学运算符。

在编写方程式时,会考虑哪些数据类型的运算符?

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

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

例如:

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

2)用户点击“+”按钮,一个+被存储在一个标签中(不确定这里使用什么数据类型供以后需要)。

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

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

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

用最简单的术语来说,它相当于: intResult= intvariableOne,运算符变量,intVariableTwo 就像我说的我是编码新手,所以如果这是一个愚蠢的问题或完全错误的方法,我深表歉意。

感谢任何信息。
谢谢

【问题讨论】:

    标签: visual-studio vb6 sequential


    【解决方案1】:

    这是作弊,但请尝试使用Eval

    Eval("4-1")  ' returns 3
    

    【讨论】:

    • 因为这是一个作业,我不会告诉你我会怎么做。但我会给你一个提示:想象一个你可以按顺序执行来计算结果的对象列表。计算器键创建此列表,= 键执行顺序计算。
    【解决方案2】:

    阅读您的帖子,我正在考虑使用“CallByName”功能。


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

    创建一个文件“ICalculator.cls”:

    '
    ' Defines the "ICalculator" interface.
    '
    Option Explicit
    
    Public Function CalcProcess(value1 As Integer, value2 As Integer)
    
    End Function
    

    创建一个名为“CalculatorAdd.cls”的文件,它将负责“additions”:

    '
    ' 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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      相关资源
      最近更新 更多