VB课程设06072008科学计算器

VB课程设06072008科学计算器
VB课程设06072008科学计算器

科学计算器设计报告

学院材料学院班级材料074 学号072008 姓名孙红楠成绩

一、设计思路

1.要达到的目的

①培养利用VB的标准控件进行应用程序设计的能力,培养综合利用VB语言进行程序设计的

能力。

②练习如何使用键盘输入数据。

③了解各个控件属性,培养对控件属性的设置。加强对控件使用的熟练程度。

④练习使用子函数及子程序。

2.关键问题的解决

①对于计算器,首要问题就是就是对数据的运算,这里是通过运用了控件数组calu(),speci()等

以求提高代码的利用率,简化程序。对运算设置了子程序Sub cacul(op1, op, op2)

Sub cacul(op1, op, op2)

Select Case op

Case 0

op1 = op1 + op2

Case 1

op1 = op1 - op2

Case 2

op1 = op1 * op2

Case 3

If op2 = 0 Then MsgBox "0不能做除数", vbCritical: Exit Sub

op1 = op1 / op2

End Select

End Sub

对于其他功能键则采取了分别编译的方法,分别编写其功能。此外窗体支持彩色按钮以此区分不同的功能区。

②数字的输入要有指定的格式,使其符合规范

i = Len(xianshi)

If InStr(xianshi, ".") Then

Do While Mid(xianshi, i, 1) = "0"

i = i - 1

Loop

If Mid(xianshi.Caption, i, 1) = "." Then i = i - 1

xianshi = Left(xianshi, i)

End If

对每个数字键都要对应相应数字的输入,由控件数组num()编译较简单明确。且最基本的就是每个按一个键就在原基础上加一个数字:xianshi = xianshi & CStr(Index),但对于在运算符或等号之后输入的数就要进行相应的别的设置,由此应加上一个记号,判断属于哪种方式的输入,在

此程序中m 和z 完成此项功能。

特别地,对于小数点的使用,要按输入时的显示习惯:在输入非零数字后不应该再显示前导0,输入非零数字前无论输入多少个0一律不显示,输入1以下的小数时,不需要输入成“0.”,直接输入“.”即可。为此应用字符的查找方法判断输入数中是否含有小数点,然后分别进行相应设置, 设置如下

If Not z Then If InStr(xianshi, ".") Then Exit Sub

If z Then

xianshi = "0"

z = False

End If

xianshi = xianshi + "."

值得特别注意的是,在什么情况下按数字键输入新的数字,在什么情况下是对原数字

上的添加。此时就用到了逻辑变量z :z 如果是 false 那么此数需要继续输入,如果是true 则这个数输入完毕,可以输入下一个数。

③ 还有一个重要方面就是对数字输出格式的设置,使其符合平时的书写显示习惯。对此,设

置了规范最后输出数据的形式的子函数Function myfunction()

④ 此程序支持直接使用小键盘上的数字键和运算符键进行运算,功能和用鼠标点击相应的按钮等效。每当有键按下时,就会发生该事件,运用了程序Private Sub Form_KeyDown(KeyCode%, Shift%) 鼠标事件。

二、模块之间的调用关系,或程序流程图

三、部分程序关键源代码及注释

①'清除按键设置(保留基本键0)

Private Sub CE_Click()

If Len(xianshi) > 0 Then xianshi = Left(xianshi, Len(xianshi) - 1) ‘只要

大于0就清除最后一位

If xianshi = "" Then xianshi = "0": z = True ‘如果为空,则把0赋给

xianshi

End Sub

相关主题
相关文档
最新文档