资源描述:
《VB设计计算器实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VB设计计算器实验报告姓名:专业:学号:二〇一一年十一月七日6设计功能完整的计算器,实现如下图所示按钮(除“MC”,“MR”,“MS”,“M+”)及菜单功能,如图:一、解题思路、分析:对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。首先先定义一些量,比如说前后两个操作数op1、op2,小数点是否真存在的量DecimalFlag,操作数个数NumOps,上一次按键的类型等。接着对窗体进行初始化,同时设置所有变量为其初始。然后对各个键盘的命令进
2、行编写程序,对0---9按键设置为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。同时对于除法分母是否为0,也要加以考虑。二、源程序:OptionExplicitDimOp1,Op2'前面输入的操作数DimDecimalFlagAsInteger'小数点仍然存在吗?DimNumOpsAsInteger'操作数个数DimLastInput'指示上一次按键事件的类型DimOpFlag'指示未完成的操作DimTempReadout
3、'窗体的初始化过程'设置所有变量为其初始值PrivateSubForm_Load()DecimalFlag=FalseNumOps=0LastInput="NONE"OpFlag=""Text1.Text=Format(0,"0.")'Decimal.Caption=Format(0,".")EndSub6'退格键PrivateSubCommand1_Click()IfLen(Text1.Text)=1ThenText1.Text=Format(0,"0.")DecimalFlag=FalseLastInput="NONE"ElseIfText1.Text="0."T
4、henText1.Text="0."DecimalFlag=FalseLastInput="NONE"ElseText1.Text=Left(Text1.Text,Len(Text1.Text)-1)EndIfEndIfEndSubPrivateSubCommand2_Click()'CE(取消输入)按钮的Click事件过程Text1.Text=Format(0,"0.")DecimalFlag=FalseLastInput="CE"EndSubPrivateSubCommand3_Click()'C(取消)按钮的Click事件过程'重新设置显示并初始化变量Text1
5、.Text=Format(0,"0.")Op1=0Op2=0Form_LoadEndSubPrivateSubCommand8_Click(IndexAsInteger)'数字键(0-9)的Click事件过程'向显示中的数追加新数IfLastInput<>"NUMS"ThenText1.Text=Format(0,".")DecimalFlag=FalseEndIfIfDecimalFlagThenText1.Text=Text1.Text+Command8(Index).CaptionElseText1.Text=Left(Text1.Text,InStr(Text
6、1.Text,Format(0,"."))-1)+Command8(Index).Caption+Format(0,".")EndIfIfLastInput="NEG"ThenText1.Text="-"&Text1.Text6LastInput="NUMS"EndSubPrivateSubCommand11_Click(IndexAsInteger)'运算符(+,-,x,/,=)的Click事件过程'如果接下来的按键是数字键,增加NumOps。'如果有一个操作数,则设置Op1。'如果有两个操作数,则将Op1设置为Op1与'当前输入字符串的运算结果,并显示结果(CDb
7、l或CSng函数强制进行双精度或单精度算术运算)TempReadout=Text1.TextIfLastInput="NUMS"ThenNumOps=NumOps+1EndIfSelectCaseNumOpsCase0IfCommand11(Index).Caption="-"AndLastInput<>"NEG"ThenText1.Text="-"&Text1.TextLastInput="NEG"EndIfCase1Op1=Text1.TextIfCommand11(Index).Caption="-"AndLastInput<>"NUMS"An