毕业设计论文:基于VB的计算器的设计与实现Word下载.doc
- 文档编号:6950033
- 上传时间:2023-05-07
- 格式:DOC
- 页数:33
- 大小:150.11KB
毕业设计论文:基于VB的计算器的设计与实现Word下载.doc
《毕业设计论文:基于VB的计算器的设计与实现Word下载.doc》由会员分享,可在线阅读,更多相关《毕业设计论文:基于VB的计算器的设计与实现Word下载.doc(33页珍藏版)》请在冰点文库上搜索。
3.3.4、平方、立方、多次方 -15-
3.3.5、指数函数、对数函数 -16-
3.3.6、倒数、平方根 -16-
3.3.7、角度、弧度、梯度 -17-
3.3.8、各进制转换 -18-
3.3.9、退格、清除、清空 -27-
3.3.10、复制、粘贴 -28-
3.3.11、两窗体的切换 -29-
第四章、总结 -30-
4.1、对学习者知识的要求:
-30-
4.2、学习程序设计基本要求:
4.3、程序设计方法概述 -31-
4.4、如何学好VB -31-
4.5、不足之处 -32-
参考文献 -33-
第一章、程序概述
1.1、创作目的
本程序的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,正切,指数函数,对数函数,角度、弧度、梯度相互转换和数字的
进制转换的计算器系统,系统可以帮助我们更快的计算,更好的学习,更
好的节省时间。
还能避免出现一些不必要的计算错误。
1.2、基本功能
1)能够完成整型和实型常数的四则运算。
2)能够进行如下函数的求值运算,包括sin,cos,tan,exp,log,sqr,1/x,及和园周率π。
3)能够实现角度、弧度、梯度的相互转换。
4)能够实现的进制的相互转换。
5)输出时的格式:
结果为整数时不显示小数点,结果为1以下小数时要显示前导0。
6)分门别类采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。
7)能够实现退格键、清除、清空功能。
8)出错处理:
操作数如果不符合数学上的定义,应该给出错误信息。
例:
0做除数,负数或0做真数等情况
第二章、总体设计
2.1、程序轮廓图
输入数字
平方根
平方
余弦
立方
正弦
选择转换的进制
转换
退格
清除说有数据
清除当前数据
正切
倒数
指数函数
对数函数
角度、弧度、梯度的转换
简单四则运算
结果
图一
第三章、程序代码
3.1、计算器界面
3.1.1、标准型计算器:
图二
图三
3.2、标准计算器代码
3.2.1、变量的定义及初始化
DimdflagAsInteger
DimiAsInteger
DimopnreAsInteger
DimprevAsDouble
DimoflagAsInteger
DimindAsInteger
DimXAsDouble
DimYAsDouble
PrivateSubForm_Load()
prev=0
oflag=0
ind=0
opnre=0
Clipboard.Clear
ang=3.14/180
EndSub
3.2.2、简单的运算
PrivateSubCommand1_Click(IndexAsInteger)
Ifind=4Then
prev=0
Text1.Text="
"
ind=0
EndIf
Ifoflag=0Then
oflag=1
IfCommand1(Index).Caption<
>
."
Then
IfText1.Text<
0"
Text1.Text=Text1.Text&
Command1(Index).Caption
Else
Text1.Text="
&
EndIf
Else
Ifdflag=0Then
dflag=1
MsgBox("
Error"
)
EndIf
PrivateSubCommand2_Click(IndexAsInteger)
Ifopnre=0OrIndex=4Then
Ifind=0Then
prev=prev+Val(Text1.Text)
ElseIfind=1Then
prev=prev-Val(Text1.Text)
ElseIfind=2Then
IfVal(Text1.Text)=0Then
MsgBox("
SORRYDIVIDEZERO"
ExitSub
Else
prev=prev/Val(Text1.Text)
EndIf
ElseIfind=3Then
prev=prev*Val(Text1.Text)
Text1.Text=Str(prev)
oflag=0
EndIf
opnre=1
ind=Index
dflag=0
EndSub
3.2.3、退格、清除、清空
PrivateSubCommand3_Click()
DimlengthAsInteger
length=Len(Text1.Text)
Iflength=1Then
0"
Text1.Text="
EndIf
Else
Text1.Text=Left(Text1.Text,length-1)
flag=True
PrivateSubCommand4_Click()
dflag=0
Text1.Text="
PrivateSubCommand5_Click()
Text1.Text="
3.2.4、复制、粘贴
PrivateSubfz_Click()
Clipboard.Clear
Clipboard.SetTextText1.Text
PrivateSubzt_Click()
"
Text1.Text=Clipboard.GetText()
3.2.5、两窗体的切换
PrivateSubck_Click()
form1.Hide
Form2.Show
PrivateSubckx_Click()
Form2.Hide
form1.Show
3.3、科学型计算器的代码
3.3.1、变量的定义及初始化
3.3.2、简单的运算
3.3.3、正弦、余弦、正切
PrivateSubCommand5_Click()
Text1.Text=Str(Sin(ang*Val(Text1.Text)))
PrivateSubCommand6_Click()
Text1.Text=Str(Cos(ang*Val(Text1.Text)))
PrivateSubCommand7_Click()
If(Cos(Val(Text1.Text)))<
0Then
Text1.Text=Str(Sin(ang*Val(Text1.Text))/Cos(ang*Val(Text1.Text)))
Else
MsgBox("
该数无正切值"
Text1.Text="
3.3.4、平方、立方、多次方
PrivateSubCommand8_Click()
X=Val(Text1.Text)
Text1.Text=X^2
PrivateSubCommand9_Click()
Text1.Text=X^3
PrivateSubCommand10_Click()
If(Text1.Text="
Orprev=0)Then
MsgBox("
不合法输入!
!
Text1.Text="
prev=power(prev,Fix(Val(Text1.Text)))
3.3.5、指数函数、对数函数
PrivateSubCommand11_Click()
e=Val(Text1.Text)
Text1.Text=Exp(e)
PrivateSubCommand12_Click()
L=Val(Text1.Text)
Text1.Text=Log(L)
3.3.6、倒数、平方根
PrivateSubCommand13_Click()
IfX=0Then
除数不能为零!
Text1.Text=1/X
PrivateSubCommand14_Click()
IfText1.Text<
MsgBox("
负数不能开方"
Else
Text1.Text=Str(Sqr(Val(Text1.Text)))
EndIf
3.3.7、角度、弧度、梯度
PrivateSubOption5_Click(IndexAsInteger)
DimjdAsDouble,huAsDouble,tdAsDouble
ju=Val(Text1.Text)
SelectCaseIndex
Case0
Text1.Text=ju
Case1
hu=3.141592654/180*ju
Text1.Text=hu
Case2
td=3.141592654/200
Text1.Text=td
EndSelect
ind=Index
3.3.8、各进制转换
PrivateSubOption1_Click(IndexAsInteger)
Staticr
DimwAsInteger
Forw=2To9
Command1(w).Enabled=True
Nextw
Forw=0To5
Command3(w).Enabled=True
Ifr=10Then
Text1.Text=trandec(Val(Text1.Text),16)
ElseIfr=2Then
Text1.Text=Two16(Text1.Text)
ElseIfr=8Then
Text1.Text=OCT_to_HEX(Text1.Text)
r=16
DimXAsInteger
ForX=2To9
Command1(X).Enabled=True
NextX
ForX=0To5
Command3(X).Enabled=False
Text1.Text=Convert(Text1.Text,r)
Ifr=8ThenText1.Text=trandec(Val(Text1.Text),10)
r=10
DimYAsInteger
ForY=2To7
Command1(Y).Enabled=True
NextY
Command1(8).Enabled=False
Command1(9).Enabled=False
ForY=0To5
Command3(Y).Enabled=False
NextY
Text1.Text=trandec(Val(Text1.Text),8)
ElseIfr=16Then
Text1.Text=HEX_to_OCT(Text1.Text)
Text1.Text=BIN_to_OCT(Text1.Text)
r=8
Case3
DimzAsInteger
Forz=2To9
Command1(z).Enabled=False
Nextz
Forz=0To5
Command3(z).Enabled=False
Text1.Text=trandec(Val(Text1.Text),2)
Ifr=16Then
Text1.Text=HEX_to_BIN(Text1.Text)
ElseIfr=8Then
Text1.Text=OCT_to_BIN(Text1.Text)
r=2
Y=N
Functionfact(numAsLong)AsLong
If(num<
0Ornum=0)Then
fact=num
If(num>
12)Then
MsgBox("
指太大"
fact=num
re=1
While(num>
0)
re=re*num
num=num-1
Wend
fact=re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 VB 计算器 设计 实现