VB课程设计简易计算器

  • 格式:doc
  • 大小:207.00 KB
  • 文档页数:13

计算机课程设计报告 题目 简易计算器 系 别 物理与电子工程学院 年 级 08 专 业 电子科学与技术 班 级 电科(3)班 学 号 050208311 学生姓名 张 崇 光 指导教师 徐 健 设计时间 2009.7 常熟理工学院课程设计报告

1 前言 1991年 Visual Basic1.0诞生 Visual Basic1.0的功能非常简单,微软为他添加了VBX控件,而不是我们熟悉的ocx控件,缺少数据库支持,而且此时的 vb还是一种解释型语言,还不能生成.exe文件。但他最大的革新是加入了事件驱动模型和可视化开发。 2、1992年微软推出了Visual Basic2.0 微软在这个版本中加入了对象型变量和最原始的“继承”概念,以及OLE和简单的数据访问功能,同时还有大量的第三方控件。 3、1993年 Visual Basic3.0发布 在这个版本中,微软添加了增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让Visual Basic能对最新的Access数据库快速地访问。Visual Basic 3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本。 4、1995年 Visual Basic4.0发布 Visual Basic4.0是一场革命,但在当时而言,这简直是场灾难,首先vbx控件消失了,代之的是ocx控件,OLE已经不是传统的OLE了,Visual Basic 4.0所用的语言换成了Visual Basic For Application,这一切导致VB3.0以上版本很难移植到VB4.0中,但不可否认的是Visual Basic 4.0为Visual Basic成为一种COM语言奠定了基础。 微软在这个版本中引入COM编程思想,比如在语言上加入了类模块以及属性过程、函数过程,子程序过程等组件开发所需的封装性特征。同时该版本的Visual Basic还能够开发dll函数,可以将书写好的类用这种方式和其他语言共享。在当时用Visual Basic开发com组件比其他任何开发语言都快捷。 5、1997年 Visual Basic5.0发布 这个版本的Visual Basic为com提供了最强有力的支持,同时微软还加入了一个本地代码编译器,解决了vb4.0中的p代码造成的性能瓶颈问题,让应用程序的效率大大提升。Visual baisc5.0提供了更多的面向对象支持,允许开发人员创建事件和接口,改进了类模块,支持创建自己的集合类,ActiveX 控件、进程内的COM DLL组件以及在浏览器中运行的ActiveX文档。 Visual Basic 5.0的IDE支持“智能感知”,这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.”,想要的东西统统弹出来。 6、1998年 Visual Basic6。0发布 Visual Basic 6.0已经是一款非常成熟和稳定的开发系统,微软把Visual Basic6.0作为vIsual studio的一员发布的,这表明微软在改变vb的产品定位,成为大规模企业开发的利器。在vb6.0中微软加入了ado数据访问模型,使大数据量快速访问成为可能,提高了vb对n层结构的分布式应用程序的开发能力,同时微软也为vb加入了开发web应用程序的能力。 7、2002年 Visual Basic.net诞生 这是vb的又一次革命,vb.net新增了许多功能,vb6.0不能实现继承,因此一直被c++程序员指责为伪面向对象语言,vb.net还支持多线程,引入了try…catch结构异常化处理。 但对vb程序员而言则是又一次灾难。这个版本的vb已经不是传统的Visual Basic,从语言而言Visual Basic 4.0抛弃了Quick BASIC,采用了Visual Basic For Application,那么vb.net则抛弃了Visual Basic For Application,已经成为一门全新的语言,但这个变化也吓坏了vb程序员,vb.net处于一种非常尴尬的局面,一方面它有不可否认的强大功能,另一方面由于版本兼容性大量vb程序员转向c#或java,使用vb.net的程序员远不如vb6.0,开发商也很难从vb6.0转向vb.net。 从目前透露的Visual Basic.net 2005信息来看,Visual Basic.net2005是值得大家期待的,在这个版本的vb.net中,微软新增了更多的功能,如:泛型、运算符重载、Partial Type、窗体的默认实例(让你用VB6的语法使用窗体)、语法的多种改进、My关键字等,微软声称在Visual Basic.net2005只用一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息,能让我们象逛商店那样轻松的编程。 常熟理工学院课程设计报告 2 目录 常熟理工学院课程设计报告

3 第一章 选题分析 常熟理工学院课程设计报告

4 第二章 方案设计与论证 常熟理工学院课程设计报告

5 第三章 程序设计 3.1 设计流程图

3.2源程序 Option Explicit Dim num1 As Double, num2 As Double, num3 As Double, num4 As Double, num5 As Double Dim k As Integer, i As Integer, n As Integer, y As Integer Dim num() As Double Dim numstr1 As String, numstr2 As String Dim flag As Boolean Private Sub Cmd4_Click(Index As Integer) '清除和记忆按钮 Select Case Index Case 0 txtDisplay = "0." num1 = 0 num2 = 0 numstr1 = "" numstr2 = "" flag = False y = 0 Cmd4(1).Enabled = True Case 1 txtDisplay = Str(num(i)) '显示前一次的计算结果 常熟理工学院课程设计报告 6 i = i - 1 If i = -1 Then MsgBox "这已是最后一个可显示的数据,也就是您第一次的计算结果!": Cmd4(1).Enabled = False End Select End Sub Private Sub Cmdnumber_Click(Index As Integer) Select Case Index Case 0 To 10 '数字操作 If flag Then numstr2 = numstr2 & Cmdnumber(Index).Caption txtDisplay = numstr2 num2 = Val(numstr2) Else numstr1 = numstr1 & Cmdnumber(Index).Caption txtDisplay = numstr1 num1 = Val(numstr1) End If Case 11 '相反数 If txtDisplay.Text <> "0" And txtDisplay.Text <> "0." Then If Left(txtDisplay.Text, 1) = "-" Then txtDisplay.Text = Right(txtDisplay.Text, Len(txtDisplay.Text) - 1) Else txtDisplay.Text = "-" & txtDisplay.Text numstr1 = txtDisplay num1 = Val(numstr1) End If End If Case 12 '退格 txtDisplay.Text = Left(txtDisplay, Len(txtDisplay) - 1) numstr1 = txtDisplay.Text num1 = Val(numstr1) End Select Cmd4(1).Enabled = True End Sub Private Sub cmdOperator_Click(Index As Integer) '运算符操作 y = y + 1 n = cmdOperator(Index).Index txtDisplay = "" If y >= 2 Then Call jisuan End If flag = True Cmd4(1).Enabled = True End Sub Private Sub Command3_Click() '等号操作 常熟理工学院课程设计报告 7 Call jisuan ReDim Preserve num(k) '存储每次的计算结果 num(k) = num1 i = k k = k + 1 Cmd4(1).Enabled = True End Sub Private Sub jisuan() Select Case n Case 0 '加 num1 = num1 + num2 Case 1 '减 num1 = num1 - num2 Case 2 '乘 num1 = num1 * num2 Case 3 '除 If num2 <> 0 Then num1 = num1 / num2 Else MsgBox "除数不可为零!" End If Case 4 '%分号 txtDisplay = num1 * 100 & "%" Case 5 '开方(二次) If num1 >= 0 Then num1 = Sqr(num1) Else MsgBox "被开方数不可小于零!" End If Case 9 num5 = num1 num2 = num4 ^ 2 - 4 * num3 * num5 If num2 >= 0 Then Text1.Text = "x1=" & ((-1) * num4 + Sqr(num2)) / num3 / 2 Text2.Text = "x2=" & ((-1) * num4 - Sqr(num2)) / num3 / 2 Else MsgBox "该二元一次方程无实根" End If End Select txtDisplay = num1 num2 = 0 numstr2 = "" numstr1 = "" flag = True End Sub