VB计算器课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件开发技术》
课程设计报告
题目计算器的设计与实现
专业班级计算机科学与技术 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