vb计算器设计报告
- 格式:doc
- 大小:248.50 KB
- 文档页数:10
简易计算器课程设计报告一、实验目的:模拟计算器的功能。
系统启动后, 先清屏, 再在显示屏右侧显示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源代码截图:四、运行结果演示: 加法演示:减法演示: 乘法演示:除法演示:能够整除: 不能够整除:除数为零:。
复杂型科学计算器的设计与实现实验目的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》课内实验报告学生姓名:及学号:学院:班级: 数学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计算器实验报告》摘要:本实验报告通过使用VB(Visual Basic)编程语言,设计并实现了一个简单的计算器应用程序。
实验结果表明,该计算器能够实现基本的四则运算功能,并且具有良好的用户界面和操作体验。
本实验为学习VB编程语言的初学者提供了一个很好的实践机会,也为进一步深入学习和开发更复杂的应用程序奠定了基础。
1. 背景VB是一种由微软公司开发的基于对象的编程语言,它是一种易学易用的编程语言,适合初学者入门。
VB可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。
在本实验中,我们将使用VB编程语言设计并实现一个简单的计算器应用程序,以展示其基本功能和特点。
2. 实验目的通过本实验,我们旨在掌握VB编程语言的基本语法和功能,并且能够设计并实现一个简单的计算器应用程序。
同时,我们也将学习如何创建用户界面、处理用户输入和实现基本的数学运算功能。
3. 实验方法本实验使用Visual Studio作为开发环境,通过VB编程语言实现计算器应用程序的设计和开发。
在设计过程中,我们将考虑用户界面的布局和美观性,以及计算器功能的实现和操作流程。
在开发过程中,我们将使用VB的各种语法和功能,如变量、条件语句、循环语句和函数等,来实现计算器的基本功能。
4. 实验结果经过设计和开发,我们成功实现了一个简单的计算器应用程序。
该计算器具有清晰的用户界面和友好的操作体验,能够实现基本的加减乘除等四则运算功能。
用户可以通过点击按钮或者输入数字和运算符来进行计算,同时还可以实现清零和退格等功能。
整体而言,该计算器应用程序能够满足基本的计算需求,并且具有较好的稳定性和性能。
5. 结论通过本实验,我们不仅掌握了VB编程语言的基本语法和功能,还学会了如何设计和实现一个简单的计算器应用程序。
同时,我们也了解到了用户界面设计和用户体验的重要性,以及如何通过VB编程语言实现各种功能和操作。
学号《可视化编程》课程设计报告简易科学计算器的设计与开发专业班级:计算机科学与技术1112学生姓名:指导教师:钱小红/李小艳教学系:信息工程系2012年6月15日课程设计报告书学生姓名:专业班级:计算机1111-1112班指导教师:钱小红/李小艳工作单位:华夏学院计算机教研室设计题目:简易科学计算器的设计与开发初始条件:1、完成可视化编程的学习2、带Visual Basic 的机器要求完成的主要任务:主要任务:(在规定的时间内完成下列任务)1、能够完成数值常数的四则运算,不要求支持运算符的优先级。
2、能够进行如下函数的求值运算,包括sin, cos, tan, exp, log, ln, sqr, 1/x,以及常数e和圆周率π。
3、设置5个存贮键,以便将中间运算结果存入,在需要的时候取出参与运算。
4、能够进行初始化,清除内存中的数,退出运算,清除显示。
5、因为控件数目较多,要求采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。
6、出错处理:操作数如果不符合数学上的定义,应该给出错误信息。
例:0做除数,负数或0做真数等情况。
设计报告撰写格式要求:(课程设计报告按统一通用格式书写)具体内容如下:①设计任务与要求②总体方案与说明③程序主要模块的流程图④源程序清单与注释⑤问题分析与解决方案(包括调试记录、调试报告,即在调试过程中遇到的主要问题、解决方法及改进设想);⑥小结与体会附录:①源程序(必须有简单注释)②使用说明③参考资料时间安排:6月15日---21日第一天布置题目,确定任务、查找相关资料第二天~第四天功能分析,编写程序,调试程序、运行系统;第五天程序验收、答辩;撰写设计报告。
指导教师签字:2012年6月15日系主任签字:年月日1.设计任务与要求1.设计任务利用VB语言设计一个简易的科学计算器,学会利用VB控件数组实现数值的计算以及基本函数的计算。
2.基本要求:(1)要能够完成数值常数的四则运算。
目录一、设计内容及要求二、设计原始资料三、设计完成后提交的文件和图表设计四、进程安排五、主要参考资料[摘要]用VB制作这个程序的简单计算器,它包括一个标准的计算器和一个科学计算器。
它可以实现简单的加减乘除四则运算,数字的平方、平方根,正弦、余弦、正切,倒数、指数函数、对数函数,角度、弧度、梯度的转换,以及各进制的相互转换。
而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据。
在这个计算器的程序中,我用到了单行选择语句If…Then…Else…,块语句if…then…end if,If语句的嵌套,多条件选择语句Select Case,而且还用到了按钮、文本框、框架、单选按钮控件,菜单的设计。
在此报告中我重点叙述了计算机的各个功能及用法。
特别是进制间的转换和数字与运算符之间的联系。
虽然描述的不太完整,但我会尽力使用系统结构图,划分多个模块,让大家明白我设计的运算器的功能的。
[关键词]Visual Basic;计算器;对象;代码1三、设计完成后提交的文件和图表设计(要求2000字以上)1. 设计方案实现这个实用计算器,要考虑的主要是以下两个方面的内容:一、设置每个控件按钮的属性。
二、每组控件组都有自己的VB代码,由VB语言实现各个控件按钮的功能。
于是本设计就是以这两个个部分为核心内容展开。
根据设计要求该实用计算器能实现四则运算和部分科学计算法等按钮的控制,根据各组控件按钮源代码的不同,来实现按下不同的按键实现不同的计算过程或结果功能。
本设计大体由窗体、CommandButton、Textbox、Timer 四个模块构成。
其中Commandbutton作为按钮模块,Textbox作为显示模块,Timer作为显示或隐藏部分按键的模块。
Commandbutton按钮实现数字键和其他算法按键的功能;Textbox实现计算过程和结果的数字显示;Timerbox 实现当计算器只用到四则的简单运算时,窗体只显示四种运算的基本按键,当用到科学计算时,再在窗体中显示科学计算的控件按钮。
面向对象程序设计课程设计报告——简易计算器学生姓名: *** ***学号: ********、********专业班级:****************指导教师: *****目录一.课程设计目的 (2)二.课程设计内容 (2)A. 题目及要求 (2)(一)设计题目:简易计算器 (2)(二)内容介绍 (2)(三)基本要求 (2)B. 课题分析及设计思路 (2)(一)分析 (3)(二)基本设计思路 (3)C. 各部分程序设计 (3)1.“0~9”以及“.” (3)2“+、-、*、/” (3)3.“=” (3)4.“Del、AC” (3)5.“Save”键的功能以及介绍…………………………………………6.误差分析 (4)D. 难点及调试过程 (5)E. 成果展示 (5)三.实验心得 (8)一.课程设计目的1、通过对课程所学知识的延伸和扩展,结合VB各类知识及代码与C++各类知识及代码对比来加深对VB与C++的综合理解。
2、掌握基本的面向对象的程序设计的思路和方法。
3、能够灵活运用所学知识解决实际问题.。
二.课程设计内容A.题目及要求(一)设计题目:简易计算器(二)内容介绍:1、具有加减乘除功能。
2、当被除数为零是会自动报错。
3、有删减单字符功能(Del),也有全清功能(AC)。
4、有保存运算结果功能(save),并且能将结果保存到E盘并以程序运行保存结果的时间作为文档名保存。
(三)基本要求:支持基本的功能示例如下:1、可进行简单计算2、有异常处理3、能显示结果,并将运算结果保存到TXT文档中B.课题分析及设计思路(一)分析根据题目要求,设计出一个简易的计算器,要求能进行简易计算,并且将计算结果保存为.txt格式。
所以我们小组采用了VB的方式来完成本课题。
VB的优势在于VB是一种可视化编程语言,可以用于开发Windows环境下的各类应用程序,本课题通过VB可以更快更好的的完成本课题的要求。
(二)基本设计思路类的设计在VB6.0精简版中,我们可以通过Command按钮以及Text显示框来进行显示以及操作。
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。
加减乘除计算器设计报告一:设计思路1.要达到的目的培养学生综合利用VB语言进行程序设计的能力,主要培养学生综合使用基本控件,控件数组,常用算法等能力。
2.关键问题的解决●在窗体上分别创建用于0-9个操作数字和+、-、*、/运算符号的控件数组,并创建用于显示操作数、运算结果的文本框及其它控件。
●单击数字控件数组元素时,先判断参加运算的数是否是新的操作数,用以确定单击数字键后数字在文本框中的显示方式,如果是新的操作数如234,那么连续单击2,3,4数字键,在文本框中会显示234。
●单击操作符,结束第一个操作数的输入,同时把第一个操作数存储到一个全局变量中。
●单击等号(=),结束第二个操作数的输入并存储,根据上面记下的index值选择操作符计算。
●如果用键盘操作运算,应根据所按键对应的KeyAscii值转换成对应的字符来断执行什么操作,确定调用哪个事件过程。
最后完成运算。
二、模块之间的调用关系,或程序流程图f = 0s = 0i = 0j = 0End SubPrivate Sub form_Keypress(Keyascii As Integer) Select Case Chr(Keyascii)Case "0" To "9"commadone_click (Val(Chr(Keyascii))) Case "."Call Command1_ClickCase "+"Call commandjia_click(0)Case "-"Call commandjia_click(1)Case "*"Call commandjia_click(2)Case "/"Call commandjia_click(3)Case "="Call commanddeng_clickEnd SelectEnd SubPrivate Sub jia_Click(Index As Integer)i = cun(Text1)Text1.Text = ""f = Index + 1End SubPrivate Sub one_Click(Index As Integer)Text1 = Text1 & IndexEnd SubPublic Sub jisuan(i, j, s)Select Case fCase 1s = i + jCase 2s = i - jCase 3s = i * jCase 4s = i / jEnd SelectEnd SubPublic Function cun(x As String)cun = Val(x)End Function四、设计方案的完善及目前存在的问题只能进行一次运算不能运算负数五、本次设计的收获及心得体会得锻炼自己学习课外知识的能力,同时动手能力得到了很大提高六、对该题目和VB设计的意见和建议题目难易度适当较好的锻炼学生能力。
北京电子科技学院计算机实习报告题目:计算器的制作系别通信工程班级0431学生学号043118学生姓名孙锦慧导师姓名汪永好起止时间2006年9月4日至2006年9月15日一、选题内容:做一个计算器满足以下要求:(1)能进行加、减、乘、除基本运算,还要能混合运算。
(2)能完成一些特殊的数学运算,如开方,倒数等。
(3)界面要和常见的计算器界面类似。
二、实习流程:第一天,我与汪老师当面交流了一下,他大致为我讲述了做计算器的基本思路和可能用到的知识,并建议我尽快查找有关计算器的资料。
VB、VC、C语言都可以实现实习的目的和要求。
既然为实习我就想学点新东西,于是选择了用VB做,而且老师说用VB是最简单的。
第二天,根据汪老师的提示和建议我开始从各路查找资料,包括在图书馆和网上查找有关VB的东西。
还好找到了而且程序差不多编好了,我只要再稍加修改就可以,我相信计算机语言都是相通的。
按照我的想法我又借了几本关于VB基本知识的书籍,先学习了解基本变量说明,控件的概述,公用属性、方法、事件以及常用的控件。
另外还看了控件数组的概念及使用方法和注意事项。
控件的事件是确定控件对外部条件的响应。
事件有控件识别,再有应用程序处理。
控件数组是一组具有共同名称和类型的控件。
它们的事件过程相同。
一个控件数组至少应有一个元素,同一控件数组中的元数有自己的属性设置值。
在工程设计中设计两个窗体,在窗体名FORM1的窗体上设计一个命令按纽控件,单击该控件,显示窗体名为FORM2的窗体。
命令按纽控件所在的窗体和它的代码窗口如图。
运行时单击命令按纽,即可显示窗体名为FORM2的窗体。
在设计时,使用控件数组添加所消耗的资源比直接向窗口添加多个相同类型的控件消耗的资源要少。
当希望若干控件共代码时,使用控件数组就显得特别方便。
计算器上的数字按纽和操作按纽都可以分别共享代码,因此就可以使用控件数组。
在使用控件数组设计计算器时,将相同名字赋予多个控件,例数字按纽1,2,3,4, 5,6,7,8,9,0和+、-、*、/分别使用一个名字,即复制现有的控件并将其粘贴到窗体上或控件的INDEX属性设置为非NULL 数值创建数组控件。
通过复制现存控件添加控件数组元数,步骤如下:(1)绘制控件数组中的控件。
(2)当控件获得焦点时,选择“编辑”菜单中的“复制”命令。
(3)在“编辑”菜单中选择“粘贴”命令,VB将显示一个对话框询问是否确认创建控件数组。
选择“确定”指定给控件的索引值为1,绘制的第一个控件具有索引值0。
三、本实习计算器的有关具体的设置项:在这个计算器的设计上,窗体上的控件及它们的属性和设置值如下:_______________________________________________________________________________ 对象属性设置值————————————————————————————————————――― Form name calculator Caption 计算器第一个commandbutton name cancelCaption C第二个 commandbutton name cancelentryCaption CE第三个commandbutton name decimalCaption .第四个commandbutton name operziteCaption ~第五个commandbutton name sqrCaption ^Lable name readoutCaption 0.第六个commandbutton name number第七个commandbutton name operator_________________________________________________________________________第六和第七个commandbutton 控件是控件数组,它们的INDEX属性值见下表:控件数组的INDEX属性数字控件数组(N)操作符控件数组(N)0= Number (0) +=operator(1)1= Number (1) -=operator(2)2= Number (2) *=operator(3)3= Number (3) /=operator(4)4= Number (4) ==operator(5)5= Number (5)6= Number (6)7= Number (7)8= Number (8)9= Number (9)四、主要的基本运算(+,- ,*,/)的算法:五、运行的最初结果界面:运行一种计算结果界面:六、实习感想:本次实习我觉得很有意义,对我来说是一次考验,也是学校给我的一个锻炼自己的机会,很难得,所以我很珍惜它。
它让我在两周时间内完成一个计算器的设计。
接触一个新的语言,刚开始会有一些胆怯和疑惑,但想着自己已经学过两种计算机语言就来了信心,语言都应该有相通的地方,都有变量的声明和设置等等,算法基本相同,思路应该是相通的。
我的问题分析能力、自学能力、实习操作能力都得到了很好的提高。
最令我觉得有收获的是查找资料、自学新知识、借鉴方案、描绘流程思想等各项能力的锻炼。
在这次实习过程中我查了很多资料,学会了灵活运用新东西,其实新的东西都是在原来知识的基础上深化,或换角度思考出来的新理解。
这将对我以后的学习和深造大有裨益。
七、具体详细的程序原代码如下:Option ExplicitDim op1, op2 ‘前面输入的操作数。
Dim decimalflag As Integer ‘小数点还存在吗?Dim numops As Integer ‘操作数个数。
Dim lastinput ‘指示上一次按键事件的类型。
Dim opflag ‘指示未完成的操作。
Dim temp'按纽的CLICK 事件过程,重新设置显示并初始化变量Private Sub Cancel_Click(Index As Integer)readout = Format(0, "0.")op1 = 0op2 = 0Form_LoadEnd Sub‘CE(取消输入)按纽的CLICK事件过程。
Private Sub cancelentry_Click(Index As Integer)readout = Format(0, "0.")Decimalflag = Falselastinput = "ce"End Sub‘小数点(.)按纽的CLICK事件过程,如果上一次按纽为运算符,初始化为”0.”;‘否则显示时追加一个小数点.Private Sub decimal_Click(Index As Integer)If lastinput = "neg" Thenreadout = Format(0, "-0.")ElseIf lastinput <> "nums" Thenreadout = Format(0, "0.")End Ifdecimalflag = Truelastinput = "nums"End Sub‘窗体的初始化过程,设置所有变量为初始值.Private Sub Form_Load()decimal flag = Falsenumops = 0lastinput = "none"opflag = " "readout = Format(0, "0.")End Sub‘开方按纽的CLICK事件过程.Private Sub sqr_Click(Index As Integer)readout = readout ^ (1 / 2)lastinput = "ops"opflag = "^"decimalflag = TrueEnd Sub‘数字键(0-9)的CLICK事件过程,向显示的数追加新数.Private Sub number_Click(Index As Integer)If lastinput <> "nums" Thenreadout = Format(0, ".")decimalflag = FalseEnd IfIf decimalflag Thenreadout = readout + number(Index).CaptionElsereadout = Left(readout, InStr(readout, Format(0, ".")) - 1) + number(Index).Caption + Format(0, ".")End IfIf readout = "neg" Then readout = "-" & readoutlastinput = "nums"End Sub‘运算符(+ 、-、*、/、=)的CLICK事件过程如果接下来的按键是数字键,增加NUMOPS。
‘如果有一个操作数,则设置为OP1,如果有两个操作数,则设置为OP1设置为OP1与当前‘字符串的运算结果,并显示结果。
Private Sub operator_Click(Index As Integer)temp = readoutIf lastinput = "nums" Thennumops = numops + 1End IfSelect Case numops ‘按操作数的个数分三种情况。
Case 0If operator(Index).Caption = "-" And lastinput <> "neg" Thenreadout = "-" & readoutlastinput = "neg"End IfCase 1op1 = readoutIf operator(Index).Caption = "-" And lastinput <> "nums" And opflag <> "=" Then readout = "-"lastinput = "neg"End IfCase 2op2 = tempSelect Case opflagCase "+"op1 = Val(op1) + Val(op2)Case "-"op1 = Val(op1) - Val(op2)Case "*"op1 = Val(op1) * Val(op2)Case "/"If op2 = 0 ThenMsgBox "除数不能为0“,48,”计算器“"Elseop1 = Val(op1) / Val(op2)End IfCase "="op1 = Val(op2)Case "%"op1 = Val(op1) * Val(op2)End Selectreadout = op1numops = 1End SelectIf lastinput <> "neg" Thenlastinput = "ops"opflag = operator(Index).CaptionEnd IfEnd Sub‘开方的CLICK事件过程。