第 3 章 计算器第 3 章 计算器
3.1 开发任务
在本任务中,我们要分别实现基本算术运算、累加和计算、阶乘计算、三角函数计算、排列组合计算和对数计算等多个子任务。
3.1.1 计算器的实验版本
1. 程序界面设计
(1)新建工程
打开VB开发环境,在工程浏览器窗口中(见图3-1左),将工程名称改为“计算器”(如图3-1python和vb的代码可以通用吗中);再将窗体名称改为“frmCalculator”如图3-1右)。
图3-1 改变工程和窗体名称
将窗体文件保存为“frmCalculator.frm”,工程文件保存为“prjCalculator”。
(2)添加控件
在本工程中,我们需要用到下列控件:1个文本框用于输入运算数和输出结果;16个按钮构成计算器键盘,其中10个用于输入10个数字字符,1个用于输入小数点,一个用于触发计算的等号,另外4个用于选择加、减、乘、除运算符。
首先在窗体上部添加一个文本框,默认名称是Text1,调整好大小和位置(如图3-2),并将属性Text的值清空,再将对齐方式Alignment改成“1 -
Right Justify”右对齐;
图3-2 添加文本框控件
再来制作键盘,第1步,添加第1个按钮。在文本框下方添加一个按钮Command1,将它调整为一个按键般大小,并把Caption属性改成“1”。
第2步,添加第2个按钮。添加外形类似的按钮,用复制的方法即可。不过要注意,在粘贴
时VB会询问“已经有一个控件为"Command1
"。创建一个控件数组吗?”(见图3-3),一定要回答“否”。将复制好的按钮Command2的Caption改成2,并移动到Command1的右边。
图3-3 创建控件数组询问对话框
第3步,重复进行粘贴操作,依次制作其它按钮,按图3-4的布局排列。前9个按钮的Caption改成与它们的顺序号相同,Command10的Caption改为“0”,Command11的Caption改为“.”,ommand12的Caption改为“=”,Command13~Command16的Caption依次改为“+”、“-”、“*”、“/”。
图3-4键盘制作
2. 程序代码编写
(1)数字按钮的处理
数字按钮的功能是,在单击按钮后,将对应的数字加入到文本框Text1中。
Private Sub Command1_Click()
Text1.Text = "1"
End Sub
测试一下,启动程序,连续单击按钮1,文本框中只会出现1个1。
(2)错误的发现与修正
赋值语句中新的数据总会替换掉原有的内容。
以下是解决办法:
Private Sub Command1_Click()
Text1.Text = Text1.Text & "1"
End Sub
下面,再来接着写Command2的事件过程代码:
Private Sub Command2_Click()
Text1.Text = Text1.Text & "2"
End Sub
仿照上述做法,再写出其它8个数字按钮和小数点按钮的单击事件过程代码。
(3)Caption的利用
上述语句最后拼接的数据正好是被单击按钮的Caption。
Private Sub Command1_Click()
Text1.Text = Text1.Text & Command1.Caption '输入1
End Sub
Private Sub Command2_Click()
Text1.Text = Text1.Text & Command2.Caption '输入2
End Sub
…………
Private Sub Command11_Click()
Text1.Text = Text1.Text & Command11.Caption '输入小数点
End Sub
(4) 运算符按钮的处理
1)运算数的暂存
Dim sglNumber As Single '用于暂存第1个运算数,前缀sgl是Single的缩写
sglNumber = Text1.Text '保存第1个运算数,字符串自动转换称为单精度型
如果单击加法运算符,则单击事件过程如下:
Private Sub Command13_Click() '单击加法运算符按钮
Dim sglNumber As Single '用于暂存第1个运算数的变量
sglNumber = Text1.Text '保存第1个运算数
Text1.Text = "" '用空串赋值,即可清空文本框
End Sub
2)加法运算代码
在输入第2个运算数之后,需要单击等号按钮来完成运算。
Private Sub Command12_Click() '单击等号按钮
Text1.Text = sglNumber + Val(Text1.Text) '取出第2个数与第1个数做加法并输出结果
End Sub
试运行程序,依次单击按钮5—加号—按钮6—等号,结果是 6?
调用MsgBox来一下原因:
Private Sub Command12_Click() '单击等号按钮
MsgBox sglNumber '弹出变量的值
Text1.Text = sglNumber + Val(Text1.Text) '做加法运算并输出
End Sub
对话框中弹出空串!
流程再往后退,检查一下运算符按钮的单击事件过程。
Private Sub Command13_Click() '单击加法运算符按钮
Dim sglNumber As Single
sglNumber = Text1.Text
MsgBox sglNumber '弹出变量的值
Text1.Text = ""
End Sub
单击加号按钮后,对话框弹出了5,运行正确,错误不在本过程。
(5)程序调试方法
最基本的3种程序调试方法。
1)在适当的地方加上MsgBox调用,通过弹出变量的当前值来进行观察。
2)在适当位置加上中断标记(如图3-5),让程序运行到指定的位置暂停,然后利用中断的环境来检查变量当前的值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论