基于VB实用计算器的设计 毕业论文.doc

上传人:来看看 文档编号:3921827 上传时间:2019-10-10 格式:DOC 页数:26 大小:700.02KB
返回 下载 相关 举报
基于VB实用计算器的设计 毕业论文.doc_第1页
第1页 / 共26页
基于VB实用计算器的设计 毕业论文.doc_第2页
第2页 / 共26页
基于VB实用计算器的设计 毕业论文.doc_第3页
第3页 / 共26页
基于VB实用计算器的设计 毕业论文.doc_第4页
第4页 / 共26页
基于VB实用计算器的设计 毕业论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于VB实用计算器的设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于VB实用计算器的设计 毕业论文.doc(26页珍藏版)》请在三一文库上搜索。

1、基于VB实用计算器的设计 Design of practical Calculator base on VB 摘要随着科学技术的不断提高,计算机科学日渐成熟 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算器软件系统应该能够为用户提供丰富的手段。使用计算器运算,具有着其他方式所无法比拟的优点.例如查找方便、价格便宜、可保存信息等。这些优点能够极大地提高效率,也是国家的科学化、信息化管理,与世界接轨的重要条件。本文着重分析计算器的运算法则与代码的关系以及控件数组的创建和使用技巧,并在Microsoft公司出品的一个面向对象的可视化开发工具Visual Basic上,采用VB语言及窗体界

2、面的设计方法,界面设计直接在屏幕上显示出窗口、文本框、按钮等区别类型对象并为每个对象设置属性。实现了基于Visual Basic 6.0软件上运行控制的设计方法设计一个简易的计算器,可视化界面给操作带来很大的方便。关键词: Visual Basic;计算器;对象;代码 AbstractWith the continuous improvement of science and technology, computer science increasingly mature, it has access to all areas of human society, and play an inc

3、reasingly important role. Calculator software system should be able to provide users with a rich means. Use a calculator for mathematical calculations, with an unmatched by other advantages. For example, to find convenient, cheap and save information. These advantages can greatly improve efficiency,

4、 is also the countrys scientific, information management, an important condition for integration with the world. This article focuses on analysis of algorithms and code calculator relationship and control the creation and use of an array of skills and Microsoft companies produce go in an object-orie

5、nted visual development tools, Visual Basic, using the VB language and interface design of form methods, interface design directly on the screen shown window, text boxes, buttons, etc. for each different type of object and object to set properties. Achieved based on Visual Basic 6.0 software, runnin

6、g on the control design method to design a simple calculator, visual interface to the operator great convenience.Keywords:Visual Basic, Calculator, Object, Code目录摘要1Abstract2第一章 绪论41.1设计的功能41.2系统的设计41.2.1 系统设计的总体思路41.2.2 总体方案的设计4第二章VB设计系统52.1 Visual Basic 语言基础62.2 Visual Basic 6.0的开发环境7第三章 实用计算器的设计1

7、03.1设置窗体布局103.2设置属性133.3编写代码. 143.4 调试运行.213.5 保存工程及生成可执行文件.22 第四章 总结25参考文献.26致 谢27 第一章 绪论 1.1 设计的功能Visual Basic 6.0编程语言是由Micrsoft 公司推出的当今最优秀、最流行的可视化快速软件开发工具之一。利用VB设计是电子设计的发展趋势,利用VB工具可以代替设计者完成电子系统设计中的大部分工作。VB工具发展到今天,应用范围已涉及综合办公软件的开发、信息管理系统等多个领域,可以实现日常生活各个领域应用软件的设计、测试等。设计者只要完成对控件的功能描述,就可以利用计算机和工具,进行设

8、计处理,最终实现理想的设计效果。本设计是基于Visual Basic 6.0,用Visual Basic 程序设计语言实现的,集科学性,先进性,创新性,实用性于一体,并在功能强大的VB 6.0应用软件系统实现实用计算器的功能,包括常见的四则运算和部分科学计算方法。 1.2 系统的设计l 1.2.1 系统设计的总体思路实现这个实用计算器,要考虑的主要是以下两个方面的内容:一、设置每个控件按钮的属性。二、每组控件组都有自己的VB代码,由VB语言实现各个控件按钮的功能。于是本设计就是以这两个个部分为核心内容展开。l 1.2.2 总体方案的设计根据设计要求该实用计算器能实现四则运算和部分科学计算法等按

9、钮的控制,根据各组控件按钮源代码的不同,来实现按下不同的按键实现不同的计算过程或结果功能。本设计大体由窗体、CommandButton、Textbox、Timer四个模块构成。其中Commandbutton作为按钮模块,Textbox作为显示模块,Timer作为显示或隐藏部分按键的模块。Commandbutton按钮实现数字键和其他算法按键的功能;Textbox实现计算过程和结果的数字显示;Timerbox实现当计算器只用到四则的简单运算时,窗体只显示四种运算的基本按键,当用到科学计算时,再在窗体中显示科学计算的控件按钮。 第二章 VB设计系统Visual Basic是Microsoft公司出

10、品的一个面向对象的可视化开发工具。无论是大型企业应用系统,还是遍及全球的Internet的分布式应用程序,都可以利用Visual Basic来实现。Visual意为“可视化”,Basic指BASIC语言(Beginners All-purpose Symbolic Instruction Code)。Visual Basic是基于BASIC的可视化程序设计语言,它继承了BASIC语言简单易懂的特点,采用面向对象、事件驱动的编程机制,提供了直观的可视化程序设计方法。在以Windows操作系统为平台的众多可视化编程工具中,Visual Basic 6.0是微软公司于1998年推出的可视化编程工具,

11、是目前面对对象开发的主要语言之一,具有易用性、通用性和开发效率高等特点,这使得Visual Basic 6.0特别适合于进行一般应用程序的开发,成为最流行的Windows 应用程序开发语言之一。Visual Basic 6.0的主要特点(1) 面对对象的可视化设计平台。(2) 事件驱动的编程机制(3) 结构化的程序设计语言(4) 强大的数据库功能和网络开发功能。(5) 充分利用Windows 资源(6) 方便实用的程序向导Visual Basic语言具有以下一些特点: (1)面向对象 VB采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对

12、象集合,所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上“画出窗口、菜单、按钮等不同类型的对象,并为每个对象设置属性。 (2)事件驱动 在Windows环境下,程序是以事件驱动方式运行的,每个对象都能响应多个不同的事件,每个事件都能驱动一段代码事件过程,该代码决定了对象的功能。通常称这种机制为事件驱动。事件可由用户的操作触发,也可以由系统或应用程序触发。例如,单击一个命令按钮,就触发了按钮的Click(单击)事件,该事件中的代码就会被执行。若用户未进行任何操作(未触发事件),则程序就处于等待

13、状态。整个应用程序就是由彼此独立的事件过程构成。 (3)软件的集成式开发 VB为编程提供了一个集成开发环境。在这个环境中,编程者可设计界面、编写代码、调试程序,直至把应用程序编译成可在Windows中运行的可执行文件,并为它生成安装程序。VB的集成开发环境为编程者提供了很大的方便。 (4)结构化的程序设计语言 VB具有丰富的数据类型,是一种符合结构化程序设计思想的语言,而且简单易学。此外作为一种程序设计语言,VB还有许多独到之处。 (5)强大的数据库访问功能 VB利用数据控件可以访问多种数据库,VB 6O提供的ADO控件,不但可以用最少的代码实现数据库操作和控制,也可以取代Data控件和RDO

14、控件。 (6)支持对象的链接与嵌入技术 VB的核心是对对象的链接与嵌入(OLE)技术的支持,它是访问所有对象的一种方法。利用OLE技术,能够开发集声音、图像、动画、字处理、Web等对象于一体的程序。 (7)网络功能 VB 6O提供了DltTML(DynamictTML)设计工具。利用这种技术可以动态创建和编辑Web页面,使用户在VB中开发多功能的网络应用软件。 (8)多个应用程序向导 VB提供了多种向导,如应用程序向导、安装向导、数据对象向导和数据窗体向导,通过它们可以快速地创建不同类型、不同功能的应用程序。 (9)支持动态交换、动态链接技术 通过动态数据交换(DDE)的编程技术,VB开发的应

15、用程序能与其他Windows应用程序之间建立数据通信。通过动态链接库技术,在VB程序中可方便地调用用C语言或汇编语言编写的函数,也可调用Windows的应用程序接口(API)函数。 (l0)联机帮助功能 在VB中,利用帮助菜单和F1功能键,用户可随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供方便。 2.1 Visual Basic语言基础在Visual Basic 6.0中,为解决各类实际问题要采用各种不同的数据类型。数据类型不同,它所表达的数据范围、精度、所占的存储空间和可以进行的运算均不相同。Visual

16、Basic 6.0 提供的标准数据类型有数值型、逻辑型、日期型、字符串型、可变型、对象型等。(1) 数据类型l 数值型数据(Numeric),数值型数据可分为整型和实型两大类。整型表示的就是整数,整数运算速度快、精确,但表示数的范围小。根据所表示的数的范围不同,又可分为字节型(Byte)、整型(Integer)、长整型(Long)三种类型。字节型为无符号整数。在计算机内用1个字节表示,其取值范围为0255。整型是指在计算机内用两个字节来存储的整数,其取值范围为-32768+32767,长整型是指在计算机内用四个字节来存储的整数,其取值范围为-21474836482147483647。 实型表示

17、的就是实数,实数采用浮点表示形式,表示数的范围大,有误差,且运算速度慢。根据所表示的数的范围和精度不同,又可以分为单精度实型(Single)、双精度实型(Double)、货币型(Currency)三种类型。单精度实型在计算机中用4个字节来表示的实数,其取值范围为+/-1.401298E-45+/-3.402823E38。双精度实型在计算机中用8个字节来表示的实数,其取值范围为+/-4.94065645841247D-324+/-1.79769313486232D308。货币型是一种特殊的实数,是专门为处理货币而设计的数据类型。它采用定点表示形式,在计算机中一般用8个字节来表示,其取值范围为-9

18、22337203685477.5808922337203685477.5807l 逻辑型数据(Boolean),逻辑型数据有两个值:True(真)和False(假)逻辑型数据在计算机内用2个字节保存。可以把它们转换成数值型数据,此时,True为-1,False为0。也可以把其他类型的数据(数值型或由数字组成的字符串型数据)转换为逻辑型数据,此时,非0的数据转换为True,0转换为False。l 日期型数据(Date),日期型数据在计算机中一般用8个字节的浮点表示,l 字符串型数据(String),字符串型数据是用双引号括起来的一串字符组合,引号内的字符可以是字母、各种符号和汉字。在Visual

19、 Basic 6.0中,字符串分为定长字符串和变长字符串两种类型。定长字符串是指事先定义字符的长度(即字符串内所含字符的个数),在程序运行过程中,始终保持其长度不变的字符串。变长字符串,字符串的长度不固定,随着给字符串变量赋值,它的长度可以发生变化。l 变体型数据(Variant),变体型数据是一种特殊的数据类型,也呈可变型数据。一个变体型的变量能够存储所有系统定义类型的数据,可以随为它所赋值的值的类型而改变自身类型,系统默认的数据类型是变体型。变体型数据有三个特殊的值。Empty、Null、Error。Empty为还没有为变量赋值,它不同于数值0、长度为0的字符串” 和空值Null,后三者都

20、有特定的值。Null通常用于数据库应用程序,表示未知数据或丢失的数据。Error为特定值,指出已发生的过程中的错误状态。l 对象型数据(Object),对象型数据作为32位地址存储,该地址可引用当前应用程序或其他应用程序中的对象。可以用Set语句指定一个声明为Object的变量,以引用应用程序能识别的任何实际对象。对象型在Visual Basic 6.0的较高层次的编程中实用。 2.2 Visual Basic 6.0的开发环境Visual Basic 6.0不仅是一种编程语言,而且是集应用程序开发、调试和测于一体的集成开发环境(IDE)。(1) 启动Visual Basic 6.0单击“开始

21、”“程序”“Microsoft Visual Basic 6.0 中文版命令,即可启动Visual Basic,弹出如下图所示的“新建工程”对话框。该对话框中有三个选项卡: 新建:创建新工程。该选项卡中列出Visua lBasic6.0能建立的应用程序类型 现存:用于选择并打开现有的工程 最新:列出最近打开过的工程几其所在的文件夹。 图21 “新建工程”对话框(2)Visual Basic 6.0 集成开发环境的组成 图22 Visual Basic 6.0集成开发环境集成开发环境中主要包含以下窗口:主窗口(Main Windows)、工具箱(Tool box)、窗体(Form)窗口、工程资源

22、管理器(Project Explorer)、属性(Properties)面板以及窗体布局(Form Layout)面板等。 第三章 实用计算器的设计Visual Basic 6.0程序设计一般有五个步骤,具体如下:(1) 创建应用程序的界面。(2) 设置属性。(3) 编写代码。(4) 调试运行。(5) 保存工程及生成可执行文件。 3.1 设置窗体布局在实用计算器的设计中,该程序的窗体当中含有1个TextBox控件、29个CommandButton控件和2个Timer控件。在29个CommandButton控件中,有10个作为数字按钮(包括小数点按钮),为数组控件Command1。有5个作为四则

23、运算(+ - * / = )的操作按钮,为数组控件Command2。有4个作为函数运算(sin cos tan cot)的操作按钮,为数组控件Command3。有5个作为倒数、开方、乘方、阶乘、对数的运算按钮,为数组控件Command4。其中Command5为“负数”的控件,Command6为“退格”控件,Command7为“清零”控件,Command8为隐藏界面的控件。l 1、创建工程,建立一个标准Exe工程,并将工程保存为“实用计算器”。将系统默认产生的窗体保存为form1.frm文件。默认窗体的Name属性为form1,Caption属性为“实用计算器”。l 2、添加TextBox控件,

24、双击标准工具箱的TextBox控件,然后调整其大小和位置(如图3-1),把控件的Caption设置为“0” ;对齐方式(Alignment)设为右对齐(1Right Justify)。 图3-1 添加TextBox 控件l 3、创建“数字”按钮控件数组,首先创建一个按钮Command1,选定之后用Ctrl+C将其复制到剪贴板上,再用Ctrl+V粘贴一个新的控件,因为它与原控件有相同的Name属性,所以会出现如图3-2所示的警告信息。 图3-2 提示创建控件数组选择“是”,然后连续粘贴10个,依次把按钮的Caption设定为09以及一个小数点。结果如图3-3所示。其中这里的Index作为响应程序

25、的传入参数。 图3-3 添加Command1控件数组对于控件数组有两点说明,1、控件数组内的控件共享同样的事件过程设置;这在很大程度上减少了用来响应控件的代码,2、可以在运行时动态地添加新元素到控件数组中。l 4、添加“运算符”按钮控件数组,同理创建运算符控件数组,如图3-4所示,其中加减除乘等于的Index属性为0、1、2、3、4 图 3-4 添加Command2控件数组l 5、添加其他按钮,添加Command3数组控件sin、cos、tan、cot,其Index属性为0、1、2、3。添加command4数组控件1/x、 x2、SQL、log、N!,其Index属性依次为0、1、2、3、4。

26、添加command5控件-/+,添加Command6控件Backspace,添加Command7控件Clr,添加Command8控件为隐藏/显示界面的按钮。Timer1控制界面的显示,Timer2控制界面的隐藏。l 6、本次实用计算器的总的窗体布置如图3-5所示。 3、2设置属性 下表3-1列出了实用计算器窗体及其各个控件的主要属性设置。 表3-1 计算器窗体及各个控件的主要属性控件类型 控件名 主要属性 FormForm1Caption=“实用计算器”TexBoxText1Text=“0”Alignment=1 Right JustifyLocekd=TrueCommandButtonCom

27、mand1(0)Caption=“0”Command1(1)Caption=“1”Command1(2)Caption=“2”Command1(3)Caption=“3”Command1(4)Caption=“4”Command1(5)Caption=“5”Command1(6)Caption=“6”Command1(7)Caption=“7”Command1(8)Caption=“8”Command1(9)Caption=“9”Command1(10)Caption=“.”Command2(0)Caption= “+”Command2(1)Caption= “-”Command2(2)Cap

28、tion= “/”Command2(3)Caption= “*”Command2(4)Caption= “=”Command3(0)Caption= “sin”Command3(1)Caption= “cos”Command3(2)Caption= “tan”Command3(3)Caption= “cot” 续表: 控件类型 控件名 主要属性CommandButtonCommand4(0)Caption=“1/x”Command4(1)Caption=“x2”Command4(2)Caption=“SQL”Command4(3)Caption=“log”Command4(4)Caption=

29、“N!”Command5Caption=“+/-”Command6Caption=“Backspace”Command7Caption=“clr”Command8Caption=“ ”TimerTimer1Enabled=“False”Timer2Enabled=“False” 3、3 编写代码因为实用计算器的程序是实现简单的表达式计算,所以在没有按下“=”按钮之前,所做的工作就是表达式的输入与显示,这一部分主要讲解通过按钮响应获取表达式。为了合理的完成用户对表达式的输入,程序本身应该有一个存取字符串和易于接受的输入方式。思路归纳如下:第一、关于输入的规范(1) 数字和运算符必须交替输入,而且

30、必须是从数字开始。如果从运算符开始,则此运算符不予接收;如果连续输入两个运算符,则用后一个冲掉前面一个;如果一个数字刚输入负号则不接收运算符。 (2)不能在一个数字中出现两个小数点。如果出现第二个小数点,则此运算符不予接收。 (3)对于“-”负号字符,只允许在数字开始处写入。 (4)连续输入负号字符,则负号字符写入和删去交替。 (5)每点击退格键“Backspace”一次,删除一个已写入的字符,当回退到头部的时候,点击退格键不再起作用。 第二、关于字符串的整理 (1)数字的整数部分不以“0”开头(0.*除外),对于用户输入的多余的“0”程序自动将它删除。 (2)当开始输入数字时,如果直接输入小

31、数点“.”,则以“0.”代替。 (3)每次加入一个运算符在运算符的两侧各加一个空格。 根据上面的分析可以操作除“=”按钮的其他所有按钮,具体的过程代码分块编写如下:l 模块变量定义Dim i As IntegerDim opnre As IntegerDim prev As DoubleDim oflag As IntegerDim ind As IntegerDim dflag As IntegerPublic ang As Double用Dim语句在一个模块的说明部分说明了一个变量,即创建了一个私有的模块及变量。这样的变量只有在它属于的模块内可见,不能从模块外部对其进行访问。l 初始化代码

32、Private Sub Form_Load() dflag = 0 prev = 0 oflag = 0 ind = 0 opnre = 0 Clipboard.Clear ang = 3.1415926 / 180 Form1.Height = 4360End Subl 数字按钮代码以为控件数组共享同一事件,所以双击任一数字符按钮,进入集成代码环境编写如下代码:Private Sub Command1_Click(index As Integer) If ind = 4 Then prev = 0 Text1.Text = ind = 0 End If opnre = 0 If oflag

33、= 0 Then Text1.Text = End If oflag = 1 If Command1(index).Caption . Then If Text1.Text 0 Then Text1.Text = Text1.Text & Command1(index).Caption Else Text1.Text = & Command1(index).Caption End If Else If dflag = 0 Then Text1.Text = Text1.Text & . dflag = 1 Else MsgBox (输入错误) End If End If End Subl 运算

34、符代码Private Sub Command2_Click(index As Integer) If opnre = 0 Or index = 4 Then If ind = 0 Then prev = prev + Val(Text1.Text) ElseIf ind = 1 Then prev = prev - Val(Text1.Text) ElseIf ind = 2 Then If Val(Text1.Text) = 0 Then MsgBox (0不能为除数) Exit Sub Else prev = prev / Val(Text1.Text) End If ElseIf ind

35、 = 3 Then prev = prev * Val(Text1.Text) End If Text1.Text = Str(prev) oflag = 0 End If opnre = 1 ind = index dflag = 0End Subl 三角函数运算符代码Private Sub Command3_Click(index As Integer)Select Case index Case 0 Text1.Text = Str(Sin(ang * Val(Text1.Text) Case 1 Text1.Text = Str(Cos(ang * Val(Text1.Text) Ca

36、se 2 If (Cos(Val(Text1.Text) 0 Then Text1.Text = Str(Sin(ang * Val(Text1.Text) / Cos(ang * Val(Text1.Text) Else MsgBox (非法除以0) End If Case 3 Text1.Text = Str(Atn(Val(Text1.Text) / ang) End SelectEnd Subl 倒数、平方、开方、对数、阶乘代码Private Sub Command4_Click(index As Integer) Dim re As Long Dim temp As Long tem

37、p = Val(Text1.Text) Select Case index Case 2 If temp 0 Or temp = 0 Then Text1.Text = Str(Sqr(Val(Text1.Text) Else MsgBox ( 负数不能开根) End If Case 0 temp = Val(Text1.Text) If temp 0 Then Text1.Text = Str(1 / temp) Else MsgBox ( ILLEGAL DIVIDE 0 ) End If Case 1 Text1.Text = Text1.Text * Text1.Text Case 3

38、 Dim nn As Long nn = InputBox(输入底数, 对数, 10) If Val(Text1.Text) 0 Then Text1.Text = Str(Log(Val(Text1.Text) / Log(nn) Else MsgBox ( ILLEGAL. LOG NON POSITIVE ) End If Case 4 Text1.Text = Str(fact(Val(Text1.Text) End SelectEnd Subl 正负号代码Private Sub Command5_Click()Text1.Text = -Text1.TextEnd Subl 退格键代

39、码Private Sub Command6_Click()If Text1.Text ThenText1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 1)End IfEnd Subl 清零代码Private Sub Command7_Click()Text1.Text = 0dflag = 0ind = 4End Subl 隐藏/显示界面按钮代码Private Sub Command8_Click()If Form1.Height 5000 ThenTimer2.Enabled = TrueElseTimer1.Enabled = TrueEnd IfEnd Subl 显示界面代码Private Sub Timer1_Timer()If Form1.Height 4360 ThenForm1.Height = Form1.Height - 80ElseTimer2.Enabled = FalseEnd IfEnd Subl 功能模块Function fact(num As Long) As Long If (num 0 Or num = 0) Then MsgBox (ILLEGAL NEAGETIVE FACTORIAL) fact = num Else

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1