VB设计计算器实验报告

合集下载

vb 简易计算器实验报告

vb 简易计算器实验报告

简易计算器课程设计报告一、实验目的:模拟计算器的功能。

系统启动后, 先清屏, 再在显示屏右侧显示0字样, 系统仅接收数字键、加减乘除键、退格键、C键(复位)、=或回车键、ESC键(退出系统)作为有效按键, 其余按键不响应。

按键后屏幕显示效果要达到一般计算器显示屏的同样效果。

不要求设计一般计算器上都具有的M功能。

二、实验设计内容及思想:首先, 创建一个主体框架: 建立程序的主要界面后, 系统自动生成界面的主要窗口生成代码。

对于每个按钮的的代码段中, 分别添加事件触发的处理代码。

分别设立三个显示屏, 第一个显示屏作为“被加数”框, 第二个显示屏作为“加数”框, 第三个显示屏则作为输出框。

四则运算时直接采用计算表达式。

所以, 优先级和运算规则皆宜考虑在内。

在进行除法运算时, 若遇到除数为0, 则运用条件语句执行, 并在输出显示屏上输出“E”。

三角函数、指数、对数、整除、取余等运算, 也是运用类似手法。

考虑到计算器的操作简便性, 所以加入了复位和退出按钮。

三、源程序文件:Private Sub Command1_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x + yEnd SubPrivate Sub Command10_Click()Dim x As Integerx = Text1.TextText3.Text = Cos(x)End SubPrivate Sub Command11_Click()Dim x As Integerx = Text1.TextText3.Text = Tan(x)End SubPrivate Sub Command12_Click()Dim x As Integerx = Text1.TextText3.Text = Atn(x)End SubPrivate Sub Command13_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x ^ yEnd SubPrivate Sub Command14_Click() Dim x As Integerx = Text1.TextIf x <= 0 ThenText3.Text = "输入错误"ElseText3.Text = Log(x)End IfEnd SubPrivate Sub Command15_Click() Text3.Text = "此按钮仅作装饰用" End SubPrivate Sub Command2_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x - yEnd SubPrivate Sub Command3_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x * yEnd SubPrivate Sub Command4_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextIf y = 0 ThenText3.Text = "E"ElseText3.Text = x / yEnd IfEnd SubPrivate Sub Command5_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x \ yEnd SubPrivate Sub Command6_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x Mod yEnd SubPrivate Sub Command7_Click()Text1.Text = ""Text2.Text = ""Text3.Text = " 0" End SubPrivate Sub Command8_Click()EndEnd SubPrivate Sub Command9_Click()Dim x As Integerx = Text1.TextText3.Text = Sin(x)End Sub源代码截图:四、运行结果演示: 加法演示:减法演示: 乘法演示:除法演示:能够整除: 不能够整除:除数为零:。

vb实验报告

vb实验报告

复杂型科学计算器的设计与实现实验目的1.通过本实验,进一步理解Visual Basic的编程方法。

2.提高运用Visual Basic编程的能力。

3.培养对所学知识的综合运用能力。

实验类型综合型。

实验内容与步骤一、分析问题,选择算法科学计算器主要实现基本的加减乘除运算、正弦余弦、正切余切、正割余割、反正弦反余弦、双曲正弦、双曲余弦、对数和求绝对值等函数功能。

为实现上述功能,我的基本思路是在窗体上建立三个控件数组,第一个控件数组有十五个命令按钮,分别实现正弦余弦、正切余切、正割余割、反正弦反余弦、双曲正弦、双曲余弦、对数和求绝对值等函数功能;第二个控件数组作包括十二个命令按钮,用来进行计算器的数据输入;第三个控件数组为基本的运算符号,实现基本加减乘除和乘方运算。

退格、清除、等于、退出作为独立的命令按钮,另外设计一个功能切换按钮实现显示当前系统日期和时间。

二、建立用户界面建立如下界面:三、设置窗体和控件属性四、编写代码,进行调试编写代码如下:通用:Dim Num1, Num2 As SingleDim n As Integer '乘方变量Dim pi As SingleDim result As SingleDim fuhao As Integer '判断是否有运算符号Dim sign As Integer '储存运算符号Private Sub Command1_Click(Index As Integer)Select Case IndexCase 0 To 9sign = 10 + IndexCase 10sign = 20fuhao = 1 '第一次输入的底数已放入Num1,标记已有符号,第二次输入时数据放入Num2Case 11 To 14sign = 10 + IndexEnd SelectText1.Text = "" '清空文本框End SubPrivate Sub Command2_Click(Index As Integer) 'Select Case IndexCase 0 To 9Text1.Text = Text1.Text & IndexCase 10Text1.Text = Text1.Text & "."Case 11Text1.Text = "-"End SelectIf fuhao = 0 Then '若无符号数据放入Num1,有符号数据放入Num2Num1 = V al(Text1.Text)ElseNum2 = V al(Text1.Text)End IfEnd SubPrivate Sub Command3_Click(Index As Integer) '判断标记运算符号Select Case IndexCase 0 To 6sign = IndexEnd SelectText1.Text = ""fuhao = 1 '标记已有运算符End SubPrivate Sub Command4_Click() 'If V al(Text1.Text) = 0 ThenText1.Text = ""fuhao = 0ElseText1.Text = Left$(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command5_Click() '清空文本框Text1.Text = ""fuhao = 0End SubPrivate Sub Command6_Click()Dim Num As Single '角度中间转换变量pi = 3.141592654e = 2.718282Select Case signCase 0Text1.Text = Num1 & "+" & Num2 & "=" & Chr(13) & Chr(10) & Num1 + Num2Case 1Text1.Text = Num1 & "-" & Num2 & "=" & Chr(13) & Chr(10) & Num1 - Num2Case 2Text1.Text = Num1 & "*" & Num2 & "=" & Chr(13) & Chr(10) & Num1 * Num2Case 3Text1.Text = Num1 & "/" & Num2 & "=" & Chr(13) & Chr(10) & Num1 / Num2Case 4 Text1.Text = "输入错误!请重新输入:"Case 5Text1.Text = "输入错误!请重新输入:"Case 6 result = Num1For n = 1 To Num2 - 1result = result* Num1 Next nText1.Text = Num1 & "^" & Num2 & "=" & Chr(13) & Chr(10) & resultCase 10Num = Num1 / 180 * piText1.Text = "sin" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & Sin(Num)Case 11Num = Num1 / 180 * piText1.Text = "cos" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & Cos(Num)Case 12Num = Num1 / 180 * piIf ((Num - pi / 2) Mod pi) = 0 ThenText1.Text = "输入错误!请重新输入:"ElseTan(Num)End IfCase 13Num = Num1 / 180 * piText1.Text = "sec" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & 1 / Cos(Num)Case 14Num = Num1 / 180 * piText1.Text = "csc" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & 1 / Sin(Num)Case 15Num = Num1 / 180 * piText1.Text = "ctg" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & 1 / Tan(Num)Case 16If Abs(Num1) > 1 ThenText1.Text = "输入错误!请重新输入:"ElseNum = (Atn(Num1 / Sqr(-Num1 * Num1 + 1))) / pi * 180Text1.Text = "arcsin" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & NumEnd IfCase 17If Abs(Num1) > 1 ThenText1.Text = "输入错误!请重新输入:"ElseNum = (Atn(-Num1 / Sqr(-Num1 * Num1 + 1)) + 2 * Atn(1)) / pi * 180Text1.Text = "arccos" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & NumEnd IfCase 18Num = (Atn(Num1)) / pi * 180NumCase 19Num = (Atn(Num1) + 2 * Atn(1)) / pi * 180Text1.Text = "arcctg" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & NumCase 20If Num1 > 0 And Num2 > 0 ThenText1.Text = "log" & "(" & Num1 & ")" & Num2 & "=" & Chr(13) & Chr(10) & Log(Num2) / Log(Num1)ElseText1.Text = "输入错误!请重新输入:"End IfCase 21If Num1 > 0 ThenText1.Text = "ln" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & Log(Num1)ElseText1.Text = "输入错误!请重新输入:"End IfCase 22Text1.Text = "sh" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & (Exp(Nun1) - Exp(-Num1)) / 2Case 23Text1.Text = "ch" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & (Exp(Num1) + Exp(-Num1)) / 2Case 24Text1.Text = "abs" & "(" & Num1 & ")" & "=" & Chr(13) & Chr(10) & Abs(Num1)End Selectfuhao = 0 '标记重置End SubPrivate Sub Command7_Click() '附加功能,输出系统时间Text1.Text = NowEnd SubPrivate Sub Command8_Click() '关闭计算器EndEnd SubPrivate Sub Form_Load()Text1.Text = NowLabel1.Caption = " 制作者:李乐" & Chr(13) & Chr(10) & Now End SubPrivate Sub Text1_Change()End Sub五、编译生成exe文件在文件菜单中生成EXE可执行文件。

用VB做简易计算器

用VB做简易计算器

《VB》课内实验报告学生姓名:及学号:学院:班级: 数学101课程名称:VB实验题目:控件数组的应用指导教师姓名及职称:2012年03月28日目录一、实验目的 (1)二、实验内容 (1)三、实验要点及说明 (1)四、实现方法 (1)五、实验结果 (2)六、源程序清单 (2)七、思考及总结 (4)一、实验目的1.掌握动态数组与静态数组的使用方法。

2.掌握控件数组的添加、删除以及使用方法。

3.掌握If语句、Select Case语句以及循环语句的使用。

4.掌握控件数组中索引号(Index)的作用。

二、实验内容1.制作计算器,完成十进制的加减乘除运算。

2.随机产生15个不重复的A-Z(包括A,Z)的大写字母,存放在字符数组中。

三、实验要点及说明1.利用数组控件完成计算器的制作。

(1)设计界面及设置属性界面设计中的显示部分要求用标签实现;运算符、数字分别使用控件数组实现;(2)编写代码图3-1 设计界面程序代码的任务是单击数字按钮和运算符按钮实现十进制的常规运算,同时要求做到实现正负号的转变、结果的标准输出以及除法中除数的检查等功能。

2.界面设计部分要求能够体现出字符数组中的内容,且实现随机不重复显示的功能,具体参数不做要求。

四、实现方法运行环境:Visual Basic运行开发环境;1.VB6.0窗体的属性设置运用复制的方法建立两个建立控件数组,编写代码。

2. 设置窗体的属性,添加一个文本框MultiLine属性设置成True,编写代码。

五、实验结果1. 能够完成十进制的加减乘除运算,可以判断被除数是否为零,如果为零,弹出对话框提示错误。

2.单击窗体随机出现15个不同的字母。

六、源程序清单1、源程序:Option Explicit ‘对所有变量进行显式声明Dim Num1 As Single, Num2 As Single ‘声明Num1,Num2为单精度浮点型变量Dim Flag As Boolean ‘声明Flag为布尔变量Dim Cul As Integer ‘声明Cul为整型变量Private Sub Command1_Click(Index As Integer) ‘Command1的单击事件Num1 = Val(Text1.Text) ‘Text1中的值赋给Num1Flag = True ‘Flag为真Cul = IndexEnd SubPrivate Sub _Click() ‘Command4的单击事件If InStr(Text1.Text, ".") = 0 And Text1.Text <> "" Then ‘如果Text1中没Text1.Text = Text1.Text + "." 有"."并且不为空,就在Text1中加一个"."End IfEnd SubPrivate Sub Command2_Click(Index As Integer)If Flag Then Text1.Text = "": Flag = False ‘如果Flag为真则Text1赋为空Text1.Text = Text1.Text + Command2(Index).Caption ‘如果为假Text1加End Sub Command2(Index) Private Sub Command5_Click() ‘Command5的单击事件的单击事件Text1.Text = "" ‘清空Text1,Num1, Num2的值Num1 = 0Num2 = 0End SubPrivate Sub Command6_Click() ‘Command6的单击事件Dim result As Single ‘声明result为单精度浮点型变量Num2 = Val(Text1.Text) ‘Text1中的值赋给Num2Flag = True ‘Flag b变为真Select Case Cul ‘Select循环Case 0: result = Num1 + Num2Case 1: result = Num1 - Num2Case 2: result = Num1 * Num2Case 3:If Num2 <> 0 Then ‘若分母为零提示result = Num1 / Num2ElseMsgBox "出错!被0除!"End IfEnd SelectIf result \ 1 <> result Then ‘如果result \ 1不等于result那么在result前Text1.Text = Format(result, "0.#") 加”0.”赋给Text1.TextElseText1.Text = Str(result) ‘否则直接将result转化成字符串赋给Text1.TextEnd IfEnd SubPrivate Sub Command3_Click() ‘Command3的单击事件If Text1.Text <> "" Then ‘如果Text1.Text不是空的If InStr( Text1.Text, "-") = 0 Then ‘Text1.Text中不包含"-"Text1.Text = "-" + Text1.Text ‘把"-" Text1.Text连接后赋给Text1.Text ElseText1.Text = Right(Text1.Text, Len(Text1.Text) - 1)End If ‘取Text1.Text中长度减1的字符赋给Text1.Text End IfEnd Sub2、源程序Private Sub Form_Click() ‘Form的单击事件Dim s(1 To 15) As String * 1, c As String * 1 ‘声明s,c为定长字符串Dim Found As Boolean ‘声明Found为布尔变量s(1) = chr(Int(Rnd * 26 + 65)) ‘将一随机字符赋给s(1)n = 2Do While n <= 15 ‘循环条件n<=15c = chr(Int(Rnd * 26 + 65)) ‘将一随机字符赋给cFound = FalseFor j = 1 To n – 1 ‘For循环If s(j) = c Then Found = TrueNext jIf Not Found Then ‘Found为假,进行下两行语句s(n) = cn = n + 1End IfLoopFor i = 1 To 15 ‘循环输出s(i)到Text1.Text中Text1.Text = Text1.Text & s(i)Next iEnd Sub七、思考及总结。

vb计算器实习报告

vb计算器实习报告

摘要Visual Basic是近年来在国内外得到迅速推广应用的可视化程序设计语言具有简单易学,功能强效率高等特点.它提供了开发Windows 应用程序最迅速,最简捷的方法,不但专业人员得心应手的开发工具,而且易于被非专业人员掌握使用。

本课程主要讲述Visual Basic的基本概念,语法规则和利用Visual Basic进行程序设计方法。

同时掌握窗体设计,函数和控件的使用方法。

VB程序设计是工科专业开设的一门基础编程课程。

通过这门课程的学习,一方面是培养一个人的逻辑编程能力,提高其使用计算机能力,为今后从事本专业领域的软件开发打下基础;另一方面通过VB中体现出的面向对象思想,以培养学生认识问题,分析问题解决问题的思路和能力。

目录一. 题目:简单的科学计算器................................................................................................... - 3 -二. 选题的意义 ......................................................................................................................... - 3 -三. 系统设计............................................................................................................................... - 4 -1总体结构设计: .............................................................................................................. - 4 -2 各功能的实现 ................................................................................................................. - 4 -1数值输入、小数点、正负号................................................................................... - 4 -2.计算功能................................................................................................................... - 5 -3. “=”号输出结果........................................................................................................ - 6 -4.正弦、余弦、正切运算的实现:........................................................................... - 6 -四. 测试....................................................................................................................................... - 8 -1.用例阐述系统................................................................................................................... - 8 -2. 代码如下:..................................................................................................................... - 9 -五. 结论..................................................................................................................................... - 15 -六、参考文献............................................................................................................................ - 16 -一. 题目:简单的科学计算器二. 选题的意义随着现代科学技术日新月异,高速发展,因此计算器进入课堂是历史的必然。

VB简单计算器实验

VB简单计算器实验
接受键盘输入的运算操作是打开了建立了一个Form_KeyPress(KeyAscii)通用过程,根据KeyAscii的值响应相应事件。
在代码中针对每个过程都有简单注释;在代码的开头例如“'''operand ----------------------------操作数'''Calculation -------------------------计算”,这些都是帮助说明变量用途而写。
ElseIf LastInput = "负值" Then
'**************除法10
'*************求平方根10
'*************当前操作数的百分比10
'****************求倒数,用除法11
'*************等于11
一、程序功能和总体说明:
本程序使用VB语言编成,只使用了一个窗体模块,完成模仿市面简单计算器的功能。例如加减乘除,开方,求倒数,求百分比,并可连贯运算这些功能。
Case Asc(0) '48为字符零的Ascii值
Call Command0_Click
'Command0.Value = True‘与Call Command0_Click作用相同
Case Asc(0) To Asc(9) '49 To 57数字键1至9的Ascii值
Char = Chr(KeyAscii)
NumOperand = 1 '操作数个数置1
DecimalFlag = False
Time = 0
End Sub
'***************定义处理数字按钮通用过程

VB实验二 实验报告

VB实验二 实验报告

实验报告二实验目的(1)掌握基本循环控制结构(For-Next、While-Wend、Do-Loop)语句(2)掌握循环嵌套结构(3)掌握素数算法(4)掌握控制结构相关控件(列表框、组合框等)(5)能综合运用循环控制结构解决较复杂的问题实验内容【实验1】编写一个简易计算器编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<10-5时计算结束结束。

实验结果:【实验1 代码】【实验1 典型结果】【实验2】将200~300之间的素数输出到列表框中实验结果:【实验2 代码】【实验2 典型结果】【实验3】编写程序,在窗体上输出上三角形式的九九乘法表。

实验结果:【实验3 代码】【实验3 典型结果】【实验4】从键盘输入10个整数,存放在一个一维数组中,然后将前5个元素与后5个元素交换,即第1个与第10个交换,第2个与第9个交换……实验结果:【实验4 代码】【实验4 典型结果】【实验5】静态声明一个二维数组,输入和输出该数组各元素的值要求:1.计算并输出数组主对角线和次对角线元素的和。

2.交换1、3行后输出整个数组的值3.交换数组的行与列后输出整个数组的值12345678910111213141516171819202122232425⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦实验结果:【实验5 代码】【实验5 典型结果】【实验6】编写程序,将随机产生的1000个[1000,99999]范围内的随机整数存入数组,然后分别用“比较交换法”、“选择法”、“冒泡法”进行升序排序实验结果:【实验6 代码】【实验6 典型结果】【选做1】编写程序,输入X,要求计算精度10-6,求sinX ,计算公式如下所示实验结果:【选做1代码】)!1n2(x)1(...!7x!5x!3x1x(x)sin1n21n753--++-+-=--【选做1典型结果】【选做2】任意输入一个或者多个英文句子,统计这些句子中的单词数量实验结果:【选做2代码】【选做2典型结果】【选做3】利用一维数组,统计一个班学生成绩0~59,60~69,70~79,80~89,90~100各分数段的人数,生成一个各分数段的柱状图。

vb计算器实验报告

vb计算器实验报告

vb计算器实验报告《VB计算器实验报告》摘要:本实验报告通过使用VB(Visual Basic)编程语言,设计并实现了一个简单的计算器应用程序。

实验结果表明,该计算器能够实现基本的四则运算功能,并且具有良好的用户界面和操作体验。

本实验为学习VB编程语言的初学者提供了一个很好的实践机会,也为进一步深入学习和开发更复杂的应用程序奠定了基础。

1. 背景VB是一种由微软公司开发的基于对象的编程语言,它是一种易学易用的编程语言,适合初学者入门。

VB可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。

在本实验中,我们将使用VB编程语言设计并实现一个简单的计算器应用程序,以展示其基本功能和特点。

2. 实验目的通过本实验,我们旨在掌握VB编程语言的基本语法和功能,并且能够设计并实现一个简单的计算器应用程序。

同时,我们也将学习如何创建用户界面、处理用户输入和实现基本的数学运算功能。

3. 实验方法本实验使用Visual Studio作为开发环境,通过VB编程语言实现计算器应用程序的设计和开发。

在设计过程中,我们将考虑用户界面的布局和美观性,以及计算器功能的实现和操作流程。

在开发过程中,我们将使用VB的各种语法和功能,如变量、条件语句、循环语句和函数等,来实现计算器的基本功能。

4. 实验结果经过设计和开发,我们成功实现了一个简单的计算器应用程序。

该计算器具有清晰的用户界面和友好的操作体验,能够实现基本的加减乘除等四则运算功能。

用户可以通过点击按钮或者输入数字和运算符来进行计算,同时还可以实现清零和退格等功能。

整体而言,该计算器应用程序能够满足基本的计算需求,并且具有较好的稳定性和性能。

5. 结论通过本实验,我们不仅掌握了VB编程语言的基本语法和功能,还学会了如何设计和实现一个简单的计算器应用程序。

同时,我们也了解到了用户界面设计和用户体验的重要性,以及如何通过VB编程语言实现各种功能和操作。

vb实验报告

vb实验报告

报告封面
2014-2015学年第一学期
封面和里边的需要写的内容不要空着学号、姓名、学院、年级、专业班等
实验课程: Visual 程序设计设课形式: 非独立
课程学分: 4
实验一
注: 请大家着重做好“智能计算器”, 并在此基础填写实验报告。

实验二
注: 请大家着重做好“简单游戏设计”, 并在此基础填写实验报告。

实验三
注: 请大家着重做好“设计一个拾色器”, 并在此基础填写实验报告。

实验四
注: 请大家着重做好“选课系统”, 并在此基础填写实验报告。

说明:请大家务必将上述4个实验做完, 并认真按要求撰写实验报告, 每位同学按顺序做好4个实验的实验报告交给班长或学习委员, 班长或学习委员按学号从小到大排序后上交。

vb实验报告实验一

vb实验报告实验一

vb实验报告实验一
实验一:VB实验报告
实验目的:通过VB编程实现简单的计算器功能,加深对VB语言的理解和掌握。

实验内容:
1. 设计计算器界面,包括数字按钮、运算符按钮和等号按钮。

2. 实现数字按钮的点击事件,将点击的数字显示在计算器界面上。

3. 实现运算符按钮的点击事件,将点击的运算符保存下来。

4. 实现等号按钮的点击事件,根据保存的运算符进行相应的计算,并将结果显
示在计算器界面上。

实验步骤:
1. 打开VB开发环境,创建一个新的Windows窗体应用程序项目。

2. 在窗体上设计计算器界面,包括数字按钮、运算符按钮和等号按钮。

3. 编写VB代码,实现数字按钮和运算符按钮的点击事件,将点击的数字或运
算符保存下来。

4. 编写VB代码,实现等号按钮的点击事件,根据保存的运算符进行相应的计算,并将结果显示在计算器界面上。

实验结果:
经过实验,成功实现了一个简单的计算器功能。

用户可以通过点击数字按钮输
入数字,点击运算符按钮选择运算符,点击等号按钮进行计算,最终得到正确
的计算结果。

实验总结:
通过本次实验,我进一步掌握了VB语言的编程技巧,对VB编程有了更深入的
理解。

通过实际操作,我对计算器功能的实现有了更清晰的认识,为以后的VB 编程打下了良好的基础。

希望通过不断的实践和学习,能够更加熟练地运用VB 语言,实现更多更复杂的功能。

VB设计计算器实验报告

VB设计计算器实验报告

VB设计计算器实验报告姓名:专业:学号:二〇一一年十一月七日设计功能完整的计算器,实现如下图所示按钮(除“MC”,“MR”,“MS”,“M+”)及菜单功能,如图:一、解题思路、分析:对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。

首先先定义一些量,比如说前后两个操作数op1、op2,小数点是否真存在的量DecimalFlag,操作数个数NumOps,上一次按键的类型等。

接着对窗体进行初始化,同时设置所有变量为其初始。

然后对各个键盘的命令进行编写程序,对0---9按键设置为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。

同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。

同时对于除法分母是否为0,也要加以考虑。

二、源程序:Option ExplicitDim Op1, Op2 ' 前面输入的操作数Dim DecimalFlag As Integer ' 小数点仍然存在吗?Dim NumOps As Integer ' 操作数个数Dim LastInput ' 指示上一次按键事件的类型Dim OpFlag ' 指示未完成的操作Dim TempReadout' 窗体的初始化过程' 设置所有变量为其初始值Private Sub Form_Load()DecimalFlag = FalseNumOps = 0LastInput = "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 = "NONE"ElseIf Text1.Text = "0." ThenText1.Text = "0."DecimalFlag = FalseLastInput = "NONE"ElseText1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End IfEnd IfEnd SubPrivate Sub Command2_Click()' CE (取消输入) 按钮的 Click 事件过程Text1.Text = Format(0, "0.")DecimalFlag = FalseLastInput = "CE"End SubPrivate Sub Command3_Click()' C (取消) 按钮的 Click 事件过程' 重新设置显示并初始化变量Text1.Text = Format(0, "0.")Op1 = 0Op2 = 0Form_LoadEnd SubPrivate Sub Command8_Click(Index As Integer)' 数字键 (0-9) 的 Click 事件过程' 向显示中的数追加新数If LastInput <> "NUMS" ThenText1.Text = Format(0, ".")DecimalFlag = FalseEnd IfIf DecimalFlag ThenText1.Text = Text1.Text + Command8(Index).CaptionElseText1.Text = Left(Text1.Text, InStr(Text1.Text, Format(0, ".")) - 1) + Command8(Index).Caption + Format(0, ".") End IfIf LastInput = "NEG" Then Text1.Text = "-" & Text1.TextLastInput = "NUMS"End SubPrivate Sub Command11_Click(Index As Integer)' 运算符 (+, -, x, /, =) 的 Click 事件过程' 如果接下来的按键是数字键,增加 NumOps。

vb综合性设计实验报告

vb综合性设计实验报告

综合性实验实验名称:用v b编写简单计算器专业班级: 土木工程0901班学生姓名: ***学号:*********指导教师: ***1 需求分析该计算器程序是在Visual Basic6.0环境下编写,编写完成后在Windows xp下运行,通过初步测试,发现该计算程序能完成整数的加,减,乘,除四种运算。

通过在虚拟键盘上用鼠标点击输入第一个数,然后点击运算符,再输入第二个数,最后点击“=”就会在计算器上方的文本框中输出结果,清空文本框进行下次运算。

经过仔细测试发现,该计算器最高支持五位整数的运算,在除法运算中能精确到小数点后14位。

2 运行环境WINDOWS XP系统;VB6.0;3开发工具和编程语言开发工具:Visual Basic6.0“微型整值计算器”程序编写代码:Dim op1 As IntegerDim op2 As IntegerDim operator As StringPrivate Sub Command1_Click()Text1.Text = Text1.Text & "1"End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text & "2"End SubPrivate Sub Command3_Click()Text1.Text = Text1.Text & "3"End SubPrivate Sub Command4_Click()Text1.Text = Text1.Text & "4"End SubPrivate Sub Command5_Click()Text1.Text = Text1.Text & "5"End SubPrivate Sub Command6_Click()Text1.Text = Text1.Text & "6"End SubPrivate Sub Command7_Click()Text1.Text = Text1.Text & "7"End SubPrivate Sub Command8_Click()Text1.Text = Text1.Text & "8"End SubPrivate Sub Command9_Click()Text1.Text = Text1.Text & "9"End SubPrivate Sub Command11_Click()Text1.Text = Text1.Text & "0"End SubPrivate Sub Command10_Click()op1 = Val(Text1.Text)operator = "+"Text1.Text = ""End SubPrivate Sub Command12_Click()op1 = Val(Text1.Text)operator = "-"Text1.Text = ""End SubPrivate Sub Command13_Click()op1 = Val(Text1.Text)operator = "*"Text1.Text = ""End SubPrivate Sub Command14_Click()op1 = Val(Text1.Text)operator = "/"Text1.Text = ""End SubPrivate Sub Command15_Click()op2 = Val(Text1.Text)If operator = "+" ThenText1.Text = op1 + op2ElseIf operator = "-" ThenText1.Text = op1 - op2ElseIf operator = "*" ThenText1.Text = op1 * op2ElseIf operator = "/" ThenText1.Text = op1 / op2End IfEnd Sub4 系统设计(1)程序的组织结构(包括窗体、模块及其功能)。

计算器报告书VB

计算器报告书VB

河北联合大学《软件设计基础(VB)》课程设计报告设计名称:简易科学计算器姓名:学号:----专业班级:-----学院:-----设计时间=======设计地点:学校机房目录1.课程设计目的············································································································2.课程设计任务与要求 ·······························································································3.课程设计说明书········································································································4.课程设计成果············································································································5.程序调试过程············································································································6.设计问题的不足和改进方案 ···················································································7.课程设计心得············································································································8.附录····························································································································9.参考文献····················································································································Text1.Text = op(u - 1) / op(u) 'j=4代表除End Ifk = k + 1op(u) = Text1.Texta = Text1.TextText1.Text = Text1.Text * 10 + 3.1415926Text1.Text = Text1.Text + 4 * 10 ^ (-n)n = n + 1End If《软件设计基础(VB) 》课程设计报告If KeyAscii = 42 Then If v = 0 Then u = u - 1 End If If j = 1 Then Text1.Text = op(u - 1) + op(u) ElseIf j = 2 Then Text1.Text = op(u - 1) - op(u) ElseIf j = 3 Then Text1.Text = op(u - 1) * op(u) ElseIf j = 4 Then Text1.Text = op(u - 1) / op(u) End If If u = -1 Then u = 0 End If k = 0 op(u) = Text1.Text j = 3: i = i + 1: m = 1: n = 1: u = u + 1: v = 0 End If If KeyAscii = 47 Then If v = 0 Then u = u - 1 End If If j = 1 Then Text1.Text = op(u - 1) + op(u) ElseIf j = 2 Then Text1.Text = op(u - 1) - op(u) ElseIf j = 3 Then Text1.Text = op(u - 1) * op(u) ElseIf j = 4 Then Text1.Text = op(u - 1) / op(u) End If If u = -1 Then u = 0 End If k = 0 op(u) = Text1.Text j = 4: i = i + 1: m = 1: n = 1: u = u + 1: v = 0 End If If KeyAscii = 61 Then If w = 1 Then Text1.Text = Text1.Text Else If j = 1 Then Text1.Text = op(u - 1) + op(u)第21页,共29页《软件设计基础(VB) 》课程设计报告ElseIf j = 2 Then Text1.Text = op(u - 1) - op(u) ElseIf j = 3 Then Text1.Text = op(u - 1) * op(u) ElseIf j = 4 Then Text1.Text = op(u - 1) / op(u) End If u = u + 1: v = 0 End If End If End Sub Private Sub Command2_Click() Form1.Hide Form2.Show End Sub Form2 窗体 作用:实现优先级的运算。

VB课程设加减乘除计算器设计报告

VB课程设加减乘除计算器设计报告

加减乘除计算器设计报告学院机械工程班级机设054 学号050389 姓名成绩一、设计思路1.要达到的目的主要是培养学生利用系统提供的基本控件进行创新性设计,理解Visual Basic语言中面向对象的程序设计。

培养学生综合利用Visual Basic语言进行程序设计的能力。

2.关键问题的解决先使用Command命令按钮,命令按钮控件数组,文本框等基本控件设计窗体,再根据下面方法编制程序:1.连续输入新操作数的若干个数字时,采用txtDisplay.Text=txtDisplay.Text&Format$(Index)txtDisplay.Text= txtDisplay.Text&cmdNumber(Index).CaptiontxtDisplay.Text =txtDisplay.Text&Index2.对于正整数运算单击操作数的输入,需要设置一个逻辑变量,使其逻辑值为ture,准备新操作数的输入。

3. 当一个对象(本题指文本框)具有焦点时,在键盘上按键操作出发下面事件过程Private Sub Form_KeyPress(KeyAscii As Integer),在该过程中调用txtDisplay_KeyPressKeyAscii根据KeyAscii对应的字符,调用相应过程。

二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释。

Private Sub Command10_Click()‘清空Text1,使操作数空Text1.Text=””num=””End SubPrivate Sub Command11_Click()If Text1.Text<>””ThenText1.Text=-1*Text1.Text 定义负号num=Text1.TextEnd IfEnd SubPrivate Sub Command2_Click(Index As Integer)num1=numText1.Text=””num=””C=IndexEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Command4_Click()Text1.Text=Sqr(Val(Text1.Text)) ‘提示:当输入负,那么错,根号不可为负End SubPrivate Sub Command5_Click()Text1.Text=Val(Text1.Text)*Val(Text1.Text)End Sub三、设计方案的完善及目前存在的问题1.设计方案要完善的地方①增加高级函数运算功能②精炼程序2. 目前存在的问题①无法运算高级函数问题②退格键清除完数字报错四、本次设计的收获及心得体会通过几天辛苦的设计培养了我利用系统提供的基本控件进行创新性设计,理解Visual Basic语言中面向对象的程序设计。

vb计算器实训 实验报告

vb计算器实训 实验报告

实训8 实验报告一、实验目的:制作一个计算器二、实验进程:完成了十六进制,八进制的代码书写。

添加了form3,完成了窗体转化。

三、实验原理与分析:1、控件属性设置:指导教师:郝谦2、界面图:Form1指导教师:郝谦Form2:Form3:指导教师:郝谦3、代码书写:Form1:Option ExplicitDim i As IntegerDim j As IntegerDim m As StringDim x1 As DoubleDim x2 As DoubleDim y As StringDim op As IntegerDim lastinput As StringPrivate Sub About_Click()Form1.HideForm3.ShowEnd SubPrivate Sub Command1_Click(Index As Integer) 输入数字0-9If Text1.Text = "0." Or lastinput = "=" ThenText1.Text = Indexlastinput = "number"指导教师:郝谦ElseIf Form1.Tag <> "" ThenIf Index = 10 ThenText1.Text = "0."ElseText1.Text = Command1(Index).CaptionEnd IfForm1.Tag = ""ElseText1.Text = Text1.Text & Command1(Index).CaptionEnd Iflastinput = "number"End IfEnd SubPrivate Sub Command10_Click()Text1.Text = Format(Text1.Text / 100, "0.####################")lastinput = "="End SubPrivate Sub Command11_Click()x2 = Val(Text1.Text)Select Case yCase "+"x1 = x1 + x2Case "-"x1 = x1 - x2Case "×"x1 = x1 * x2Case "÷"If x2 = 0 Thenm = MsgBox("除数不能为0", vbExclamation + vbOKOnly, "提示")Text1.SetFocusElsex1 = x1 / x2End IfEnd SelectText1.Text = Format(x1, "0.#####################")lastinput = "="Text1.SetFocusEnd SubPrivate Sub Command2_Click(Index As Integer)指导教师:郝谦x1 = Val(Text1.Text)op = IndexSelect Case opCase 0y = "+"Case 1y = "-"Case 2y = "×"Case 3y = "÷"End SelectText1.Text = ""Text1.SetFocusEnd SubPrivate Sub Command3_Click() '正负号Text1.Text = -Val(Text1.Text)End SubPrivate Sub Command4_Click() '小数点If InStr(Text1.Text, ".") ThenExit SubElseText1.Text = Text1.Text + "."End IfEnd SubPrivate Sub Command5_Click()Dim length As Integerlength = Len(Text1.Text) '数字长度If length = 1 ThenIf Text1.Text <> "0." Then '除非结果为0,否则都要退一位Text1.Text = "0."End IfElseText1.Text = Left(Text1.Text, length - 1)End IfEnd SubPrivate Sub Command6_Click() '清空当前数据Text1.Text = "0."End Sub指导教师:郝谦Private Sub Command7_Click() '清除所有数据x1 = 0x2 = 0Text1.Text = Format(0, "0.")End SubPrivate Sub Command8_Click()If Text1.Text < 0 Thenm = MsgBox("被开方数要大于零", vbExclamation + vbOKOnly, "提示") ElseText1.Text = Sqr(Val(Text1.Text))lastinput = "="End IfEnd SubPrivate Sub Command9_Click()If Text1.Text = 0 Thenm = MsgBox("除数不能为0", vbExclamation + vbOKOnly, "提示")Text1.SetFocusElseText1.Text = Format(1 / Val(Text1.Text), "0.####################")lastinput = "="End IfEnd SubPrivate Sub copy_Click() '复制Clipboard.ClearClipboard.SetText Text1.SelTextEnd SubPrivate Sub Form_Initialize() '利用控件数组产生0-9的控件For i = 1 To 9Load Command1(i)Select Case i Mod 3Case 0With Command1(i).Visible = True.Caption = i.Left = Command1(0).Left + 1440.Top = Command1(i - 3).Top + Command1(i).Height - 1095 End WithCase 1With Command1(i).Visible = True指导教师:郝谦.Caption = i.Left = Command1(0).Left.Top = Command1(i - 1).Top + Command1(i).Height - 1095 End WithCase 2With Command1(i).Visible = True.Caption = i.Left = Command1(0).Left + 720.Top = Command1(i - 2).Top + Command1(i).Height - 1095 End WithEnd SelectNext iFor j = 1 To 3 '‘生成运算符的控件按钮Load Command2(j)With Command2(j).Visible = True.Left = Command2(0).Left.Top = Command2(j - 1).Top + Command2(j).Height + 100 End WithCommand2(j).Caption = Choose(j, "-", "×", "÷")Next jEnd subPrivate Sub Form_Resize()Me.Width = 4230Me.Height = 4860End SubPrivate Sub kexue_Click() ’到科学型界面Form2.ShowForm1.HideEnd SubEnd SubPrivate Sub paste_Click() '粘贴Text1.SelText = Clipboard.GetTextEnd SubForm2:Option ExplicitDim i As Integer指导教师:郝谦Dim j As IntegerDim k As IntegerDim n As IntegerDim x1 As DoubleDim x2 As DoubleDim Y As StringDim op As IntegerDim lastinput As StringDim m As StringDim B As StringDim D As StringPrivate Sub About_Click()Form2.HideForm3.ShowEnd SubPrivate Sub Command1_Click(Index As Integer) '输入数字0-9If Text1.Text = "0." Or lastinput = "=" ThenText1.Text = Indexlastinput = "number"ElseIf Form1.Tag <> "" ThenIf Index = 10 ThenText1.Text = "0"ElseText1.Text = Command1(Index).CaptionEnd IfForm1.Tag = ""ElseText1.Text = Text1.Text & Command1(Index).CaptionEnd Iflastinput = "number"End IfEnd SubPrivate Sub Command10_Click()Text1.Text = Format(Text1.Text / 100, "0.####################")lastinput = "="End SubPrivate Sub Command11_Click()x2 = Val(Text1.Text)Select Case Y指导教师:郝谦Case "+"x1 = x1 + x2Case "-"x1 = x1 - x2Case "×"x1 = x1 * x2Case "÷"If x2 = 0 Thenm = MsgBox("除数不能为0", vbExclamation + vbOKOnly, "提示")Text1.SetFocusElsex1 = x1 / x2End IfEnd SelectText1.Text = Format(x1, "0.#####################")lastinput = "="Text1.SetFocusEnd SubPrivate Sub Command12_Click(Index As Integer)Select Case IndexCase 0Text1.Text = Format(Sin(Val(Text1.Text)), "0.####################") Case 1Text1.Text = Format(Cos(Val(Text1.Text)), "0.####################") Case 2Text1.Text = Format(Tan(Val(Text1.Text)), "0.####################") Case 3For i = 1 To Val(Text1.Text) - 1Text1.Text = Format(i * Text1.Text, "0.####################") Next iEnd Selectlastinput = "="End SubPrivate Sub Command13_Click(Index As Integer)If Text1.Text = "0." Or lastinput = "=" ThenText1.Text = Command13(Index).Caption指导教师:郝谦lastinput = "number"ElseIf Form1.Tag <> "" ThenIf Index = 10 ThenText1.Text = "0"ElseText1.Text = Command13(Index).CaptionEnd IfForm1.Tag = ""ElseText1.Text = Text1.Text & Command13(Index).CaptionEnd Iflastinput = "number"End IfSelect Case Command13(Index).CaptionCase "A": D = D & "10"Case "B": D = D & "11"Case "C": D = D & "12"Case "D": D = D & "13"Case "E": D = D & "14"Case "F": D = D & "15"End SelectEnd SubPrivate Sub Command2_Click(Index As Integer)x1 = Val(Text1.Text)op = IndexSelect Case opCase 0Y = "+"Case 1Y = "-"Case 2Y = "×"Case 3Y = "÷"End SelectText1.Text = ""Text1.SetFocusEnd SubPrivate Sub Command3_Click() '正负号指导教师:郝谦Text1.Text = -Val(Text1.Text)End SubPrivate Sub Command4_Click() '小数点If InStr(Text1.Text, ".") ThenExit SubElseText1.Text = Text1.Text + "."End IfEnd SubPrivate Sub Command5_Click()Dim length As Integerlength = Len(Text1.Text) '数字的长度If length = 1 ThenIf Text1.Text <> "0." Then '除非结果为零,否则都要减一位Text1.Text = "0."End IfElseText1.Text = Left(Text1.Text, length - 1)End IfEnd SubPrivate Sub Command6_Click() '清空当前数据Text1.Text = "0."End SubPrivate Sub Command7_Click() '清除所有数据x1 = 0x2 = 0Text1.Text = Format(0, "0.")End SubPrivate Sub Command8_Click()If Text1.Text < 0 Thenm = MsgBox("被开方的数要大于零", vbExclamation + vbOKOnly, "提示") ElseText1.Text = Sqr(Val(Text1.Text))lastinput = "="End IfEnd SubPrivate Sub Command9_Click()If Text1.Text = 0 Thenm = MsgBox("除数不能为0", vbExclamation + vbOKOnly, "提示")Text1.SetFocus指导教师:郝谦ElseText1.Text = Format(1 / Val(Text1.Text), "0.####################")lastinput = "="End IfEnd SubPrivate Sub copy_Click() '复制Clipboard.ClearClipboard.SetText Text1.SelTextEnd SubPrivate Sub Form_Initialize() '利用控件数组产生0-9的控件For i = 1 To 9Load Command1(i)Select Case i Mod 3Case 0With Command1(i).Visible = True.Caption = i.Left = Command1(0).Left + 1440.Top = Command1(i - 3).Top + Command1(i).Height - 1095 End WithCase 1With Command1(i).Visible = True.Caption = i.Left = Command1(0).Left.Top = Command1(i - 1).Top + Command1(i).Height - 1095 End WithCase 2With Command1(i).Visible = True.Caption = i.Left = Command1(0).Left + 720.Top = Command1(i - 2).Top + Command1(i).Height - 1095 End WithEnd SelectNext iFor j = 1 To 3 '生成运算符的控件按钮Load Command2(j)With Command2(j)指导教师:郝谦.Visible = True.Left = Command2(0).Left.Top = Command2(j - 1).Top + Command2(j).Height + 100 End WithCommand2(j).Caption = Choose(j, "-", "×", "÷")Next jFor k = 1 To 3Load Command12(k)With Command12(k).Visible = True.Left = Command12(0).Left.Top = Command12(k - 1).Top + Command12(k).Height + 100 End WithCommand12(k).Caption = Choose(k, "cos", "tan", "n!")Next kFor n = 1 To 5Load Command13(n)With Command13(n).Visible = True.Top = Command13(0).Top.Left = Command13(n - 1).Left + Command13(n).Width + 100 End WithCommand13(n).Caption = Choose(n, "B", "C", "D", "E", "F")Next nEnd SubPrivate Sub Form_Load() '初始化x1 = 0x2 = 0Text1.Text = "0."End SubPrivate Sub kexue_Click()Form2.ShowForm1.HideEnd SubPrivate Sub Form_Resize()Me.Height = 5820Me.Width = 5130End Sub指导教师:郝谦Private Sub Hexadecimal_Click()Text1.Text = Hex(Val(Text1.Text))End SubPrivate Sub Normal_Click()Form1.ShowForm2.HideEnd SubPrivate Sub Octonary_Click()Text1.Text = Oct(Val(Text1.Text))End SubPrivate Sub Option1_Click()Text1.Text = Hex(Val(Text1.Text))For n = 0 To 5Command13(n).Enabled = TrueNext nFor j = 2 To 9Command1(j).Enabled = TrueNext jCommand1(8).Enabled = TrueCommand1(9).Enabled = Truelastinput = "="End SubPrivate Sub Option2_Click()Text1.Text = Oct(Val(Text1.Text))Command1(8).Enabled = FalseCommand1(9).Enabled = FalseFor n = 0 To 5Command13(n).Enabled = FalseNext nFor j = 2 To 9Command1(j).Enabled = TrueNext jlastinput = "="指导教师:郝谦End SubPrivate Sub Option3_Click()For n = 0 To 5Command13(n).Enabled = FalseNext nCommand1(8).Enabled = TrueCommand1(9).Enabled = TrueFor j = 2 To 9Command1(j).Enabled = TrueNext jFor i = 1 To Len(Text1.Text)Select Case Mid(Text1.Text, i, 1)Case "0": D = D & "0"Case "1": D = D & "1"Case "2": D = D & "2"Case "3": D = D & "3"Case "4": D = D & "4"Case "5": D = D & "5"Case "6": D = D & "6"Case "7": D = D & "7"Case "8": D = D & "8"Case "9": D = D & "9"Case "A": D = D & "10"Case "B": D = D & "11"Case "C": D = D & "12"Case "D": D = D & "13"Case "E": D = D & "14"Case "F": D = D & "15"End SelectNext iText1.Text = Dlastinput = "="End SubPrivate Sub Option4_Click()For n = 0 To 5Command13(n).Enabled = FalseNext nFor j = 2 To 9Command1(j).Enabled = False指导教师:郝谦Next jFor i = 1 To Len(Text1.Text)Select Case Mid(Text1.Text, i, 1)Case "0": B = B & "0000"Case "1": B = B & "0001"Case "2": B = B & "0010"Case "3": B = B & "0011"Case "4": B = B & "0100"Case "5": B = B & "0101"Case "6": B = B & "0110"Case "7": B = B & "0111"Case "8": B = B & "1000"Case "9": B = B & "1001"Case "A": B = B & "1010"Case "B": B = B & "1011"Case "C": B = B & "1100"Case "D": B = B & "1101"Case "E": B = B & "1110"Case "F": B = B & "1111"End SelectNext iText1.Text = Blastinput = "="End SubPrivate Sub paste_Click() '粘贴Text1.SelText = Clipboard.GetTextEnd SubForm3:Private Sub Command1_Click()Form3.HideForm1.ShowEnd SubPrivate Sub Form_Resize()Me.Width = 6360Me.Height = 6645End Sub四、实验心得:此次实训完成了所有的计算器修改。

VB课程设06072008科学计算器

VB课程设06072008科学计算器

科学计算器设计报告学院材料学院班级材料074 学号072008 姓名孙红楠成绩一、设计思路1.要达到的目的①培养利用VB的标准控件进行应用程序设计的能力,培养综合利用VB语言进行程序设计的能力。

②练习如何使用键盘输入数据。

③了解各个控件属性,培养对控件属性的设置。

加强对控件使用的熟练程度。

④练习使用子函数及子程序。

2.关键问题的解决①对于计算器,首要问题就是就是对数据的运算,这里是通过运用了控件数组calu(),speci()等以求提高代码的利用率,简化程序。

对运算设置了子程序Sub cacul(op1, op, op2)Sub cacul(op1, op, op2)Select Case opCase 0op1 = op1 + op2Case 1op1 = op1 - op2Case 2op1 = op1 * op2Case 3If op2 = 0 Then MsgBox "0不能做除数", vbCritical: Exit Subop1 = op1 / op2End SelectEnd Sub对于其他功能键则采取了分别编译的方法,分别编写其功能。

此外窗体支持彩色按钮以此区分不同的功能区。

②数字的输入要有指定的格式,使其符合规范i = Len(xianshi)If InStr(xianshi, ".") ThenDo While Mid(xianshi, i, 1) = "0"i = i - 1LoopIf Mid(xianshi.Caption, i, 1) = "." Then i = i - 1xianshi = Left(xianshi, i)End If对每个数字键都要对应相应数字的输入,由控件数组num()编译较简单明确。

且最基本的就是每个按一个键就在原基础上加一个数字:xianshi = xianshi & CStr(Index),但对于在运算符或等号之后输入的数就要进行相应的别的设置,由此应加上一个记号,判断属于哪种方式的输入,在此程序中m 和z 完成此项功能。

用VB制作计算器

用VB制作计算器

摘要这个程序是我用VB制作的简单计算器,它可以实现简单的四则运算,数字的平方,平方根,正弦,余弦,倒数,以及进制的相互转换。

而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据,退出程序。

在这个计算器的程序中,我用到了单行选择语句If …Then …Else…,If语句的嵌套,多条件选择语句Select Case,而且还用到了组合框,框架,菜单的设计,以及键盘事件,可以通过键盘来用于计算。

在此报告中我重点叙述了计算机的各个功能及用法。

特别是进制间的转换和数字与运算符之间的联系。

还有说明了键盘怎样用于操作计算。

虽然表达能力不太行,但我会尽力使用系统结构图,程序流程图,划分多个模块,让大家明白我设计的运算器的功能的。

目录摘要 (1)目录 (2)第一章任务概述 (3)1.1、目标 (3)1.2、需求概述 (3)1.2.1、鼠标操作 (3)1.2.2、键盘操作 (3)第二章总体设计 (4)2.1、系统结构功能图 (4)第三章功能分配 (5)3.1、打开计算器界面 (5)3.2、平方根,平方,倒数,正弦,余弦的实现 (7)3.3、退格 (8)3.4、清除 (8)3.4.1、清除当前数据 (8)3.4.2清除所有数据 (8)3.5、鼠标的输入 (9)3.6、进制间的转换 (11)小结 (13)第一章任务概述1.1、目标本系统的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,数字的进制转换的计算器系统,系统可以帮助我们更好的学习,更好的节省时间。

还能避免出现一些不必要的计算错误。

1.2、需求概述根据本系统的需求分析,系统的需求可以分为以下的几个方面:1.2.1、鼠标操作你可以利用鼠标点击界面上的各个按钮来实现计算器的运算。

1.2.2、键盘操作当不方便使用鼠标时可以利用键盘来实现运算,数字的复制和粘贴。

第二章总体设计2.1、系统结构功能图图2-1系统结构功能图第三章功能分配3.1、打开计算器界面图3-1 计算器界面Dim dflag As Integer‘小数点仍然存在吗?Dim i As IntegerDim opnre As Integer ‘初始值Dim prev As Double‘前面输入的操作数Dim oflag As Integer ‘等号前后对数字的标记Dim ind As Integer ‘cmdoperator控件数组的数Dim x As DoubleDim y As Double' 运算符 (+, -, x, /, =) 的 Click 事件过程' 如果接下来的按键是数字键,增加 val(text1.Caption)。

VB程序设计报告 计算器和三角函数

VB程序设计报告  计算器和三角函数

软件技术实验报告班级学号姓名第三次实验:计算器和三角函数实验内容:1 设计一个可以进行四则运算的简单计算器。

该计算器除了可以进行加、减、乘、除、求模(取余)等简单的四则运算外,还要求可以进行四则混合连算,并具有符合计算器日常使用习惯的容错纠错功能。

具体步骤如下:①在界面上建立按钮控件数组:首先在窗体中置入一个命令按钮控件后,将其激活并点击右键通过“复制”、“粘贴”的方法依次产生19个一样的命令按钮控件,其中在创建第一个“粘贴”控件时VB会询问“是否要创建控件数组?”回答“是”即可开始依次创建该控件数组。

②按钮属性的设置:将各按钮的caption属性分别设置为0,1,2……9,+、-、×,/,Mod,=,cls,Exit,注意在设置这些属性时其值与按钮控件的Index属性的对应性。

③其它控件的属性设置:文本框作为显示操作数和结果的控件,应遵循一般计算器的显示习惯,将其Alignment即对齐属性设置为“Right”,此外,将各控件相关的字体、字号等设置为统一风格。

④在程序的通用区定义四个窗体层变量:num1、num2、sum、act、前三个为双精度、act为整型变量。

⑤编写进行四则运算所需的程序作为命令按钮的单击事件过程。

2 设计一个三角函数运用picture,combol,text,command控件设计一个三角函数,使得在一个窗体中可以显示多种函数图象创新亮点:(如果没有可以空缺)通过相关属性的设置,不断改进软件的功能和外观,使其更加接近现实中使用的软件。

在“按钮、窗体”属性中设置picture为一张图片为背景完成情况和存在问题:基本完成了实验的要求,做出符合实验的应用实例。

但是在使用Select语句时,例如“ Case Index case n”不清楚具体n的含义,对基本语句掌握不好,导致最后运行时出现运行加减乘除时,老是出现错误。

最后通过问小组成员,寻求帮助后,解释select语句的使用方法及n的含义,将杂乱无序的n 的值按对应的属性序号修改后,运行正常。

vb计算器 实验报告

vb计算器 实验报告

vb计算器实验报告VB计算器实验报告引言:计算器是人们日常生活中常用的工具之一,无论是进行简单的数学运算还是复杂的科学计算,计算器都能提供帮助。

本实验旨在使用VB(Visual Basic)编程语言设计和实现一个功能完善的计算器,通过该实验,我们可以深入了解计算器的原理和实现方法,并掌握VB编程的基本技巧。

一、实验目的本实验的主要目的是设计和实现一个VB计算器,具体包括以下几个方面:1. 学习VB编程语言的基本语法和数据类型;2. 掌握VB窗体的设计和布局;3. 实现基本的计算功能,包括加减乘除、取余、开方等;4. 实现科学计算功能,包括三角函数、指数函数、对数函数等;5. 实现计算器的界面美化和用户友好性。

二、实验原理1. VB编程语言VB是一种事件驱动的编程语言,它提供了丰富的控件和库函数,方便开发者进行图形界面的设计和实现。

在本实验中,我们将使用VB编程语言来实现计算器的功能。

2. VB窗体设计VB窗体是计算器的主界面,通过在窗体上添加各种控件,如按钮、文本框等,来实现计算器的各种功能。

通过设置控件的属性和事件,可以实现用户与计算器的交互。

3. 计算器的基本功能实现计算器的基本功能包括加减乘除、取余、开方等,这些功能可以通过VB编程语言中提供的数学函数和运算符来实现。

通过捕捉用户输入的数据和操作符,计算器可以进行相应的计算并将结果显示在屏幕上。

4. 科学计算功能的实现科学计算功能是计算器的扩展功能,包括三角函数、指数函数、对数函数等。

这些函数可以通过VB编程语言中提供的数学库函数来实现,通过捕捉用户的选择和输入,计算器可以根据用户的需求进行相应的科学计算。

5. 界面美化和用户友好性为了提高计算器的用户体验,我们需要对计算器的界面进行美化和优化。

通过设置控件的样式、颜色和布局,可以使计算器界面更加美观和易用。

三、实验步骤1. 创建VB工程,并添加一个窗体;2. 在窗体上添加各种控件,如按钮、文本框等,用于实现计算器的各种功能;3. 设置控件的属性和事件,实现计算器的基本功能,包括加减乘除、取余、开方等;4. 添加科学计算功能,如三角函数、指数函数、对数函数等,实现科学计算器的功能;5. 美化计算器界面,通过设置控件的样式、颜色和布局,提高用户体验;6. 进行测试和调试,确保计算器的功能正常。

vb简易计算器实验研究报告

vb简易计算器实验研究报告
Dim x As Integer
x = Text1.Text
Text3.Text = Atn(x)
End Sub
Private Sub Command13_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x ^ y
x = Text1.Text
Text3.Text = Sin(x)
End Sub
源代码截图:
四、运行结果演示:
加法演示:
减法演示:
乘法演示:
除法演示:
能够整除:
不能够整除:
除数为零:
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
This article includes some parts, including text, pictures, and design. Copyright is personal ownership.RTCrp。
考虑到计算器地操作简便性,所以加入了复位和退出按钮.
三、源程序文件:
Private Sub Command1_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x + y
End Sub
Private Sub Command10_Click()
Private Sub Command7_Click()
Text1.Text = ""
Text2.Text = ""

计算器项目实训报告书

计算器项目实训报告书
项目实训报告书
课程名称VB程序设计
姓 名高海涛
班 级10(1)班
学 号10261139
指导教师陈劲新
盐城师范学院信息科学与技术学院
2011.12
题目:复杂科学性数学计算器。
(【基本要求】
本计算器可实现普通的计算功能,如加、减、乘、除,还可以进行倒数、开方、乘方、三角函数计算、阶乘、对数、计算,还可以进行十进制和八进制、十进制和十六进制之间的换算,以及数字的保存和读取。
If txtlabel.Text = "" Then
txtfirst.Text = -1 * Val(txtfirst.Text)
Else
txtsecond.Text = -1 * Val(txtsecond.Text)
End If
End Sub
Private Sub Command12_Click()
End Sub
Private Sub Command24_Click()
txtlabel.Text = "tan"
End Sub
Private Sub Command26_Click()
txtfirst.Text = ""
txtsecond.Text = ""
txtlabel.Text = ""
txtOct.Te;tan"
MyResult = Tan(Val(txtfirst.Text))
End Select
txtlabel.Text = "" '将txtLabel、txtSecond清空
txtsecond.Text = ""
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB 设计计算器 实验报告姓名: 专业: 学号:二0一一年十一月七日设计功能完整的计算器,实现如下图所示按钮(除“ MC,“MR , “MS,“M+ )及菜单功能,如图:一、解题思路、分析:对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。

首先先定义一些量,比如说前后两个操作数opl、op2,小数点是否真存在的量DecimalFlag ,操作数个数NumOps上一次按键的类型等。

接着对窗体进行初始化,同时设置所有变量为其初始。

然后对各个键盘的命令进行编写程序,对0---9按键设置为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。

同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。

同时对于除法分母是否为0,也要加以考虑。

、源程序:Private Sub Form_Load()DecimalFlag = FalseNumOps = 0LastI nput = "NONE"OpFlag =""Text1.Text = Format(0, "0.")'Decimal.Captio n = Format(0, ".")End SubOpti on ExplicitDim Op1, Op2Dim DecimalFlag As In tegerDim NumOps As In tegerDim LastInput类型Dim OpFlagDim TempReadout' 窗体的初始化过程' 设置所有变量为其初始值前面输入的操作数小数点仍然存在吗?操作数个数指示上一次按键事件的指示未完成的操作' 退格键Private Sub Command1_Click()If Len(Text1.Text) = 1 ThenText1.Text = Format(0, "0.")DecimalFlag = FalseLastInput = "NONE"ElseIf Text1.Text = "0." ThenText1.Text = "0."DecimalFlag = FalseLastInput = "NONE"ElseText1.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 = "CE"End SubPrivate Sub Command3_Click()' C ( 取消) 按钮的Click 事件过程' 重新设置显示并初始化变量Text1.Text = Format(0, "0.")Op1 = 0Op2 = 0Form_LoadEnd SubPrivate Sub Command8_Click(Index As Integer)' 数字键(0-9) 的Click 事件过程' 向显示中的数追加新数If LastInput <> "NUMS" Then Text1.Text = Format(0, ".") DecimalFlag = FalseEnd IfIf DecimalFlag ThenText1.Text = Text1.Text + Command8(Index).Caption ElseText1.Text = Left(Text1.Text, Format(0, ".")) - 1) +InStr(Text1.Text, Command8(Index).Caption + Format(0, ".")End IfIf LastInput = "NEG" Then Text1.Text = "-" & Text1.TextLastInput = "NUMS"End SubPrivate Sub Command11_Click(Index As Integer)' 运算符(+, -, x, /, =) 的Click 事件过程' 如果接下来的按键是数字键,增加NumOps 。

' 如果有一个操作数,则设置Op1 。

' 如果有两个操作数,则将Op1 设置为Op1 与' 当前输入字符串的运算结果,并显示结果( CDbl 或CSng 函数强制进行双精度或单精度算术运算)TempReadout = Text1.TextIf LastInput = "NUMS" ThenNumOps = NumOps + 1End IfSelect Case NumOpsCase 0If Command11(Index).Caption = "-" And LastInput <> "NEG" ThenText1.Text = "-" & Text1.TextLastInput = "NEG"End If Case 1Op1 = Text1.TextIf Command11(Index).Caption = "-" And LastInput <> "NUMS" And OpFlag <> "=" ThenText1.Text = "-"LastInput = "NEG"End If ' 3--3=6Case 2Op2 = TempReadoutSelect Case OpFlagCase "+"Op1 = CDbl(Op1) + CDbl(Op2) Case "-"Op1 = CDbl(Op1) - CDbl(Op2) Case "*"Op1 = CDbl(Op1) * CDbl(Op2) Case "/"If Op2 = 0 Then MsgBox " 除数不能为0", 48, " 计算器"ElseOp1 = CDbl(Op1) / CDbl(Op2) End IfCase "="Op1 = CDbl(Op2)Case "%"Op1 = CDbl(Op1) * CDbl(Op2)End SelectText1.Text = Op1Text1.Text = Format(Text1.Text, "0.########")NumOps = 1End SelectIf LastInput <> "NEG" ThenLastInput = "OPS"OpFlag = Command11(Index).CaptionEnd IfEnd SubPrivate Sub Command9_Click()Text1.Text = -Text1.TextText1.Text = Format(Text1.Text, "0.########")End SubPrivate Sub Command10_Click()' 小数点(.) 按钮的Click 事件过程' 如果上一次按键为运算符,初始化Text1.Text为"0."' 否则显示时追加一个小数点If LastInput = "NEG" ThenText1.Text = Format(0, "-0.")ElseIf LastInput <> "NUMS" ThenText1.Text = Format(0, "0.")End IfDecimalFlag = TrueLastInput = "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 / 100Text1.Text = Format(Text1.Text, "0.########")LastInput = "Ops"OpFlag = "%"NumOps = NumOps + 1DecimalFlag = TrueEnd SubPrivate Sub Command14_Click()If Val(Text1.Text) = 0 ThenMsgBox (" 分母不能为零")ElseText1.Text = 1 / Val(Text1.Text)Text1.Text = Format(Text1.Text, "0.########")End IfEnd Sub三、实验心得:通过这次实验将书本上的知识掌握的更加透彻,不仅仅是简单的记忆,更是将知识融会贯通,学以致用!看着自己将一个完整的计算器编译出来,心中很是激动,感觉计算机的神奇,而在这之前是未曾想过的,所以更加强了我学习VB程序设计这门课程的爱好。

在未来学习的日子里我依然会继续努力学习这门课程,因为它的实用、“神奇”深深的吸引了我!。

相关文档
最新文档