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