计算机课程设计报告
题目简易计算器
系别物理与电子工程学院
年级08专业电子科学与技术
班级电科(3)班学号
学生姓名
指导教师
设计时间2009.7
前言
1991年VisualBasic1.0诞生VisualBasic1.0的功能非常简单,微软为他添加了VBX控件,而不是我们熟悉的ocx控件,缺少数据库支持,而且此时的vb还是一种解释型语言,还不能生成.exe文件。但他最大的革新是加入了事件驱动模型和可视化开发。2、1992年微软推出了VisualBasic2.0微软在这个版本中加入了对象型变量和最原始的“继承”概念,以及OLE和简单的数据访问功能,同时还有大量的第三方控件。3、1993年VisualBasic3.0发布在这个版本中,微软添加了增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让VisualBasic能对最新的Access数据库快速地访问。VisualBasic3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序。VisualBasic3.0是98年以前中国最流行的VisualBasic版本。4、1995年VisualBasic4.0发布VisualBasic4.0是一场革命,但在当时而言,这简直是场灾难,首先vbx控件消失了,代之的是ocx控件,OLE已经不是传统的OLE了,VisualBasic4.0所用的语言换成了VisualBasicForApplication,这一切导致VB3.0以上版本很难移植到VB4.0中,但不可否认的是VisualBasic4.0为VisualBasic成为一种COM语言奠定了基础。微软在这个版本中引入COM编程思想,比如在语言上加入了类模块以及属性过程、函数过程,子程序过程等组件开发所需的封装性特征。同时该版本的VisualBasic还能够开发dll函数,可以将书写好的类用这种方式和其他语言共享。在当时用VisualBasic开发com组件比其他任何开发语言都快捷。5、1997年VisualBasic5.0发布这个版本的VisualBasic为com提供了最强有力的支持,同时微软还加入了一个本地代码编译器,解决了vb4.0中的p代码造成的性能瓶颈问题,让应用程序的效率大大提升。Visualbaisc5.0提供了更多的面向对象支持,允许开发人员创建事件和接口,改进了类模块,支持创建自己的集合类,ActiveX控件、进程内的COMDLL组件以及在浏览器中运行的ActiveX文档。VisualBasic5.0的IDE支持“智能感知”,这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.”,想要的东西统统弹出来。6、1998年VisualBasic6。0发布VisualBasic6.0已经是一款非常成熟和稳定的开发系统,微软把VisualBasic6.0作为vIsualstudio的一员发布的,这表明微软在改变vb的产品定位,成为大规模企业开发的利器。在vb6.0中微软加入了ado数据访问模型,使大数据量快速访问成为可能,提高了vb对n层结构的分布式应用程序的开发能力,同时微软也为vb加入了开发web应用程序的能力。7、2002年VisualBasic.net诞生这是vb的又一次革命,vb.net新增了许多功能,vb6.0不能实现继承,因此一直被c++程序员指责为伪面向对象语言,vb.net还支持多线程,引入了try…catch结构异常化处理。但对vb程序员而言则是又一次灾难。这个版本的vb已经不是传统的VisualBasic,从语言而言VisualBasic4.0抛弃了QuickBASIC,采用了VisualBasicForApplication,那么vb.net则抛弃了VisualBasicForApplication,已经成为一门全新的语言,但这个变化也吓坏了vb程序员,vb.net处于一种非常尴尬的局面,一方面它有不可否认的强大功能,另一方面由于版本兼容性大量vb程序员转向c#或java,使用vb.net的程序员远不如vb6.0,开发商也很难从vb6.0转向vb.net。从目前透露的VisualBasic.net2005信息来看,VisualBasic.net2005是值得大家期待的,在这个版本的vb.net中,微软新增了更多的功能,如:泛型、运算符重载、PartialType、窗体的默认实例(让你用VB6的语法使用窗体)、语法的多种改进、My关键字等,微软声称在VisualBasic.net2005只用一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息,能让我们象逛商店那样轻松的编程。目录
第一章选题分析
第二章方案设计与论证
第三章程序设计
3.1设计流程图
3.2源程序
OptionExplicit
Dimnum1AsDouble,num2AsDouble,num3AsDouble,num4AsDouble,num5AsDouble
DimkAsInteger,iAsInteger,nAsInteger,yAsInteger
Dimnum()AsDouble
Dimnumstr1AsString,numstr2AsString
DimflagAsBoolean
PrivateSubCmd4_Click(IndexAsInteger)''清除和记忆按钮
SelectCaseIndex
Case0
txtDisplay="0."
num1=0
num2=0
numstr1=""
numstr2=""
flag=False
y=0
Cmd4(1).Enabled=True
Case1
txtDisplay=Str(num(i))''显示前一次的计算结果
i=i-1
Ifi=-1ThenMsgBox"这已是最后一个可显示的数据,也就是您第一次的计算结果!":Cmd4(1).Enabled=False
EndSelect
EndSub
PrivateSubCmdnumber_Click(IndexAsInteger)
SelectCaseIndex
Case0To10''数字操作
IfflagThen
numstr2=numstr2&Cmdnumber(Index).Caption
txtDisplay=numstr2
num2=Val(numstr2)
Else
numstr1=numstr1&Cmdnumber(Index).Caption
txtDisplay=numstr1
num1=Val(numstr1)
EndIf
Case11''相反数
IftxtDisplay.Text<>"0"AndtxtDisplay.Text<>"0."Then
IfLeft(txtDisplay.Text,1)="-"Then
txtDisplay.Text=Right(txtDisplay.Text,Len(txtDisplay.Text)-1)
Else
txtDisplay.Text="-"&txtDisplay.Text
numstr1=txtDisplay
num1=Val(numstr1)
EndIf
EndIf
Case12''退格
txtDisplay.Text=Left(txtDisplay,Len(txtDisplay)-1)
numstr1=txtDisplay.Text
num1=Val(numstr1)
EndSelect
Cmd4(1).Enabled=True
EndSub
PrivateSubcmdOperator_Click(IndexAsInteger)''运算符操作
y=y+1
n=cmdOperator(Index).Index
txtDisplay="www.huisheliren.com"
Ify>=2Then
Calljisuan
EndIf
flag=True
Cmd4(1).Enabled=True
EndSub
PrivateSubCommand3_Click()''等号操作
Calljisuan
ReDimPreservenum(k)''存储每次的计算结果
num(k)=num1
i=k
k=k+1
Cmd4(1).Enabled=True
EndSub
PrivateSubjisuan()
SelectCasen
Case0''加
num1=num1+num2
Case1''减
num1=num1-num2
Case2''乘
num1=num1num2
Case3''除
Ifnum2<>0Then
num1=num1/num2
Else
MsgBox"除数不可为零!"
EndIf
Case4''%分号
txtDisplay=num1100&"%"
Case5''开方(二次)
Ifnum1>=0Then
num1=Sqr(num1)
Else
MsgBox"被开方数不可小于零!"
EndIf
Case9
num5=num1
num2=num4^2-4num3num5
Ifnum2>=0Then
Text1.Text="x1="&((-1)num4+Sqr(num2))/num3/2
Text2.Text="x2="&((-1)num4-Sqr(num2))/num3/2
Else
MsgBox"该二元一次方程无实根"
EndIf
EndSelect
txtDisplay=num1
num2=0
numstr2=""
numstr1=""
flag=True
EndSub
PrivateFunctionjc(ByValaAsInteger)AsInteger
jc=1
DoWhilea>1
jc=jca
a=a-1
Loop
EndFunction
PrivateSubcmdOtherOper_Click(IndexAsInteger)
SelectCaseIndex
Case2
num1=Sin(num13.1415926/180)
Case3
num1=Cos(num13.1415926/180)
Case4
num1=Tan(num13.1415926/180)
Case5
num1=jc(num1)
Case6
num1=Log(num1)/Log(10)
Case7
num1=Log(num1)/Log(2.718)
Case11
num1=num1^3
Case10
num3=num1
num1=0
numstr1=""
txtDisplay="0."
Case9
num4=num1
num1=0
numstr1=""
txtDisplay="0."
n=9
EndSelect
txtDisplay=num1
EndSub
PrivateSubForm_Load()
Form1.Width=4185
txtDisplay="0."
EndSub
Submnubianshuo_Click()
frmAbout1.Show
EndSub
PrivateSubmnublack_Click()
Form1.BackColor=vbBlack
EndSub
PrivateSubmnublack5_Click()
txtDisplay.ForeColor=vbBlack
EndSub
PrivateSubmnublue_Click()
Form1.BackColor=vbBlue
EndSub
PrivateSubmnublue1_Click()
txtDisplay.ForeColor=vbBlue
EndSub
PrivateSubmnubq_Click()
frmAbout.Show
EndSub
PrivateSubmnugreen_Click()
Form1.BackColor=vbGreen
EndSub
PrivateSubmnugreen3_Click()
txtDisplay.ForeColor=vbGreen
EndSub
PrivateSubmnuh_Click()
frmAbout.Show
EndSub
PrivateSubmnuinstruct_Click()
frmAbout1.Show
EndSub
PrivateSubmnukj_Click()
Form1.Width=7050
cmdOtherOper(2).Enabled=True
cmdOtherOper(3).Enabled=True
cmdOtherOper(4).Enabled=True
cmdOtherOper(5).Enabled=True
cmdOtherOper(6).Enabled=True
cmdOtherOper(7).Enabled=True
cmdOtherOper(9).Enabled=False
cmdOtherOper(10).Enabled=False
cmdOtherOper(11).Enabled=True
EndSub
PrivateSubmnured_Click()
Form1.BackColor=vbRed
EndSub
PrivateSubmnured2_Click()
txtDisplay.ForeColor=vbRed
EndSub
PrivateSubmnusi_Click()
Form1.Width=4185
EndSub
PrivateSubmnustart_Click()
Form1.Width=7050
cmdOtherOper(2).Enabled=False
cmdOtherOper(3).Enabled=False
cmdOtherOper(4).Enabled=False
cmdOtherOper(5).Enabled=False
cmdOtherOper(6).Enabled=False
cmdOtherOper(7).Enabled=False
cmdOtherOper(9).Enabled=True
cmdOtherOper(10).Enabled=True
cmdOtherOper(11).Enabled=False
EndSub
PrivateSubmnuyellow_Click()
Form1.BackColor=vbYellow
EndSub
PrivateSubmnuyellow4_Click()
txtDisplay.ForeColor=vbYellow
EndSub
PrivateSubTimer1_Timer()
Label1.Caption=Now
EndSub
第四章设计心得体会
课程设计独创性声明:
学生签名: 指导教师评语:
课程设计成绩:指导教师签名: 教研室意见:
教研室主任签名:
常熟理工学院课程设计报告
2
|
|