当前位置:文档之家› VB计算器课程设计报告

VB计算器课程设计报告

《软件开发技术》
课程设计报告
题目计算器的设计与实现
专业班级计算机科学与技术 0701 学号
姓名
指导教师
2010年7 月15 日
计算器的设计与实现
摘要:通过学习VISUAL BASIC语言应用VB开发工具,利用响应鼠标事件即可制作简易计算器,响应鼠标事件即:当用户想要进行运算时,可以用鼠标直接点击界面的数字键、运算符以及各功能的按钮(清除,退出,鼠标位置)。

具体操作如下:用鼠标按动界面上第一个数字,然后按动运算符,再按动界面上的第二个数字,最后按等于即可运算出结果。

1.界面设计:
应用VISUAL BASIC开发工具,根据WINDOWS计算器界面模型,修改后制作计算器界面。

新建一个窗体,添加一个文本框用于显示运算数字和结果,添加若干按钮包括(数字0—9,+,-,*,/,=,CE, C, Back,%,1/x , sqrt)。

当单击数字按钮时输入运算数时,单击运算符按钮,再单击“=”按钮,则再文本框中显示计算结果。

具体如下图所示:
图1计算器界面设计示意图
2.程序设计:
(1)新建框体和按键模型后定义变量:输入的操作数,Dim Op1, Op2。

小数点是否仍然存在,Dim DecimalFlag As Integer。

操作数个数,Dim NumOps As Integer。

指示上一次按键事件的类型,Dim LastInput。

指示未完成的操作,Dim OpFlag。

定义文本框输出,Dim TempReadout。

窗体的初始化过程,设置所有变量为其初始值:DecimalFlag = False
NumOps = 0
LastInput = "NONE"
OpFlag = " "
Readout = Format(0, "0.")
'Decimal.Caption = Format(0, ".")。

(2)输入数字键(0-9)的Click事件过程,向显示中的数追加新数:调用format 函数强制定义始终在第一位添加一个”.”,并在显示数中追加新数,如果显示数小于零,则添加负号。

If LastInput <> "NUMS" Then
Readout = Format(0, ".")
DecimalFlag = False
End If
If DecimalFlag Then
Readout = Readout + Number(Index).Caption
Else
Readout = Left(Readout, InStr(Readout, Format(0, ".")) - 1) + Number(Index).Caption + Format(0, ".")
End If
If LastInput = "NEG" Then Readout = "-" & Readout
LastInput = "NUMS"
(3)运算符(+, -, x, /, =)的Click 事件过程如果接下来的按键是数字键,增加NumOps如果有一个操作数,则设置Op1如果有两个操作数,则将Op1 设置为Op1与当前输入字符串的运算结果,并显示结果(以其中加法部分为例):
If LastInput = "NUMS" Then
NumOps = NumOps + 1
End If
elect Case NumOps
Case 0
If Operator(Index).Caption = "-" And LastInput <> "NEG" Then
Readout = "-" & Readout
LastInput = "NEG"
End If
Case 1
Op1 = Readout
If Operator(Index).Caption = "-" And LastInput <> "NUMS" And OpFlag <> "=" Then
Readout = "-"
LastInput = "NEG"
End If
elect Case OpFlag
Case "+"
Op1 = CDbl(Op1) + CDbl(Op2)
Readout = Op1
NumOps = 1
End Select
(4)%,sqrt,1/X,等的Click事件过程以1/X为例举出:以倒数1 / Readout
输出,在输出结果中调用format函数强制定义添加“0.”,并可进行连续运算Readout = 1 / Readout
Readout.Text = Format(Readout.Text, "0.####################")
LastInput = "Ops"
OpFlag = "1/x"
NumOps = NumOps + 1
DecimalFlag = True
(5)C, CE, Back,”.”等Click事件过程以C和”.”为例,C按钮的Click事件过程,重新设置显示并初始化变量:清零操作数,并在显示结果中定义一个“0.”Readout = Format(0, "0.")
Op1 = 0
Op2 = 0
Form_Load
(6)小数点(.)按钮的Click事件过程, 如果上一次按键为运算符,初始化readout 为"0."否则显示时追加一个小数点:
Private Sub Decimal_Click()
If LastInput = "NEG" Then
Readout = Format(0, "-0.")
ElseIf LastInput <> "NUMS" Then
Readout = Format(0, "0.")
End If
DecimalFlag = True
LastInput = "NUMS"
End Sub
(7)Back按钮的Click事件过程:定义一个变量cd,并且用LEN函数求出当前字符串长度,调用Mid函数使字符串整体右移一位显示。

Dim cd As Integer
cd = Len(Readout.Text)
Readout.Text = "" & Mid(Readout.Text, 1, cd - 1)
3.调试:
调试计算器功能+,-,*,/,sqrt,1/x,%等功能,如图所示:图1:0.2+0.3=结果如图,图2:2-3=结果如图,图3:3*6=结果如图,图4:9/3=结果如图,图5:16 sqrt 结果如图,图6:6%5= 结果如图,图7:2 1/x 结果如图。

图2 加法调试结果图3 减法调试结果
图4 乘法调试结果图5 除法调试结果
图6 sqrt调试结果图7 %调试结果
图8 1/x调试结果
4.结论:
经过二周的学习与编制调试等一系列的过程,完成了如题所示的简易计算器,包括数字0—9,+,-,*,/,=,CE, C, Back,%,1/x , sqrt等按键,可实现基本+,-,*,/运算以及开方,取余,求倒数等功能,符合计算器的基本要求。

调试过程中不可避免的出现不少错误,经过修改后,基本解决如取余,小数点左右添加减少零,科学计数法,等一些问题。

基本完成学习和实践的要求和目的。

参考文献:
[1]王珊.Visual Basic程序设计教程[M].北京:机械工业出版社,2005年1月.。

相关主题