我想设计一个vb计算器程序,只能用小键盘输入,只有两个文本框,一个是当前输入数,一个是累计数,

我想设计一个vb计算器程序,只能用小键盘输入,只有两个文本框,一个是当前输入数,一个是累计数,,第1张

'Text1输入,Text2结果

Private Sub Text1_KeyPress(KeyAscii As Integer)

Static int1 As Integer

DebugPrint KeyAscii '45-,43+

If KeyAscii = 45 Or KeyAscii = 43 Then

'+,-

If int1 = 0 Then

Text2Text = Val(Text1Text)

Else

Text2Text = Val(Text2Text) + int1 Val(Text1Text)

End If

Text1Text = ""

int1 = (44 - KeyAscii)

KeyAscii = 0

ElseIf (KeyAscii < 48 Or KeyAscii > 57) Then

KeyAscii = 0 '取消输入

Else

End If

End Sub

Private Sub Form_Click()

Dim i, j, k

i = InputBox("输入要累加的最大数字")

For j = 1 To Val(i)'使i数字化

k = k + j'累加

Next

Print k

End Sub

以下这个函数可以计算任意一天是当年的第几天,入口参数输入要计算的日期,函数返回值为当年的第几天。

Function CalDt(Dt As Date) As Integer

Dim Year As String

Dim Diff As Integer

Year = Format(Dt, "yyyy-01-01") '获得当年的第一天

Diff = DateDiff("d", Year, Dt) '计算两个日期间的差距

Diff = Diff + 1 '增加一天,即从1开始

CalDt = Diff

End Function

把日期控件得到的日期作为入口参数,定义一个整形变量获得返回值,然后把返回值显示在位文本中即可。

补充:

DateDiff函数支持闰年的自动处理,我刚测试过的,没有问题的。

若按钮为Command1,数值加1的文本框为Text1。

在Command1_Click中输入:

Text1Text = Val(Text1Text) + 1

即可。

中间的算法如下:

Dim sum As Integer

n = 99 '你输入的最大数

i = 1

sum = 0

Do Until i > n

sum = sum + i

i = i + 1

Loop

'求和到此为止,下面的是求素数

k = 1

Do Until k > n

For j = 1 To k / 2

If k Mod j = 0 And j <> 1 Then

Exit For

End If

Next j

If j > k / 2 And k <> 2 Then

MsgBox k

End If

k = k + 1

Loop

假定左边那个是控件数组Text1,右边的是控件数组Text2,按钮是Command1,则

Private Sub Command1_Click()

Dim s As Long, i As Long

For i = Text1LBound To Text1UBound

s = s + Len(Text1(i)Text)

Text2(i)Text = s

Next

End Sub

以上就是关于我想设计一个vb计算器程序,只能用小键盘输入,只有两个文本框,一个是当前输入数,一个是累计数,全部的内容,包括:我想设计一个vb计算器程序,只能用小键盘输入,只有两个文本框,一个是当前输入数,一个是累计数,、VB中求1到n的累加和、vb 日期天数的累加等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10211506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存