VB计算器课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档