VB设计计算器实验报告_第1页
VB设计计算器实验报告_第2页
VB设计计算器实验报告_第3页
VB设计计算器实验报告_第4页
VB设计计算器实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4来瑯唠/辔縣&磬篦COLLEGEOFMOBILETELECOMMUNICATIONS.CHONGQINGUNIVERSITYOFPOSTSANDTELECOM.VB设计计算器

实验报告姓名:专业:学号:二O一一年十一月七日设计功能完整的计算器,实现如下图所示按钮(除“MC”,“MR”,“MS”,“M+”)及菜单功能,如图:'前面输入的操作数'前面输入的操作数小数点仍然存在吗?'操作数个数'指示上一次按键事件的'指示未完成的操作Format(0, ".")一、解题思路、分析:对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。首先先定义一些量,比如说前后两个操作数opl、op2,小数点是否真存在的量DecimalFlag,操作数个数NumOps,上一次按键的类型等。接着对窗体进行初始化,同时设置所有变量为其初始。然后对各个键盘的命令进行编写程序,对0-—9按键设置为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。同时对于除法分母是否为0,也要加以考虑。源程序:OptionExplicitDimOp1,Op2DimDecimalFlagAsIntegerDimNumOpsAsIntegerDimLastInput类型DimOpFlagDimTempReadout'窗体的初始化过程'设置所有变量为其初始值PrivateSubForm_Load()DecimalFlag=FalseNumOps=0LastInput二"NONE"OpFlag二" "Textl.Text二Format(0,'Decimal.Caption二EndSub'退格键PrivateSubCommandl_Click()IfLen(Textl.Text)二1ThenText1.Text二Format(0,"0.")DecimalFlag=FalseLastlnput二"NONE"ElseIfText1.Text二"0."ThenText1.Text二"0."DecimalFlag=FalseLastlnput二"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.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(Text1.Text.Format(0,"."))-1)+Command8(Index).Caption+Format(0,".")EndIfIfLastInput二"NEG"ThenText1.Text二"-"&Text1.TextLastlnput=""NUMS""EndSubPrivateSubCommandll_Click(IndexAsInteger)'运算符(+, -,x,/,=)的Click事件过程' 如果接下来的按键是数字键,增加 NumOps。'如果有一个操作数,则设置Opl。' 如果有两个操作数,则将 Op1设置为Op1与' 当前输入字符串的运算结果,并显示结果(CDbl或CSng函数强制进行双精度或单精度算术运算)TempReadout二Text1.TextIfLastInput二""NUMS""ThenNumOps=NumOps+1EndIfSelectCaseNumOpsCase0IfCommand11(Index).Caption二""-""AndLastInput◊""NEG""ThenText1.Text二""-""&Textl.TextLastInput二""NEG""EndIfCase1Op1=Text1.TextIfCommand11(Index).Caption二""-""AndLastInput◊""NUMS""AndOpFlag<>""="ThenText1.Text二""-""LastInput二""NEG""EndIf '3—3=6Case2Op2=TempReadoutSelectCaseOpFlagCase""+""Op1=CDbl(Op1)+CDbl(Op2)Case—Op1=CDbl(Op1)—CDbl(Op2)Case""*""Op1=CDbl(Op1)*CDbl(Op2)Case7""IfOp2=0ThenMsgBox'除数不能为 0"",4&""计算器〃ElseOp1=CDbl(Op1)/CDbl(Op2)EndIfOp1=CDbl(0p2)Case"%"Op1=CDbl(Opl)*CDbl(Op2)EndSelectTextl.Text二OplText1.Text=Format(Text1.Text,"0.########")NumOps=1EndSelectIfLastlnput◊"NEG"ThenLastlnput二"OPS"OpFlag=Command11(Index).CaptionEndIfEndSubPrivateSubCommand9_Click()Text1.Text二-Text1.TextText1.Text=Format(Text1.Text,"0.########")EndSubPrivateSubCommand10_Click()'小数点(•)按钮的Click事件过程'如果上一次按键为运算符,初始化 Text1.Text 为"0.";'否则显示时追加一个小数点IfLastlnput二"NEG"ThenText1.Text二Format(0,"-0.")ElseIfLastlnput◊"NUMS"ThenText1.Text二Format(0,"0.")EndIfDecimalFlag=TrueLastInput="NUMS"EndSubPrivateSubCommand12_Click()Text1.Text二Sqr(Val(Text1.Text))Text1.Text=Format(Text1.Text,"0.########")EndSubPrivateSubCommand13_Click()'百分比键(%)的Click 事件过程'计算并显示第一个操作数的百分数Text1.Text二Text1.Text/100Text1.Text=Format(Text1.Text,"0.########")LastInput二"Ops"OpFlag="%"NumOps=NumOps+1DecimalFlag=TrueEndSubPrivateSubCommandl4_Click()IfVal(Textl.Text)=0ThenMsgBox("分母不能为零")ElseText1.Text二1/Val(Text1.Text)Text1.Text=Format(Text1.Tex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论