版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB设计计算器实验报告姓名: 专业:学号:二一一年十一月七日设计功能完整的计算器,实现如下图所示按钮(除“MC”,“MR”,“MS”,“M+”)及菜单功能,如图:一、解题思路、分析:对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。首先先定义一些量,比如说前后两个操作数op1、op2,小数点是否真存在的量DecimalFlag,操作数个数NumOps,上一次按键的类型等。接着对窗体进行初始化,同时设置所有变量为其初始。然后对各个键盘的命令进行编写程序,对0-9按键设置
2、为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。同时对于除法分母是否为0,也要加以考虑。二、源程序:Option Explicit Dim Op1, Op2 前面输入的操作数 Dim DecimalFlag As Integer 小数点仍然存在吗? Dim NumOps As Integer 操作数个数 Dim LastInput 指示上一次按键事件的类型 Dim OpFlag 指示未完成的操作 Dim TempReadout 窗体的初始化过程 设
3、置所有变量为其初始值 Private Sub Form_Load() DecimalFlag = False NumOps = 0 LastInput = NONE OpFlag = Text1.Text = Format(0, 0.) Decimal.Caption = Format(0, .) End Sub 退格键Private Sub Command1_Click()If Len(Text1.Text) = 1 ThenText1.Text = Format(0, 0.)DecimalFlag = FalseLastInput = NONEElse If Text1.Text = 0.
4、 Then Text1.Text = 0. DecimalFlag = FalseLastInput = NONE Else Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1) End IfEnd IfEnd SubPrivate Sub Command2_Click() CE (取消输入) 按钮的 Click 事件过程 Text1.Text = Format(0, 0.) DecimalFlag = False LastInput = CEEnd SubPrivate Sub Command3_Click() C (取消) 按钮的 Click
5、 事件过程 重新设置显示并初始化变量 Text1.Text = Format(0, 0.) Op1 = 0 Op2 = 0 Form_LoadEnd SubPrivate Sub Command8_Click(Index As Integer) 数字键 (0-9) 的 Click 事件过程 向显示中的数追加新数 If LastInput NUMS Then Text1.Text = Format(0, .) DecimalFlag = False End If If DecimalFlag Then Text1.Text = Text1.Text + Command8(Index).Capti
6、on Else Text1.Text = Left(Text1.Text, InStr(Text1.Text, Format(0, .) - 1) + Command8(Index).Caption + Format(0, .) End If If LastInput = NEG Then Text1.Text = - & Text1.Text LastInput = NUMSEnd SubPrivate Sub Command11_Click(Index As Integer) 运算符 (+, -, x, /, =) 的 Click 事件过程 如果接下来的按键是数字键,增加 NumOps。
7、如果有一个操作数,则设置 Op1。 如果有两个操作数,则将 Op1 设置为 Op1 与 当前输入字符串的运算结果,并显示结果( CDbl 或 CSng 函数强制进行双精度或单精度算术运算) TempReadout = Text1.Text If LastInput = NUMS Then NumOps = NumOps + 1 End If Select Case NumOps Case 0 If Command11(Index).Caption = - And LastInput NEG Then Text1.Text = - & Text1.Text LastInput = NEG End
8、 If Case 1 Op1 = Text1.Text If Command11(Index).Caption = - And LastInput NUMS And OpFlag = Then Text1.Text = - LastInput = NEG End If 3-3=6 Case 2 Op2 = TempReadout Select Case OpFlag Case + Op1 = CDbl(Op1) + CDbl(Op2) Case - Op1 = CDbl(Op1) - CDbl(Op2) Case * Op1 = CDbl(Op1) * CDbl(Op2) Case / If
9、Op2 = 0 Then MsgBox 除数不能为 0, 48, 计算器 Else Op1 = CDbl(Op1) / CDbl(Op2) End If Case = Op1 = CDbl(Op2) Case % Op1 = CDbl(Op1) * CDbl(Op2) End Select Text1.Text = Op1 Text1.Text = Format(Text1.Text, 0.#) NumOps = 1 End Select If LastInput NEG Then LastInput = OPS OpFlag = Command11(Index).Caption End If
10、End SubPrivate Sub Command9_Click()Text1.Text = -Text1.Text Text1.Text = Format(Text1.Text, 0.#)End Sub Private Sub Command10_Click() 小数点 (.) 按钮的 Click 事件过程 如果上一次按键为运算符,初始化 Text1.Text 为 0.; 否则显示时追加一个小数点 If LastInput = NEG Then Text1.Text = Format(0, -0.) ElseIf LastInput NUMS Then Text1.Text = Forma
11、t(0, 0.) End If DecimalFlag = True LastInput = NUMS End SubPrivate Sub Command12_Click()Text1.Text = Sqr(Val(Text1.Text) Text1.Text = Format(Text1.Text, 0.#)End SubPrivate Sub Command13_Click() 百分比键 (%) 的 Click 事件过程 计算并显示第一个操作数的百分数 Text1.Text = Text1.Text / 100 Text1.Text = Format(Text1.Text, 0.#) LastInput = Ops OpFlag = % NumOps = NumOps + 1 DecimalFlag = TrueEnd SubPrivate Sub Command14_Click()If Val(Text1.Text) = 0 Then MsgBox (分母不能为零) Else Text1.Text = 1 / Val(Text1.Text) Text1.Text = Format(Text1.Text, 0.#) End IfEn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中数学第一章常用逻辑用语1.1.2充分条件与必要条件7全国公开课一等奖百校联赛微课赛课特等奖
- 《典型甜味剂的认识及使用-麦芽糖醇》
- Module-7Unit-1市公开课一等奖省赛课微课金奖课件
- 新概念青少版入门级A-unit15市公开课一等奖省赛课微课金奖课件
- 分离工程复习市公开课特等奖市赛课微课一等奖课件
- 中考英语复习专题八动词的时态和被动语态试卷部分市赛课公开课一等奖省名师获奖课件
- 高考数学复习第二章函数概念与基本初等函数Ⅰ2.7函数的图象理市赛课公开课一等奖省名师获奖
- 高中生物第九单元生物与环境第29讲种群的特征和数量的变化省公开课一等奖新名师获奖课件
- Unit7Whatsuperfood!市公开课一等奖省赛课微课金奖课件
- 200字寒假日记(9篇)
- 退役军人事务员职业技能理论考试复习题库(含答案)
- 第五章-单机蒸汽压缩制冷复叠式制冷混合工质制冷循环课件
- 2023年海南省药品监督管理局招考聘用职业化检查员35人笔试历年高频考点试题含答案带详解
- 专题四-“将军饮马”模型
- 老年人静脉血栓栓塞症防治中国专家共识(2023版)解读
- 幼儿园五一劳动节课件,劳动节的由来和意义
- 艾滋病相关耻辱和歧视的现状及其影响的探索性研究
- 项目巡察工作指导书
- 2023储能柜通用技术规范
- 大型建筑企业基于信息化平台的海外项目供应链管理课件
- 绘本故事:睡睡镇
评论
0/150
提交评论